Akio's Log

ソフトウェア開発、プロジェクトマネジメント、プログラミング、ランニングなどなど

新人/若手エンジニアに読んでほしい推薦書籍・必読書30冊

はじめに

新入社員研修後、入社3年目くらいまでの若手ITエンジニア(SE、プログラマなどなど)をターゲットにした、お勧めの本を選んでみました。プログラマ、SE向けの推薦書籍集です。

定番書から新しめの本まで、幅広いジャンルから選んでみましたので参考にしていただければ幸いです。

背景

うちの会社は、地方都市の中小規模の受託メインのソフト屋さんです。
新入社員のレベルもそんなに高くなく、学生時代に受業でCやJavaを少し触った程度の人が多数派の会社です。


さて、多くの会社では、4月〜6月までの3ヶ月で新入社員研修を実施し、7月から現場に配属されると思います。もちろん、研修日数が0〜数日のところもあれば、半年、1年という会社もあると思いますが、まあ自分の会社を想定して書いてます。

うちの会社の場合、研修期間中は新人研修担当者を中心に、けっこう丁寧な指導を実施しているので、新人達の成長度合に、あまり差が出る事はありません。毎年、それなりの成果が出ていると思ってます。

研修後、いよいよそれぞれの部署/プロジェクトに配属になり、そこで経験する仕事の内容によって、成長のスピードに大きな差が見られるようになります。うちは受託メインの会社なのですが、バリバリ開発をやるプロジェクトもあれば、テストだけひたすらやる仕事もあるし、プロジェクト管理のサポートだけの仕事もあります。なるべく若手エンジニアには、開発経験を積ませて、コードをガリガリ書いて、技術力を上げてもらいたいのですが、プロジェクトの受注状況もあってかなかなか都合の良いプロジェクトにアサインできないんです。なので、数年経ってみると、入社当初は同じくらいのレベルだったのに、レベル差がだいぶ開いてしまう場合も多々あります。(もちろん、本人の努力、上司/先輩の指導の影響も大きいのですが。)

そこで、どうやってそのレベル差を埋められるのかな、とあれこれ考えてましたが、経験不足はとにかく知識でカバーするしかないと常日頃考えているので、彼らにも本をたくさん読んでもらおうじゃないか、という事に落ち着きました。

しかし、本を読め読め、と言ったところで、彼らには何から読みはじめればいいのか、どんな事を勉強すれば良いのかが、よくわからないみたいなんですよ。


という事で、お勧め書籍のリストをまとめてみた次第です。


対象は、新人研修後〜だいたい入社3年目くらいの若手エンジニアを想定してますが、もちろんそれ以上の人にも読んでもらいたい本ばかりです。

だいたいは自分で読んだ本ですが、立ち読み/借り読みの本や、未読の本も多少混ざってます。他の社員やウェブ上での書評なども参考にしてみました。

各カテゴリで6冊ずつ、計30冊。年に10冊、3年間で30冊。こんなもんでいかがでしょうか?

前堤

  • 新人研修ではC言語基礎を習得済みなので除外
  • ビジネスマナーや一般常識、電話応対も、研修受講済みの前堤
  • 各言語や固有の知識は各プロジェクトごとに

プログラミングスキル

定本 Cプログラマのためのアルゴリズムとデータ構造 (SOFTBANK BOOKS)

定本 Cプログラマのためのアルゴリズムとデータ構造 (SOFTBANK BOOKS)

研修ではC言語の文法をメインで学ぶので、その次のステップとしてアルゴリズムを勉強してもらいます。定番の本です。
プログラミング作法

プログラミング作法

同じく、C言語の基礎を終えてから読んで欲しい本。実践的なコードを書くための知識が得られます。Linux/UNIX系のOSの知識を学びつつ、システムコールの使い方やネットワークプログラミングの基礎が学べます。まさに新人向けの1冊。同じく。UNIX系のプログラミング本。UNIXコマンドのソースなどを通して、アルゴリズム・データ構造を含めた実践的なプログラミングが学べます。
Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)

Javaをやるなら、コレを読みましょう。「Javaの格言」もお勧めです。
Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

C++も同じく、このシリーズがお勧めです。

コンピュータの仕組み(ハードウェア、ネットワーク、データベース、組込み)

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

CPUがどのようにプログラムを読んで実行させているか、メモリをどのように使うのか、が理解できます。「低いレベルで考え高いレベルで書く」という言葉がありますが、その「低いレベル」を理解するための第一歩になるでしょう。
Windowsはなぜ動くのか

Windowsはなぜ動くのか

同じシリーズからもう1冊。OSがどんな仕事をしているのかを理解しましょう。
マスタリングTCP/IP 入門編 第4版

マスタリングTCP/IP 入門編 第4版

超定番本。ネットワークを勉強するには、やはりこの本から入るべき。
「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

やはりどの会社でもWeb開発が主流だと思いますが、使われる技術ってかなり多方面にわたっていて、勉強するのが大変だったりします。この本はWeb技術全般にわたって俯瞰することができます。
これだけはおさえたい データベース基礎の基礎 -設計と運用の基本からSQLの書き方まで-

これだけはおさえたい データベース基礎の基礎 -設計と運用の基本からSQLの書き方まで-

データベースに関する基礎の基礎から書かれててわかりやすいです。組込み系の本を何か紹介しようと思ったのですが、あれこれ勉強するよりも、遊びながら触れていくのが一番なんじゃないんでしょうか。Arduino互換の8ビットマイコンと光残像キットで、いろいろ遊べそうです。

ソフトウェア開発手法(プロジェクトマネジメント、テスト技法、オブジェクト指向)

