プログラミングの初め方

どうやってプログラミングを勉強していくか。これは誰もが通る道です。そしてこれが一番質問されることの多い問題です。

これを教えるのが難しいのが、誰もが自分の通ってきた道しか知らないということです。たとえば最初C言語だったひとはその道しか知らないし、最初がJavaだった人はその道しか知らない。最初がアセンブリだった人もその道しか知らないわけです。

最初C言語だった人に、最初Javaからやったらどうか、ときいても的確な返答ないでしょう。

なので本稿でも私が経験した、あくまでもひとつの例だけを述べます。

私は最初はC言語です。これは大学生のとき課題をこなすために覚えざるを得なかったために覚えたものです。

そして次がJavaでした。ここでオブジェクト指向を学びました。

次にML系言語のOCamlです。ついでにHaskellもやってみましたが、OCamlの方が挫折せずに済むと思います。

その後はほとんどC#です。さすがマイクロソフトが本気出してるだけあって、C#だとWindowsアプリケーションを作るのがものすごく楽です。逆にWindowsにこだわらないのなら、Javaなり別の言語でもいいと思います。

VisualBasicはおすすめしません。既に長くVisualBasicをやってきて、VisualBasicと運命を共にすると腹をくくってる人でもないかぎり、C#をやるべきです。

つまりあなたが今まっさらな状態なら、C#をゴールにしておけば道具としてのプログラミングに困りません。ただあくまでも趣味としての話です。

職業でプログラミングやったり、アプリケーションエンジニアとしてSE兼プログラマをやっている人は、JavaとC#両方できたほうがいいと思います。

ですが趣味でWindowsアプリを作るならC#一択です。

VisualBasicというのは、昔VisualBasic6.0というえらいひどい言語があって、これに泣いたSEがとても大量に居たようです。そういった人達は、「もうVisualBasicは懲り懲りだ。関わりたくない。」と決別するか、「俺はこれだけ社会人人生でVisualBasicに苦しんできた。だから今後もVisualBasicと運命を共にする。」と開き直っちゃうか、どちらかなのです。

そういった人達を救済するためにマイクロソフトはVisualBasicを未だに続けています。ですがそれはおまけであって、本命はC#です。C#をやっておけば梯子を外されることはありません。つまりある日突然「C#やめます」なんて発表をくらう蓋然性はほぼゼロです。

VisualBasicやF#は梯子を外される蓋然性はほどほどにあります。F#は頭の体操としてはいいので、趣味の中の趣味としてやっていいとは思いますが、実用性重視を目指すなら素直にC#にしておいたほうがいいですよ。

ただし、アカデミックな世界にいる人はJavaを好みますし、実際私は学生の頃はC#なんかよりJavaの方が好きだったし、コード量も多かったです。

ですが、今のように金融分析を趣味でいじっている現状からすると、Javaなんて話になりません。C#かC++Cliを使うべきです。

まとめると、時間がある人なら、私はC言語→Java→C#という順番を進めます。時間がないのならJavaをすっとばすべきです。どちらにしろC言語はやっておかないと、後々限界がくるのでは?と思います。