プログラミングをどうやって学ぶか。独学か、スクールか。
僕は何年も前からプログラミングに興味があり、業務で活用していたエクセルのVBAは自分で得意と言えるくらいに出来るようになったのだけれど、他の言語は書籍で勉強をするくらいで、ちゃんと何かを作るまではできない。
僕はいわゆるインフラエンジニアと言われるポジションにいる。
インフラと一言で表現しても、その範囲は広く、LANケーブルや電力線の敷設、キャリアの回線敷設調整も広義の意味ではインフラだし、L3からL4(TCP/IP)までのネットワーク層もインフラ、L5以上も広義ではインフラに含まれるかも知れない。
そしてこれらのインフラは、物理空間における縛りが存在していた。
回線も、NW器機も、サーバも、それは物であり、そこから動かすことは出来なかった。
……これまでは。
何年か前から、「クラウド」という言葉がそこかしこで聞こえるようになってきた。
AWSやAzureがその代表例。
当初、僕は「レンタルサーバと変わらないじゃん」くらいに思っていた。
しかし実際に触ってみると、サーバのレンタルというよりも、機能(あるいはサービス)の提供というように感じた。
確かにサーバの構築もできるが、コスト面などから考えるとサーバを使わない「サーバレス」で構築をするのがセオリーの様だった。
そもそもその「サーバ」という環境も、クラウド環境における一つの機能、とも言えた。
なぜなら、サーバの環境ですらコード化できるから。
僕がAWSを触ったときに一番衝撃を受けたのが、この「コード化」だった。
「AWS CloudFormation」というサービスを使うことで、単なる文字列のコードにより自動でインフラが構築される。いくつも同じ環境を立ち上げることができる。
これまで物理空間に縛られていたケーブル、NW機器、サーバたちが、クラウドいう電子空間の中で、コードにより実体化するのだ。
AWSがあれば、インフラエンジニアのフリーランス化や、場所を選ばずに仕事をすることができる。そう考えると、もうね、震えたね。
だが、このAWSを使いこなすとなると、この「コード化」が極めて便利であると同時に、ここが僕にとってのネックとなりそうだった。
コード化をするには、プログラミングの素養が必要だったから。
だから僕は、プログラミングの勉強をしようと思い、書籍やudemyなどで勉強を始めた。
AWSの環境でしようできるGoであったりPythonであったり。
ただ、動画や書籍を見ながらコードを書き、実行して、基本的な知識は身についても、それを使って何かを作るという経験がない以上、そんな知識は張子の虎に過ぎなかった。
かといって、現在僕が働いている現場で、そういった知識が生かせるのかというと、そういうわけでもなかった。
だから、そういった仕事を主たる業務とする会社に転職をするか、あるいはスクールに行くか……。
最近はそういった将来の事で、頭がいっぱい。