
一つのプログラミング言語を習得したら、市場価値や開発スキルを高めるために第二言語を学ぶ人も多いのではないでしょうか。
プログラミングスクールからエンジニアになった人は、ruby。新卒からシステム開発に携わった人は、JAVAやPHPが使える人が多い印象です。
フリーランスにもオススメの言語はGOとJavascript
僕がフリーランスになった時に習得していた言語はpythonとPHPで、フリーランス初期の案件もPHPを採用しているプロジェクトでした。
しかし動的言語を採用しているプロジェクトは開発スピードを求めていることが多いので、スケジュールにも比較的にタイトであることに気づきました。
そんな中、自分の市場価値を高めるため、他にも開発できる案件の幅を増やすために目をつけたのがGO言語でした。
go言語
GO言語の説明は割愛しますが、シンプルで高いパフォーマンスを出せる良い言語だと思います。
GO言語などの比較的新しくできた開発言語や低レイヤーの言語を採用している企業は、開発力があるだけでなく技術にも投資できる収益性もある会社です。
その為、動的言語を採用している企業と比べてリソースにも余裕があって働きやすいことが多いです。
AWSやGCPなどのクラウドサービスにも対応している言語なので、採用する企業も増えていることも理由の一つです。
コンパイル型の言語なので、動的言語しか触ったことがない人にとっては一つの強みになる言語だと思います。
・ポインタやインターフェイスなどの知見を得られる
・マイクロサービス方式での開発手法に関する知見を得られる
・単価
Javascript
javascriptはフロントとバックエンドも書くことのできる数少ない言語です。
近年のWEBサービスではリッチなフロントエンドを実現するために「React」「Vue」「Angular」を採用する企業が増えています。
またサーバレスアーキテクチャの採用も増えるにつれて「AWS lambda」「Google Cloud Functions」でjavascriptが使用されるケースも多いです。
フロントエンドの動的な処理や表現、サーバーサイドにも対応できるので、多くの案件に対応することができます。動的言語ではありますが、フリーランスとして仕事の幅を広げてくれるスキルになります。
2018年にはGoogleから「TensorFlow.js」も公開され、Webブラウザ上で本格的な機械学習のモデルの構築、学習、学習済みモデルの実行などが可能になりました。
・単価
・フロント・バックエンドに通ずる
・クラウド(AWSまたはGCP)の知見を得やすい
動的言語・静的言語を身につけているなら関数型言語を習得しよう
この記事を読んでいるエンジニアの人で、関数型言語を触ったことのない人は早速触ってみることをお薦めします。
関数型言語についての説明は割愛しますが、エンジニアとしてキャリアを積んでいくならば関数型言語を触っていないと「成長や学習の努力を怠っている」と見られることが出てくるからです。
関数型言語も言語ごとに様々な評価を見かけますが、案件の多さからも「Scala」が良いと思います。
・純粋関数、参照透過性、パターンマッチ、代数的データ型などに関する知見を得られる
・高階関数、map|flatMap|fold|reduceなどに関する知見が得られる
まとめ
「動的言語」から「静的言語」、「関数型言語」を扱えるようになれば、好きな案件を選べるようなスキルまでに達していると思います。
しかし色々な言語を扱うことばかりに面白さを感じてしまっては本末転倒です。理由はキャリアにとって役に立つ言語とそうでない言語が存在するからです。
自分が面白いと思った開発案件にジョインしたいと願うなら、優先順位を決めて学習、建設的にスキルを向上し、実績・経験を積まなければなりません。
ポートフォリオに限らず、計画的にキャリアを積むこともエンジニアとして活動するうえで有効な「チケット」になるのです。