プログラミングを学習したいけど、どの言語を学べばいいかわからない....。
そんな悩みを抱えている人は多いですよね。
しかし、プログラミングは暗号を連ねているようなものではないので、基礎を理解してしまえば容易に習得することができます。
今回は、プログラミング初心者におすすめの言語を10選をご紹介します。
2020年、小学校でプログラミング教育が必修化されたと同時に、今後社会活動においてIT技術を使用することは必須になりますので、そのことも念頭に入れながら、ぜひ読み進めて頂けると幸いです。
プログラミング学習を始める前にするべき3つのこと
初めて何かを学習する際に、前提知識などは必須ですね。
小学校で漢字を習う前にひらがなやカタカナを勉強したのと同じで、プログラミングにも最低限知っておく・やっておくべきことがあります。
すでにこの条件をクリアしている人もいると思いますが、もう一度目を通すとプログラミング学習の理解がより深まるかもしれませんので試しにやってみることをおすすめします。
では具体的にどのようなことをすればいいのかみてみましょう。
基本的なPCの操作
当たり前のことですが、再確認のためにご紹介します。
PCを長く使用している方は基本的に問題ないと思いますが、PCの操作がおぼつかない方は慣れておきましょう。
ファイル階層構造、拡張子、基本的なショートカットキーなどを知っていれば大丈夫でしょう。
もし「拡張子?」といった状態でも書店でPCの本を購入する必要はありません。
ネットサーフィンでも動画視聴でも、PCを使用していけば自然と身についてきます。
英語のネイティブと同じようなものです。
タイピングなどに関しては遅くても特に問題ありません。
早いに越したことはありませんが、ブラインドタッチなどの技術までは必要ありません。
タイピングが遅い方も、学習していくうちに慣れていきますの継続することが大切です。
基本的な数学
数学と聞いてかなり敷居が上がってしまったと思うかもしれませんが、そこまで高度な数学は使用しません。
高校1年生の時に学んだ数学Aの「集合」をよく使います。
使うと言っても、「公式を使う」というよりも、「考え方を使う」ということですので、数学Aの教科書を読みあさらなくても大丈夫です。
また、プログラミングには「数学的思考」が必要不可欠です。
数学では問題が与えられ、問題文から解に必要な情報を抽出し、式を組み、それを処理して解を導くように、プログラミングでも、問題解決または期待する出力のための処理を自分で組みます。
これがよくいわれる「アルゴリズム」です。
このようにプログラミングには数学と通ずるものがあるので、数学の知識を持っておいたほうがより理解しやすくなります。
わからない事を自分で調べる習慣
少し堅く言うならば「自己解決能力」でしょうか。
プログラミング学習において今まで自分になかった新しい概念に出くわすことが多くありますので、個人差はありますが、つまずく瞬間も多々あるでしょう。
そんな時に、身近に相談できる人などがいれば安心ですが、そうでなければ、自力でその問題を解決するしかありません。
自発的に行動し、問題を解決することが大切ですので、参考書でも、Googleでも、質問サイトに投稿するなど行動していきましょう。
人に質問してすぐ解決というのも、一概に悪いとまでは言いませんが、自分である程度問題を考察して自己解決させた方が自分にとって成長します。
調査結果からわかるプログラミング言語の現状
では、本格的にプログラミング言語を見ていきましょう。
ここでは世界を対象にしたプログラミング言語に関する調査を挙げていきます。
プログラミング言語にもトレンドがあり、年によって順番は前後してしまいますが基本的には上位は固定になります。
自分が今後どのような言語を学習していけば良いか、とても大きい指標になるかと思います。
最も使用されているプログラミング言語 JavaScript
エンジニア向けQAサイトである「Stack Overflow」が実施した調査、「Developer Survey Results 2019」による結果です。
JavaScriptは主にフロントエンドで使用される言語ですが、最近ではサーバーサイドでも使用されることが多くなりました。
また、特別な環境構築をしなくてもテキストエディタとブラウザさえあれば動作する言語なので初心者にも人気があります。
参照:https://insights.stackoverflow.com/survey/2019
最も学びやすいプログラミング言語 Rust
上記と同じ、「Developer Survey Results 2019」による結果です。
Rustは2006年に開発が始まった新しい言語で、C/C++の代替を目指しています。
環境構築も公式サイトのソフトを起動させるだけです。
また、公式のチュートリアルが日本語に翻訳されています。
大きな特徴としては安全性に優れていることが挙げられ、安全性が求められる大規模システムに使用されます。
もちろん、アプリ開発にも使用することができます。
最も求人の多いプログラミング言語 Java
「レバテックキャリア」による調査の結果ですが、第一位はJavaで、第二位がPHP、それ以降Ruby、C#、JavaScriptと続きます。
先ほど紹介したJavaScriptは5位という結果です。
ちなみに、一位のJavaと5位のJavaScriptは全くの別物です。
Javaはコンピュータの環境に依存することがなく、どのプラットフォームでも動作するのが特徴になります。
主にサーバーサイドで動作させることが多いですが、アプリ開発においても多く採用されています。
参照:https://career.levtech.jp/guide/knowhow/article/563/
最も給料の高いプログラミング言語 Go
BIZREACHによる調査の結果によると、年収中央値は600万円、最大提示年収は1600万円です。
ちなみにJavaは上位10位に入っていませんでした。
Goは、Google社が2009年に開発したオープンソース型のプログラミング言語です。
特徴としては軽量、高速、シンプルなどが挙げられます。
主にサーバーサイドで使用され、メルカリなどがGo言語をシステムに採用しています。
参照:https://www.bizreach.co.jp/pressroom/pressrelease/2018/0807.html
初心者がプログラミング言語を選ぶ際の3つのポイント
前述でいろいろと紹介しましたが、求人が多いからJava!給料が高いからGo!などと、単純な理由でプログラミング言語を選んではいけません。
上記は、あくまでも参考です。
自分に合っていない言語を選び挫折、ということを避けるために、一番最初に学習する言語は慎重に選んでいきましょう。
きちんと自分にあったプログラミング言語を見極めることが一番大切です。
作りたいものを明確にする
そもそも自分がどのようなものを作りたいのかによってある程度プログラミング言語は絞れてきます。
例えばWebアプリケーションを作りたいのであればPHP、Python、Rubyなどに絞られてきます。
ゲームなどはC系、iOSアプリケーションならSwift、AndoroidアプリケーションならJavaになります。
今注目されているAIなどには、Pythonが多用されています。
このように、おおまかなくくりだけでもかなり言語を絞ることができます。
それぞれのプログラミング言語は基本的な考え方は同じですが、根本的に異なるところも多くあります。
「とりあえず有名だからこの言語」などと選び、後から言語を変更して学習し直そうとなるとかなりの時間ロスと概念の違いによる混乱から、結果的に挫折を招く可能性も高くなってしまいます。
ですので、言語を選ぶ際には自分の目標を明確にしましょう。
それぞれのプログラミング言語の特徴を把握する
プログラミング言語にも得意不得意があります。
例えば、Pythonは機械学習、データ解析を得意とします。
しかし処理速度が遅いために、システムの基幹やゲームなどには採用されません。
Javaはほぼ何でもできる万能な言語ですが、C/C++ほどの高速性はありませんし、書き方が少し複雑です。
可読性が高いものにR言語が挙げられますが、統計解析に特化した言語なので汎用のシステムには基本的に使用できません。
このように、プログラミング言語にはある程度方向性があります。
ポイント1と共通する部分でもありますが、自分の作りたいものに適した言語を選ぶようにしましょう。
できるだけメジャー言語を選択する
ここでは紹介しないようなマイナーな言語は世界にたくさんあります。
しかし、そのような言語は世界的に使用者が少なく、情報もそう多くはありません。
公式のドキュメントも日本語が無かったりします。
メジャーな言語を選択しておけば身近にその言語が使える人がいるかもしれないですし、書籍なども充実しています。
また、質問サイトなどに投稿した場合も内容にもよりますが、比較的速いレスポンスだと思います。
一番恩恵を受けるのはエラーが発生したときです。
メジャー言語であればエラーの内容をコピペして検索すれば対応策が大抵見つかります。
マイナーな言語の場合は検索しても英語のみという場合が多いです。
英語ならまだ良いのですが、それ以外の言語で書かれている記事をgoogle翻訳などで理解しようとすると膨大な時間がかかります。
このことから、世界的に見て利用者が多い言語を選ぶ方が効率よく学ぶことができます。
初心者におすすめのプログラミング言語10選
ここから具体的に、初心者におすすめのプログラミング言語をご紹介していきます。
それぞれの特徴、採用しているアプリ・サービスを紹介していきます。
一番最初に学習する言語は、その後のプログラミング学習に大きな影響を与えるので慎重に選ぶようにしましょう。
ここで挙げる言語はメジャーかつ汎用性があり、あまり難しい考え方をしないものです。
JavaScript
JavaScriptの魅力はなんといっても始める敷居が低いことです。
Windowsであればメモ帳とEdgeさえあれば動き、MacではテキストエディットとSafariのみで、いずれも標準でインストールされているはずです。
JavaScriptは、フロントエンドからサーバーサイドまで幅広く利用されており、一般的にフロントエンドで利用されることが多いです。
Webページの画像スライドショーやクリックしてメニューを展開するといった動作は、JavaScriptによって行われています。
フロントエンドでは基本的にアニメーションに使用しますが、応用すればブラウザで動作するゲームも作ることができます。
敷居がとても低い言語ですので本格的なゲーム開発用のC系の習得の前にJavaScriptを習得するのも効果的です。
JavaScriptの勉強方法については、こちらの記事をご覧ください。
初心者がJavaScriptを独学で学習するベストプロセス【2020年更新版】
Ruby
Rubyは日本人によって1995年に開発された、可読性がとても高いのが特徴です。
Rubyはシステム開発によく用いられ、その中でも多いのがWebアプリケーションです。
Rubyは、Ruby on Railsというフレームワークを使用することができます。
フレームワークというのは様々な機能があらかじめ備わっている枠組みで、それを使用すれば0からシステムを構築するよりも簡単かつ安全にリリースすることができます。
また、Rubyは公式サイトからダウンロードしたソフトを実行するだけで環境構築が完了します。
Windows、Macのどちらでも動作し、クックパッドやHuluはRubyを採用しています。
TwitterもRubyを採用していたことがあり、それほど信頼と実績がある言語だといえます。
この言語は他の言語の良いところを少しづつ取り入れたかなり万能な言語なので汎用性が高く、習得すればかなり広い範囲で役立ちます。
RubyのフレームワークであるRuby on Railsの勉強法はこちら!
初心者がRuby on Railsを勉強するベストプロセス【2020年更新版】
PHP
PHPは多くのWebアプリケーションで利用されています。
漠然と「Webアプリケーションが作りたい!」というのであればPHPがいいでしょう。
ブログを書いたことがある人は使ってるかもしれませんが、WordPressはPHPで作られています。
一昔前はサーバーサイドといったらPHPというぐらいメジャーな言語でしたのでネット上にたくさんの情報があり、簡易の掲示板くらいであればいくつも参考サイトが見つかります。
初めて学習する際はXAMPPの使用をおすすめします。
簡易のWebサーバー、データベース、PHPなどが一括でインストールでき、ローカルで簡易のWebサーバーを構築することができます。
PHPのおすすめ勉強方法はこちら!
Python
Pythonは主に統計解析やAI開発に利用される、可読性が高いのが特徴です。
また、他の言語との大きな違いは括弧でグループ化しないことです。
インデント(字下げ)を行ってグループ化をさせます。
最初はエラーの種ですが、使っているうちに慣れると思います。
この言語は処理速度がそんなに速くなく、システムの基幹にはあまり向きませんが、全く使用されていないという訳でもありません。
Webアプリケーション用のフレームワークも多数用意されていて、有名なのはDjangoとFlaskです。
Djangoは機能が豊富ですが学習コストが少し高く、laskは軽量で処理スピードも速く、学習コストも低いです。
しかし、Flaskで提供されていない機能を実装する場合には自前で開発しなければなりません。
また、Pythonは自動化も大きな魅力です。
ExcelやWordの業務でPythonを使用すればVBAを使用するよりも簡単に開発できる場合もあります。
Java
JavaはWebアプリケーションからデスクトップアプリ、Andoroidアプリケーション、組み込みまで様々なところで使える万能言語です。
先述のJavaScriptとは全くの別物で、混同しないように注意してください。
JavaはOSに依存しないことがと特徴として挙げられます。
つまり、Windows用、Mac用と大きくプログラムを変更させなくても良いという利点があります。
また、Javaは非常に多くのサービスやアプリに利用され、WebサービスではTwitterやGoogle、楽天などの有名企業で採用されています。
デスクトップゲームではMINECRAFTなどが有名です。
Javaはもともと組み込み言語として開発されたため、いわゆるガラケーのシステムに利用されています。
C/C++
C++はC言語にオブジェクト指向という考え方を追加した、いわば発展形といったものになります。
ここでは同一のものとして扱います。
Cは1972年に開発された比較的古い言語です。
この言語はコンパイルというプログラムを機械語に翻訳する手順が必要になります。
PythonやJavaScriptはこの手順は必要ありません。
機械語に翻訳してから処理を実行するため、非常に速い処理速度を誇ります。
処理速度が求められるシステムやゲームなどによく利用されます。
Cは本当に様々なものに使用され、OSであるWindows、MacOS、Linux、普段使っているChromeもCによって作られています。
IoT(Internet of Things)という言葉を一度は聞いたことがあるかと思いますが、IoT機器にはCでプログラムを実装することが多いです。
ArduinoというマイコンはC言語をベースとしたArduino言語で動作します。
C#
C#は上のC/C++の改良型と思われがちですが少し違います。
この言語は2000年にマイクロソフト社が開発したC++とJavaをもとに作られ、どちらかというとJavaによく似ています。
マイクロソフトが開発した言語ですのでWindowsアプリケーションに非常に適してます。
VisualStudioという統合開発環境を使用すればドラッグ&ドロップのみで簡単なGUI(グラフィカルインターフェイス)アプリケーションの作成が可能です。
また、Unityというゲームエンジンを使用すれば簡単にゲームの開発も可能です。
もちろん、Webアプリケーションの開発も可能な言語です。
実用例としててはマイクロソフトの公式サイト、Skypeの公式サイト、そしてBingが挙げられます。
この言語を習得すれば、似たようなJavaやC++なども少しの学習で習得が可能ですので最初のプログラミング言語にはおすすめです。
Rust
Rustはかなり新しい言語でC/C#の後継言語の候補という立ち位置です。
非常に高速な処理速度、高いメモリ効率と信頼性を特徴とします。
ただ新しい言語であるため、利用者数も少なく、世界シェアは1%を切っています。
C++と比較してメモリ安全性と並列性が優れているため、有名企業でもシステム開発言語として採用されつつあります。
その例にAmazonやGoogle、マイクロソフトが挙げられ、現在のシェアは低いものの、年々割合はあげつつあります。
いつか、C/C++の後継として確立する日も来るでしょう。
その時に備えてRustの習得をしていれば大きなアドバンテージに繋がります。
R
R言語は統計解析に特化した言語で、AIなどを開発する方は基本的にPythonかRの2択になると思います。
Webアプリケーションなどを開発しないで、AIや機械学習のみを作るというのであればRを選択するべきでしょう。
昔は研究機関のみで使用されていましたが、最近では民間企業でも使用されるようになりました。
Rには機械学習のための機能をまとめた「パッケージ」というものが多く提供されています。
有名なものにdplyr、caretなどがあります。
ただ、日本でのこの言語の使用者は少ないためエラーなどの問題が発生した場合には、海外のサイトなどを見て自分で解決させなければなりません。
AIなどが日々進化してく中でこの言語は非常に重要な立ち位置になるでしょう。
統計解析特化とは言っても、他の言語と根本的に書き方などが異なるわけではないのでそれほど難しいものではありません。
機械学習方面のものを作りたいのであればこの言語を習得してみてはいかがでしょうか。
Go
Go言語は2009年にGoogleが開発した新しい言語であるにも関わらず、最も給料の高いプログラミング言語の1位を誇っています。
この言語は汎用Webアプリケーション、APIサーバー、コンテナまで本当に広い範囲の開発をカバーします。
プログラムに触ったことがある人なら聞いたことがあるかもしれませんが、DockerはGoで作られています。
Rustと同じく新しい言語ですが、Androidアプリケーションと相性が良いためシェアはRustよりも高めです。
使用者も年々増加し、人気急上昇中の言語と言えます。
プログラミング言語としてとても優れていて、現在C系で実装されているシステムはGoで置き換えられてしまう可能性もあります。
なんといっても給料が高いというのも大きな魅力ですので、プログラマーを仕事にしたい場合はぜひGo言語を学習してみてください。
プログラミング言語の効果的な勉強方法とは?
自分に適したプログラミング言語を決めたら、次は学習方法です。
自分に見合った言語を見つけることができても、学習が非効率でデタラメだと挫折に繋がってしまいます。
ですので自分に見合った学習方法も選ぶ必要があります。
どの学習方法にも限定せず言えるのは、実際に手を動かしてプログラムを作るのが一番自分にとって伸びるということです。
学校の授業と同じで、復習しなければ定着率はかなり低くなってしまいます。
独学で学ぶ
多くの人は独学で学習を始めるかと思います。
最近は学習サービスも充実してきて、ブラウザ内でコードを記述&実行ができる上に演習問題で合否判定ができるものまであります。
記事やスライド、動画など様々な媒体があります。
また、有料の会員になれば学習における問題点をエンジニアに質問することができる学習サービスもあります。
ただ、そのようなサービスはメジャーな言語のみサポートしており、あまりメジャーじゃない言語や新しいものは書籍や個人のWebサイトの記事に頼ることになります。
独学の懸念点としては、問題が発生したときに自力で解決しなければならないということです。
しかし現在はエンジニア向けQAサイトも充実しており、質問すればすぐ反応が返ってくることもあります。
独学でプログラミングを学ぶ場合は自力で情報を集め、それを精査する能力も必須になってきます。
スクールに通う
スクールに通っての学習は、独学に比べてかなり効率的に言語を習得することができるかと思います。
スクールは主に二つに大別することができます。
ひとつは超短期間集中講義、もうひとつは数か月の講義でゆっくり習得していくものです。
特別な理由がない限りゆっくり習得していく方をおすすめします。
オンラインスクールと実際に行くスクールとでも分けることができますが、そこは自分の環境などに合わせて選びましょう。
スクールに行く大きなメリットとしては、問題が発生すればすぐ誰かに質問し解決できることができることです。
自分自身で解決させることも大切ですが、問題が解決できない間は大きな時間ロスである上に挫折にも繋がりやすくなってしまいます。
そこですぐに質問できる人が身近にいるという環境はプログラミング学習においてアドバンテージになります。
また、人脈の形成の大きな助けにもなると思います。
知識の質も独学に比べて良いものとなると思うので初めてのプログラミングにはスクールをおすすめします。
留学にいく
スクールよりも実用的かつ効率的に取得する方法に留学があります。
海外で数か月生活しながらITの専門的な技術を習得することができます。
留学ではIT関連の技術ではなく、英語はもちろんのこと、海外での生活についても実際に体験することができます。
実戦的な技術も多く学ぶことができるため、最短でエンジニアやプログラマーを目指すことができます。
専任で講師が付くことが多いので質問をしたら的確な回答を得ることができます。
また、一緒に留学している人同士でも交流が深まり留学後も連絡を取り合える関係になるかもしれません。
スクールよりも深い関わりになると思うのでより濃い人脈を形成することが可能です。
プログラミング初心者がまず目指すべきレベルとは?
プログラミングに限らず、学習には目標が無ければモチベーションは上がりません。
しかし、プログラミングにおいて自分が作りたいものを最初から目指すとあまりに難易度が高いかもしれません。
ですので、段階的に目標を定めてモチベーションを維持していくことが大切です。
そこで、最初に目指すべきレベルとしては、自分の実装したい機能を自力で作りあげることができることだと考えます。
もちろん、書籍や記事、Googleを使用しても大丈夫です。
「この機能を実装するにはどのような処理を記述すれば良いか」「このエラーはどう対処すべきか」などを自分で考えることができるようになれば、十分なレベルに達したといえるでしょう。
まずは、基本的なアルゴリズムを理解し、考え方や作業に慣れるところから始めましょう。
まとめ
以上、おすすめのプログラミング言語を10つと、効果的な勉強法まで紹介しましたが、自分に見合った言語は見つかりましたか。
興味がある言語があった際には、積極的に調べてみましょう。
自ら情報を収集することもプログラミング学習において重要なことです。
そして行動は早めに起こしましょう。
もし、自分が学ぶべき言語に迷った際は、弊社が行っている「無料オンラインカウンセリング」で、知識豊富なエンジニアリングマネージャーに相談するのもおすすめです。
年齢や目標などに応じて、どんな言語をどんな環境で学ぶの良いかなど的確なサポートが出来ると思いますので、気軽に予約してみてください。
Awesome Ars Academia(オウサムアルスアカデミア)は、グローバルIT専門学校です。
中高生から社会人まで、幅広い層の方々に「英語でのプログラミング学習」の場を提供しています。
興味のある方はぜひ、実際にAwesome Ars AcademiaのIT留学卒業生のインタビュー記事をご覧ください。
15歳の高専生がセブ島IT留学へ!初海外、新たなチャレンジで得たものとは?
アメリカの大学でビジネスを学んだ後にセブでIT留学! 文系大学生がセブ島IT留学を決意したわけとは?
また、Awesome Ars Academiaでは、英語で学ぶオンラインプログラミング無料講座も多数開講しております。
英語とプログラミングの必要性が叫ばれる今、ぜひ英語とプログラミング学習のファーストステップとしてご活用ください。
LINEからの簡単問合せはこちら ⇒ LINEでのお問い合わせはこちら
無料カウンセリング予約はこちら ⇒ https://awesome-ars-academia.net/online-counseling/
Awesome Ars Academiaへのお問い合わせはこちら ⇒ https://awesome-ars-academia.net/contact/
Awesome Ars Academiaの資料請求はこちらから ⇒ https://awesome-ars-academia.net/material/