ITエンジニア本大賞2016で技術書部門の大賞を受賞!数学パズルを解いてアルゴリズムを学べる本

1830viewsmasuipeomasuipeo

このエントリーをはてなブックマークに追加
プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問

ITエンジニア本大賞2016で技術書部門の大賞を受賞!

「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞(ITエンジニア本大賞)2016」において、技術書部門の大賞を受賞した本です。
ITエンジニアのみなさんによるWeb投票に加え、特に投票が多かった本に対してプレゼン大会と最終投票が行われました。
https://www.shoeisha.co.jp/campaign/award/result

5000人以上が挑戦した人気シリーズの問題

本書に収録されている問題の多くはCodeIQにて「今週のアルゴリズム」として毎週出題していた内容です。
(CodeIQ(https://codeiq.jp/)はITエンジニアのための実務スキル評価サービスです。)

問題に対して、挑戦者がその問題を解くソースコードを提出し、フィードバックを受ける、という形式で1年以上に渡って毎週実施していました。
毎週100人程度の挑戦者があり、1年強の期間に5,000人以上が挑戦、5,700本を超えるソースコードが提出されました。

各問題は単純な計算では解けませんが、プログラムを作れば実行にはあまり時間がかからないように設定しています。
また、身近な話題で興味を持ちやすいようなテーマを設定しています。

対象の読者

表紙にある「パズルを解くコードをあなたは書けるか?」というメッセージにあるように、
プログラミングを使ってパズルを解くことを目標にしています。
このため、最低限のプログラミング知識は必要です。

  • 基本的なアルゴリズムであるソートや探索を理解しているが、もっとスキルアップしたい。
  • 高速なプログラムを書くうえでメモ化や動的計画法について勉強したい。
といった人にオススメの一冊です。

時代が変わっても必要なアルゴリズムの重要性

コンピュータを取り巻く環境は大きく変わっていますが、ソフトウェアを開発するときにアルゴリズムが重要であることは変わりません。
特に、データ構造やアルゴリズムを学ぶことは重要です。
単純に実装すると処理に時間がかかるものでも、視点を変えて工夫することで100倍、1000倍速くなることも珍しくありません。
この本に掲載されているパズルを解くことで、高速に実行できるアルゴリズムを実装できるようになることを目標にしています。

本書の構成

全部で70問の問題を「問題ページ」と「解説ページ」で構成しています。
解説ページでは、問題を解くためのソースコードをすべて掲載していますので、実際に動かして結果を確認できます。
なお、ソースコードは出版社のWebサイトからダウンロードすることも可能です。

また、解説は3人のキャラクターによる会話形式で進められるため、楽しみながら読み進めることもできます。
入門編→初級編→中級編→上級編、というように徐々に難しくなっていくため、解き進めることで自分のスキルを知ることもできます。
多くのソースコードはRubyで記述されていますが、他の言語で実装して比較してみるのも良いでしょう。

関連まとめ

本のまとめカテゴリー


コメントを書く