ランキング参加中です。応援クリックをお願いします。m(_ _)m
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村

人気ブログランキングへ
2014年07月19日

コーディングを支える技術






今回は、

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

紹介します。



去年の今頃、

「なぜ言語設計者はこの文法をつくったのか」

という宣伝文句に興味を惹かれ読んだ一冊です。



プログラミングが好きで、

歴史好きな私には結構 楽しく読めた一冊 でした。



この本のテーマは、裏表紙に書かれていて
本書は、プログラミング言語が持つ各種概念が「なぜ」存在するのかを解説する書籍です。
世の中にはたくさんのプログラミング言語があります。
そしてプログラミングに関する概念も、関数、型、スコープ、クラス、継承など、さまざまなものがあります。
多くの言語で共通して使われる概念もあれば、一部の言語でしか使われない概念もあります。
これらの概念は、なぜ生まれたのでしょうか。

本書のテーマは、その「なぜ」を理解することです。
ということです。

目次は、
第1章:言語を深く効率的に学ぶには
第2章:プログラミング言語を俯瞰する
第3章:文法の誕生
第4章:処理の流れのコントロール
第5章:関数
第6章:エラー処理
第7章:名前とスコープ
第8章:型
第9章:コンテナと文字列
第10章:並行処理
第11章:オブジェクトとクラス
第12章:継承によるコードの再利用
こんな感じで、

これらの各概念を各章で言語の比較や歴史からといった切り口で説明してあり、

とても読みやすかったです。


例えば、

「if文」だとif文が生まれる前のアセンブラとC言語との比較をしながらの説明

「エラー処理」だと「戻り値でのエラー処理」から始まって「例外」が生まれてからその進化を追った説明

といった感じです。



この本は、初心者向けということで、

コードや図を多く使って丁寧に説明しているし、

言語をどのように勉強すればいいかといった心構えや

その進め方がコラムとして書かれていたりして、

私も 『 もっと早くに読んでおきたかったなぁ 』 と思いました。
といっても、私がコード書き始めたころにはまだ出版されてませんでしたが...



ある程度の経験者にはちょっと冗長な説明もありますが、

そういったところはサラッと読み飛ばして、

興味のあるところだけ読むといった読み方もできます。



あと、本の中にも書かれていますが、

コードを書くにあたって、

言語ごとのハウツー的な知識も大事ですが、

今後どんな言語が出てきても応用が利く抽象的な概念を理解するのが

もっと大事だと思いますので、

特に、

コードを書き始めた若い人には、ぜひ読んでほしい一冊です。


amazon楽天books

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB DB PRESS plus)


コーディングを支える技術 〜成り立ちから学ぶプログラミング作法 [ 西尾泰和 ]


よかったら応援クリックをお願いします。m(_ _)m
posted by そらてん at 11:17 | Comment(0) | 読み物 | このブログの読者になる | 更新情報をチェックする
2014年06月28日

世界でもっとも強力な9のアルゴリズム




今回は、

世界でもっとも強力な9のアルゴリズム

紹介します。

今回は、「良いソフト」とはちょっと関係が薄いですが...



アルゴリズムというと、

バブルソートとかクイックソートとかのソートアルゴリズム とか

二分探索とか線型探索とかのサーチアルゴリズム とかの

難しそうな、面白くなさそうな話かと思いましたが、

本書ではそういった小難しい話ではなく、

ネットを支える技術 的な話が、図・比喩を使ってわかりやすく書かれています。


取り上げられているのは、

検索エンジンのインデクシング
 −世界最大の藁山から針を探す

ページランク
 −グーグルを起ち上げたテクノロジー

公開鍵暗号法
 −葉書で機密情報を書き送る

誤り訂正符号
 −自分で誤りを訂正するシステム

パターン認識
 −経験から学ぶ

データ圧縮
 −無から有を生み出す

データベース
 −一貫性の追求

デジタル署名
 −このソフトウェアを本当に書いたのは誰か

決定不能性

となっています。



私は、「検索エンジンページランクってどうなってるの?」

という好奇心から本書を読んだのですが、

検索エンジンの歴史から、

グーグルが世界を変えたページランクとは?


といったことがわかったような気がします。



また、私自身、昔、デジタルビデオカメラの仕事をしてたことがあるので、

データ圧縮誤り訂正符号 の話も興味深く読めました。



あと、最後の決定不能性(アルゴリズムではないような気がしますが...) の章では、
ほかのプログラムを分析し、その中にプログラムをクラッシュさせるようなバグをすべて見つけ出すプログラムは書けない
ということを長々と数学的に証明したりしていて、変わった人だなーと思ったりもしました。



仕事で使えるほど技術的に突っ込んだ内容は少ないですが、

各アルゴリズム(というか技術)を知る

取っ掛かりには良い本 だと思います。



amazon楽天books

世界でもっとも強力な9のアルゴリズム


世界でもっとも強力な9のアルゴリズム [ ジョン・マコーミック ]


よかったら応援クリックをお願いします。m(_ _)m
posted by そらてん at 16:18 | Comment(0) | 読み物 | このブログの読者になる | 更新情報をチェックする
2014年05月28日

