書籍の読み方とソースコードの読み方の共通性
2010.08.31
※この記事を読むのに必要な時間の目安:4分11秒
仕事と育児の手伝いの両立をしながらも、時間を捻出して本を読んだり、3年以上前に書いた「生きた」情報を得ることの大切さというエントリで書いたように、今後求められそうな技術については勉強会に行ったり、それ以外にも自分でちょっとしたプログラムを朝の時間使って書いてます。
3年前と比べて自分の中で大きく成長したなぁーと最近実感するようになったのは、他人が書いたソースコードを「まずとりあえず読んでみよう」と思えるようになったことかと思います。
こういう気持ちが持てるようになった直接のキッカケというのは正直なところ自分でもわかりません。ただ1つ関連しそうなことをあげると、本の読み方の変化にありそうな気がします。
自分の本の読み方
自分の本の読み方の変化について簡単に触れておくと、読書の習慣が身についた2,3年前の頃は目次も一通りは眺めていたものの、あまり意識しないで浸らす先頭から順番に読み進めていく読み方をしていました。
ある程度本を読んで、一定の蓄積が出来てくると、次に本を読んでいても
「あれ、これってどこかで似たことが書かれていたなぁ」
ということが出てくる用になりました。
今まであまり知らないジャンルについて勉強したいという気持ちがあるのと、最近は以前ほど時間的な余裕がないことも加わって、最近では何か本を読むときに以下をとても意識して読むことが完全に習慣づきました
- タイトル&副題から、著者がどんなテーマを持ってこの本を書いているのか推測する
- 著者プロフィールを確認
- 目次を少なくとも1回以上は読んだ上で、全体の話の流れはもちろん、どのあたりの章で一番訴えたいことを書いているか推測
これを意識するようになって、まずは全体像をおおまかに把握するというのが事前に出来るようになったかと思います。
ソースコードの読み方
特定の言語(Ruby、JavaScript)に絞ってこれまで勉強してきているのですが、他人が書いたソースコードを読むのはプログラミングスキルの向上の1つの手段だというのは頭では分かっていてもどうにも実行できないというのが以前の自分にはありました。
ところが、最近では自分のスキルで全部読めるとはもちろん思ってないけど、気になったものがあった場合に「まず読んでみよう」というのが自然な行動として出来るようになってきましたが、本を読む際に目次を最初に眺めるというような、"あたりを付ける"行動が自分なりに身についたからなのかもしれません。 具体的には
- 読みたいと思ったライブラリのディレクトリ構造を見て自分なりに全体像を把握(といっても大抵似た感じの構成になりそうですが・・)
- Rubyの場合だとspecというディレクトリ、JavaScriptの場合は(もしあれば)testディレクトリを最初にチェック
- それぞれのクラスのメソッド名をチェック
- そのライブラリの鍵となりそうな個所がどのあたりかを自分なりに推測
一時期JavaScriptのprototype.jsを読んでいた時期があったのですが、最近とある事情で再び読んだのですが、以前に比べてより全体像を把握しやすくなったのと、Enumerableオブジェクトのそれぞれのメソッドも以前よりも理解出来るようになった(と自分では思っています)
まとめ
いきなり、細かいところを理解しようとせず、まずは大枠をつかみ、自分なりに推測をしておくという行動は、本を読む場合もですが、ソースコードを読む場合にも応用できそうな気がします。
自分でサーバ立ててそこでブログ書こうと思って色々情報収集する中でRuby+Sinatraで書かれていて全体を把握しやすそうなのと、はてな記法っぽい書き方も出来るnestaというCMSをgithubで見つけたので、しばらくはこのnestaのソースを読んでこれを使おうかどうか中長期的に勉強していこうと思っています。
※時間とお金に余裕があったら↓この本でより本格的に勉強したいなぁー
毎日コミュニケーションズ
売り上げランキング: 66048

コードリーディングのイロハ&必要な知識・技術の全装備
Code completeと併せて読むとよい
着眼点は良いと思う
意外なほどに教科書的な内容
ホップ・ステップ・ジャンプ投稿者 : 小山田 浩 | 投稿日時 : 2010.08.31 08:05
あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。





