どうも。フリーランスエンジニアの有人(freese90)です。
最近、『プログラミング言語を勉強するなら、どの言語を勉強するのがオススメですか?』って質問を受けることがあるので、今日はそれについて書きたいと思います。
自己紹介でも記載した通り、僕は実務未経験でフリーランスエンジニアとして独立し、今では、Ruby、Java、PHP、Python、javascriptなど、複数のプログラミング言語での実務経験があります。
最初はJavaから実務経験を積んでいき、次にWeb系のRubyという言語の実務経験を積みました。そして今では、PHPやjavascriptや、プログラミング言語ではありませんがAWSなどのインフラ周りの実務経験もあります。
未経験から様々なスキルを習得してきた訳ですが、今日は「フリーランスエンジニアを目指す」「フリーランスエンジニアとして単価アップや柔軟な働き方を目指す」なら、どのプログラミング言語を習得するのがオススメか?というテーマで解説します。
「今から学習する言語を迷っている」
「スキルチェンジするなら、どの言語がオススメ?」
「現役フリーランスで、単価を上げたい」
など、誰にとっても参考になる話かなと思いますので、是非、最後まで読んでいってください(^^)

目次
プログラミング言語はたくさんある
まず初めに、プログラミング言語は世の中にたくさんあります。
パッと羅列するだけでも、Ruby、PHP、Java、Python、Perl、C、C#、C++、Scala、COBOL、javascript、HTML、CSS、Swift、Objective-C…
他にも、マイナーな言語を含めると世界中で、次々にプログラミング言語が誕生しており、挙げだしたらキリがありません。
ただ、言語ごとに特徴や得意なこと、案件の特色などが異なります。
上で挙げた言語を大別すると、以下のようになります。
1. Web系の言語
Ruby、PHP、Java、HTML、CSS、javascript、Python、Perl、Scala
2. 組み込み系の言語
C、C++、アセンブリ言語
3. 業務アプリ系の言語
Java、COBOL、Python、.net、C#
4. スマホアプリ系の言語
Swift、Objective-C、Java
〜系プログラミング言語の特徴と違い
1. Web系の言語
Web系言語の特徴は、Google ChromeやFirefox、Internet Explore、Safariなどブラウザ上で動作するアプリケーション開発を得意とすることです。
世の中のシステムやアプリケーションの大半はWebブラウザ上で動いてるので、それだけ案件数も多く、需要もあるので単価も高い傾向にあります。
特に、GoやRubyなどの言語は、Web系のベンチャー企業が好んで使う傾向にあります。
また、Web系のスキルを軸にフリーランスエンジニアの案件を探すと、
リモートワークや週3勤務など自由度の高い企業と出会える可能性が高いです。
2. 組み込み系の言語
組み込み系言語の特徴は、家電製品や機器などの『独立した機械の中に組み込まれたコンピューターを制御するためのシステム』を開発するためのプログラミング言語です。
簡単に言えば、家の洗濯機とか電子レンジとかの中にも小さいマイクロコンピュータ的なものが入ってて、それらが機会を制御しているから、電子機器を正常に動作させることができます。
これらの機器を制御するためのプログラムを書くための言語が組み込み系の言語です。
こちらの言語は、案件を見てみるとわかるのですが、Web系に比べると単価が少し低い傾向にあります。
また、組み込み系の言語の全てに共通して言えることですが、学習コストが高いことも多いため、習得に時間がかかることが多いです。
3. 業務アプリ系の言語
『勤怠管理』や『交通費清算』など、業務を自動化するために開発されるアプリケーションです。
社内の機密情報などを扱うことも多く、リモートワークなどの柔軟な働き方はあまり期待できないかもしれません。
ただ、フリーランスとして独立すると、(Web系ほどではありませんが、)単価もそれなりに稼げますし、案件数もかなり豊富なので、身につけておいて損はないと思います。
4. スマホアプリ系の言語
iPhoneやAndroidなどスマートフォンやタブレット上で動くアプリケーションを開発するための言語です。
Objective-C、Swift、Kotlinといった言語を用いて開発する案件が多いです。
単価も十分に稼ぎやすく、リモートワークや週3勤務などの柔軟な働き方をしやすい案件も多いです。
個人的にオススメなプログラミング言語
大まかにプログラミング言語の特徴を説明したので、ここからは各フェーズにおけるオススメのプログラミング言語を紹介します。
プログラミング初学者の場合
1. PHP + HTML、CSS
今からプログラミング学習を始める人にオススメできるプログラミング言語がPHPです。
学習コストが低く、初心者がまずプログラミングを学習する上で取っ掛かりやすいと思います。
PHPを身につけてしまえば、案件数も多くフリーランスとして独立したとしても仕事に困ることはまずありません。
また、PHPは東京や大阪以外の地方でも案件数が多く、地方にUターンしてフリーランスエンジニアとして働きたいと考えている人にもオススメできます。
案件の単価も悪くはなく、月単価60万〜70万くらいまでは、経験年数やスキルに応じて狙っていくことができます。
2. Ruby + HTML、CSS
次に初心者にオススメなプログラミング言語がRubyです。
Rubyは東京の案件が多いので、東京近郊に住んでいるプログラミング初心者にオススメという結論になります。
※ 逆に、地方在住のままエンジニアになりたいと考えている人は、PHPをまず学習することをオススメします。
Rubyは単価も高い傾向にあり、フルリモートや週3勤務などの柔軟な働き方をしやすい案件も多いですし、RubyはPHPと同様に習得難易度が低い傾向があります。
また、基本的に現場での開発は一人で行うわけでなくチームで開発を行い、その際にはフレームワークを用いて開発するのが一般的です。
フレームワークとは『この骨組みに沿って開発を進めてね』というガイドのようなものと認識しておけば大丈夫です。
各言語ごとにフレームワークは色々とあるのですが、Rubyの場合は、ほぼ一択でRuby on Railsというフレームワークを使用します。
なので、様々なフレームワークを勉強する必要がないという点でもRubyはオススメです。

