最初に学ぶプログラミング言語なんて何でも良いだろ, ゲームのスキルビルドじゃないんだから
背景
常々こういった話題について考えていたことを文章にしたいと思っていました. そこに「最初に学ぶべきプログラミング言語」 - mizchi's blogが投稿されたので便乗します.
プログラミングスキルに上限なんてない
ゲームのスキルビルドは大体上限があります. だいたいのRPGではスキルを全て取ることはできません. ポケモンだって振れる努力値は510で上限になってしまいました.
だからというわけじゃないだろうけれど, プログラミングの学習を始める前に「どの言語を覚えようか」なんてことを気にする人が多くてイライラします. そんなものを気にする必要はありません. 思い付きで始めて「これわけわかんないわ」と思ったら放置すればよいのです.
プログラミング言語には好みがある
プログラミング言語には当然好みがあり, 個人の学習のしやすさも異なります. いろんな言語を試してみて, 自分に合う言語を探したほうが良いのではないでしょうか?
また, 他の言語での標準的な考えを取り入れることで, 他の言語を理解するきっかけにも繋がります.
- Lispで再帰を学ぶ
- C言語のポインタでJavaの参照の正体を知る
英語を先に覚える必要はない
よく「プログラミングを覚える前に英語を先に覚えたほうが効率的」みたいなことを言う人が居ます. 私はそれには完全に反対します. 高度な最先端の情報はたしかに英語しかありませんし, マイナーな情報も英語しかないことが多いです. しかし, 初心者にそれが必要でしょうか? 必要ありませんよね?
また, プログラミングにはいわゆる「適正」というものがあるという説があり, プログラミングができない人は全くできないという説もあります. 長々と英語を学んでおいて, いざプログラミングをしたら全く適正がなかった, なんて悲惨すぎます.
プログラミングをやっていれば, いずれ英語の読解力が必要になる時がきます, 英語力なんてその後から身に付ければ良いのです. どちらが効率的だとか, そういうことはありません.
また, プログラミング関係のドキュメントは英語で書かれていても, 基本的に非ネイティブ向けに書かれている(と思う)ので, 英語力が殆ど無くても割と読むことが出来ます. 私も英語力はないけれど, プログラミング関係のドキュメントだけはそこそこ読めるタイプです. ジェネリックな英語力はあまり必要ありません.
私自身はどうやって入門したか
私はnscripter.comからプログラミングを始めました. 環境はサクラエディタ. 初心者向けのプログラミング環境なんてテキストエディタさえあれば十分です.
そこから苦しんで覚えるC言語を読んで, C++やD言語やHaskellやPythonやC#など, 適当な言語に手を伸ばしては徐々に習得していきました.
独学で学べる人はそれで良いかもしれないけど教える側としては何を教えるか迷う
全くその通りだと思います. 教える側としてはどの言語で教えるかは悩ましい問題だと思います.
しかし, 最初ならともかく, 2歩目から独学できない人は絶対にプログラミングが出来るようにはなりません. 他の道を勧めたほうが良いでしょう.
お前のオススメは何だ
最近はRacketが面白いと思っています. しかし, これも私の好みにすぎません. 自分で試行錯誤できない人はプログラミングが出来るようにはなりません. 自分で頑張ってください.