あなたがプログラミングを学びたいと思う理由は何ですか?プログラマーに転職したい、自分でプログラミングをしてみたい、IT業界を目指している等々、多種多様な目標があると思います。
しかしITの知識は途方もなく幅広く、今現在もどんどん新しい技術が開発されています。そんな状況で1からプログラミングを始めるとなれば、何から手を付ければよいか分からない方も多いはず。
今回はそんなプログラミング初心者の方のために、おすすめの学習プロセスをご紹介します。さらにおすすめの専門書なども掲載!思い立ったが吉日。プログラミング技術を完璧に身に付けましょう!
目次
そもそもプログラミングとは?
まずはプログラミングとは何なのか、抽象的な概念をしっかり具体化させましょう。プログラミングとは、コンピュータに対して命令を与える操作のこと。
コンピュータは人間のように文字や数字など、数多くの言葉を扱えないため、プログラミング言語で命令を記述し、それを機械が読めるように変換して実行します。
機械が理解できるのは0と1から成る「機械語」という言語のみです。自分で書いたプログラミング言語でも機械語に翻訳されてしまえば、もう読んで解読することはできません。
プログラミングの言語一覧
ここでは多数存在するプログラミング言語を一覧で人気順に紹介します。何から学び始めるのかはもちろん、次に手を付ける言語の参考としてもご利用ください。
言語 | 説明 |
---|---|
JavaScript | プロトタイプベースのオブジェクト指向スクリプト言語 |
HTML/CSS | Webサイトを作成できるマークアップ言語とその装飾を指示する |
SQL | データベースを扱うための言語 |
Python | インタプリタ型の高水準汎用プログラミング言語 |
Java | オラクル社がサポートする言語で、実行環境に依存しないのが特徴 |
Bash/Shell/PowerShell | コマンドプロンプトで実行するコマンド言語。コンピュータに直接命令を下せる |
C# | C++とJavaの影響を受けて開発されたマルチパラダイムプログラミング言語 |
PHP | 動的なウェブページの作成に必要な機能の多くを備える、オープンソースの汎用プログラミング言語 |
TypeScript | マイクロソフトによって開発されたプログラミング言語。サーバサイド、クライアントサイドで実行されるJavaScriptのアプリ開発で利用される |
C++ | C言語から派生し、C言語の特徴を持ちながら表現力と効率性が向上している |
C | 高水準言語の特徴と低水準言語の特徴を併せ持つ、汎用プログラミング言語。高速な実行速度が特徴。 |
Go | C言語に則って作られているが、Pythonのような容易性も併せ持つ言語。 |
Kotlin | 静的型付けのオブジェクト指向プログラミング言語 |
Ruby | まつもとゆきひろによって開発されたオブジェクト指向スクリプト言語 |
Assembly | アセンブリ言語 |
VBA | Officeアプリのカスタマイズや拡張を行う言語 |
Swift | アップルのiOSおよびmacOS、Linuxで利用可能。iOSのアプリ制作に使用される |
R | 統計解析向けのプログラミング言語 |
Rust | Mozilaが支援するオープンソースのシステムプログラミング言語 |
Objective-C | C言語をベースに開発され、オブジェクト指向機能を持たせた言語 |
Dart | Googleによって開発された、ウェブ向けのプログラミング言語 |
Scala | オブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムプログラミング言語 |
Perl | 実用性と多様性を重視しており、数多くのジャンルで用いられている |
Haskell | 関数型プログラミングの研究対象として人気が高い言語。数学者によって提唱された |
Julia | 高度の計算科学や数値解析などに対処できるように設計された言語 |
上記の表は以下のサイトをもとに作成しています。実はプログラミング言語は、この表には収まりきらないくらいの種類があり、どれも当時の状況や必要性を考慮して開発されました。
この表はランキング順であり、世界中で活躍するエンジニアからの人気投票により作成されています。あくまでも人気の目安であることに、ご注意ください。
Stack Overflow Developer Survey 2020 :最も現役人気のある言語は?
何から始める?初心者におすすめのプログラミング言語
HTML/CSS
この2つはプログラミング言語ではありませんが、初心者がコンピュータに指示を与え、それによる変化を実感できる手としては一番の言語です。HTMLはWebページを作成するマークアップ言語で、CSSでは作成したHTML文書に変化を与えることができます。
JavaScript
JavaScriptはより動的なWebページを作成するのに必須の言語です。HTML/CSSから始めた方にとっては、実行結果に少し物足りなさを感じるかもしれませんが、マスターすればCSSよりさらに鮮やかなHTMLの装飾ができるようになります。
Google Chromeだけでも作成でき、簡単に実行できるのもオススメのポイントです。JavaScriptで数字や文字などのデータの型、繰り返し処理、条件分岐、クラス定義など、プログラミングの基礎をマスターすれば、他の言語も容易に習得できるでしょう。
Python
Pythonは最近注目度が高いプログラミング言語です。Javaなどよりもデータの型に固執することがないので、初心者でも学びやすいと言えるでしょう。どのサイトでもPythonは初心者向けの言語として紹介されていますが、実行速度はかなり遅め。そのためメインで使うプログラミング言語としてはあまりお勧めできません。
Java
長年多くのプログラマーから愛され、様々なシステムがJavaによって構築されてきました。Javaは仮想マシン上で実行するため、実行環境に依存することなく、柔軟な対応が望めます。
まだこれからも需要が続く言語ですが、初心者が最初に手を付ける言語としては少々難易度が高めです。オラクルがサポートする環境を構築しなけらばならないので、開発前の環境構築にも手間がかかります。
しかし今回紹介する言語の中でも、最も学んでほしいのがこちらのJava。理解に手間取る部分もありますが、確実にプログラミングの基礎知識、エラーへの適切な対処が学べます。
Go
最後は今後人気が出るだろうと予想されているGo言語をご紹介します。Go言語は、実行速度が速い、シンプルでわかりやすい、メモリの安全性が高い、並列処理が得意といった点で注目が急上昇しています。
プログラミングは一人で行うものではなく、自分の書いたコードを誰かが読むことがほとんど。シンプルでわかりやすいという点は、こういった可読性で非常に役に立つのです。
第一に学ぶ言語としてはおすすめできませんが、ひとつメインとなる言語を学んだあとの次の学習言語としておすすめ。難易度が高く、制約に縛られる言語を実感した後では、よりGo言語のありがたみを感じられるでしょう。
プログラミングを始める前に!ダウンロードしておきたいソフト
Visual Studio Code
Visual Studio Code(以下VSCode)はマイクロソフトが開発した、コードエディターです。Mac、Windows、LinuxどのOSでも無料でダウンロード可能。
VSCodeでは様々な言語を扱うことができ、さらに拡張機能で作業効率を格段にアップさせることもできます。
JavaやPythonを書くには、別途JavaとPythonのダウンロードと環境変数の設定が必要ですが、JavaScriptやHTML/CSSはVSCodeをダウンロードして直ぐに学習がスタートできます。
Google Chrome
VSCodeでHTML/CSSファイルを作成し、そのファイルを実行する際に便利なのがGoogle Chormeです。
さらにGoogle Chromeaではすでに公開されているWebサイトのHTMLを覗く機能も。完成度の高いサイトを参考にするのは、非常に学習効率が良いので、伸びしろに行き詰ったときにお勧めの方法です。
おすすめのプログラミング本と専門書の選び方!
学ぶべき言語が見つかったところで、次に探さなければならないのが、あなたのプログラミング上達を助ける参考書です。ここでは前段でご紹介した、おすすめのプログラミング言語を学習するのに最適な参考書と、より良い参考書の見つけ方をレクチャーします。
HTML/CSS:1冊ですべて身につくHTML & CSSとWebデザイン入門講座 (日本語) 単行本 (著:Mana)
Webページの制作とともに、Webデザインも一気に学べる初心者向けの一冊です。中身は非常にシンプルですが、読むのが嫌にならないようにイラストや図解も程よく配置。
実際に実用的なWebページを制作しながら読み進められるので、しっかり成果物を得ることができるのもポイントです!
JavaScrip:確かな力が身につくJavaScript「超」入門 第2版 Kindle版(著:狩野 裕東)
とにかく丁寧で評判が良いのがこちらの本です。初心者にとってはプログラミングは未知の世界。
そんな初心者向けに、基本中の基本をしっかり図解しています。
またJavaScriptの適用によって、どこがどう変わるのかなど、Web制作に役立つような知識も記載されています。
Amazon.co.jp – 確かな力が身につくJavaScript「超」入門 第2版 (日本語) 単行本 – 2019/9/21
Python:新・明解Python入門 (新・明解シリーズ) (日本語) 単行本(著:柴田 望洋)
テキストで意外にも大切なのが、見やすさと紙質です。こちらの入門書は、シンプルかつわかりやすい編成が特徴で、書き込みに最適な一冊です。
著者の柴田望洋氏はこのほかにC言語やJavaにも精通しており、非常に評価が高い著者です。
Amazon.co.jp – 新・明解Python入門 (新・明解シリーズ) (日本語) 単行本 – 2019/5/23
Java:スッキリわかるJava入門 第3版 (スッキリシリーズ) (日本語) 単行本(ソフトカバー)(著:中山清喬, 国本大悟,その他)
多くの初心者プログラマーを育成した『スッキリわかる』シリーズ。どの言語も非常に評価が高い、初心者向けの参考書です。
解説がかなり丁寧で、初心者にとっては理解しがたい部分も理解するまで説明してくれます。特に複雑なJavaの入門書として最適な1冊でしょう。
Amazon.co.jp – スッキリわかるJava入門 第3版 (スッキリシリーズ) (日本語) 単行本(ソフトカバー) – 2019/11/15
まとめ
何から始めればよいか分からなかったプログラミング学習も、少しは具体的に捉えることができたでしょうか?
どんどん先に急ぎたくなる気持ちもわかりますが、基本をしっかり押さえ、抽象イメージから具体的なイメージを確立するのが大事!
まずは焦らず、ゆっくり基礎知識を固めていきましょう。