既に何かしらのプログラミング言語を一通り学んでいる場合
1. Java(既に何かしらの言語を学習済みの場合はRuby or PHP)
Ruby、PHPのどちらか一つでも既に習得済みの場合は、Javaをオススメします。
理由は、まず案件数が圧倒的に多いことです。
Javaを身につけてしまえば、独立してもかなり仕事を選ぶことができます。
特に、全国どこでも案件数が非常に多く、地方でフリーランスエンジニアとして活動していきたい人は、習得しておくことをオススメします。
また、Javaは開発できる範囲がとても広く、Web系のアプリケーションから業務系アプリまで開発可能なマルチタスクな言語なので、習得することのメリットはとても大きいです。
唯一のデメリットは、あまりWeb系の企業はJavaを使っていないので、「絶対にWeb系の企業で働きたい」という場合はJava以外にもRubyやPHPを勉強しておくといいかと思います。
2. 各言語のフレームワーク
既にJavaやRuby、PHPなどのスキルを身につけている場合は、新しくプログラミング言語を習得するより、フレームワークの学習をすることをオススメします。
現場では複数人で開発を行うことになるので、何かしらのフレームワークを使って開発を行うことになります。
そのため、フリーランスエンジニアの面談では『〜のフレームワークの使用経験はありますか?』と聞かれることもあるので、
既にJavaやRuby、PHPの基礎を習得しているのであれば、フレームワークの学習をしたほうが獲得できる案件の幅も増えてオススメです。
Ruby:Ruby on Rails
PHP:Laravel
Java:Spring
3. Java、Ruby、PHPなどの経験がある場合
1. javascript(特に、ReactやVue.jsなど)
JavaやRuby、PHPなどのバックエンドの言語をどれか1つでも扱えるだけでも、普通にフリーランスエンジニアとして稼いでいくことはできますし、仕事に困ることはまずありません。
ただ、バックエンドのエンジニアとして案件に入っても、場合によってはフロントエンドも一緒に担当してほしいと言われるケースもあるので、
「更にスキルを高めたい」「高単価を狙っていきたい」という場合は、javascriptを習得し、フロントエンドのスキルを習得していくのがオススメです。
最近では、ReactやVue.jsなどjavascriptのフレームワークを用いた開発をする現場も多いです。
また、ReactやVue.jsが扱えるエンジニアの単価はかなり上昇している傾向にあり、フルリモートや週3勤務などの柔軟な働き方をしやすい案件もかなり増えています。
バックエンド : サーバやデータベースなどの「目に見えない部分」の処理
フロントエンド :UIや動きなど「目に見える部分」の処理
2. AWSやGCPなどのインフラ周り
正直、Java、Ruby、PHPなど、どれか1つバックエンド言語をしっかり使えて、フロントエンドも扱える時点で、エンジニアとしてかなりレベルは高いですが、
もっとスキルを横に広げていきたいのであれば、AWSやGCPなどのインフラ周りの経験を積んでいくのがオススメです。(最後は、言語ではありませんが。笑)
サーバサイド・フロントエンドの技術を極めるだけでも、月単価70〜80万程度は狙っていくことが可能ですが、AWSやGCPの実務経験も積んで、インフラも対応できるエンジニアを目指せば、さらに高単価を狙っていくこともできます。
ただ、最初からここを目指さなくても、最初はバックエンドのエンジニアとして経験を積み、次にフロントエンド、その次にインフラ(AWSやGCP)と、順を追って実務経験を積んでいけばOKです。
最後に:
プログラミング言語は、本当に多くの種類があり、全てを覚えるのはまず無理です。
そもそも、Ruby、PHP、Javaのうち1つをしっかりとマスターするだけでも、十分にフリーランスエンジニアとして戦っていけます。
ただ、別の言語を習得したいとなった場合に「別のプログラミング言語も1から覚えるのは大変そう」と感じるかもしれませんが、プログラミングは一つの言語を覚えたら、他の言語も基本的な考え方は同じで、書き方が微妙に違う程度の差なので、2つ目の言語を覚えるハードルはかなり低くなります。
要は、標準語と関西弁の違いのようなものです。
だからこそ最初に取り掛かる言語は、習得難易度の低いRubyやPHPがオススメです。
また、既に何かしらのプログラミング言語での開発経験がある場合は、フリーランスのエンジニアとして独立することで、年収はかなりアップする(僕の周りは、平均2〜3倍くらいになっています)ことが多いので、一度、ご自身の単価をエージェントで査定してみるのもオススメです。
僕が独立当初からお世話になっているエージェントも、以下の記事でインタビューさせていただいているので、参考にしてみてくさい。

