
プログラミングスクールの進展やインターネット上に良質なプログラミングの情報が多く蓄積されてきたこともあって、学習環境は昔と比べると充実しており、初学者にとって学習しやすくなってきていると感じています。
特にプログラミングスクールにはメンターに現役エンジニアの人もいて、詰まったところは質問し放題なのでいたせりつくせりです。
卒業してからはキャリアを積むために自己学習が欠かせませんが、どんなことを意識して勉強していけば良いのかをわからないという人のためにこの記事では学習プランを紹介します。
プログラミングスクールに多い動的言語を脱して静的言語を扱えるように
プログラミング スクールで学習する言語で特に多いのがRuby。その次はPHPでしょうか。
このブログでも何度か紹介していたり、僕のTwitterや他の有識者も仰っている通り、動的言語は早めに脱して静的言語を学習した方が良いです。
言語を指定するとしたらGo言語が良いと思います。実体験から僕の考える理由としては以下の2つ。
・技術投資のできる開発スケジュールに余裕のある会社が多い。
Go言語においてはマイクロサービスで使用しているケースが多い印象で、メガベンチャーや技術力のある会社の多くが採用しています。
フリーランスエンジニアの考えるオススメの開発言語はこちら↓
クラウドサービスを使いこなすことができる
メジャーなクラウドサービスにはAWSやGCPがあります。
企業が新規でプロジェクトを立ち上げるときやオンプレのシステムのリプレースの際まで利用されており「AWSとGCPどちらを使うか」がよく議論に挙がります。
課金体系や仕様/制限はそれぞれ違うので調査が欠かせないのですが、クラウドの設計に関しては経験に左右される部分もあります。
パブリッククラウドでは思わぬ費用がかかったりクラウド特有の制限があります。そのため運用していく上で気をつけなければならないポイントもあるので、各企業で学んだノウハウがあると現場でも重宝される存在となります。
プログラマーとインフラエンジニアの間のような存在であるSREのポジションもできているので、今後クラウドを扱える人材の需要は増していくと考えられます。
適切なDevOpsができるようになる
「DevOps(デブオプス)」とは、開発手法やツールを使って 開発と運用をスムーズにするための開発手法を示すことが多いです。
しかしDevOpsの厳密な定義は存在していないのが実情でもあります。
基本的に開発者は新しい機能を追加したり、メンテナンスしていくことが仕事ですが、運用者はシステムを安定稼働することが仕事です。仕様の変更などはシステム稼働の安定を損なう可能性があるので、運用者はシステム改修を嫌うのですが、このあたりの問題を吸収してくれるのがDevOpsのメリットです。
具体的にDevOpsを実現するツールとしてはバージョン管理システムのGitやCIツールのJenkins。CDツールのDockerなどがあります。
建設的にキャリアを積んでいけば市場価値の高いエンジニアになれる
長期的に見ると世の中、合理的に進んでいきます。
プログラミング初学者は動的言語から静的言語の習得、各種クラウドサービスの知見がありDevOpsまでできるとエンジニア全体の中でも一人前のレベルになると思います。
エンジニアになってサービスを作りたい人やメガベンチャーに勤めたい人など、人によって実現したいことはバラバラではありますが、キャリアを重視する前に技術が伴っていなければ仮に転職活動をしたとしても効率が悪いです。まずは開発スキルを向上させていくことが建設的なキャリアの積み方になると思います。