そろそろ「初心者用言語」について一言いっておくか

最もタメになる「初心者用言語」まとめ UK is not Britonish

「いい嫁」程度のお遊びのつもりでいたら、結構な騒ぎになっちゃっいました。とりあえずあのまとめを見ても、初心者の人は混乱してしまうと思うので自分なりに初心者さんへのメッセージもこめてエントリーを書いてみました。

簡単な流れの説明

一応簡単に今回の流れを説明しておくと、「初心者用言語」の流れの発端はまつもとさんの「初心者向けの言語」。その後に、amachangの「最もタメになる「初心者用言語」はJavaScript」、西尾さんの「最もタメになる「初心者用言語」はPython!」、hayamizの「最もタメになる「初心者用言語」はScheme!」と続く。後続の人達は彼等のエントリーや、オレのまとめを見て流れにのったんだと思う。

初心者の定義

流石に後の方になって「初心者とは具体的にどのような人を指すのか」という指摘がチラホラ出てきた。確かに今回の祭り全体を通して「初心者」の定義が曖昧で、エントリーを書いている人が想定している初心者像は各人それぞれな感じ。

今更「初心者」の定義をここでしたところで時既に遅しなのと、プログラマ経験者達が一般に言う「初心者」が多様なので、その辺りはあまり拘らずに話をすすめたいと思う。

何がしたいのか

今更言うことでもないのかもしれないけど、プログラミング言語はあくまでツールであり、プログラミングは手段。(まぁオレの場合、プログラミングそのものが目的になってる時も多いけど)

ツールである以上、達成したい目的に合わせて言語は選ぶべき。

その為にはまず自分が何がしたいのかを考えた方がいい。仕事でプログラミングを覚える必要があるなら、仕事で使う言語を選ぶべきだろうし、Webアプリを作りたいのであれば、PHP、Perl、Rubyあたりになると思う。そこからさらに開発環境や使えるサーバーから絞り込んでいけばいい。

もし、特に目的がなく漠然と「プログラミングしてみたい」と思っているとしたら、それこそ言語は何でもいいと思う。ただ、最初からプログラミングを目的してるとなんとなく挫折しやすい様にも思える。 とりあえず何でもいいから目的(ブログを作りたい、Twitterクライアントを作りたい、etc…)があった方が、モチベーションも保つし、自ずと方向性も決まってくるから学習しやすいと思う。

まわりに教えてくれる人がいるか

それと出来ればまわりに教えてくれる人がいる言語を選んで欲しい。もちろん、本やネットの情報だけで独学することも可能と言えば可能だけど、やっぱり身近に質問ができる人、アドバイスをしてくれる人がいるっていうのは大きい。

そのジャンルにおける本当の初心者にとっては助けてくれる人の存在がかなり大事だと思う。
あなたがプログラミングの初心者なら、友人知人が使っている言語にするといい

興味があれば他の言語にも触れてみて

「達人プログラマー - システム開発の職人から名匠への道 -」では「毎年少なくとも一つの言語を学習する」ことを薦めている。
言語が異なると、同じ問題でも違った解決方法が採用されます。つまり、いくつかの異なったアプローチを学習することにより、幅広い思考ができるようになるわけです。

例えば、普段使っている言語がPHPだとしたら、低レベルかつ静的型付けのCや、関数型言語のHaskell、Lisp(Common Lisp、Scheme)などに手を出してみるといいと思う。

参考:総論 複数のプログラミング言語を学ぶ意義 - IT Pro 参考:「関数型言語を学ばないといけませんか?」- 猫的怠惰生活Days

達人プログラマー―システム開発の職人から名匠への道達人プログラマー―システム開発の職人から名匠への道
アンドリュー ハント デビッド トーマス Andrew Hunt

ピアソンエデュケーション 2000-11
売り上げランキング : 8641

Amazonで詳しく見る
by G-Tools

なにより楽しむ

色々書き並べてみましたが、一番大事なのはあなたがプログラミングを楽しむことです。 仕事でも趣味でも大いにプログラミングを楽しんで下さい。