人月の神話

今回は、定番中の定番の

人月の神話

を紹介します。


ブルックスの法則

銀の弾はない

で有名ですね。



この本は、ソフト責任者とチーム編成でもめたときにその人と勝負するために読んだ本の中の一つです。

私はひとつ前の新装版(赤と白の表紙)を読みました。


この中で「そうそう」と納得したのは「外科手術チーム」の章です。

うまくいっていないチームにはリーダー的な人(執刀医)がいない場合が多いですね。



あと、「パイロットシステム」も「そうそう」でした。

でも、一回作ったら出来が悪くても、それにしがみつく技術者は多いですが。。。

それは工数的に厳しいからかな?

でも、後々のことを考えると勇気をもって早めに作り直すほうがよい場合が多いような気がします。


定番なのでソフト開発者であれば一読してもらいたい一冊です。




amazon

人月の神話【新装版】




楽天ブックス

人月の神話 [ フレデリック・フィリップス・ブルックス ]




よかったら応援クリックをお願いします。m(_ _)m
posted by そらてん at 20:42 | Comment(0) | 読み物 | このブログの読者になる | 更新情報をチェックする
2014年05月24日

Coders at Work

今回は、
Coders at Work プログラミングの技をめぐる探求
を紹介します。


世界的に有名なコーダー15人に対してのインタビュー集です。
(私はほとんどの人を知りませんでしたが。。。)
良いコードを書くために役立つかなと思い読んでみました。


15人がどんなことした人達かというのは、こちらで

ちなみに、googleで名前検索したヒット件数は、サイモン・ペイトン・ジョーンズさんが一番でした。
Haskellの設計、実装した人のようです。Haskellは知ってましたが、普通その設計者までは知りませんよね。


著者がこの人たちに共通すると感じたのは
・読めるコードを書くことが重要。
・最も難しいバグは並行プログラミングにおけるバグ。
・ソフトウェアを書くためのより良い方法を今も探し続けている。
・マルチコアCPUによってソフトウェアを書く方法に大きな変化が起きると考えている。
とのことでした。

・読めるコードを書くことが重要。
 先日紹介したリーダブルコードにもありましたが、やはり何事も相手の身になってということですね。
 でも、どのくらいのスキルの人を想定するかが悩ましいところですが。。。

・最も難しいバグは並行プログラミングにおけるバグ。
 あと、メモリーリークしても中途半端に動く場合も厄介ですね。
 いまどきは言語側でメモリーリークしにくいようになってますけど。。。

・ソフトウェアを書くためのより良い方法を今も探し続けている。
 続けることって大事です。私もがんばります。

・マルチコアCPUによってソフトウェアを書く方法に大きな変化が起きると考えている。
 コード側では意識しない方法でよろしくお願いします。 <- めっちゃ人任せ(笑)



結構文字数のある本で、読むのが大変なので

有名なコーダーの略歴や考えに興味のある方

は読んでみてはいかがでしょうか。



あと、私が印象に残っているのは、
ほとんどの人が
 デバッグする時のツールはPrint文
と言ってたところです。
秘密兵器的なツールがあるのかと思いきや、やはりPrint文が基本なんですね。




amazon

Coders at Work プログラミングの技をめぐる探求

新品価格
¥3,024から
(2014/5/24 11:44時点)




楽天ブックス

Coders at Workプログラミングの技をめぐる探求 [ ピーター・セイベル ]

価格:3,024円
(2014/5/24 11:49時点)
感想(2件)


よかったら応援クリックをお願いします。m(_ _)m
posted by そらてん at 13:33 | Comment(0) | 読み物 | このブログの読者になる | 更新情報をチェックする
2014年05月21日

アジャイルサムライ

3年くらい前に「今回のプロジェクトはアジャイルしてみよっか」ということになったのですが、実際にどのように進めたらいいのかわからなかったときに読んだ本です。

結果的にこの本は「当たり」でした。
アジャイルなソフトウェア開発の全体像から実際の進め方までが親しみやすく説明されていました。


その中で私のお気に入りは、

 「11.3 チームの意思を明確にする」の中の
 「チームの約束」と「チームが大事にすること」を目に見える形にしておくといい。

というなかで「チームが大事にすること」のサンプルです。

チームが大事にすること
・手を抜かない
・「割れ窓」を放置しない
・異論は認める
・真実と向き合う
・勝手な想定をしないで確認する
・疑わしいと思ったらテストを書く
・フィードバックを求める
・我を張らない

どれもわかっていてもなかなか出来ないですが、常に意識してやるのが大事かなと思います。


アジャイルがどんなものか一通り知りたい人の最初の一歩としての良書だと思います。





amazon

アジャイルサムライ−達人開発者への道−

新品価格
¥2,808から
(2014/5/21 09:08時点)




楽天ブックス

アジャイルサムライ [ ジョナサン・ラスマセン ]

価格:2,808円
(2014/5/21 09:09時点)
感想(10件)


よかったら応援クリックをお願いします。m(_ _)m
タグ:アジャイル
posted by そらてん at 09:10 | Comment(0) | 読み物 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。