目的別初心者におすすめのプログラミング言語

Writing by Naoto

webkoreはフリーランスのweb制作チームで運営しています。お仕事のご依頼は、web制作やシステム開発のご相談その他のご相談からお気軽にご相談ください。

プログラミングをこれから勉強する人にとって、どの言語を勉強するかは悩めるポイントの1つになるかと思います。僕のTwitter(@naoto_k0401)にもたまに相談のDMがきます。

 

相談をされた際に僕がまず聞くのが、『何をしたいのか』です。

目的が決まれば、どのプログラミング言語を勉強するのが最適かほぼ決定します。主な目的を箇条書きで上げます。

  • フリーランスになりたい
  • 転職したい
  • webデザイナーになりたい(webサイトを作りたい)
  • フロントエンドエンジニアになりたい
  • バックエンドエンジニアになりたい(webサービスを作りたい)
  • スマホアプリエンジニアになりたい
  • 機械学習エンジニアになりたい(AI ・人工知能を作りたい)

 

この記事ではこれらの目的別にどのプログラミング言語を勉強するのがおすすめか説明します。これから勉強をしたい方はぜひ参考にしてみてください。

 

※あくまで『おすすめか』『最適か』という視点で書いているので、その言語でしかその目的が達成できないわけではありません。

 

解説に入る前に、用語の説明やこの記事におけるその用語の定義について書いておきます。

 

webサイトとwebサービス

webサイトとはHP、LP、ブログ、メディアなどのことで、webサービスはECサイトや会員制サイトのように裏で機能やシステムが動くものです。見た目が変わらない読み物的なものか、条件によってサイトの表示などが変わるものかという基準で見てもいいかもしれません。例えばHPはニュースなどの投稿を除けば誰が見てもいつも同じ見た目です。ECサイトはカートに入れたり、購入をしたり、マイページがあったり、条件や人によって表示が変わります。(完全に正しい説明ではないのですが、今はそう思ってもらった方がわかりやすいです。)

 

webデザイナー

webデザイナーというとサイトのデザインをするだけの人を指す場合もありますし、デザイン+webサイトを作る人を指す場合もあります。この記事では『デザイン+webサイトを作る人』とします。

 

コーダー

webサイトやwebサービスはデザインをして、そのデザイン通りにまず機能やシステムは抜きにサイトの見た目を作ることになります。この『見た目を作る』ときに使われる言語がhtml,cssという言語で、これらはプログラミング言語ではありません。html,cssを書くことをコーディングと呼び、それをする人をコーダーと呼びます。(マークアップエンジニアと呼ぶこともあります)

 

フロントエンド

webサイトやwebサービスの見た目を作る分野です。例えば、文字の色やレイアウトを作ったり、クリックした時にメニューを表示したり、入力したものがリアルタイムで表示されたりといった目に見える部分を作ります。上で説明したデザインやコーディングはフロントエンドです。

 

バックエンド

webサービスなどの裏で動く機能やシステムを作る分野です。例えば、会員サイトであれば、IDとパスワードを入力した際に裏でそのIDとパスワードが正しいのか判断し、正しかった場合、その人固有の情報が記載されたマイページを表示したりします。このような機能を作るのがバックエンドの人たちです。

 

細かいことは箸折ってざっくり制作のフローは下記のような形になります。

 

webサイトを作る場合

  1. デザインをする(webデザイナーの仕事)
  2. コーディングをする(webデザイナー or フロントエンドエンジニアの仕事)
  3. フロントエンドのプログラミングをする(フロントエンドエンジニアの仕事)

 

webサービスを作る場合

  1. デザインをする(webデザイナーの仕事)
  2. コーディングをする(webデザイナー or フロントエンドエンジニアの仕事)
  3. フロントエンドのプログラミングをする(フロントエンドエンジニアの仕事)
  4. バックエンドのプログラミングをする(バックエンドエンジニアの仕事)
TOPICS

フリーランスになりたい

