Entry

身体知としてのプログラミング

2008年12月29日

もうどこかで言われているかもしれない,というか,実際に似たようなことを言っている文章を読んだ覚えはあるのだけれども,ここら辺は書いておいた方がよさそうなので書いておく。というのも,ちょっと前に,若いプログラマさんと話していて,いろいろ思うところがあったから。

あたしゃプログラミングっつのは,知的な部分もあるんだろうけれど,基本的にかなり身体論的な要素の占める割合が大きい営みなんじゃないかと思っていたりします。つまり,「体で覚える要素が多くを占める」ということです。

それはつまり,「練習して上手くなる」モノであり,「知らないことは真似をして覚える」モノであるということでもある。英語の練習にしてもそうだけれど,この手のものは,文法書をゴリゴリ読むより,実際に使って練習した方が効果が高い。もちろん,基本的な文法事項やアルゴリズムに関する知識は,身に付けていないとお話にならないけれども,それ以降は,現に実装されたソースを読んだり,自分で書いたりする方が効果が高いと思うわけです。

先日話した若いプログラマさんは,いろいろとモノを知っていて,実装技術とかデザインパターンなんかにも精通している人でした。んなもんで,話そのものははずんだ。はずんだんですけど,彼,知っている割にモノを作れないことが明らかに。実際,本人もそのことを感じているらしく,「どうすれば実際にモノを作れるようになるのか?」とかいったマジ話に発展してしまったのでした。こゆ方は取り立てて珍しくもないので,あたしゃ最初それほど深刻に考えていなかったんですけれど,本人がすこぶる悩んでいるようだったので,原因と対策を考えてみたというわけです。

今時は,このサイトをも含めてプログラミングを扱った情報が大量に出回っているもんで,あたしの頃のように,本屋で『入門C言語』(アスキー)を何時間も立ち読みするような環境ではなくなっています。知識的な要素を取り入れる環境は用意されているわけで,学習の高速道路(以下『ウェブ進化論』を参照)は開けている。

ウェブ進化論 本当の大変化はこれから始まる (ちくま新書)
梅田 望夫
筑摩書房
売り上げランキング: 922
おすすめ度の平均: 4.5
5 これからITの世界に飛び込む人にオススメ!!
5 実証! ネット世界のもうひとつの可能性・・・
5 常識を学ぶ
4 ウェブ進化についての語り口はオプティミズム(楽天主義)を貫いている。
4 ビジネスの将来の一片を示唆する

一方,某氏について問題だと思うのはそこから先で,知った言葉を実際に使うこと,つまり「その情報を使った練習の量」が不足していると思うとこがあるんです。もちろん,若い人とベテランさんを比べたら,コーディングしてきた練習量なり実践量が物理的に異なるわけで,ある意味仕方がないと思うんですけどね。それにしても,知っただけで満足しちゃってるところがあるんじゃないかなー……とか思うところもある。

あたしは,実装周りの話を,「勉強する」ではなく「練習する」と意識的に言うようにしているんですけれど,それは結局のところ,知ってるだけじゃダメで,作れてナンボみたいなところがあると実感しているからです。たしかに,プログラミングそのものは,数理的で決まった理屈に基づいて構成されるモノだし,特定のアルゴリズムを実装する場合にも,数理的なバックグラウンドが欠かせません。しかし,それを「今まさに実装する人間」はそういうもんじゃない。「実践における実装手段の手数」は,知ってるだけで身に付くもんじゃないし,覚えてゴニョゴニョとかいった話でもないと思うわけ。野球の素振りよろしく,実践あるのみ。

んなもんで,某氏には,持ってるプログラミング本にあるソースコードを,全部丸写ししてみたらどうだろう,とか言ってみました。丸写しなんてバカバカしいと思う向きもいるかもしれないけれど,自分でモノを作れない以上,そこら辺からリハビリするしかないと思うんです。実際,あたしも知らないプログラミング言語を使うときは,入門本のほとんど全部のコードを丸写しして,動作を確かめながら読んでいたりします。ま,あたしがやってたらどうだってことでもないんですが。幸い,彼が挙げたのは「ペゾルド本」だったので,まず間違いはないはず(こゆとこの選択がちゃんとしているのはすごいと思う)。

プログラミングWindows第5版〈上〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series)
チャールズ ペゾルド
アスキー
売り上げランキング: 51985
おすすめ度の平均: 4.0
5 初版で勉強しました。
4 詳しいが、少しバランスが!
5 硬派なWindowsプログラマーを志すならば
4 定番中の定番
2 Windowsのいろいろ

今時のプログラミング環境って,知識的な要素はいくらでも手に入る環境なわけで,結局最後はこういった泥臭いとこを地道にこなしているかで決まるとこがあるんじゃないかと思ったりします。ソフトウェアのアーキテクチャが複雑になっているので,練習量もそれなりに重ねないと,なかなかモノを作れるまでには至らない。もちろん,天性のアレを持ってるらしい人は別格なんですが。

最近,なんだかここら辺の説教じみた話が多くなってる気がする。少し控えます。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN