エンジニアを志す方の悩みは「どうやって勉強するの?」「どういう順番で何をすればいいの?」というHowに関する悩みが多いですが、
次点で多い印象は「どの言語が現場ではおすすめなの?」という質問です。
インターンや転職含めるとYahoo・サイバーエージェント・大手SIerなどから内定をもらい、業務や個人の開発を経験した私からの回答ですが、
現場で求めれるスキル・言語は違うし、あなたが目指すキャリアにあったスキル・言語がありますということです。
今回はプログラミング言語の選択に悩む人に向けたおすすめ言語を紹介します。
解決される悩み
・どの言語を学べばよいの?
・どの言語で何ができるの?
・習得が楽な言語は?
・難易度は?
・どの言語を身に着けた方がフリーランスのエンジニアのキャリアとしてベスト?
結論としては、目的にあった言語を学習することが近道であるということです。
初心者におすすめなプログラミング言語4選
目的に応じてスキルと言語を選ぶべき理由
このコンテンツを見ている人は、これからプログラミングを学ぼうとしている人、もしくは今も学習中の人がほとんどだと思います。
では、そもそも皆さんはなぜプログラミングを学んでいるのでしょうか。
人によってプログラミング言語を学ぶ目的は、意外とバラバラなのです。
- 東京へのエンジニアへの転職を見据えて今すぐにでも現場に出たい
- Webサービスを作ろうとしたが挫折してしまった。今度こそきちんと身に付けたい
- 社会が不安定なので、今後機械学習やデータ分析を行う職種にキャリアチェンジしたい
- Androidアプリが今後も増えてくると思う。この分野を極めたい。
そして人の悩みと同じくらい、プログラミング言語にも特徴があります。
駆け出しの頃のエンジニアのニーズはある程度、開発した経験と実績に依存します。
なぜかといえば、エンジニアの転職市場では言語特有の仕様に関する質問や、その言語特有で考慮しなければならないようなケースもあったりします。
新卒や若手のうちは細かいことを知らなくても、伸び代があるのでそこまで見られるケースは少ない印象ですが、
未経験の人はそういった新卒の人たちと戦わなくてはならないのです。
端的にいえば、差をつけるためには自分の目的に合わせて、一つのことに向き合った方が手っ取り早いということです。
なので、これから目的別におすすめ言語を紹介します。
目的別おすすめ言語
身に付けたいスキルや目的別に4つに分けました。
①今後も根強い需要を手堅く追いたい志向
②目的特化・即戦力志向
③とりあえず手っ取り早く身に着ける志向・挫折したくない志向
④最先端・高収入志向
①今後も根強い需要を長く追いたい志向
フリーランスエンジニアとして評価されたい人としては王道の、しばらくは需要が見込めるスキルを追いたい人向けです。 変化は激しくはないが、根強い需要もあってその道のベテランになるチャンスもあります。
オススメ
Java、Go、Scalaなどがおすすめです。
理由は、以下の特徴を持った言語として、長く需要が見込めるからです。
- 現在も人気な言語
- 利用しているユーザ数も多く、安定した評価を得ている
- 大規模なシステムで使われている
Webサービスから大量の処理を捌く必要のあるゲームなどのシステムによく使われている印象です。
特にJavaとGoは開発しやすいようにサンプルコードが多く、何かアプリを作る時には困ることが比較的少ないです。
Scalaは現状はまだ利用している企業は少ないのですが、Javaとの互換性もあり、JavaエンジニアがScalaに転身するとも言われているためこちらに書いています。
②目的特化・即戦力志向
目的や用途がある程度限定された言語です。
エンジニアもあまり手を出す経験がないので需要が高いと思います。
身に付けられたら、今なら仕事に困らないと思いますし、学習コストの割に現場に出るのが早い気がします。
- iOSアプリエンジニア
- Androidアプリエンジニア
- ゲーム開発エンジニア
- AI・データサイエンティスト
目的が上記で、初めから志向する人は、このタイプです。
なぜかといえば、iOSやandroidアプリ、ゲーム開発などに特化していて、初めからエンジニアの人が新しく学習を始める人が少ないです。
オススメ
kotlin、Swift、Python、Unityなど
kotlin
→androidアプリ開発の標準言語としてgoogleが推奨しており、当面のアンドロイドアプリはこの言語で作りやすいです。
swift
→アップル社が開発した、iOSアプリ専用言語です。
Python
→データ分析・AIからwebサービスなどのアプリまで比較的汎用です。データを加工したりするのに向いていますので、データを扱う職業
に興味があれば。
Unity
→言語というか、ゲーム開発をしやすくするために作られたパッケージみたいなものだと思っていいです。Unityを使ってゲーム開発している会社は多いですよ。
③とりあえず手っ取り早く身に着ける志向・挫折したくない志向
とりあえずなんでもいいからプログラミングの一連を学びたい人、過去に勉強したけど挫折してしまった人はこちらのタイプ。
簡単なWebサービス作りたい人もこちらです。
理由はこちら。
- チュートリアル多い
- 導入手順やサンプルコードがネット上に豊富
- とっつきやすい分、周りにできる人が多く相談しやすい
オススメ
ruby、PHP
どちらも簡単なwebサービスを作るまでの手順が簡単で、豊富にサンプルもあります。
一般的なプログラミング学習サイトでこの二つの言語を学べないサービスはないのでは、というくらい人気です。
学習するための環境の準備も楽で、つまづくことが少ないです。
rubyはwebサービスを作るための言語として、一時期あまりにも一世を風靡してしまったので、
どちらかといえばPHPの方がエンジニアの間でも人気がでていて、トレンド的にもおすすめです。
④最先端・高収入志向
時事刻々と流行りとアップデートも激しく、なかなか現場でも使える人が少ないスキルセットです。
トレンドの影響を受けやすいが、直近のニーズが高く即戦力になりたい志向です。
例えばPHP、rubyなどは挫折しにくい言語である一方、他の人もスキルを持っているので、どうしても実践経験を持つ人を選ぶ傾向にあります。
オススメ
Javascript+フレームワーク(Vue、React、AngularJS、jqueryなど)
バリバリ稼ぎたいなら、この技術を磨いて案件をやった方がいいです。
理由ですが、
HTML、 CSSなどの周辺の技術を理解することはもちろん、最先端のフレームワークを使いこなせる人は多くないので、
きちんと身につければ先にプログラミングを始めた人よりも稼ぐチャンスが得られる可能性があります。
もう一つの理由は、このスキルを身に着けるとUIやWebデザイン、ユーザーの体験をよりよくするための改善案を出す機会とチャンスが多く得られます。
そうすると、より複合的な理由で実績を評価されます。
まとめ
正直おおむねどれも需要があるので、一番はじめにどれを勉強してもいいと思います。
「どれか一つを深く理解すれば応用が効きます」
自分はC++、Java、python、node.js、Go、Javascriptなどなどいろいろ触ってきましたが
一つの言語を深めると新しい言語を勉強して理解するのも早いです。
独学の方法やどうやって勉強していくべきかはこちらにまとめています。 www.geek-work.tokyo