フリーランスのなり方には2パターンあります。

  • 実務経験なし未経験からフリーランスになる
  • 就職して実務経験を積んでからフリーランスになる

 

この2つのどちらを選択するかによって、勉強すべき言語・スキルは変わります。詳しくは別記事に書いてあるので、結論だけ書くと、僕のおすすめは下記の通りです。

 

実務経験なしに未経験からフリーランスになる場合の勉強する言語・スキル

  • webデザイン
  • html,css
  • Javascript(jquary)
  • WordPress
  • PHP(少し)

 

就職して実務経験を積んでからフリーランスになる場合の勉強する言語・スキル

  • html,css
  • JavaScript
  • PHP,Ruby,Pythonのどれか
  • 学ぶ言語のフレームワーク(Laravel,Rails,Djangoのどれか)
  • データベース

 

因みに僕は学生のときに研究や授業でjava,python,Mathematica,Rを使っていましたが、webサイト制作の案件の方が実務経験がない学生にとっては取りやすいことに気づき、独学でhtml,css,JavaScript(jquery),WordPressを勉強しました。

 

なぜこの言語なのかやフリーランスの仕事の取り方と言語についてなど、詳しくは下記の記事で解説しています。

転職したい

まずは求人サイトにどの言語の求人が多いのか見てみます。

 

wantedlyの求人を言語で検索した結果

PHP:4992

Ruby:4736

Python:4311

JavaScript:5115

Java:5011

 

Greenの求人を言語で検索した結果

PHP:3283

Ruby:2104

Python:2107

JavaScript:3019

Java:5546

 

転職の場合、フロントエンドよりもバックエンドの求人の方が多いですし、収入も高くなります。言語のこだわりがない、まだ作りたいものがない、とにかくIT業界に就職したい、という人にはバックエンドの言語を勉強することをおすすめします。ただ、フロントエンドとバックエンドどちらが良いかはその人の向き不向き、好き嫌いも大きく関係してきます。どちらが転職しやすいかで見て、求人数が多いバックエンドをこの記事ではおすすめしています。

 

『いや、HPやLPのようなwebサイトが作りたいのだ!』という方は求人が少なかろうがそれをやるべきなので、後述する『webデザイナーになりたい(webサイトを作りたい)』を参考にしてください。

スタートアップに転職したい

スタートアップは比較的新しくてトレンドな言語や技術を取り入れている企業も多く、エンジニアとして成長したい人には良い環境です。

 

勉強する言語・スキル

  • PHP,Ruby,Pythonのどれか
  • 学ぶ言語のフレームワーク(Laravel,Rails,Djangoのどれか)
  • データベース

 

海外ではPythonが人気で、昨今の人工知能ブームもあり日本でもPythonは伸びてはいるのですが、現状の求人数を考えると、PHP,Rubyのどちらかになるかと思います。

また、この記事は初心者におすすめの言語を紹介しているので、伸びているけど初めて勉強する言語には向いていないGOなどには触れません。

 

Rubyは日本人のまつもとゆきひろさんにより開発されたこともあり、日本では特によく使われていますし、情報も豊富です。

 

HPやLPなどのwebサイトを作りたい人はWordPressというCMSを扱える必要があるのですが、WordPressはPHPで作られていて、高度なカスタマイズをする際はPHPのスキルが必要です。従って、webサイトを作ることにも興味がある人はPHPもおすすめです。

 

PHPかRubyかは個人的にはどちらでも大差ないと思っています。

 

また詳しくは後述しますが、人工知能に興味がある場合は最初からPythonを勉強しても良いと思います。ただし、PHP,Rubyに比べて求人数は減るので転職に苦労する可能性は高まります。

 

PHP,Ruby,Pythonを勉強する際は、それぞれフレームワークも勉強する必要があります。

  • PHP:Laravel
  • Ruby:Rails
  • Python:Django

これらがおすすめです。

フレームワークはプログラミングを効率化するために言語とセットで学んだ方が良いことと思ってもらえれば今はOKです。

 

データベースもフレームワークと同様、セットで勉強しないといけないことだと思ってください。本でもプログラミング言語+データベースの内容になっているものが多いです。