人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series)

人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series)

  • 作者: フレデリック・P,Jr.ブルックス,Frederick Phillips,Jr. Brooks,滝沢徹,富沢昇,牧野祐子
  • 出版社/メーカー: アジソンウェスレイパブリッシャーズジャパン
  • 発売日: 1996/02
  • メディア: 単行本
  • 購入: 4人 クリック: 126回
  • この商品を含むブログ (49件) を見る
古典です。新人のうちは読んでもピンと来ないかもしれませんね。いくつかプロジェクトを経験してみてから読むと良さそうです。
ピープルウエア 第2版 ? ヤル気こそプロジェクト成功の鍵

ピープルウエア 第2版 ? ヤル気こそプロジェクト成功の鍵

これも定番ですが、同じくプロジェクト経験を積んでから読んだ方が良さそうです。
オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

オブジェクト指向って何?のレベルで読む本。Java書いたり、UML書いたりする前に読んでおくと理解が捗ります。
UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

UMLの世界に触れるための1冊。これだけ読んでもUMLで設計できるようにはなりませんが、全体を理解するためには読んでおきましょう。
増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

私はこの本を読んで、初めてオブジェクト指向の便利さ/利点が理解できました。デザインパターン本では、オブジェクト指向における再利用のためのデザインパターンも有名ですが、それよりも平易に書かれていているので、初心者はこちらを読みましょう。
基本から学ぶソフトウェアテスト

基本から学ぶソフトウェアテスト

品質を上げるためのテスト全体の知識。xUnitなどの単体テストフレームワークや、テスト駆動開発を取り入れるのもおおいに結構ではあるが、その前に読んでおいた方が良い1冊。

ITエンジニア一般知識(より良いプログラミング、仕事の基礎/進め方/考え方)

達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 42人 クリック: 1,099回
  • この商品を含むブログ (350件) を見る
より生産性の高いソフトウェア開発者になるためにはどうすれば良いのか?という事が書かれた1冊。「DRY原則」が有名。プログラマのための自己啓発書のようなもの。必読。
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

達人プログラマと同じ系統の方。アジャイル開発を取り入れてなくても、すべてのソフトウェア開発者の参考になりそうな本。この2冊を読めば、だいぶ生産性が高くなるんじゃないかな。
この1冊ですべてわかる SEの基本

この1冊ですべてわかる SEの基本

プログラマではなく、システムエンジニアの仕事や必要なスキルについて書かれた本。
SEの教科書 【完全版】 (技評SE選書)

SEの教科書 【完全版】 (技評SE選書)

これも同じような内容の本。SEにとって、仕事の中心はコンピュータではなく「人」なんですよね。
受託開発の極意―変化はあなたから始まる。現場から学ぶ実践手法 (WEB+DB PRESS plusシリーズ)

受託開発の極意―変化はあなたから始まる。現場から学ぶ実践手法 (WEB+DB PRESS plusシリーズ)

「受託開発」は実はサービス業で、顧客を満足させる事が大きな目的なんだ、と書かれてます。プロ意識を持って仕事をするために読んでおきたい1冊。
エンジニアのための時間管理術

エンジニアのための時間管理術

この業界って、プロジェクトの仕事以外にも、社内のシステム管理やネットワーク管理をやらされて、タスクをたくさん抱えがちです。そんな人のために書かれた、ライフハック的な仕事術の本です。

ビジネス一般/自己啓発(ヒューマンスキル、ビジネススキル、自己啓発、他)

7つの習慣-成功には原則があった!

7つの習慣-成功には原則があった!

  • 作者: スティーブン・R.コヴィー,Stephen R. Covey,ジェームススキナー,川西茂
  • 出版社/メーカー: キングベアー出版
  • 発売日: 1996/12/25
  • メディア: 単行本
  • 購入: 148人 クリック: 4,806回
  • この商品を含むブログ (777件) を見る
自己啓発の定番。読んでおきたい本なのですが、かなり分厚いですし、文章も固くて挫折しがちです。それよりも、7つの習慣 ティーンズや、分冊で選択する力―第一の習慣:主体性を発揮する (「7つの習慣」クイックマスター・シリーズ)みたいな薄いシリーズで読んだ本がわかりやすいかもしれないです。
20歳のときに知っておきたかったこと スタンフォード大学集中講義

20歳のときに知っておきたかったこと スタンフォード大学集中講義

  • 作者: ティナ・シーリグ,Tina Seelig,高遠裕子
  • 出版社/メーカー: CCCメディアハウス
  • 発売日: 2010/03/10
  • メディア: ハードカバー
  • 購入: 475人 クリック: 17,353回
  • この商品を含むブログ (401件) を見る
最近、話題の本です。自分の人生を自分で歩いていくためのヒントがたくさん書かれてます。
レバレッジ・リーディング

レバレッジ・リーディング

速読や多読ではなく、読んだ本の内容をしっかりと身に付けるにはどうするか、という本です。
「続ける」技術

「続ける」技術

昔から言われていますが「継続は力なり」という言葉の意味が最近ようやくわかってきました。何事も続かなければ意味ないんですよ。
説得できる図解表現200の鉄則

説得できる図解表現200の鉄則

うちの会社では説得できる文章・表現200の鉄則 第4版を全員に配布しているので、それと併せて読んでもらいたい本。ドキュメントもプレゼン資料も、いかに図を書くかが重要だと思います。
オトナ語の謎。 (新潮文庫)

オトナ語の謎。 (新潮文庫)

最後はオマケみたいなもんですが、結構ためになります。息抜きにどうぞ。