をうけて,
[IT業界]あとで言われる・・・それが納得できない -- ITっ子の日記
が,反論しているのですが,ずれてるよなってのが,正直な感想(恐らく,反論した本人もわかっていることだろうけど).
経由で,驚愕の事実を発見.
どうしてプログラマに・・・プログラムが書けないのか?
それで、そういった類の開発者を見分けるための質問を作り始め、私が「Fizz-Buzz問題」と呼んでいる問題のクラスを考え出した。これはイギリスの学校の子供たちがよくやっている遊び(というかやらされている遊び)にちなんで名付けた。Fizz-Buzz問題の例はこんな感じだ。
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい? コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。
実は,僕はFizzBuzzという問題があることは,知っていたが,こんな問題だということは知らなかった.
いやいや,そこじゃなくて,FizzBuzz解けない人いるんだ.
Multi-Agent Simulations and Artificial Life
404 Blog Not Found -- いるのは、何か? - 書評 - 国家は、いらない
このエントリの,
リバタリアニズムのゴールと正反対のようだが、自由であることそのものが実はアテンションにバイアスをもたらす。我々の「自由」は、「自由電子」や「理想気体」の自由とは違う。ランダムに一様に広がるのではなく、一定箇所に固まるのだ。
読んでて,思い出したのが,breveという3Dシミュレーションソフト.
以下,
ランダムに一様に広がるのではなく、一定箇所に固まるのだ。
の部分以外は,上記エントリとほとんど関係ないのですが,
とか,
IT戦記 -- 勉強が出来ない奴はプログラマになれ!(バカだからできる勉強法)
を見て自分で,自分のプログラミング勉強法は,どうだったかと考えてみた.
もともと,工作とかが好きだった.
プログラミングというものが「ある」ことを知ったのは,BASICしか乗ってない,恐ろしく初期のコンピュータをさわってから.そのころから,プログラミングを意識していたと思う.
で,その,コンピュータを処分してしまってしばらく,電子工作で,簡単なプログラミングできるロボットを作って(そういうキットがあったのです),それに色々やらせたり,カルネージハートというロボットを組み立てて,プログラミングしてで,戦わせるという,なんともマニアックなゲームで遊んだり.
そして,本格的な自分のパソコンを手に入れたのが,大体,大学入学前か後くらい.Macしかも,Mac OS 9なので,プログラミングやりたくても,なかなか,難しかった.色々調べて,とりあえず,AppleScriptを勉強した.で,作ったのが,アイテムが放物線を描きながらゴミ箱に放られるスクリプトとか,フォルダを等間隔に並べるスクリプトとか.で,だんだん,これでは飽き足らなくなって,Pythonに手を出して挫折し,Macintosh Programer's Workshop(MPW)に手を出して,参考書片手にCの勉強をした.
AppleScriptで,簡単にできることを,なんでCで出来ないんだってことを疑問に思っても,よかったんはずなんだけど,異世界すぎてただ,サンプルプログラムを実行したり,簡単な演習を解けただけで,楽しかった記憶がある.
で,気がつけば,大学の演習が,ものすごく物足りないものになってしまっていて,逆に,大学の演習で出される問題のバグを指摘したりしてた.
それでも,ちょっとした言語を作る演習とかには,刺激を受けて,
Schemeに手を出したり,Ruby, Python, Haskellやったり,
この辺りくらいで,自分の限界を感じ始めていたんだけど,
思えば,ここまで,出来たのは,工作,つまり物を作るおもしろさを知ってたからのような気がする.自分の作ったものが動く.みんなにすごいと褒められる.この楽しさ知ってしまうと,なかなか,諦められるものじゃない.
だから,プログラミングをやるにあたって,僕から言えることは,
まずは,ものを作るおもしろさを知れ!
なのかもしれない.