お堅い企業に転職したい

お堅い企業とは超大規模なシステムを作る企業や古くからあるシステムなどを作る企業のことを指しています。(表現が適切ではない気がしますが)

 

勉強する言語・スキル

  • Java
  • データベース

 

金融系のシステムなど超大規模なシステムはJavaが使われていることが多いので、そういった企業へ転職・就職したい場合はJavaを勉強すると良いです。

 

Javaを使っている企業はweb系では少なく、SIerやSESが多くなります。上に書いた金融系のシステムなど超大規模なシステムを作っているのもSIerです。

 

web系の企業でJavaを使っている企業は少ないので、新しい技術をどんどん使ってエンジニアとして成長したいという方にはあまりおすすめできません。

 

最近は従来Javaで開発していたものがKotlinに置き換わってきている事情もあり、今後の言語トレンドや自分の成長という面でも最初に勉強する言語としては微妙かもしれません。

 

web系企業とSIerの違いについては、下記のYouTubeがわかりやすいです。

 

SESに関しては、ブラックな事情もあるので、お気をつけください。

webデザイナーになりたい(webサイトを作りたい)

webサイトの見た目を作りたい人はwebデザイナーやコーダーを目指すことになります。

 

勉強する言語・スキル

  • webデザイン
  • html,css
  • Javascript(jquary)
  • WordPress
  • PHP(少し)

 

WordPressもwebサイトを作ることを仕事にするのであれば必須の技術と言っても良いでしょう。WordPressが出来るのとできないのでは受けれる案件の幅がかなり変わってきます。

 

WordPressは無料や有料で様々なテーマ(サイトのテンプレートデザイン)があり、プログラミングの知識がない人でもサイトを制作・運営することができます。ただ、ここでの『WordPressが出来る』とは、そういった既存のテーマではなく、1からコードを書いてオリジナルのデザインでサイトを作れることを指しています。

 

PHP(少し)も含めた理由はWordPressがPHPで作られていて、オリジナルのデザインでサイトを作る際に少しはPHPをわからないといけないからです。

 

こちら少し反響があった僕のツイートです。

 

補足すると、1に進むとwebサイトだけではなく、webサービスも作れるようになります。2に進むとコーダーからwebデザイナーになり、1人でwebサイトを作れるので効率が良いです。3は後述するフロントエンドエンジニアです。4はwebマーケターで、webマーケもできてwebサイトも作れるというのは単価を上げるという意味で良いです。

 

webデザインを含むフロントを主戦場にしたい方は、この記事も是非!!

フロントエンドエンジニアになりたい

フロントエンドエンジニアはwebデザイナーやコーダーと混同しがちですが、超簡単に説明すると高度なJavascriptを扱う点が違います。

 

勉強する言語・スキル

  • html,css
  • Javascript(React,Vue,Angular)

 

React,Vue,AngularはJavascriptのフレームワークで、フロントエンドエンジニアの人たちはこのどれかを扱える必要があります。

人気や需要を考えると、Reactが良いのですが、Vueの方が簡単なので、まずVueから初めてある程度出来るようになったらReactも勉強するといった流れで良いと思います。

 

今後のトレンドとしてTypeScriptという言語もかけると良いのですが、これも初心者向けではないので、ここでは触れません。いずれ勉強した方が良いものとして頭に入れておけばOKです。

 

フリーランスを目指すのであれば、html,css,Javascript(React,Vue,Angular)に加えて、WordPressも扱えると仕事の幅は広がります。

バックエンドエンジニアになりたい(webサービスを作りたい)

html,css,JavaScript,WordPressはサイトの見た目を作る言語で、サイトの機能やシステムは作ることができません。webサービスを作りたい場合はバックエンドの言語をまずは1つ勉強する必要があります。

 

勉強する言語・スキル

  • html,css
  • JavaScript
  • PHP,Ruby,Pythonのどれか
  • 学ぶ言語のフレームワーク(Laravel,Rails,Djangoのどれか)
  • データベース

 

