ブログは死なず、ただ放置されるのみ。

終わっちゃいましたね。

初心者向けのなにかについて考える

ここでは基本的に時事ネタは扱わないのだけど、最もタメになる「初心者用言語」まとめ - UK is not Britonish - ハチロク世代 で盛り上がってるように、初心者用のプログラム言語として何が良いか、ネットで話題になっている。これについて、ちょっと考えてみた。

個人的に思うことは Ruby はおそらく二番目の言語として良い言語であるだろう、ということだ。Lisp系の言語は正直敷居が高い。「初心者歓迎」の看板のないジャズのジャムセッションに行くぐらい怖い。お前が腰を据えて勉強してないからだろうと言われればそのとおりなのだけど、それに比べると敷居は比較的低いが RubyLisp 的感動がある言語だと思う。あと Perl は「道は険しいかもしれないが、ゴールは必ずある」と言う感じだけど、Ruby は「それをやるのはトレードオフがあるけどいいのか?」とプログラマに問い掛ける感がある。好みの問題だけど。PHP は知らないのでパス。Java はたぶん好きでやる言語ではないと思う。もし Java が好きで、Java しか知らないなら、別の言語も勉強することを大いにお勧めする。必ず得るものがあると思う。

では、なぜ2番目としていいか、なのだけど、1番目の言語は選べないからだ。だって何も知らない状況で何が選択できるのだろう。言語の本質以外の要因のほうが大きいに違いない。たまたま知って、とか、仕事で必要に迫られて、とか、授業で、とか。誰かに「これいいよ」と言われたからか。

だから、中途半端なプログラマな私が言うのもなんだけど、この業界でメシを食うのであれば、とりあえずプログラム言語は2つ以上は使えるようになったほうがいい。全然違う言語がいい。私は C と Ruby で幸せだけど、Haskell を使いこなせるようになりたい。Web 業界の人で JavaScript しか知らないなら、C(++) もとりあえず知ったほうがいい。Java しか知らないなら、私は Ruby がお勧めだけど、Perl, Python, Scheme もいいだろう。UNIX系OSを使ってる人は、ちょっと手の込んだシェルスクリプトMakefile もお勧めだ。

プログラムができないけどプロジェクトマネージャーという人は、せめて ExcelVBA は使えるようになるべきだ。そして、プロジェクト管理に必要な数値を計算する ExcelVBA を自分を作成してみるべきだ。工程表の線から見えるものが変わるはずだ。ExcelVBA でわからないことがあっても大丈夫。プロジェクトメンバーに聞けば、誰かが調べてくれる。だれも教えてくれない or わからないのなら、それはプロジェクトが失敗するという明確なサインだ。

そして、初心者について語る人は、何かの初心者になることを勧める。私は今 Haskell に頭を悩ませ、剣道で未だに級をもらえずにいる。進むべき道が見えないことは誰でもあるだろう。だけど、それなりに知ってる人の悩みと、何も知らない人の悩みは違うということを知っている人は意外と少ないんじゃないだろうか。初心忘れるべからずとはいうけれど、オブジェクト指向を理解できなかったころの自分の気持ちを思い出すことは、少なくとも私にはできない。