フリーランスエンジニアにおすすめのプログラミング言語【現役エンジニアが解説】
フリーランスエンジニアにおすすめのプログラミング言語を知りたい方に。
この記事を読まれている方は、
- フリーランスエンジニアにおすすめのプログラミング言語を知りたい
- おすすめのプログラミング言語の特徴を知りたい
- Web系のプログラミング言語のおすすめの学習方法を知りたい
おそらくこのように考えている方が多いと思います。
この記事を書いている私は、
プログラミング未経験から転職を果たした現役のWeb系エンジニアです。
エンジニア歴は3年ですが、本業とは別にフリーランスの副業で月10万円ほど、多いときで20万円ほどの収入があります。
この記事では、現役のエンジニアが、フリーランスエンジニアにおすすめのプログラミング言語を解説し、おすすめの言語の特徴やその学習方法をまとめています。
フリーランスエンジニアにおすすめのプログラミング言語
まずは、フリーランスエンジニアにおすすめのプログラミング言語を解説していきます。
フリーランスの案件の内容
まずは以下の図をご覧ください。
出所:レバレジーズ株式会社『フリーランスエンジニア市場動向レポート』
こちらはプログラミング言語別のフリーランスエンジニア向けの業務委託案件数の割合を示しているものですが、1位がJavaで全体の3割を占めており、2位がPHPで2割となっています。
その他の言語に関しては、Android JavaやSwiftといった主にスマホ向けのアプリで使われる言語が2割弱を占めており、Web系やスマホ系といった、最近のトレンドがうかがえます。
一方で、Pythonなどの現在とても注目されている言語は割合がかなり少なくなっていますが、単価は主流派の言語に比べて結構高めとなっています。
Pythonは主に機械学習系の開発で使われていますが、この分野に知識と経験のあるエンジニアの数が絶対的に少ないため、希少価値が高いということが理由の一つです。
少数派の言語で単価の高い案件を狙うか、主流派の言語で安定して案件を取りに行くかは人それぞれの好みの問題ですが、迷っているのであれば、一般的には案件数の多い言語を選ばれるのが良いと思います。
Web系の言語の案件が多い
プログラミング言語別の案件数の割合に注目すると、JavaやPHP、JavaScriptやHTML、RubyといったWeb系の言語が非常に多いことが見受けられると思います。
この理由は、00年代から特にサーバの利用が増えて来たということやWeb系でできることの幅が広くなっていることなどが挙げられます。
特に、スマホアプリやWindowsアプリなどにおいても、アプリからデータベースサーバには直接通信を行わずに、WebAPIを中継することが多いことから、非Web系のアプリにおいても結局はWeb系と絡む場合が多くなっており、それが案件の多さにつながっています。
Web系はアプリを個々の端末に事前に配る必要がなく、サーバにプログラムを設置さえすれば済むので、メンテナンス性にも優れ、大企業などはなるべくWeb系で開発をしたがる傾向にあります。
そのため、従来の非Web系言語に代わって、今後もWeb系の案件の需要はあり続けることでしょう。
PHPやRubyは在宅できる
PHPやRubyなどのWeb系の言語の案件は、副業で在宅可能な案件が多いです。
本業として仕事をする場合は、客先常駐が多めとなっていますが、在宅可能な案件があるとすれば、これらの言語が最も多くなるでしょう。
一方で首位のJavaに関しては、全体的な案件の数が多い割には在宅可能な案件の数は少ないです。
これはSIerが自分たちのオフィスで仕事を行うよりも、客先常駐で仕事をするケースの方が多いからだと思われます。そのため、あまり融通が利かないという可能性が高いです。
「PHPやRubyは在宅できる」とは言いましたが、PHPやRubyについても完全在宅で仕事ができる案件というのは本業としてはかなり少ないです。
ここでは、副業レベルで収入を得たいときにはWeb系の言語はおすすめ、という程度に捉えて頂ければと思います。
おすすめのプログラミング言語の特徴
次に、おすすめのプログラミング言語の特徴をまとめてみました。
Web系の言語
Web系の言語は、画面を作るための言語とプログラミングのための言語の2種類があります。
前者の画面を作るための言語は、HTMLという各画面の要素の配置などを定義するマークアップ言語と、CSSというHTMLで配置した要素に装飾を加えるスタイルシート言語の2つがあります。
一方、後者のプログラミング言語には、画面に動きを付けたり、サーバと通信したりするために使われるJavaScriptという言語と、サーバ側の処理を実装するPHP・Java・Ruby・Pythonなどといった言語があります。
しばしば、画面側の開発のことをフロントエンド開発、サーバ側の開発のことをバックエンド開発と呼んだりします。
フロントエンドの言語には、HTMLやCSS、JavaScriptがあり、バックエンドの言語には、PHPやJava、Ruby、Pythonなどがあります。
よくWeb系は覚える言語が多いと言われることがありますが、アプリ系の言語でも画面用の言語とプログラム用の言語は異なりますので、実際には「Web系だから多い」ということはありません。
Java
Javaはプラットフォームを選ばずに動かすことのできるプログラミング言語としておよそ30年前から使われています。
Javaでできることは多く、ここではWeb系の言語として紹介しましたが、Web系だけでなく、WindowsやLinuxで動作するアプリや、スマホで動作するスマホアプリの開発も行うことができます。
Javaは事前に中間言語に変換するコンパイルという作業が必要なコンパイル言語のため、実際に動作させる際は動きが軽快です。
この点が他のPHPやRuby、Pythonなどといったスクリプト言語と対照的なため、処理速度が重視されたり、安定性を求められたりする開発ではJavaが言語として採用されることが多いです。
静的型付けといって、プログラム上、各データに型を付けて扱わなければならないことから、初学者にとっては少し学習難易度が上がるものの、案件数は豊富で、潰しの利きやすい言語であるため、長くエンジニアをしていく方であれば、押さえておくべき言語だと思います。
PHP
PHPは主にWeb系の言語として開発に利用されています。
コンパイルが不要ですぐに動かせるスクリプト言語として、また、環境を作るのが容易なPerlの後継の言語として、およそ20年前から広く使われるようになった言語です。
Javaとは異なり、動的型付けの言語となっており、データを扱う際に型を決める必要がないので、コーディングがしやすく、初心者にもやさしい言語で、素人の人気も集めています。
現在、どこのレンタルサーバーでもPHPが動かせるので、小規模のシステム開発でも依頼が多く、一方大規模なものでも要員の集めやすさなどから、案件数の多い言語となっています。
そのため、クラウドソーシングサイトなどの案件も、Javaとは比にならないくらいに多い言語となっています。(客先常駐案件などではJavaの方が多いです。)
PHPもWeb系をやる方なら、使い方ぐらいは知っておいてもまずおかしくない言語なので、Javaに専念する方でも、対照的な言語としてPHPを学んでおくと良いと思います。
Web系のプログラミング言語のおすすめの学習方法
最後に、Web系のプログラミング言語のおすすめの学習方法をまとめています。
1. 具体的に作りたいものを決める
まずは、具体的にWeb系の開発で作りたいものを決めましょう。
Web系と言いましたが、これはどのプログラミング言語を覚える場合も共通のことだと思います。
Web系であれば、例えばマッチングサイトや通販サイトなどが一般に目標に選ばれやすいサービスだと思います。
これか、これに近いもので自分の興味のあるもの、作りたいものを決めてから、色々と勉強をしていきましょう。
作りたいものを決めずに学習してしまうと、学習の方向性が定まりませんし、プログラミング言語の構文や書き方はわかっても、プログラムが全く書けないという事態になりかねません。
必ず目標を設定し、それに向かって学習をするようにしていきましょう。
2. プログラミングの基礎を固める
作りたいものが決まっても、まずプログラミングの基礎を知らなければ、手も足も出ないと思います。
自分の作りたいものに必要となる知識を確認しながら、プログラミングの基本的な書き方(分岐処理や繰返処理など)やデータの取り扱い方法(プログラム上のデータの構造やデータベース操作の方法など)を学んでいきましょう。
もし作りたいものが決まっているのに学ぶべきものが全く見えてこない場合や独学で不安な場合には、プログラミングスクールに通うこともおすすめです。
現役エンジニアがオススメするプログラミングスクール3選【無料体験あり】
「一からきちんと学べるオススメのプログラミングスクールを知りたい。プログラミングの効率的な学び方を知りたい」←こういった疑問に答えます。本記事内容:まずはどのプログラミング言語を選ぶべきか/現役エンジニアがオススメするプログラミングスクール3選/プログラミングスクールにプラスして行うべきこと
プログラミングスクールでは、プログラミングの学習だけでなく、自分のオリジナルWebサービスの開発も支援してくれるところが多いからです。
3. コピペしながら開発をしていく
作りたいものが決まり、かつプログラミングの基礎を固められたら、いよいよ目標に向かって開発をしていきましょう。
実際の現場の仕事ではプログラムを書く前に、要件定義を行ったり、設計書を書いたりするものですが、一人でプログラミング言語を学習する場合にはこのプロセスは形式ばってやる必要はないでしょう。
それよりどんどん手を動かしてコーディングをしていった方が確実に身につきます。
コーディング中、発想が生まれて来なかったり、書き方がわからないことが多々出てくると思いますが、その際はグーグルで検索をして、出て来たサンプルコードをコピペしながら、わからない部分をカバーしていきましょう。
昔は参考書を読みながら開発をしていたかもしれませんが、今は光の速さで情報を探し出し、開発に関する情報を多くのエンジニアと共有することができる時代です。
ぜひネット上にあるサンプルコードやトラブルシューティングなどを参考にしながら、高速で開発をしてみてください。
あらかじめ決めた目標が達成できれば、その言語に関してかなりのプログラミングスキルが身につくと思います。もしそれなりの大きさの成果物がない場合は、小規模なものの積み重ねでたくさん量をこなしていきながら、プログラミング言語の習得を目指しましょう。