良いプログラマになりたいあなたに
(2008-09-22)
プログラムを書き始めると、どんな風に書くのが良いのか、
色々と戸惑うことがあると思います。
より良くするためにはどうしたら良いだろう? 自分の書き方は正しいだろうか?
そう考えたとき、周りに人がいれば訊くこともできますが、
その人が本当に正しいのかはわかりません。
また、自分一人だったらやっぱり解りません。
世界には色々と沢山のコードが転がっていますが、そのどれが正しいのかも解りません。
そんなときにはこの本です。
他のレビューにもありますが、プログラミングの正道が学べます。
読みやすく、効率的で、美しく、正しいプログラミングコードを学ぶことができます。
プログラマの心得などを知ることができます。
これを読まずに良いプログラマになることはできません。
是非、読みましょう。
C言語の勉強で
(2008-01-05)
C言語の勉強に適した1冊です。
ps.
20年ほど前の話で申し訳ありません。
最初にK&RのC言語の本で、C言語の勉強をしました。
すぐにはC言語でプログラムをうまく書くことはできなかったので、
UNIXのソースコードで勉強するようにしました。
最初はC Beautifierのソースコードを使っていました。
リカーシブコールを使うと単純な構造のプログラムになることがわかりました。
リカーシブコールは、場合によってはスタックオーバフロを招くので、
なんでも使えばいいものではないことをMISRA-Cを勉強して知りました。
本書は、MISRA-Cのような作法と、それ以外の作法を理解する、よい出発点となると思います。
自動車向けのように安全性が必要なシステムでは、メモリの利用量、計算時間が見積もりにくいリカーシブコールを使うことは原則として行わないMISRA-Cのようなプログラミング作法が大切なので、併せて関連書籍を読むとよいと思います。
日本語でもMISRA-C研究会から2冊参考資料がでているようです。
1章だけで値段分の価値あり
(2007-12-17)
第一章を読むだけで、自分のプログラムの書き方が大幅に変わるはずです。
当たり前の事ではあるが、その当たり前ができてない人のなんと多い事か、
と実感する事ができると思います。
「3日前の自分のプログラムは赤の他人が書いた物と思え」
こんなよからぬ格言をどこかしらで聞いた事があります。聞いた時は、「なるほど」
と思っていました。この仕事してる人は、こう考えている人も多いと思います。私もそうでした。
が、この本の第一章を実践するだけで、この言葉は私の頭の中から消えました。
何年前に書いたプログラムであろうが関係なくなるはずです。
将来こういう仕事に就きたい学生、職業エンジニア、どちらの人も読んだ方がいいです。
第二章以降は若干の専門知識を必要とします。
ハッシュの理論など、全く知らない人が読むと難解かもしれません。
著者のブライアン・カーニハンは、この他に「プログラミング言語C」という本を
デニス・リッチーと共著していますが、現在でも教科書として使える非常に有用な
著書を書いている人です。
1章以外は、個別に専門の本を読んだ方がいい気がする
(2007-10-05)
1章は大変参考になると思う。
長くプログラマをやっていると当たり前のことばかりが書いてあるのだが
実はこういったことを書いてある本は割りと少なく、言語の文法ばかりを
独学して、自分はわかった気になって態度の横柄な若者に、いつも言っている
お説教の要点がまとめてある感じなので、若いプログラマーは、文法を覚えたら
この本の1章を読んでおけば、お説教されることが少なく、好調な
社会人生活をスタートできるだろう。
それ以降は、それぞれの内容が広く浅いので、それぞれの分野の専門書を
読むべきだと思う。
非常にいらだたしかったのが、マルコフ連鎖の紹介で、業務を
やっていて、マルコフ連鎖を使うなどということはほとんどなく
興味が持てないのだが、後の章でも、マルコフ連鎖の章を読んでいることが
前提の説明が何度もでてくるので、興味がなくても、読まないと
いけないのである。
こうした本は、章毎に内容が独立して、各サンプルは短いコードで
説明され、必要箇所だけ読んでも理解できるように配慮されるべき
だと思う。
プログラマ必読の書
(2007-07-01)
本書の目的は"まえがき"にあるように、「質の良いコードを開発・維持する」方法を説明する事にある。位置付けとしては「プログラム書法」を時代に即して改変・増補したという所であろう。このため、「書法」時には存在しなかったC++, Javaを例題として取りあげているので、より実践的である。
コーディングのスタイルから始まり、アルゴリズムとデータ構造(Wirthのようだが)の決定、テスト方法、性能評価、移植性までプログラム開発における一連の流れを順を追って説明してあるので、流れに乗りやすい。Kernighanらの強みは、ベル研で多くの仲間と共に実践した結果を基に書いているので、机上の空論とは程遠い事である。
特に大規模プログラムの開発に携わる場合は、何らかの全体的方針が必要であり、本書は良い道標となる筈である。