僕が新社会人になったときには、「この本を読んで学ぶと良いよ!」なんて、紹介してくれる先輩がいなかった。
だから、無駄な書籍を読んで、あんなクソな本読んでる暇があったら、この本読んでおけば良かった。と、何度も思った@HIROCASTERでございませう。
新社会人の皆様に技術書は高価なので、厳選してオススメを紹介します。カテゴリ・言語別で上の方に並んでいる者が初級者にオススメ、下にいくほど、上級者向けです。数ヶ月かけてステップアップすれば良いのではないでしょうか。
新しいプログラマの教育担当者やメンターになった人は、この記事を教えてあげれば良いんじゃないかな。
プログラマとしての心得
4月からのプログラマ生活おめでとうございます。
これからプログラマとして人生の多くの時間を過ごしていこうと思っているかと思います。
プログラマとして、コードと接する心得を学びましょう。
良いコードを書く技術 -読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus) 縣 俊貴 |
良いコードとはどういったコードなのかを知りましょう。そして、そういったコードを書けるポイントを知りましょう。
Robert C. Martin、角征典 |
基本的に読み物です。コードはあまり出てきません。
プログラマの世界では有名なボブおじさんがソフトウェアのプロになるための手引きをしてくれます。
Chad Fowler、でびあんぐる |
基本的に読み物です。コードはあまり出てきません。
人生を楽しくプログラマとして生きていくための手引きをしてくれます。
プロダクティブ・プログラマ -プログラマのための生産性向上術 (Theory in practice) Neal Ford、島田 浩二 (監訳)、夏目 大 |
基本的に読み物です。コードはあまり出てきません。
プログラマとして生産性の向上に焦点を当てています。普通の人とスーパープログラマでは生産性が100倍違うといわれる業界の生産性を上げるための術を学びましょう。数ヶ月後には同期の何倍の生産性を持てるかもしれません。
アンドリュー ハント、デビッド トーマス、Andrew Hunt、David Thomas、村上 雅章 |
基本的に読み物です。コードはあまり出てきません。
これを読んでいなかったらプログラマーとして失格といわれてもおかしくないバイブルです。
数年たって読み返しても学ぶことが多いです。
和田 卓人、Kevlin Henney、夏目 大 |
実際のプログラマ達が大切だと考えることを学んでおきましょう。一つ一つは2〜3ページにまとめられていて、とても読みやすい1冊です。数多くの名言が収録されています。あなたの心に響く一言もあるはず。
開発手法
プログラマは、ただコードを書いていれば良いソフトウェアができるとは限りません。
人がつくり、人が利用するソフトウェアなかぎり、開発手法は学び身につけ、実践しましょう。
Jonathan Rasmusson、西村 直人、角谷 信太郎、近藤 修平、角掛 拓未 |
わかりやすく、現代的なアジャイル開発手法について、全般的に理解できます。気軽に読めるページ数、図解が多い。
こういった開発手法が実現できてない会社に入ってしまった場合は色々考える方が良さそうです。
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~ Mike Cohn、マイク コーン、安井 力、角谷 信太郎 |
ソフトウェアの見積もりや計画の方法を学習したことはありますか?
きっと、先輩も学習したことはないので、教えてもらえることは、まずないでしょう。
自ら学びましょう。
アート・オブ・プロジェクトマネジメント ―マイクロソフトで培われた実践手法 (THEORY/IN/PRACTICE) Scott Berkun、村上 雅章 |
ある程度経験や責任を持ち、プロジェクト全体に視点を向けられるようになれば、この本が役立つでしょう。
WEB (追加)
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) 山本 陽平 |
Webプログラマなので、Webの仕組みを知っておきましょう
データベース
Webエンジニアのための データベース技術[実践]入門 (Software Design plus) 松信 嘉範 |
誰もがデータベースを利用することになります。データベースの基本を学びましょう。著者は日本を代表する世界的に有名なDBAの松信さんです。人生に一度くらい、DBを基本から学んでおかないと本当に苦労する事があると思います。その基本から丁寧に解説した本書は本当に素晴らしい1冊になっています。
Baron Schwartz、Peter Zaitsev、Vadim Tkachenko、Jeremy D. Zawodny、Arjen Lentz、Derek J. Balling、伊藤 直也 (監訳)、田中 慎司 (監訳)、吉川 英興 (監訳)、株式会社クイープ |
Web系であればMySQLに触れる機会は多いでしょう。実践的なノウハウを本書で身につけましょう。
VCS
バージョン管理はもうあたりまえの世の中になりました。
使いこなせないとプログラマとして生きていけません。
濱野 純(Junio C Hamano) |
gitのメンテナーの濱野さんが書いている1冊。この1冊にはずっとお世話になる。手元に置いておこう。
藤原 克則 |
きっと、何か大きな力が会社に働いていて、Mercurialを使っているのだろう。
Mercurialについては、これを1冊手元に置いておこう。
エディタ
毎日コードを書くために触れるエディタを洗練させましょう。
生産井が格段に変わるはずです。プロはプロの道具を磨き続けるのです。
Emacs
Emacs実践入門 ~思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus) 大竹 智也 |
Emacsはじめての人にもオススメできる素晴らしい書籍が最近発売されました。EmacsはRubyを開発した、まつもとゆきひろさんも愛用し、人生を変えたエディタといわせました。あのFacebookもEmacsで書かれて、つくられたのですよ?
Emacsテクニックバイブル ~作業効率をカイゼンする200の技~ るびきち |
Emacsのある程度の操作に慣れたら、どんどん拡張してきましょう。具体的かつ実践的な例が本書で紹介されています。
Vim
リンダ ラム、アーノルド ロビンス、Linda Lamb、Arnold Robbins、福崎 俊博 |
Vimの入門書はこれかな。
Vimテクニックバイブル ~作業効率をカイゼンする150の技 Vimサポーターズ |
Vimの操作になれたら、本書を参考に実践的な拡張をしましょう。
CI/CD
Jenkins実践入門 ~ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus) 佐藤 聖規、和田 貴久、検索結果、著者セントラルはこちら、河村 雅人、米沢 弘樹、山岸 啓、川口 耕介 |
きっと入社した会社ではJenkinsを利用してますよね?Jenkinsについて学んでおきましょう。
会社で使ってなかったら、もう少しで会社が滅びる可能性があるのでJenkins導入するため学びましょう。
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化 David Farley、Jez Humble、和智 右桂、高木 正弘 |
プログラマの仕事はコード書くことなのだ。FTPでアップロード?前世紀の話ですよね?
本番サーバへのコードをUPするときの人的ミスなんて、もう二度となくしましょう。
John Ferguson Smart、Sky株式会社 玉川 竜司 |
Jenkinsを使い慣れて、拡張したくなってきたらコレ。
PHP
小川 雄大、柄沢 聡太郎、橋口 誠 |
PHPはコレ1冊読んでおけば大丈夫。最近のモダンな考え方を押させている1冊。
フレームワーク関連は、フレームワークのサイトが一番詳しい。
効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門 小川 雄大 |
Symfony2を利用してフルスタックフレームワークと呼ぶほどの様々な機能について、解説されている。モダンなフレームワークだからこそモダンな機能があるため、自動テストやセキュリティなど、Webアプリケーション開発者が知るべき内容が一通り網羅されている。
JavaScript
パーフェクトJavaScript (PERFECT SERIES 4) 井上 誠一郎、土江 拓郎、浜辺 将太 |
JavaScriptはコレ1冊読んでおけば大丈夫。最近モダンな考え方を押さえている1冊。
Christian Johansen、長尾高弘 |
本当のJavaScriptはここからはじまるといっても過言ではない。
レベルの違うJavaScriptを書きたければこれから学ぶべし。
Ruby
高橋 征義、後藤 裕蔵、まつもと ゆきひろ |
Rubyはたのしいんだよ。まず、そっから。
Yugui |
Rubyって何なのかを知ろう。ルビーのリリースマネージャのYuguiさんが日本向けに執筆された1冊です。
まつもと ゆきひろ、David Flanagan、卜部 昌平 (監訳)、長尾 高弘 |
Rubyのプログラミングについて、本格的に学んでいきましょう。
本書を一通り押さえないと、フレームワークや既存コードを理解していくのは難しい。
RailsによるアジャイルWebアプリケーション開発 第4版 Sam Ruby、Dave Thomas、David Heinemeier Hansson、前田 修吾 |
きっとRailsを使っていると思うので、これをガッツリ押さえておこう。
Python
Mark Lutz、夏目 大 |
Pythonってなんなのかを、まず知ろう。
Tarek Ziade、稲田 直哉、渋川 よしき、清水川 貴之、森本 哲也 |
現代的なPythonの事情やプログラミングを知って学ぼう。
ビープラウド |
Python使いこなすために必要な事を学んで、現場で活かそう。
Perl
Randal L. Schwartz、Tom Phoenix、brian d foy、近藤 嘉雪 |
Perlをまず知ろう。
Randal L. Schwartz、brian d foy、Tom Phoenix、吉川 英興、伊藤 直也、田中 慎司、株式会社ロングテール/長尾 高弘 |
このあたりまで、押さえれば大抵大丈夫。
牧 大輔 |
今のPerlについて、学んでおこう。
“プロ”グラマ向け
本当のプロになるために必要な事を学ぶための書籍。
ケント ベック、Kent Beck、長瀬 嘉秀、テクノロジックアート |
動くソフトウェアをつくれるのが本当のプログラマ。君のソフトウェアにはてすとコードがあるかい?
テストコードのないソフトウェアを書くプログラマはレガシープログラマだ。
xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler)) Gerard Meszaros |
テストコードを書ける。それが普通のプログラマー。xUnitも大抵使えるはず。xUnitのパターンを学ぼう。
リファクタリング―プログラムの体質改善テクニック (Object Technology Series) マーチン ファウラー、Martin Fowler、児玉 公信、平澤 章、友野 晶夫、梅沢 真史 |
何も知らなかった君が書いた昔のコードを直すときがきた。
学んだ経験を活かすため、リファクタリングをしよう。
プログラマとして大きなステップだ!
Jay Fields、Shane Harvie、Martin Fowler、Kent Beck、長尾 高弘 |
Rubyつかってるんだったら、こっちの方がいいよ。
レガシーコード改善ガイド (Object Oriented SELECTION) マイケル・C・フェザーズ、ウルシステムズ株式会社、平澤 章、越智 典子、稲葉 信之、田村 友彦、小堀 真義 |
会社の動いているサービスのコードが大変だって?この1冊片手に現実と戦おう。
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) エリック・エヴァンス、今関 剛、和智 右桂、牧野 祐子 |
このレベルを理解するレベルまで来たら立派なソフトウェア開発者です。
Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck)) Steve Freeman、Nat Pryce |
これからの時代はこれですよ。これ。
その他
このあたりの記事も参考になります。
こんなコードを書くことのないように育ってくれることを祈ります。
Java向けの書籍をmike_neckさんがまとめてくれています。
その他の書籍を会社や僕はオススメしているよ。ってのがあれば、はてブかTwitterで教えてください。