自称フルスタック気味の筆者ですが、主担当はインフラエンジニアとしての仕事が多いです。
得意分野で言えば、基本的はサーバ系で特にUnixとLinux(SolarisとRHEL)ですが、Oracle DBに関してもGoldまで取得しRACも担当しました。
今ではルータやL3SWなどネットワークやLB、またSAN Switchなどインフラは全般的に扱います。
しかし、同時にプログラミング言語についても学習をして業務で利用しています。
ここら辺が、私が「フルスタックエンジニア」ではなく「フルスタック気味」と名乗るゆえんです。
PHPやJavascriptなど、簡単にコーディング出来るものは、いわゆる「開発」業務ではなく簡易的なシステムの構築に利用します。
シェルスクリプトやPerlも書けますが、こちらはサーバサイドの運用自動化のためにコーディングします。
最近は本格的な「プログラミング言語」に力を入れています。
そこで今回は、インフラエンジニアの私が学習用に購入した書籍について紹介したいと思います。
今の時代はインフラエンジニアもプログラミングの心得を持っていた方が良い時代です。
クラウド環境さえあればアプリがデプロイ出来てしまうので、時代の進化に送れぬように頑張っていきましょう。
インフラエンジニアの私が購入した書籍
C#の学習
まず最初に最近力を入れているプログラミング言語が「C#」です。
なぜC#を勉強しようと思ったのかというと、私はこれまでLinuxとOracleライクだったので、Windowsの環境では上手く、思い通りに動くプログラムを作れなかったからです。
バッチスクリプトやPowershellもシェルスクリプトと比べると、癖が強く扱いにくいと感じていました。
なのでいっそのことC#を覚えてコンパイル型でアプリに出来るようにしたいと思いました。
以前、.NETの書籍も購入していたのでフレームワークやライブラリに関する概念は多少理解があったので、改めてWindowsに挑戦してみようと思いました。
もちろん、実行環境があればLinuxでも動くのでしょうが、MCSA試験にある「ストアアプリの開発」にチャレンジできるようになりたいと思い、C#にしました。
使用している書籍はこちらです。
まだ全部読み切っていませんが、基礎からなのでアプリケーションはどのような仕組みで動くのか、.NET Flameworkとは何かなど初心者向けに順を追って説明があります。
コーディングから入りたい人は最初は退屈かもしれませんが、インフラエンジニアのようにプログラミングの心得が無い人にはお勧めです。
名前空間やクラス、メソッドなどはインフラの領域に概念がありません。
また、.NETは以前こちらで学習しました。
私が購入した書籍は既に古いものになっているので、最新の情報であればこちらの書籍が良いかもしれません。
C#にしろ、Microsoft系の技術を学ぶ上ではやはりMicrosoft . NET Frameworkの知識は必要です。
XAMLなどコンソールタイプのプログラミングなども並行して学習していますが、インフラエンジニアからの知識は全く活きない領域だと常々実感します。
もし興味持った人がいれば一緒にC#を頑張りましょう。
Javascriptの学習
Javascriptに関しては手軽に扱えて、また使い方も簡単なので真剣に学習してみようと思いました。
きっかけは、社内システムがあまりに面倒な操作が多かったのでWebブラウザを自動で操作したいと思った事がきっかけです。
所謂、ブックマークレットなどを使うために扱いを覚えました。
ブックマークレットを作成すれば、ブラウザのお気に入りに入れるだけで、1クリックで業務が自動化出来ます。
Javascriptはそのくらいお手軽に使えて便利な言語です。
また、社内のワークフローシステムにJavascriptを組み込めることから学習を真剣にしないといけない事態にもなりました。
フォームのデフォルト値が煩雑な判定が必要だったり、変数を見て値を自動で挿入するなど、GUIでは設定しにくい部分も、Webブラウザで動くシステムであればJavascriptが活きます。
本当であれば、HTMLやCSSと合わせて、Webブラウザのデザインや処理なども一緒に学習できれば、Web系のエンジニアにもなれたかもしれません。
私が資料した書籍はこちら。
電子書籍で購入してタブレットで学習しました。
また値段も優しいです。
こちらですが、サンプルなどもあり、また私のようなお手軽な使い方からきちんとHTMLなどを用いたWebフォームについて解説があります。
もしWeb関連について学習したいインフラエンジニアがいればお勧めです。
最後に
プログラミング言語の書籍について紹介してきました。
シェルスクリプトやPerlもプログラミング言語ではありますが、本格的な開発言語ではないので今回は紹介していません。
Javascriptに関しても、似たような部類ではありますが「Web」に特化しているので今回は紹介してみました。
他のインフラエンジニアの方々もプログラミングの学習に興味を持ったら参考にして頂ければと思います。