また、「自分のスキルで独立した場合、どれくらいの単価の案件を獲得できそうか」など、
本気でフリーエンジニアを目指したい人へ
TwitterやYoutube、ブログやInstagram等で情報発信をしていると、よく以下のような相談をいただくことがあります。
「今は未経験だけど、これからフリーランスを目指したい」
「既に実務経験があり、フリーエンジニアとして独立を検討している」
「現役のフリーランスだけど、もっと単価を上げたい」
☝️昔の僕がそうだったように、こんな目標がある方も多いと思います。
僕はどうせなら、自分だけではなく、周りでも「稼ぐ」エンジニアがもっと増えたらハッピーだなって思ってます。
また、単に「稼ぐ」だけではなく、「時間」や「場所」に縛られず自由に働けるエンジニアが周りに多いと、そのエンジニアの人たちと一緒に事業を作ったり、次の挑戦に向けて一緒に切磋琢磨できるので、
僕の周りに「お金」「時間」「自由」の3つが揃っている人たちが増えて欲しいなって思ってます(^-^)
そこで、公式LINE「最速で月収50万を達成するためのLINEマガジン」を用意し、具体的なノウハウの情報発信や個別の相談会を開催する取り組みを始めました。
登録者限定で、以下のプレゼントを準備しています▼
🎁 僕が月収88万を稼いだスキルシート(pdf)
🎁 フリーエンジニアを目指す教科書
✔︎『未経験からフリーランスを目指す方法』
✔︎『フリーエンジニアになれるスキル基準』
✔︎『フリーエンジニアが年収を底上げする方法』
✔︎『稼げるスキルシートの書き方』
✔︎『フリーエンジニアの面談対策』…など
🎁 【完全無料】個別相談会への参加(※ 実務経験のある方向け)
✔︎『自分のスキルで本当に独立できそうか?』
✔︎『今のスキルでどれくらいの単価の案件を獲得できそうか?』
➡️ 一人ひとりの状況に合わせた相談は、是非こちらで質問していただけたらと思います(^-^)
🎁 エンジニアに関する『質問』『相談』もできます
『独立相談会』を実施中▼
公式LINEで、フリーエンジニアを目指したい方の無料相談会も実施中です😁
✔︎ 対象
エンジニアの実務経験がある方
『相談会希望』とLINEをいただけたら、フリーエンジニアを目指すための相談にも乗れます🚀
※ 公式LINE限定特典や独立相談会は、完全無料です。
こちらをタップして参加できます▼
