参考URL:https://pixabay.com/
インフラエンジニアといえば、
- プロジェクトの縁の下の力持ち
- 物理層からシステムに触れることができる
- OSのコマンドに強くなれる、
といったメリットがあります。
もともと物理的なコンピューターが好きでIT業界に入った人は、システムエンジニアよりもインフラエンジニアの方が楽しいと感じるかもしれませんね。
しかし、インフラエンジニアでもプログラミングをやりたいと思うことはあるでしょう。またクラウド化等インフラ環境が効率化されることによって、昔よりも物理的なインフラ管理業務やOS周りのコマンド入力業務は減っています。
システムエンジニアがインフラ管理まで端末から行う時代で、逆に言えばインフラエンジニアもプログラミングに乗り出さないと生き残れなくなってきました。そこでこのページでは、新人インフラエンジニアがプログラムをやりたいと思ったときにどこから手を付けるべきか、またどのような方法を選択すれば良いのか、といったことを解説します。
シェルやバッチが苦手ならまずはそこから
インフラエンジニアとして、まずはOSコマンドが得意である必要があります。OSコマンドもプログラミングに似ている部分がありますが、インフラエンジニアにとってはシェルやバッチが本業です。
なので、それが苦手な場合はプログラミングより先に勉強する必要があります。すでにシェルやバッチに問題がない場合、プログラミング学習に入れます。
HTMLからやってみる
インフラエンジニアのなかでも、もしかするとそのプロジェクト内のソースコードに触れる機会の多い方もいるかもしれません。その場合、そのプロジェクト内で扱っているプログラミング言語から学習すると良いです。
しかし、そうではない場合が大半でしょう。つまり、インフラ担当はあくまでもインフラ担当で、プロジェクト内のソースコードはまったく関係ない、ということです。その場合、仕事とプログラミング学習はいったん切り離して、基本通りHTMLからやってみるのがおすすめです。
プログラミング初心者はHTMLから始める場合が多いですが、これはHTMLが直感的に扱うことができ、なおかつ環境構築が不要だからです。タグで囲んだ記述をしてからファイルの拡張子を書き換えるだけで完成なので、非常にシンプルです。
プログラミングの経験がない場合、HTMLから入ると良いでしょう。シェルやバッチよりも簡単なので、入り口で挫折しないためにもHTMLは最適です。
HTMLとセットでCSS
HTMLとCSSはセットなので、HTMLが表示されたらCSSも書いてみると良いです。ただしHTMLもCSSもそこまで本格的に取り組む必要はなくて、あくまでもプログラムが表示される感覚をつかむための取り組みです。
書籍でもWebサイトでも動画でも良いですが、基本を見て、そして書いてみると良いでしょう。ただし、もしかするとCSSが思った通りに動かずに詰まるかもしれません。解消できそうであればバグを解消してみて、無理そうならスルーで良いかと思います。
スクリプト言語かコンパイル言語
参考URL:https://pixabay.com/
HTMLとCSSでWebの表面を実装する感覚をつかんだら、次に処理を記述する言語を学びます。どこから入るかですが、これはどこからでも良いです。Javascriptなどのスクリプト言語から入っても良いですし、Javaなどで本格的なコーディングに取り掛かっても良いです。
この後実際のシステム開発に取り組むので、なるべくなら自分が使用しそうな言語を選ぶと良いです。たとえばWebシステムならPHPやJava、iOSならSwift、AndroidならKotlinやJava、といった考え方です。
どの言語を選んでも基本的なロジックの作り方は同じで、汎用性があります。最初の一つをマスターすれば次からの言語習得は早いので、作ってみたいシステムに合わせて言語選択するのがベストでしょう。
ただし、いずれにしても先にインプットしないと実装できないので、HTMLやCSSよりもじっくり学ぶことになります。HTMLやCSSは少しインプットすればすぐに実装できますが、処理を記述する場合そうはいきません。
もちろんプリントや単純計算は書けばそのまま実行されるので書いてみると良いですが、本格的な処理を組み込むためにはインプットに力を入れる必要があるので、書籍やWebサイトや動画を長時間見る必要が出てきます。
環境構築やアウトプットのタイミングは人それぞれなので一概には言えませんが、気軽に考えると良いかと思います。まずはインプットから入って、飽きてきた、実際に手を動かしてみたい、と思ったタイミングでアウトプットに入ってみると良いかと思います。
わざわざプリントやループを試しても面白くないからいいや、ということであれば、その辺の基本のアウトプットは特に必要ありません。インプット作業だけだと感覚がつかめない、頭に入らない、と思ったタイミングで手を動かしていきます。
実際にアプリを作ってみる
HTML、CSSのコーディング練習や本格的なWeb系言語の学習が終わったら、いよいよアプリ開発です。OSやアプリケーションの選択は自由で、どれを選んでもスキルアップに役立ち、また汎用性があるため応用が利きます。
たとえば、Androidアプリの開発経験があれば、iOSになってもそのまま役立ちます。基本的な作り込み方や一連の流れは同じようなものなので、選択の失敗はないでしょう。作るアプリに関しては、初心者がアプリ開発に取り組んだ結果のリポートブログ、書籍、動画などを参考にすると良いです。
よくあるのは簡単な計算機やゲームなどですが、そういったものでもまったく問題ありません。実際に手を動かして全体を作り込んでいく練習なので、深く考える必要はないでしょう。
ここをクリアすればどんどん好きなアプリ開発に取り組めるようになり、最終的には収益化も狙えます。インフラエンジニアからシステムエンジニアへの転身や、フリーランスになることも可能です。
インフラエンジニアにとってプログラムを活用して自由にいろいろなものを作り出せる能力は自分の市場価値を高めるうえで最適なので、ぜひ積極的に学んでいきましょう。正直なところ、プログラミングしている途中で「なんでこんなもの作ってるんだろう」「こんなことして何になるのかな」「ものすごく時間を無駄にしているのではないか」「面倒臭くなってきた」といったことを思うかもしれません。
しかし作業している時間は無駄ではなく、またたとえ成果物そのものに大した価値はなくてもその過程で得たスキルは次に活きます。逆に言えば何かしら作らなければ次につながらないので、たとえ今はどうでもいいものしか作れなくても気にする必要はありません。
「計算機なんかOSについてるからいらないな」「ゲームなんか作らなくても無料でいくらでもダウンロードできる」というのが正論で、バグが発生したらなおさらそんな気がしてきます。
ただし成果物ではなくてその過程での自分のスキルアップが目的なので、深く考えずにとにかく完成させていくことがプログラムによるアプリ、システム開発の第一歩です。