【連載の概要】
 「どの本をどんな順番で読んでいけばいいのか」---。書店に所狭しと並んでいる本を見て,途方に暮れたことがある方も多いのではないでしょうか。

 この特集では,「JavaでWebアプリケーションを作りたい」「C/C++でゲームや高度なWindowsアプリケーションを作りたい」「分析/設計に強くなりたい」といった目的別に,“学習方法”を示しながらお薦めの書籍を紹介していきます。あわせて,著名な開発者の方々に,どんな本を読んで勉強したのかも語っていただきます。初心者の方はもちろん,ある程度の経験を持つ方も,自分のプログラミング・レベルと照らし合わせることで,きっと次に読むべき本が見つかるはずです。

  • Part1 プログラミングの基礎を固める(1)

  •   ・C言語
        「プログラミング言語 C 第二版」
        「新版 明解C言語 入門編」
        「Cプログラミング専門課程」
      ・C++
        「プログラミング言語C++第3版」
        「新装版 CプログラマのためのC++入門」
        「Effective C++ 改訂2版」
        「More Effective C++」
        「Exceptional C++」
        「Modern C++ Design」
      ・Java
        「プログラミング言語Java 第3版」
        「改訂版Java言語プログラミングレッスン」
        「Effective Java」
      ・C#/Visual Basic.NET
        「プログラミングC#」
        「ステップバイステップで学ぶMicrosoft Visual Basic .NET実践講座 Vol.1/2」
        「プログラミングMicrosoft Visual Basic .NET Vol.1/2」

  • Part1 プログラミングの基礎を固める(2)

  •   ・APIやクラスライブラリを学ぶ
        「プログラミングWindows第5版」
        「プログラミングMicrosoft Visual C++ .NET Vol.1/2」
      ・.NETを学ぶ
        「C#によるプログラミングMicrosoft Windows」
        「プログラミング Microsoft .NET」

  • Part1 プログラミングの基礎を固める(3)

  •   ・データ構造とアルゴリズムを学ぶ
        「定本 Cプログラマのためのアルゴリズムとデータ構造」
        「アルゴリズムC++」
        「C言語による最新アルゴリズム事典」
        「The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版」

  • Part1 プログラミングの基礎を固める(4)

  •   ・基礎知識や作法を学ぶ
        「プログラムはなぜ動くのか」
        「OSの基礎と応用」
        「オペレーティングシステム第2版」
        「コンピュータの構成と設計第2版」
        「プログラミング作法」
        「コードコンプリート」

  • 私はこんな本を読んで勉強しましたVol.1 流行に惑わされずに基本を身に付けよう

  •     「コンサルタントの秘密」
        「プログラム設計の着想」
        「プログラマのうちあけ話」
        「珠玉のプログラミング」
        「コンパイラ?原理・技法・ツール」
        「コンパイラの構成と最適化」
        「OSの基礎と応用」
        「TCP/IPによるネットワーク構築 Vol.I Vol.III」
        「増補改訂版Java言語で学ぶデザインパターン入門」
        「計算機プログラムの構造と解釈」
        「プログラミング言語SCHEME」

        「ANSI Common Lisp スタンダードテキスト」
  • Part2 JavaでWebアプリケーションを作る(1)

  •   ・まずは道しるべとなる本を読もう
        「EJB+J2EE入門―JBossとStrutsで作るWebアプリケーション」
        「標準J2EEテクノロジー 2 基礎から学ぶJSP/サーブレット」
        「明解JSP&Servletプログラミング入門」
        「コア・サーブレット&JSP」
        「モア・サーブレット&JSP」

  • Part2 JavaでWebアプリケーションを作る(2)

  •   ・通信プロトコル/HTML/JavaScriptケータイの知識も必要
        「Webプロトコル詳解」
        「HTML&CSSマスターブック」
        「HTML&XHTML 第5版」
        「JavaScript 第3版」
        「携帯端末用Web制作バイブル」
        「Jakartaプロジェクト カンタンStruts1.1 改訂版」
        「Struts イン アクション」
        「JSFによるWebアプリケーション開発」

  • Part2 JavaでWebアプリケーションを作る(3)

  •   ・開発/実行環境についての知識も身に付けておこう
        「Jakarta Tomcatエキスパートガイド」
        「JBoss入門 オープンソース Java・EJB」
        「EclipseによるJavaアプリケーション開発」
      ・データベースを扱うにはSQLとJDBCの使い方を覚える
        「現場で使えるSQL」
        「Oracle+Javaアプリケーション開発」
        「実践JDBC」

  • Part2 JavaでWebアプリケーションを作る(4)

  •   ・EJBは最初に全体像をつかんでおこう
        「J2EEプログラマのためのEJBパーフェクトガイド」
        「標準J2EEテクノロジー 1 基礎から学ぶEJB」
      ・J2EEパターンを覚えれば設計も怖くない
        「J2EEパターン」
        「EJBアンチパターン」

  • Part3 C/C++で高度なWindowsアプリケーションを作る(1)

  •   ・OSとしてのWindowsを理解する
        「Advanced Windows 改訂第4版」
        「プログラミング Microsoft.NET Framework」
        「アーキテクチャ徹底解説 Microsoft Windows2000」
        「Windows XPデバイスドライバプログラミング」
        「Windows XPフィルタドライバプログラミング」
      ・CPUについて詳しく学ぶ
        「はじめて読むPentiumマシン語入門編」
        「はじめて読む486」

  • Part3 C/C++で高度なWindowsアプリケーションを作る(2)

  •   ・様々な分野の知識を身に付ける
        「Win32/C++マルチスレッド プログラミング詳説」
        「コンパイラI/II 原理・技法・ツール」
        「コンパイラ」
        「文字コード「超」研究」
        「CJKV 日中韓越情報処理」
        「LHAとZIP 圧縮アルゴリズム×プログラミング入門」
        「暗号技術入門」
        「暗号技術大全」

  • Part3 C/C++で高度なWindowsアプリケーションを作る(3)

  •   ・ゲーム・プログラミングにはDirectXとアルゴリズムの知識が必要
        「DirectX9 プログラミングガイド」
        「リバーシのアルゴリズム C++&Java対応」
        「シューティングゲーム アルゴリズム マニアックス」
        「GAME PROGRAMMING GEMS」
        「GAME PROGRAMMING GEMS2」
      ・テクニックや方法論についての本も読もう
        「セキュアプログラミング--失敗から学ぶ設計・実装・運用・管理」
        「.NET&Windowsプログラマのためのデバッグテクニック徹底解説」

  • Part4 分析/設計のエキスパートになる(1)

  •   ・オブジェクト指向の真実を知る
        「オブジェクト指向でなぜつくるのか 知っておきたいプログラミング、UML、設計の基礎知識」
        「実践UML 第2版 パターンによる統一プロセスガイド」
        「アジャイルソフトウェア開発の奥義 原則・デザインパターン・プラクティス完全統合」
      ・開発の歴史を知れば未来が見える
        「ソフトウェアの複合/構造化設計」
        「構造化分析とシステム仕様」
        「オブジェクト指向入門」
        「人月の神話--狼人間を撃つ銀の弾はない」
      ・分析を学ぶなら,まねることからはじめよう
        「Javaエンタープライズ・コンポーネント カラーUMLによるJavaモデリング」
        「<業務別>データベース設計のためのデータモデリング入門」
        「生産管理・原価管理システムのためのデータモデリング」

  • Part4 分析/設計のエキスパートになる(2)

  •   ・設計はパターンから勉強してみよう
        「オブジェクト指向における再利用のためのデザインパターン 改訂版」
        「ソフトウェアアーキテクチャ ソフトウェア開発のためのパターン体系」
        「プログラムデザインのためのパターン言語」
        「マルチパラダイムデザイン」
      ・開発プロセスを学んで開発の手順を知る
        「入門 統一プロセス」
        「XP エクストリーム・プログラミング入門」
        「リーンソフトウエア開発 アジャイル開発を実践する22の方法」
        「アジャイルと規律 ソフトウエア開発を成功させる2つの鍵のバランス」
        「初めてのアジャイル開発 スクラム、XP、UP、Evoで学ぶ反復型開発の進め方」
        「ピープルウエア 第2版 ヤル気こそプロジェクト成功の鍵」

  • Part4 分析/設計のエキスパートになる(3)

  •   ・問題を発見する力を養おう
        「ライト、ついてますか―問題発見の人間学―」
        「コンサルタントの秘密―技術アドバイスの人間学」
        「コンサルタントの道具箱 勇気と自信がもてる16の秘密」
        「ソフトウエア開発 55の真実と10のウソ」
        「熊とワルツを リスクを愉しむプロジェクト管理」

  • 私はこんな本を読んで勉強しましたVol.2 Rubyを作るのに役立った本

  •     「コンパイラ」
        「Cコンパイラ設計 yacc/lexの応用」
        「yacc/lex--プログラムジェネレータ on UNIX」
        「Garbage Collection」
        「オブジェクト指向入門」
        「COMMON LISP 第2版」
        「プログラミングPerl」
        「達人プログラマー」
        「リファクタリング」

    ■変更履歴
    文中のURLが間違っていました。お詫びして訂正します。本文は修正済みです。 [2007/07/02 18:25]