CPUの創りかた
半年ほど前に買ったままずっと積んであった「CPUの創りかた」という本を実験*1のために読んでいる。
- 作者: 渡波郁
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2003/10/01
- メディア: 単行本(ソフトカバー)
- 購入: 35人 クリック: 445回
- この商品を含むブログ (193件) を見る
アレな表紙にも関わらず、非常に良い本だ。知っていることが多いので、サクサク読んでいけるが、できればこれを専門の勉強が始まる前に読んでおきたかった。技術書としては、論理回路の基礎からCPUのコア、そしてある意味泥臭い回路の話まで、もりだくさんの内容だし、何よりまず最初に創りたいものがあって、それを実現するのにどうすればいいか、という順番で進んでいくため、もしそういった話を知らない人でも悩むことなく読んでいけると思う。この本を読んだところで、近代的なCPUの処理、パイプラインやらキャッシュについて理解が進むという訳でもないが、とりあえず導入としては優れた本だと思う。何よりも、手を動かして電子工作やってみたいな、という気分にさせてくれるという点は素晴らしい。時間ができたらやってみようかな。
*1:という名のプチ卒論
プログラミング初心者レベルから抜けられない理由
プログラミングが苦手だという人がいる。その人は、決して理解力が劣っているわけではない。むしろ、ループや条件分岐、関数の作り方といった、プログラミング言語の文法に関しては、普通の人より速く理解できたりする。入門書の章末に載っていような簡単な練習問題に対してはちゃんと正解を出すことができる。しかし、ある程度の規模があって複雑な処理をするプログラムを書こうとすると、どこから手を付けていいのか分からず、とたんに手が止まってしまう。プログラミングの上手な友人に聞いてみると、「問題を分割すればいいんだよ」と言われるが、じゃあその「分割」とは一体何を指しているのかが分からない。
お気付きだと思うが、これはちょっと前までの自分の状態だった。恥ずかしながら、情報系の学科に所属しているのにもかかわらず、僕はつい最近までプログラミングというものに苦手意識を持っていた。最近になって、ようやくその苦手意識が薄れてきて、以前の自分がどんなところでつまづいていたのかが分かりかけてきたので、まとめておくことにする。それは
「自分が何を分かっていないのかが分かっていない」
ということだ。言い換えると、「問題そのもの」と「その問題を解く手段」を混同しているということ。もう少し言うなら、
- 文法
- ライブラリの使い方
- アルゴリズム
- 問題そのもの
- 自分のやりたいこと
の5つのうち、1~3までが「問題を解く手段」で残り2つが「問題そのもの」だ。特に初心者のうちはこれらがごちゃごちゃに入りくんでいて、混乱してしまいがち。また、3番目くらいまでの情報はネットにも溢れているけど、4、5番目あたりをどう整理するかはその場その場で考えるしかない。問題そのものが分かっていないのか、あるいは問題を解く手法(ライブラリの使い方であったり、アルゴリズムであったり)を知らないだけなのか、自分の経験を振りかえってみても、また周りのプログラミングが苦手という人を見ても、これをきっちりと分けることができていないように思う。プログラミングがどうも苦手だ、という人はこれを常に意識して問題を考えるようにすると、上達速度が変わるだろう。
以上、初心者++くらいの人間の戯言でした。