さてさて。表題の件。
IT企業に就職すると、プログラミング能力が必要と思われがちですが作業内容次第では別の能力が必要なときもあります。
その中で、「プログラミング」があり、アプリケーション絡みの開発。そして、そのアプリケーションを動かすためのインフラストラクチャーの構築。
個人的にはインフラストラクチャーこと、インフラのほうが好きです。
AWSから始まりDocker、Ansible、Vagrantに仮想ネットワーク、NS、プロトコル、ルーティング、VPNなどなど。
昔からやっているという理由もあるけれど、最近プログラミングもやりつつインフラもやりつつという状態が続いていて、思いました。
やっぱりインフラのほうが良いと。
インフラのどこがよいのか?
インフラのいいところを伝えてみましょう。
何より喜びを感じる、嬉しいと感じるのは
環境が出来上がったとき
ですね。
で、環境が出来上がったときとというのは、事象で言うと「ネットワークの疎通が確認できた」とか「アプリケーションが立ち上がった」とかそういう時になります。
物理的にサーバを2台設置して、ルータを設置して、つないで、Pingが通ったときの感動は計り知れません。
<例>
C:\>ping www.example.com www.example.com [93.184.216.119]に ping を送信しています 32 バイトのデータ: 93.184.216.119 からの応答: バイト数 =32 時間 =104ms TTL=52 93.184.216.119 からの応答: バイト数 =32 時間 =105ms TTL=52 93.184.216.119 からの応答: バイト数 =32 時間 =104ms TTL=52 93.184.216.119 からの応答: バイト数 =32 時間 =104ms TTL=52 93.184.216.119 の ping 統計: <---(3) パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、 ラウンド トリップの概算時間 (ミリ秒): 最小 = 104ms、最大 = 105ms、平均 = 104ms
失敗しているときはバイト数=32~~~みたいなのが出ないんですよ。コマンドをこれが出てきたときのつながった瞬間がとても感動ですね。
アプリケーション立ち上げも、何度もエラーログと格闘しながら、「~~~~ started」みたいなあきらかに起動しただろうというログを見ると喜びを感じます。
こういう組み立てた感がすごく感じられるのがインフラのいいところですね。
プログラミングのいいところは?
逆に、プログラミングのいいところはどこか。
自分自身、プログラムする行為自体はそこまで好きではありません。
溶接(Functionをつなぐレベル)であればまぁ楽しくやるのですが、例えば認証機能をガチで0からコーディングやるとかなるとげんなり。
フレームワーク使おうよ、Cognito使おうよっていうのが真っ先に浮かぶ思想。
で、周りに聞いてみたところプログラミングの楽しいと思うときは
「思ったものが画面に出てきたときが楽しい」
と言っていました。
なるほど。laravelでもJavaScriptでもなんでもいいけど、データを引っ張ってきて表示する、自分でレイアウトして表示する、それが思い描いていたものが表示できたときに喜びを感じるそうです。
結局同じでは?
こうやって考えると、結局アウトプットされることに対して一喜一憂しているという点では同じなんではないかなと思います。
表現のされ方が違うだけで。
でも、インフラを好きな人は
「プログラミングは複雑すぎてツライ」
というし、プログラミングが好きな人は
「インフラは何をやっているのかさっぱりわからん」
というし。
何が違うんだろうなー。
何が違うと思います?