本記事では、IT業界で約20年間プログラマやシステムエンジニアとして仕事をしている管理人が考えるプログラミングの学び方について紹介します。
プログラミングを学ぶ方法
プログラミングを学ぶ方法としては次の3つが考えられます。
- 仕事で学ぶ
- 独学で学ぶ
- プログラミングスクールで学ぶ
実戦で学ぶのが一番身につくので、仕事で学ぶのが一番良いと思います。ただ、新人や若手社員には簡単な作業が振られることが多く、プログラミングが学びたくても、仕事の中で学ぶ機会がなかったりもします。
また仕事の場合、自分の興味がある分野のアプリ開発に携われないこともあります。
プログラミングスクールは独学で学ぶよりは、学びやすくお勧めですがお金がかかります。
最後は独学で学ぶ方法です。独学で学ぶのには参考書代程度でそこまでお金はかかりませんし、自分の好きな言語を学ぶことができます。
私も新人の頃、プログラミング言語の知識がまったくなかったので、わかりやすい参考書を自腹で購入し、通勤時間や仕事の空き時間などを利用してよく勉強していました。
Step1. 学習するプログラミング言語を決める
プログラミング言語を学習する時にまず決めることが
「何の言語を学習するか」
これを決める必要があります。
プログラミング言語には多くの種類があります。よく利用されている代表的なプログラミング言語は次のとおりです。
プログラミング言語 | 説明 |
C言語 | 汎用性が高く処理速度が速いのが特徴。メモリ管理などハードウェアに近いレベルの記述が書けるのが特徴。 |
C++ | C言語にオブジェクト指向の概念を取り入れたもので、C言語を機能拡張したプログラミング言語。 |
Python | 機械学習や人工知能(AI)の分野で人気のプログラミング言語。 |
Ruby | Webアプリケーション開発で使用。 Ruby on Railsで有名なプログラミング言語。 |
PHP | Webアプリケーション開発で使用。 フレームワークが豊富で現在ではLaravelが人気。 |
JavaScript | 動的にWebページを生成することができるクライアントサイドのスクリプト言語。 ライブラリやフレームワークも充実している。 |
Java | Java仮想環境(JVM)の上で動作する人気のプログラミング言語。 Webアプリケーション開発やAndroidアプリ開発などで使用されている。 |
C# | .NET Framework上で動作する人気のプログラミング言語。 |
Objective-C | macOSのアプリ開発やiOS向けのアプリ開発(iPhoneやiPad向けのアプリ開発)を得意としているプログラミング言語。 |
Swift | AppleがObjective-Cの後継言語として開発したプログラミング言語。 |
Kotlin | Javaをもっと「簡潔で安全性の高いプログラミング言語」になるように改良して作られたもの。 Java仮想環境(JVM)の上で動作する。 |
Go言語 | Googleが開発したプログラミング言語。 「生産効率の良さ」と「コードのシンプルさ」が強みであり、Goの言語仕様は他の言語に比べると非常に少なくシンプル。 |
これだけあると、どのプログラミング言語を学習したらよいか、迷いますよね。
私は、HTML(独学)→CSS(独学)→JavaScript(仕事)→Java(仕事)→C#(仕事)→C++(仕事)→PHP(独学)→Ruby(独学)→Kotlin(独学)→TypeScript(仕事)といった順に仕事や独学で学習してきました。次はPythonあたりを学習したいと思っています。
色々なプログラミング言語を学んで感じたことは、浅い知識でたくさんの言語を覚えるより
まずは1つの言語をしっかり覚えることが大切
だと感じています。
最近のプログラミング言語は「オブジェクト指向」であり、C言語から派生して作られた言語がほとんどです。言語により構文の書き方は違いますが、基本的な考え方は同じです。そのため、1つの言語でしっかりとプログラミングの基礎知識を学ぶことが大切だと思います。1つの言語をしっかりと覚えておけば、他の言語を学習するときに学習しやすくなります。
言語の学習のしやすさで考えると、PythonやRuby、PHPといったスクリプト言語の方が比較的学びやすいと思います。(スクリプト言語は習得するのを簡単にするために工夫された言語で、比較的学びやすい)
また、モダンな言語と言われている比較的新しいGo言語やSwift、Kotlinのような言語も学びやすいと言われています。
後は何を作りたいか。作りたいものに合わせて学習する言語を決めるの良いかと思います。
- Webアプリケーション開発:PHP,Ruby,Python,Java,C#,JavaScript
- Androidアプリ開発:Java,Kotlin
- iOSアプリ開発:Objective-C,Swift
- Windowsアプリ開発:C#
- AI開発:Python
- ハードよりの開発:C言語、C++
Step2. プログラミング言語の基本的な構文を覚える
学習するプログラミング言語が決まったら、
プログラミング言語の基本的な構文を覚える
ことが大切です。
例えばJavaであれば、次のようなJavaの基本的な構文をある程度、身につける必要があります。
- 変数
- 配列
- 演算子
- 条件分岐(if文、switch文)
- 繰り返し(for文)
- 繰り返し(while文)
- ループの中断・スキップ(break文、continue文)
- クラス、メソッド、コンストラクタ
- オーバーロード、オーバーライド
- アクセス修飾子
- 継承、抽象クラス(abstract)、インタフェース(implements)
- static変数とstaticメソッド
- 列挙型(enum)、定数
- 例外(try-catch)
完璧に覚えなくても、あーこういうのあったなと思い出せる程度でOKです。
全く知らないのと、少しだけ知っているのでは大きな違いなので。
Step3. 実際にアプリを作ってみる
基本的な構文を覚えたら、実際にアプリを作ってみるのをお勧めします。
やはり実践が一番身につくので。
何を作ったらよいか分からない場合は、本屋さんかAmazonなどで実戦編の参考書を探しましょう。また、アプリの作り方を紹介しているYouTubeやサイトもあります。
他にもさまざまなアプリを作成する方法を紹介している、本・サイト・YouTubeがあるので、自分に合った方法で学習することをお勧めします。
私は参考書で勉強する方法が自分に合っていたので、本屋さんで学習しやすそうな参考書を購入して勉強していました。