Hatena::ブログ(Diary)

西尾泰和のはてなダイアリー

2009-04-12

プログラミング言語を理解するにはどうしたらいい?」という話を聞いて思うこと

「プログラミングとか特定のプログラミング言語とかを習得したくて色々勉強したけど、いまいち理解できた感じがしない、何がいけないのだろう、何を学べばいいんだろう」という話を聞いて思ったこと。

それって、目的が曖昧だから達成感が得られないというだけじゃないのか?

僕の今までの人生の中には「プログラミングを習得した!」と思える瞬間も「Pythonを理解した!」と思える瞬間もなかった。具体的な「Pythonで継続のある言語を実装できた!」とかならある。でも「継続の概念を完全にマスターしましたか」と言われるとそんな気はまったくしない。まだまだ先は長い。しかし僕よりはるかに継続に詳しい人たちが集まって継続に関する議論をしてたりするのを見ると、この道に明確なゴールはないことがわかる。どこまで行っても「まだ先がある」という感じが残るに違いない。

手段が間違っているのではなく、目的が間違っているんだ。「○○を習得する」なんてゴールは存在しないんだ。だからいくら進んでもゴールにたどり着かないんだ。達成感が得られないんだ。

なぜJavaでもPythonでもRubyでも、世の中の大半の言語はバージョン1.0でフィックスではなく、どんどんバージョンが上がって行くのか?そりゃその言語の作者が「作って公開はしたけど、やっぱここはああするよりこうした方がよかったな、修正しよう」って思うからじゃないのか。言語の作者ですらわからないゴールに本とかで勉強してたどり着けると思うのか。本気である言語をマスターしようと思うのであれば、まずその言語のオフィシャルのドキュメントを全部読み、それから標準ライブラリのコードを全部読み、処理系の実装を全部読み、それから自分で処理系を実装するべきだろう。そこまでやればまあ「この言語はマスターした」と言ってもかまわないだろう。僕はそんなことをしようとは思わない。僕の目標は特定の言語を完全に理解することじゃない。作りたいものがあるから、それを作るために最低限必要なだけの知識が欲しいだけだ。

君の目的は本当にその言語をマスターすることなのか?


なんかホットエントリー化しているようなので自分の書いた本とおすすめのPython本のアフィリエイトを貼っておく。

僕がこの本を書いたときも、だいぶ長いこと「こんな内容でいいんだろうか、もっとよくできるんじゃないだろうか、ごめんなさいって言って出すのをやめた方がいいんじゃないだろうか」という気持ちに悩まされた。本に限らず「もっと理解してから作った方がいい」のは事実だが「ここまで理解すれば十分」というゴールが存在しないのも事実。今の自分でできるものを作って公開して、その行為を通して学んで行くしかないのだと思っている。

ujihisaujihisa 2009/04/13 00:27 プログラミグ

なまえなまえ 2009/04/13 01:47 誤字指摘厨ほんとウザい

nishiohirokazunishiohirokazu 2009/04/13 02:03 よりによってタイトルを誤植していたとは…!

otsuneotsune 2009/04/13 12:23 誤字の指摘は単なるtypo patchなのに、なぜか「国語のお勉強」とか「自尊心を傷つける行為」と捉える人がいるんだなぁ。お受験の影響なのか? ミスをしない人間なんて居ないだろうに。
まぁ麻生首相の漢字うんぬんのニュースを見ると珍しい事ではないのか。

tshimurantshimuran 2009/04/13 12:31 内容に勇気づけられた。さらに「誤字の指摘は単なるtypo patchなのに」心強い、笑。

bgnoribgnori 2009/04/13 12:42 typoを指摘できるって言うことは、そんなに状況がひどく無いともいえるんじゃないか?冗長性万歳。
fortran bugの都市伝説。
http://www-users.cs.york.ac.uk/susan/cyc/p/fbug.htm

otsuneotsune 2009/04/13 19:49 西尾さんのエントリーにツッコミいれるとしたら。
「特定のプログラミング言語とかをマスターしたい」と考えている人はそんなに居なくて。
ホンネは「特定のプログラミング言語とかを習得した……と、他人から思われてチヤホヤされたり尊敬されたい」ってのが多くないかなぁ?
その目的を低コストで達成するために「知ったかぶる」とか「ハッタリをかます」とか「言語開発者の○○さん? ああ、俺の知人だよ」とか強弁するのが最適解になっちゃうよね。

barlogbarlog 2009/04/13 20:46 「ゴールがない」ことはその言語にとって喜ばしいことだろうし、マスターしてる(?)かどうかは第四者以降ではなく然るべき第三者の意見から実体化されるべきが望ましいように思う。
実際、西尾さんのように特定言語を”実装されてる”方の大半からは「マスターしてる」とは見事滅多に耳にしませんしね。
主張に「ハッタリ」を含めることに細心の注意をと!思うけど。正直で謙虚な主張こそ将来的に低コストで色々得られる事実(理想だけどね><)

moridaimoridai 2009/05/30 12:18 >「まだ先がある」という感じが残る
まだ初心者の私にはわからない感覚ですが、プログラミングは学ぶ余地が無限にある、という言葉の意味がなんとなくわかりました。正直、言語をマスターしようと試みてはいるものの、どこがマスターした状態なのかわからないでいました。始めたばかりですがいったいどこまでいけばいいのかな、と感じていました。
>僕の目標は特定の言語を完全に理解することじゃない。作りたいものがあるから、それを作るために最低限必要なだけの知識が欲しいだけだ。
私も自分がプログラミング言語を使って何をしたいのかを中心に学ぶ事にします。じゃないとそもそも学ぶ意味はないんじゃないかと思います。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証