通常webサービスを作る際は、フロントエンドとバックエンドで分担します。1人で全て作れる人もいますが、規模がそこそこ大きくなれば複数人で開発することになります。従って、1人で全て出来るようになることを目指さないのであれば、html,cssはそこまで書けなくても大丈夫です。JavaScriptはある程度書けた方が良いです。

 

1人で全てできればベストですが、それはなかなか大変ですし、どちらかを極めれば十分やっていけます。

スマホアプリエンジニアになりたい

to C向けのサービスではスマホアプリを制作することも多く、スマホアプリ制作は今後も需要が高まりそうな分野の1つです。

 

勉強する言語・スキル

  • swiftIOSアプリの場合)
  • Java or Kotlin(アンドロイドアプリの場合)
  • データベース

スマホアプリはIOSアプリを作りたいのか、アンドロイドアプリを作りたいのかで学ぶべき言語は変わります。まずはどちらか1つを勉強しましょう。

 

php,ruby,pythonのどれかを勉強してからスマホアプリを作るための勉強をする人もいます。求人や案件数を考えると、その順番でも良いと思いますが、スマホアプリのみに集中しても良いです。

 

アンドロイドアプリの場合JavaかKotlinを選択することになるのですが、今後のトレンドとしてはKotlinかなと思います。Kotlinは2017年にGoogleのアンドロイド公式開発言語に含まれたこともあり人気になってきています。

 

スマホアプリは現状作れる人が多くなく、単価も高い傾向にあります。

機械学習エンジニアになりたい(AI ・人工知能を作りたい)

最近はAIブームもあり、機械学習エンジニアの人気も高まっています。

 

勉強する言語・スキル

  • Python
  • 機械学習系のライブラリ
  • 数学や機械学習
  • データベース

 

AI・機械学習はPython一択です。

データサイエンティストのようなガチな分析屋になるには、理論も含め高度な数学や機械学習の知識が必要になります。これは大学や大学院で勉強していた人以外は不可能だと個人的には思っています。採用の際もPythonのスキルよりも学歴(数学ができるか)を重視しているように思います。

僕の知り合いが転職でデータサイエンティストになっていますが、超有名大学の化学系の院卒です。(採用時プログラミングスキルはほぼ0の20代)

 

例えば、webサービスの中でレコメンドのシステムを導入する際に機械学習系のライブラリを使って実装することがあります。そういった場面では、Pythonと機械学習系のライブラリが扱えて、数学や機械学習が少し分かっていれば大丈夫かなと思います。(企業やサービスによりますが)

ライブラリとは使用頻度の高い機能や関数をまとめたファイルのことです。例えば、機械学習のアルゴリズムを簡単に実装できるもの、データの加工が簡単にできるものなどがあります。

 

機械学習エンジニアに関してはどのレベルを求められているかは企業によって違うことが多いので、勉強する前にwantedlyなどで質問したり、企業に行ってみたりした方が良いかもしれません。

プログラミング言語はやりたいことで選ぶのがベスト

長々と書きましたが、出来ればプログラミング言語はやりたいことで選ぶべきです。

 

例えば、転職しやすいのはバックエンドかもしれませんが、やりたいことがデザインであれば、その勉強をした方が続くと思います。

 

ただでさえ挫折率が高いのに、転職のしやすさやお金が目的になると、さらに挫折率は高くなってしまいます。人生100年時代なんて言われていますし、好きなことを仕事にした方が幸せではないでしょうか?

 

効率よく勉強したければ、スクールに通うのもありだと思います。

現役エンジニア目線でのおすすめのスクールに関して記事にしてるので、興味があればそちらもご覧ください。

 

↓フリーランス志望の方におすすめのスクール

 

↓転職がしたい、かつ無料のスクールに通いたい人におすすめのスクール

この記事を書いた人

Naoto

理系院卒→フリーランス(4年目)。インターネットと読書が好き。就職経験なし、野蛮な生き方してきました。サーバーサイド以外は何でもやります。