2013年12月6日金曜日

コーディングを支える技術 成り立ちから学ぶプログラミング作法

コーディングを支える技術 成り立ちから学ぶプログラミング作法 ※この記事はCA14 Advent Calendar 2013の6日目の記事です。


周りがみんな為になる本を紹介しててビビりました。
普通に漫画か僕が大好きなマジシャンのマジックの本を紹介しようと思ってましたが、急遽、方向修正。笑
教授に面白いよーと勧められて読んだ本が素敵だったので紹介します!




どんな本?


某未踏やってたころに一度お会いしたことのある西尾さんの本です。
プログラミングをする際に使用する言語というものは多々ありますよね。 COBOL, CLU, C, C++, C#, Java, JS, Objective-C, PL/I, Python, Ruby・・・など書ききれないです。
その中で過去のプログラミングにおいて、設計者は何を問題点と考え、新しい言語を作ったのか。その歴史、問題点、特徴などから現在普及している言語の特徴や未解決の問題などが紹介されています。
第1章:言語を深く効率的に学ぶには
第2章:プログラミング言語を俯瞰する
第3章:文法の誕生
第4章:処理の流れのコントロール
第5章:関数
第6章:エラー処理
第7章:名前とスコープ
第8章:型
第9章:コンテナと文字列
第10章:並行処理
第11章:オブジェクトとクラス
第12章:継承によるコードの再利用
目次は↑のようになっています。
まず、4章〜12章まではがっつりな内容となっています。 しかも、著者が話したいことをただ書くのではなく、実際のコードを見ながら過去の言語と比較していくので読者が置いていかれずに読み進めることができます。
つまり、どうやってコーディングするかとかではなく、概念を考察していく本です。

ぼくのツボ


if文がない時代をアセンブリ言語から攻めるとか、エラー処理の歴史とかとってもたのしい章がたくさんあるんですけど、この本の個人的なツボは・・・
それはッ、ところどころに散りばめられたコラムーッ!! コラムのタイトルだけ抜粋すると、
理解をするためにまずアウトプット
何を学べばよいかわからない理由
具体的な知識と抽象的な知識
噛み砕く
必要なところからかじる
おおまかにつかんで徐々に詳細化する
(一部除く)
などです。
理解
ある事を勉強して、何をもって「理解できた」といえるのか?
正しいかどうかをアウトプットして第三者に確認してもらう。
学び
ひと通り学ぶことは不可能な場合が多い。何をゴールにするにするのか? 最初から完璧なものをゴールにするのか?
歩き出してから、自分ができること、学ぶべきことが見えてくる。
この繰り返しが自分の力になる
具体的と抽象的
応用範囲の限定された具体的なハウツーはどんどん価値を失う。
抽象的な概念だけを学んでもだめ。
抽象的な概念を具体的な説明に落とせることが重要。
必要なところからかじる
例えば、本やドキュメントの内容のすべてが同程度に必要な訳ではない。
重要なところをつかむ必要がある。
重要なところを探す
目次を見て構成を理解する。小見出しや強調、図表などをチェックする。
自分の目的にあった重要なところを探す。
写経
明確な「やりたいこと」「調べたいもの」がなく「おおまかに読む」場合、情報が頭に入りにくい。 そこで、知識の足がかりを作るために教科書を写経する。知識のコピーを行ってから、その足がかりを元に勉強してく。
上記のことは、プログラミングだけではなく様々なことに当てはまるのではないかと思います。


以上、「コーディングを支える技術 成り立ちから学ぶプログラミング作法」の紹介でしたー! コラムばっかり書きましたが、普通に全部面白いので、良かったら買ってみてください!!ヽ(=´▽`=)ノ
さて、明日は、szk氏か・・・期待!w

0 件のコメント:

コメントを投稿