第四十九回:初心者が最初に学ぶプログラミング言語は何がオススメか?
今日は2020年6月5日です。前回のコラム更新から2日しか経っていません。「超不定期連載」の名に相応しい更新頻度だと自画自賛しています。それでは今回もゆるく行ってみましょう。超不定期連載「分かりそう」で「分からない」でも「分かった」気になれるITコラムでございまぁす。このコーナーでは、各用語の説明ページでは取り上げにくいIT関連のネタをテーマに、だらだらと思いついたことを書いていきます。みなさんが「あぁ、なんか役に立ちそうな気もするけど、役に立たないかなぁ。でも、もしかしたら役に立つかも」と思える情報を発信できるように頑張ります!
はじめに
栄えある四十九回目のテーマは……ピヨピヨピヨピヨ(ぴよぴよ的ドラムロール)……じゃん!
初心者が最初に学ぶプログラミング言語は何がオススメか?
です。
おぉ、久しぶりにITと関係ありそうなテーマですね。
ここ最近は今まで以上にプログラミングの勉強を始める人が多いのでしょうか。
「どのプログラミング言語を最初にやれば良いですか?」とか「どのプログラミング言語がトレンドですか?」とか「どのプログラミング言語が稼げますか?」とか聞かれる機会が増えてきたので、私の考えをまとめておきます。
ちなみに、お忙しい人向けに先に結論を書いておくと
何でもいい
です。
最後まで読んでくださる方は、この結論を知らないことにして読み進めてください。
最初に学ぶべきは「勉強のやり方」
あなたが、お仕事でプログラミングをやる人(プログラマ)になったとしましょう。
あなたのプログラマ人生の始まりから終わりまで、1つのプログラミング言語しかやらない可能性は、かなり低いです。
案件によって使うプログラミング言語は変わってきます。
もし転職して違う会社に移ったら、前の会社とは違うプログラミング言語を扱うことになるかもしれません。
また、IT業界は移り変わりのスピードがとても速い業界です。
今の時点でスゴい流行っていてメチャクチャ稼げるプログラミング言語が、10年後も同じ状況である可能性は高くないでしょう。
あなたがプログラマとしてやっていくのであれば
2つ目のプログラミング言語を勉強する機会が、ほぼ間違いなく訪れる
のです。
よって、あなたが最初に習得すべきことは
勉強のやり方
です。
例えば
・マニュアルとかヘルプの使い方
・知りたい情報をGoogle先生で調べる方法
・エラーが出たときの原因調査のやり方
などを、まず学ぶ必要があります。
最初の段階で自分に合った効率的な勉強のやり方を習得できれば、プログラミング言語自体の習得スピードも上がります。
それは2つ目のプログラミング言語を勉強するときにも活かせるでしょう。
ここで質問です。
「勉強のやり方」を学ぶ上で、プログラミング言語の種類って重要だと思いますか?
次に学ぶべきは「プログラミング言語の種類に依存しない共通の概念」
よく
プログラミング言語を勉強するときは、あちこち手を出すよりも1つを極めた方が良い
と言われます。
それは
プログラミング言語の種類に依存しない共通の概念があるから
です。
例えば
・変数
・関数
・引数
・戻り値
・配列
・条件分岐処理(if文とか)
・繰り返し処理(for文とかwhile文とか)
などは、どのプログラミング言語にもあります。
書き方の細かい部分はプログラミング言語によって違ったりしますけどね。
本質的な部分は同じです。
あなたが最初に勉強するプログラミング言語で「勉強のやり方」の次に習得すべきことは、この
プログラミング言語の種類に依存しない共通の概念
です。
すべてのプログラミング言語は
「プログラミング言語の種類に依存しない共通の概念」+「そのプログラミング言語で固有の内容」
で、できあがっています。
C言語であれば
「プログラミング言語の種類に依存しない共通の概念」+「『C言語』で固有の内容」
です。
Javaであれば
「プログラミング言語の種類に依存しない共通の概念」+「『Java』で固有の内容」
になります。
ピヨ太君が作ったプログラミング言語「ピヨピヨ言語」であれば
「プログラミング言語の種類に依存しない共通の概念」+「『ピヨピヨ言語』で固有の内容」
になるでしょう。
あなたが「プログラミング言語の種類に依存しない共通の概念」をしっかりと理解できていれば、2つ目以降のプログラミング言語の習得はとても楽になります。
「そのプログラミング言語で固有の内容」だけ学べば済むからです。
これが「あちこち手を出すよりも1つのプログラミング言語を極めた方が良い」と言われる理由です。
プログラミング言語を1つマスターすれば「プログラミング言語の種類に依存しない共通の概念」もしっかりと理解できているはずですからね。
あなたのプログラミング関連の知識に芯が入った状態になります。
ここで質問です。
「プログラミング言語の種類に依存しない共通の概念」を学ぶ上で、プログラミング言語の種類って重要だと思いますか?
人の数だけ正解がある
ここまで「どのプログラミング言語を学んでも大差ないよ」的な論調で書いてきました。
実際には、プログラミング言語によって得意分野や有利・不利があります。
ですが、気にする必要はありません。
何故なら
人によって言うことが違う
からです。
そして、それぞれの主張には、それなりの納得できる根拠があります。
例えば、そうですね。
あなたが得意とする分野の解説書を初心者の人に薦めるとしたら
1.初心者にも読みやすいけど、内容が薄い解説書
2.初心者が読むのは少し大変だけど、必要な情報が網羅的に載っている解説書
の、どちらを薦めますか?
この質問に対して「途中で挫折したら意味がない。読みやすい方だな」と考える人もいるでしょう。
「内容がお粗末なら意味がない。必要な情報が載っている方だな」と考える人もいるでしょう。
どちらも、それなりに説得力があります。
「こいつの言うことは間違いだ!」と決めつけるのは難しいはずです。
それと似たようなことが「最初に学ぶのは、どのプログラミング言語が良いか?」にも言えます。
みんなが納得する正解は、ない
のです。
「どのプログラミング言語を学べば良いのかな?」と疑問を持つ人は「『最初に学ぶべきプログラミング言語』の正解」があると思っているはずです。
実際には、そんなものありません。
あるのは「それぞれの人が正解だと思っている意見」だけです。
最初に学ぶプログラミング言語が何であれ、それが正解なのかは後になってみないと分かりません。
だから、好きに選んでください。
選ぶ理由は「よく名前を聞くから」でも「なんとなく面白そうだったから」でも「尊敬する人がオススメしていたから」でもOKです。
ちょっとやってみて「あっ、なんか違う気がするわ」となったら、他のプログラミング言語をやれば良いだけの話です。
どうせ初期の段階で学ぶのは「プログラミング言語の種類に依存しない共通の概念」ですからね。
勉強するプログラミング言語を途中で変えても、それまでの積み重ねは無駄にならないはずです。
まとめ
今回は
初心者が最初に学ぶプログラミング言語は何がオススメか?
というテーマで好き勝手に語ってみました。
私が考える、初心者が最初に学ぶべきプログラミング言語は
何でもいい
です。
初めてプログラミング言語を勉強する際に、最初に学ぶべきことは
勉強のやり方
です。
次に学ぶべきことは
プログラミング言語の種類に依存しない共通の概念
です。
この2つはプログラミング言語の種類に依存しません。
どのプログラミング言語を勉強しようと同じです。
また、プログラミング言語によって得意分野や有利・不利がありますが
初心者が最初に学ぶべきプログラミング言語の正解
は、ありません。
あるのは
それぞれの人が正解だと思っている意見
だけです。
よって、どんな理由で、どのプログラミング言語を選ぼうと、あなたの自由です。
好きに選んでください。
ちょっとやってみて「あっ、なんか違う気がするわ」となったら、他のプログラミング言語をやれば良いだけの話です。
「やるべきことをやる」のはもちろん大事ですが「やってみたいことをやる」のも同じくらい大事です。
プログラミング言語の勉強においては、好奇心でやってみて、上手くいかなくて「むきー!(>A<)」ってなることも力を付けるトレーニングになります。
「回り道しない」ことよりも「回り道も糧にする」ことを意識して、正解の分からない道を楽しく歩いてください。
思いつきで始めて惰性で続けている「分かりそう」で「分からない」でも「分かった」気になれるITコラムですが、いかがでしたでしょうか。また何かネタがあったら、ちまちまと更新していきます。コンゴトモヨロシク。






