【Web系特化】プログラミング初心者におすすめの言語と学ぶ順番をご紹介!
URLコピー
okuda
URLコピー
「どの言語を学べは稼げるようになるの?」
「言語が多すぎて正直選べない」
「時間を無駄にせずに効率良くプログラミングをしたい」
プログラミング完全初心者であれば、それぞれの言語の役割や案件の数などがわからないため、ついつい言語選びは慎重になってしまいますよね。
また、学習に時間もかかるため、「間違った選択をしたくない」「後悔したくない」というのが本音ではないでしょうか?
この記事では、私自身の経験、各言語のわかりやすさ、稼ぎやすさといったポイントを踏まえて、プログラミング初心者におすすめの言語と学ぶ順番を紹介しています。
- プログラミングの言語選びで悩んでいる人
- 稼げる言語を知りたい人
- 効率良く学びたい人
- 他の言語を学ぼうと思っている人
という方は、ぜひ最後まで読み進めてください。
【この記事を読むことで得られること】
- 言語選びのポイントがわかる
- 学ぶべきWeb系言語の優先順位がわかる
- Web系の各言語の役割がわかる
目次
初心者が学ぶべきプログラミング言語のポイント
プログラミング言語を選ぶ上で大切なポイントを5つ紹介していきます。
これらのポイントをしっかり押さえ、自分自身の判断基準を持つようにしてください。
①何を作りたいか
言語を選ぶ上で大事なのは、プログラミングを学んだ先で自分自身は何を作りたいのかということです。
Webページなのか、アプリなのか、はたまたAIなのか。
作りたいものや作る目的が違えば、学ぶべき言語も大きく変わってきます。
②わかりやすさ
プログラミングは、言語によって必要な知識が異なってきます。
一般的にWeb系言語と言われるHTMLやCSS、Javascriptであれば特別な英語の知識や数学の知識などは必要ありません。
(多少はいりますが、中高の数学レベルです)
しかし、AIや機械学習、情報解析といった分野では、確率学や統計学、微分積分といった高度な数学知識をプログラムとして組み込んでいきます。
こういったわかりやすさを基準にして言語を選ぶのも大切です。
③案件の多さ
プログラミングを学ぶ上で最も重要なポイントです。
案件の多さは仕事のやりやすさを意味しています。
逆に案件が少ない言語であれば、かなりの上級スキルが必要なのと、人脈が必要になってくるでしょう。
ニッチな層は、大手の会社でしか扱っていなかったりするので初心者には不向きとも言えます。
④応用しやすさ
プログラミングの言語は、様々な言語から派生した言語(jQueryなど)や、言語の用途が限定的なもの(SQLなど)、1つの言語でありながら様々な場面で使われる言語(Javascript、Javaなど)があります。
言語から派生した言語は、基本的に親元の言語を使いやすくしたものが一般的で、Ruby On RailsやJQueryが有名です。
Ruby On Railsは、Rubyと言われる言語をフレームワークにして、簡単に開発ができるようにしたものです。jQueryは、Javascriptを簡単に操作できるようにしたものです。
こういった言語は効率良く、かつ簡単に学ぶことができるのがメリットではありますが、フレームワーク化されているため、応用が効きにくくなっているというデメリットもあります。
近年では、トップエンジニアの知恵と努力の結晶で、今まで使われていなかった場面で使われ始めている言語も沢山あります。
1つの言語でWebサービス・アプリ・AIなど、様々な場面に応用が効く言語であれば、途中の進路変更でも対応することができます。
⑤将来性(トレンド)の有無
新しい言語の用途や言語が開発される中で、残念ながら時代遅れになっていく言語も存在しています。
かといって、新しい言語を学べばいいのかと言われるとそうとも言えません。
コンビニでも新作のお菓子や飲み物は沢山発売されていますが、そのうちのいくつが1年後に残っているでしょうか?確実にほとんどのものが残っていないですよね。
プログラミングにおいても、新しいものは未知数な部分が多く、また文献も少ないので初心者には向きません。
言語選びでの将来性の有無というのは、言語そのものの将来性ではなく、分野に関しての将来性とも言えます。
代表的なのがWebやAIといった分野です。
それぞれの将来性が期待される分野において、昔から長く使われてきている言語が一番根強いとも言えます。コンビニでいうところの、昔から棚に並んでいるラインナップです。
プログラミング言語の人気ランキング
プログラミングを学ぶ上でのポイントを押さえた上で、続いては人気の言語ランキングも見ていきましょう。
今回は、オランダの「TIOBE Software」が発信しているプログラミング言語の人気ランキング「TIOBE Index」の2021年5月版を参考に、上位10位をお伝えします。
ランキングを見る上での注意点としては、ランキング上位だからといって初心者にとって学びやすいかというとそうではありません。
そして、言語が使われているジャンルもバラバラなのでご自身が学びたい分野の言語というわけでもありません。
あくまでも、一通りプログラミングを学んできたエンジニアの中で人気な言語は何なのかという観点・参考資料として見てください。
参照元サイト:TIOBE Index for May 2021
1位:C言語
大学の講義でプログラミングを受講したことがある人は、一度は勉強したことがあるのではないでしょうか?
C言語は、プログラミングの中でも知名度が高い言語ですが、その知名度とは裏腹に、非常に初心者には学びにくい言語でも有名です。
C言語では、様々なアプリなどを制御するアプリを作る時に使われます。基本的にはロボットやセキュリティなどのシステムに使われるものです。
2位:Python
データ処理や機械学習を得意とする言語です。
Pythonは、わかりやすい構文を使うため、初心者でも学習しやすい言語です。
AIなどにも使われてきているので、将来的には広く活躍する言語とも言えます。
3位:Java
Javaは、OSに依存しないでどんな環境でもソフトを動かすことができる言語です。
様々な場面で使用することができるので、プログラミングの中でもトップクラスのマルチ言語でもあります。
それゆえ、非常に高度な言語なので、学ぶべきことが多く、初心者には扱いにくい言語でもあります。
4位:C++
C言語の機能を拡張させた言語です。
Webアプリケーションや人工知能、ロボット技術の開発などで使われています。
こちらも初心者には学びにくい言語です。
5位:C#
マイクロソフト社が開発した、Windows向けのアプリケーションを開発するのに適した言語です。
C言語やC++を学習した人であれば、すんなりと理解できる言語です。
6位:Visual Basic
Basicという言語の派生で生まれた言語で、マイクロソフト社が提供しているVisual Studioに組み込まれている言語です。
主にアプリケーションの開発に使われます。
簡単でわかりやすい言語と言われていますが、初心者が急いで学ぶべき言語かと言われるとそうでもありません。
使用用途も限定的でもあるので、それならば広く使われているアプリケーション開発言語を学ぶべきです。
7位:Javascript
Webページにスライドショーなどの動きをつけるときに使われる言語です。
現在では、Webページだけでなく、サーバーサイドでもつかえるようになってきており、その使用用途は多角化してきています。
Web制作に関わるのであれば押さえておきたい言語の1つです。
8位:Assembly language
コンピュータのハードウェア的な動作を記述する言語です。
Assembly languageを理解すると、CPUの機能やOSの役割など、コンピュータに何ができるのかがわかるようになります。
9位:PHP
サーバーサイドで、動く言語でブラウザからのリクエストに対して、レスポンスを返す処理をプログラムします。
このやりとりがあるおかげで、Webでは様々なページにアクセスすることができます。
PHPを使えることで、WordPressの案件などもこなすことができるようになるので、初心者にもおすすめの言語です。
10位:SQL
SQL(シーケル)は、データベース言語と言われるもので、ユーザーが指定したリクエストに対して、そのリクエスト通りのデータをレスポンスするものです。
データのやりとりを担う言語であり、それ以上の機能はなく、とてもシンプルな構造です。
また、SQLは国際標準化されているため、一度覚えてしまえば、様々なデータベースで利用できます。
【要注意】プログラミング言語選びの落とし穴
プログラミング言語のランキングを扱っているサイトは沢山ありますが、意外な落とし穴もあります。
それは、「言語間の関連性を無視している」という点です
プログラミングは、沢山の言語が双方に関わり合って成り立っています。
そのため、1つの言語を学ぶにしても、関連する他の言語の知識も必然的に必要になってくるのです。関連する言語が多いほど、周りにある言語の知識も必要になってきます。
自分が学びたい目的のものに対して、最も基礎的な知識を学べる言語からスタートしないと、「いざ学んでみたらわからないことだらけで挫折しました…」ということになってしまいます。
大きな例でいうと、HTML/CSSの存在です。
このHTML/CSSは、厳密に言うとマークアップ言語と言われるもので、プログラミング言語とは違うものになっています。
ですが、Web系言語の基礎になっているものなので、Web系の言語を学ぶのであれば必須(もちろんアプリ等の開発でも必須)です。
言語の使い方によっては、HTML/CSSの知識がないと役に立たなくなります。
例えるなら、DVDを買ったけれども、テレビとDVDプレイヤーがなければ、DVDは見れないので役に立たないということです。この場合、先に用意するのはDVDプレイヤーとテレビであって、DVDはあとのはずです。
というわけで、ランキングを見て学ぶ言語を決める場合は、関連する言語の関わりもチェックし、その言語を動かすのに必要な知識が何かを調べるようにしましょう。
プログラミング初心者が学ぶべき言語はズバリこれだ!
プログラミング完全初心者が学ぶべき言語は、「Web系の言語」一択です。
なぜ、Web系の言語なのか。その理由は以下の通りです。
- 特別な英語の知識や数学の知識がいらない
- 独学でもスキルが身につく
- 案件の数も多く、稼ぎやすい
- 日本語の文献が多く、教材やスクールが充実している
- 世界的に伸びている分野であり、日本はまだまだ未発達
中には、「いや、俺はニッチな層で攻めてやる!」という方もいるかもしれませんが、あまりおすすめはできません。なんならやめたほうがいいです。
ニッチな層になるほど、学ぶ環境がなく、プログラミングの基礎的な知識がないとその言語のスキルを身につけるのが難しいからです。
ニッチな層は、トップエンジニアが持ち前のスキルと経験で開拓をしていく市場なので、まずはそれができるくらいの経験とスキルを身につけましょう。
トップエンジニアのスタート地点も、いわゆる王道と言われる言語の勉強からスタートしています。
Web系言語はこの順番で学ぼう!
私自身がプログラミングを学んで感じたWeb系言語の学ぶ順番を考えてみました。
- HTML / CSS / Sass(SCSS)
- JavaScript / JQuery
- Node.js / PHP
- Ruby / Ruby on Rails
この順番は、冒頭でもお伝えした言語を選ぶポイントも押さえて決めたので、完全初心者がWeb系言語を制覇する順番です。
①と②がブラウザ上で使われる言語(フロントエンド)、③がサーバーで使われる言語(バックエンド)、④はサーバーサイドでも使うことができますが、Webサイト・Webアプリ開発がメインの言語です。
フロントエンドとは、HTMLやCSSと組み合わせてブラウザ上(PCの画面)にテキストを表示したり、入力された情報をサーバーに送ったりするなどのサーバーサイドに受け渡しを行う部分のことです。
逆にバックエンドとは、インターネット上のデータが保存されているコンピューターで行われる処理で、フロントエンドから送られてきたリクエストに対してレスポンスを返す部分です。
簡単にいうと、普段目にしているWebページなどの見える部分がフロントエンド、ネットの中の見えない部分がサーバーサイドというイメージです。
プログラミング言語は、1つで独立しているのではなく、それぞれがつながっています。そのため、その周辺にある基礎的な知識を理解していないと、その言語自体の役割も理解できないということが起きます。
なので、今回の学ぶ言語の順で1番ポイントに置いたのは、「言語間のつながりで最も基礎的なことからプログラミングを学ぶ」ということです。
イメージとしては、現在見ている画面上(ブラウザ)で行われていることから段階を追って、ネットの内部(サーバーサイド)に入っていくイメージです。
こうすることで、HTMLを学べばPHPも理解しやすくなり、PHPを学べばRubyも理解しやすくなるといった具合に言語がつながっていくので、理解も深まります。
補足ですが、これまではWeb系のなかでもフロントエンドとバックエンド(サーバーサイド)の2つに別れていましたが、プログラミング言語の発達でフロントエンドで使われていた言語でもサーバーサイドを動かすことができるようになりました。
そのため、フロントエンドでありながらサーバーサイドを動かせるエンジニアが旬なエンジニアとも言えます。
今回は、Webに携わる上でWebの川上から川下までの言語でおすすめのものをピックアップしています。
ご自身がどのレベルまでスキルアップをしていきたいのかで、学ぶ言語の範囲を決めるといいでしょう。
もちろん、川上から川下までできれば、ボリュームの大きい案件を取れるため、1つの案件の単価も高くすることができます。
①HTML / CSS / Sass(SCSS)
HTML / CSS
まず、Web系言語の基礎となるのが「HTML / CSS」です。
少し話がややこしいですが、これらの言語はマークアップ言語と言われるもので、プログラミング言語ではありませんが、Web系言語にはマストとなる言語です。
HTMLは、Webページの骨組みを作るのと、テキスト入力を行います。CSSは、テキストの色付けやフォントサイズを変えたり、テキストの位置を変更したりなどWebページのレイアウトを作る言語です。
いわば、普段目にするWebサイトはHTML / CSSから作られています。
Sass(SCSS)
Sass(SCSS)は、CSSを効率良く記述できるようにしたものです。
Web系の言語であれば、ゆくゆくはJavascriptを使ってWebページに動きをつけていきます。
通常のCSSでも問題はありませんが、管理のしやすさやCSSの優先順位等の観点から、Sassを使えたほうが効率良く仕事をこなせるようになるでしょう。
Sassでは、変数や関数も使えるので、同じ記述を何回も書く必要がなく、また繰り返しの処理などもできるようになっています。
Sassには、関数や変数といった定義が出てきますが、初心者だとわかりにくいかと思います。そのため、この段階では関数や変数を覚えるというよりは、Sassの記述の仕方をしっかり学んでおきましょう!
CSSの書き方を少し変えたものなので、初期段階から学んで使えるようにしておくのがベストです。
関数や変数に関しては、Javascriptの勉強段階で出てくるので、その時に一緒に理解するといいでしょう。
②JavaScript / JQuery
JavaScript
JavaSriptは、Webページにスライドショーなどの動きをつけるために必要な言語です。
HTML / CSSとは違い、プログラムを組んで動かすことになるので、難易度としてはHTML / CSSよりも難しくなります。
JavaScriptを学び始めると、「これ本当にできるようになるの?」と不安ばかりになりますが、私から一言いうと、「必ずできるようになります」です。
なぜ難しく、不安に感じるかというと、単純に基礎理論を理解できていないだけです。練習の回数を重ねることで考え方を理解し、使えるようになってきます。
特にJavaScriptは、Webサイトに動きをつける以外にも、アプリ・ECサイト・ゲーム開発などにも使われています。
使えるようになることでのメリットはかなり大きいので、JavaScriptが使えるか使えないかで仕事のクオリティも変わってきます。
jQuery
もし、JavaScriptに不安があるのであれば、jQueryを学んでおくことをおすすめします。
jQueryは、JavaScriptをより簡単に使えるようにしたもので、少ない記述でWebサイトの動きを作ることができます。JavaScriptを使ったWebサイトの動きのフレームワークを集めたものがjQueryです。
そのため、基本的なWebページの動きであれば、jQueryを使ったほうが簡単、かつ素早く仕事を終わらせられます。必要に応じて両方使えるようにしておくのがベストでしょう。
jQueryを使うにしても、JavaScriptの基礎知識があってこそなので、学習するのであれば「JavaScript→jQuery」の順番にしてください。
③Node.js / PHP
ここからは、サーバーサイド(バックエンド)で動く言語になります。
サーバーサイドで動く言語は沢山あり、その代表的な言語が「Node.js」と「PHP」です。
「どちらから先に学べはいいのか?」という疑問に対してですが、どちらから学んでもらっても大丈夫です。
基本的にどちらの言語でもサーバーサイドを動かすことができるので、問題はありません。
もし、プログラミングとも関係のある、SEO対策でワードプレスを使えるようにしたいのであればPHPを先に学習するほうがいいでしょう。
Node.js
Node.jsは、サーバーサイドで動くJavascriptのことですが、正確にいうと、サーバーサイドでJavascriptを動かすプラットフォームをつくる言語です。
もともとJavascriptは、サーバーとのやりとりをせずにブラウザ上で動かす言語であるため、サーバーサイドでは動かすことができませんでした。
そして、PCの性能の発達や高性能Webサービスの増加に伴って、「1つの言語でブラウザからサーバーサイドまでを作ることができたら効率的」という考え方から作られたのがNode.jsです。
Node.jsを学ぶメリットとしては、JavaScriptでサーバーサイドを操作できることに加えて、処理速度の向上から、リアルタイムな反応が求められるWeb(LINEやTwitterがその代表例)で活躍できることです。
PHP
PHPとは、動的なWebページを作るために必要なサーバーサイドの言語です。
動的なWebページとは、ページにアクセスしたタイミングや状況によってページの表示内容が変わるページです。
主にショッピングサイトなどでよく見かけるリアルタイムでの購買情報の発信や、ブログで最新の記事を投稿するたびにブログのトップページに最新の記事が表示されるといったページのことです。
この動的なページと対になるのが静的ページです。静的ページは、HTMLだけで記述されたページのことで、誰がいつ見ても同じページであるページのことです。
実際のWebページは、HTMLにPHPを組み込んで、リアルタイムで動きのあるページを作っているので、HTML / CSSを学んでからPHPを学ぶほうがいいでしょう。
Webサイトを構築する上では、ユーザーが入力した情報を元に表示画面を変える必要性があるため、Web開発ではマストとなる言語でもあります。
また、PHPで開発されたアプリケーションで有名なものとして、WordPressの存在があります。
PHPが使えると、WordPressの機能も編集できるため、SEO対策で使われるWordPress関連の案件もこなすことができるようになります。
SEO対策とは、Googleの検索エンジンに対して検索結果を上位にするための対策のことです。Googleの検索上位にふさわしいサイトの基準を満たすようにサイトを構築していき、そのページから集客を図る手法のことです。
SEO対策に関しては、以下の記事で詳しくまとめてるので、参考にしてください。
【SEO対策って何するの?】基本手順から具体的なやり方まで18個のノウハウをご紹介!
Web系言語とSEO対策は切ってもきれない関係性にあるので、PHPの学習からSEO対策の知識もあるといいでしょう。
④Ruby / Ruby on Rails
Ruby
Rubyは、日本人のまつもとゆきひろ氏によって開発されたプログラミング言語で、WebサイトやWebアプリを効率よく開発することができます。
比較的新しい言語でありながらも、世界中から人気で、今なお開発が進んでいる言語です。
Rubyが使われている実例は意外と身近にあり、クックパッドや食べログなどがRubyで作られています。
またRubyは、「Enjoy for Programing」を掲げており、エンジニアにとって開発しやすいプログラムであることも人気の1つです。
よく初心者が最初に学ぶ言語として紹介されますが、基礎知識としてHTMLとCSSの知識は必須となるので、Rubyの勉強はHTML / CSSを勉強してからにしたほうがいいです。
Ruby on Rails
Rubyで開発をする上で、さらに効率良く開発ができるように、RubyをフレームワークにしたものがRuby on Railsです。
Ruby on Railsのおかげで、Webアプリの開発は驚くほど開発工程を短縮することが可能になりました。
ただ、注意しておいてほしいことは、Ruby on Railsはフレームワークであって、これ単体では役に立たないということです。実際の現場ではRubyやHTMLと組み合わせてアプリなどを作っていきます。
そのため、RubyやHTMLの知識は必要不可欠です。
プログラミング言語の正しい学び方は?
「Web系言語の学ぶ順番はわかったけれども、実際にそれらの言語を学んでいく上での勉強はどうしていったらいいの?」と疑問を感じるかもしれないので、学ぶ順番だけではなく、勉強の仕方も触れておきましょう。
まず大前提として、「なぜこの言語を学ぶのか?」という目的を明確にしてください。
プログラミング学習では、暗記するのではなく、「なぜ?なに?どうして?」という論理思考が非常に重要です。
そうすることで、次はこの処理が必要だと頭の中でわかってきます。
プログラミング学習自体の具体的なやり方は、以下の記事で詳細にまとめています。ぜひ参考にしてください。
【完全初心者向け】プログラミングの勉強を始める際のガイドライン
余力があれば学びたい言語や関連知識
仕事の幅を広めるという意味合でも、余裕があれば学んでおきたい言語や関連知識を紹介していきます。
SEO対策・SEO内部対策
プログラミングとは切っても切れない関係にあるのがSEO対策です。
特に、PHPを使うことができればWordPressを改良することもできるので、WordPressを使用する案件をこなすこともできるようになります。
また、SEO対策においてプログラムの段階でもその対策をすることができるため、SEOの内部対策は押さえておくといいでしょう。
SEO対策をすることで、自身のメディア運営スキルも身につくので、SEO系の案件を獲得したり、またスクールを開きたいといったビジネス展開だったりも可能になります。
他にも、アフィリエイト収入を作れたりもするので、Web制作の観点から学んでおいて損はないでしょう。
SEO対策の具体的な内容や方法は、こちらの記事を参考にしてください。
【SEO対策って何するの?】基本手順から具体的なやり方まで18個のノウハウをご紹介!
React.js
React.jsは、Facebookが開発したJavascriptのフレームワークで、UI(ユーザーインターフェース)というユーザーとコンピューターが情報をやりとりするための操作画面や操作方法を作りやすくしたものです。
フロントエンドのWeb言語を学ぶ上では、最新のトレンドとなる言語です。
操作画面や操作方法というのは、Webアプリ画面のボタンやメニューボタン、プロフィールの入力フォームなどのユーザーが操作する部分のことです。
従来の考え方では、ブラウザにページを表示するのに、「ブラウザがリクエストをサーバーに送る→サーバーが処理してレスポンスを返す→ブラウザがそれを受け取って表示する」という流れが一般的でした。
しかし、この考えを覆したのがReactです。
Reactは、SPA(Single Page Application)という単一のWebページから構成される、ブラウザ上で動くサーバーという考え方から、その処理が大幅に改善されました。
かなりわかりにくいと思うので、メールとLINEの例だとその違いがわかりやすいかと思います。
メールが従来のブラウザとサーバーのやりとりで、LINEがReact.js(SPA)です。
メールは、基本的に送信ボタンを押すことで送信ボックスにメールが入り、そこで送信をかけるとサーバーにリクエストが飛び、メールが送信されます。また、受け取り側は、受信ボタンを押すことでメールを受信したりするといったやりとりの間にサーバーとの通信が発生します。
「この通信を手っ取り早く済ませられないか?」と考えられたのがSPAの考え方です。
メールと対になるLINEでは、メールの時のような煩わしいやりとりがなくなり、リアルタイムでトーク画面が更新されていきます。わざわざメッセージを受信するにも、受信ボタンを押す必要性がなくなったことから、円滑なコミュニケーションが可能となりました。
React.jsの誕生で、今まで時間がかかっていた処理が円滑に進められるようになり、ユーザーの利便性が向上しました。
最新のトレンド言語の中でも重宝されるもので、SPAも今後増えていく流れでもあるので、これからの時代にはマストな言語でしょう。
Python
Pythonは、データ処理や機械学習に使用される言語です。
Webのバックエンドとしてサーバーサイドで使うこともできる言語なので、その柔軟性から覚えておいて損はしません。
ただしデメリットとして、Webサービスの開発としてPythonはメジャーではないので、Web開発の案件は少ないことが挙げられます。
Pythonは、初心者でもわかりやすい言語でもあるので、一通りの言語を学んだ後から学習すると、より効率的に理解できます。
AIの注目も高まってきている世の中で、そういった技術にも使われる言語であるので将来性も抜群にあります。
Go
Goとは、Googleが開発したプログラミング言語の1つで、シンプルな構文で軽量な動作をするソフトウェアの開発を簡単にできるのが特徴的な言語です。
はてなブログやメルカリなどのサービスの一部で使用されていたりします。
比較的新しい言語でありながらも、その学習のしやすさから、人気が上昇している言語です。
まとめ
プログラミングの言語は沢山あり、また、その1つ1つの使われる場面が様々あることから、初心者にとって最初の言語選びは非常に難しいです。
今回紹介した例は、私自身がプログラミングを学んできて感じたことや、こうすればよかったといった意見を詰め込んだものです。
Web制作に関わる上で必要な基礎の基礎から学べるようにも配慮しているため、Web制作でフロントエンドやバックエンドをテーマに仕事をしたい人にとっては必ず学んでほしい言語集でもあります。
何はともあれ、考えているよりも手を動かして学んでいくことが一番の近道でもあります。
これから一緒にプログラミングを学んでいきましょう!!
URLコピー
okuda
URLコピー