そろそろ「プログラミングを学びたい」について書くか

最近「特に何か作りたいものがあるわけじゃないけど、プログラミングを学びたい!」という人を何人かみかけました。周りの大勢がPerlがいいとかPythonがいいとか無責任なおすすめをするので選択肢の多さにとまどいがちです。でもそれって、プログラミング言語をイケメンにたとえると恋に恋する乙女な感じ。まわりがわいわいと「サッカー部のA君がかっこいいよ!」「いや、化学研究部のB君の知性的なところがいい!メガネ!白衣!」と騒ぐので自分も話題に参加したいのだけど、A君がいいのかB君がいいのか自分では決められない状態。


すごいうぶだー!ほのぼのする!


ハッカーになろう (How To Become A Hacker)というエッセイの中では下のように語られています。

言語を一つしか知らないなら、ハッカーではないし、プログラマですらないのです。あなたはプログラミングの問題について考えるのに、ひとつの言語に依存しない一般的な方法を身につけなくてはならないからです。真のハッカーになるには、マニュアルの記述を自分のこれまでの知識と関連づけることで、新しい言語をものの数日で習得できるようにならなくてはなりません。ということはつまり、ぜんぜん違った言語をいくつか学ぶべきだということです。

つまり「A君が好き!」とか言って一人の相手にめろめろな状態ではプログラマですらない。二股三股をかけて、何らかの目的があるときに一番都合のいい奴(車を持っているとかね)を呼び出して使うのがハッカー(今風に言うとギーク?)なのですよ。そしてそういう経験を積むことで特定の男のではなく一般的な「男という生き物に関する洞察」とか「男を手玉に取る方法」とかを習得する必要があるわけですよ。つまりギークは悪女。特定のステディな言語を持っているギークもいるけど、その特定の言語だけしかやったことがないのはギークじゃない。他の男をつまみ食いした上で「やっぱり自分は○○が好きだ」というのがギーク

「B君がかっこいい!」とか言ってわいわい言っているときって、そうやってわいわい言うことを楽しんでるんですよ。でも「B君ががかっこいい!」っていうのは「(私は)B君が好き!」と言っているだけであって「あなたが愛するべき人はB君だ!」という意味ではない。そういうのは人に教えてもらうのではなく自分で見つけ出すしかない。そして初恋の人と生涯つきあうことは稀だ。誰を最初に選ぶかなんて悩むのは時間の無駄ですよ。悩んだりわいわいしたりすること自体が楽しいのかもしれないけど。

          • -

周りのわいわい言っている側も無責任だよね。何がやりたいのかによって適切な言語は変わってくるわけで、まず最初にすべきことは「どういうことをやりたいの?」という質問じゃないかと。そして「やりたいこと」がないのであれば、イベントに参加して「やりたいこと」を見つけさせるのが先決でしょうに。JavaScriptは悪くない選択肢だけど、作りたいものがウェブサービスなんだったら不適切。Pythonもいい選択肢だと思うけど、やりたいことがchumbyいじりならActionScript2かなでしこ/葵だろう。結局みんな「A君が好き!」と言えるチャンスだから言っているだけだ。

          • -

http://d.hatena.ne.jp/asami81/20080424/P1

私の場合、言語選択の前に「これだけは身につけろカス!」ってものがある気がします。それが何なのか分からないの。

ちがうよ!全然違うよ!まず適当な言語を選んで、かじって、次に別の言語を選んで、かじって、もう一個言語を選んで、かじると「これだけは身につけろカス!」ってものが身につくんだよ!順番が逆だよ!

          • -

ちなみに宣伝。

性格がまるっきり反対なJava君とPython君ですが、実は二人はデキていて、じゃなかった実は二人は仲良しで、Java君本人はガードが堅いけど、フランクなPython君経由だとprivateなところまで手軽にアクセスできちゃうよ。Python君はJava君よりフランクだら仲良しになりやすいよ。っていうかPython君ひどいよね、Java君がわざわざ人に見られないようにベッドの下に隠したのに取り出して散らかしたりして!(><)
Java君はきっちり片付けてコンパイルしたいのに、Python君にはもう実行時にウィンドウにボタンをつっこんだりボタンを別のウィンドウに移動しちゃったりもうやりたい放題!アーっ!

という二人のイケメンの共同生活を書いたBLな本です。Jythonプログラミング。嘘ですごめんなさい。