Original English language title: The Passionate Programmer: Creating a Remarkable Career in Software Development by Chad Fowler Published by The Pragmatic Programmers, LLC Copyright c 2009 Chad Fowler Translation Copyright c 2010 Ohmsha, Ltd. All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher. E-mail kaihatu@ohmsha.co.jp FAX 03-3293-2825
The Passionate Programmer Bob Martin,, Object Mentor, Inc. Kent Beck, Chad 6 11 5 Sammy Larbi,, codeodor.com iii
For Kelly Jeanne
The Passionate Programmer The Passionate Programmer Passionate Programmer 2000 2 2 2 2010 2 vii Chad Fowler
37signals Ruby on Rails David Heinemeier Hansson, Ruby on Rails, 37signals ix
Dave Thomas Andy Hunt The Pragmatic Programmer [HT00] *1 Dave Susannah Pfalzer 2 Susannah David Heinemeier Hansson 37signals Rails Stephen Akers James Duncan Davidson Vik Chadha Mike Clark Patrick Collison Tom Preston-Werner 2 Sammy Larbi Bryan Dyck Bob Martin Kent Beck Alan Francis Jared Richardson Rich Downie Erik Kastner Juliet Thomas 1 1 Carey Boaz Karl Brophey Brandon Campbell Vik Chadha Mauro Cicio Mark Donoghue Pat Eyler Ben Goodwin Jacob Harris Adam Keys Steve Morris Bill Nall Wesley Reiz Avik Sengupta Kent Spillner Sandesh Tattitali Craig Utley Greg Vaughn Peter W. A. Wood *1. xi
xii Donnie Webb Ken Smith Walter Hoehn James McMurry Carey Boaz David Alan Black Mike Clark Nicole Clark Vik Chadha Avi Bryant Rich Kilmer Steve Akers Mark Gardener Ryan Ownens Tom Copeland Dave Craine John Athayde Marcel Molina Erik Kastner Bruce Williams David Heinemeier Hansson Ali Sareea Jim Weirich Kelly
2006 *2 15 1 50 *2 http://www.bls.gov/tus/charts/ xiii
xiv 1 My Job Went To India Will Code for Food 1
xv Kent Beck Extreme Programming Explained [Bec00] *3 Embrace Change XP CIO CIO Object Mentor Extreme Programming Immersion Extreme Programming Immersion XP 1 Steve p.138 Steve Steve 1 *3 XP 2.
xvi 1 Martin Fowler Linus Torvalds Dave Thomas Andy Hunt
xvii 4 4 Visual Basic My Job Went To India 1 Ruby on Rails 37signals David Heinemeir Hansson
xviii 1 1 1 1
The Passionate Programmer iii vii ix xi xiii....................... xiv.............................. xvi................................ xvii xix 1 1 1....................... 3 2............................... 6 3.................. 9 4....................... 12 5....................... 15 6......................... 18 7........................... 22 8....................... 27 9.................... 30 10...................... 32 2 37 11........................... 40 12....................... 43 13............................... 45 14............................... 48 15.......................... 50 16......................... 54 17............................ 57 xix
xx 18.................... 60 3 65 19................................ 67 20................................. 69 21............................ 72 22.................. 74 23........................... 76 24................ 79 25.................. 81 26................... 83 27......................... 86 28 8............................... 90 29.......................... 93 30............. 96 31............................... 99 32......................... 102 4... 109 33...................... 112 34..................... 115 35.................... 117 36............................ 119 37................................ 122 38............................ 124 39.......................... 126 40....................... 129 41.................... 131 42............................... 134 43............................... 136 5 141 44.......................... 143 45....................... 145 46............................ 147 47...................... 149 48............................ 151
49........................... 153 50..................... 156 51.......... 159 52............................. 162 53................................ 165 169 xxi 171 173
1 Choosing Your Market
2 1 Java Visual Basic The Pragmatic Programmer [HT00] *1 Dave Thomas Andy Hunt Web *1.
1 Lead or Bleed? 1 3 32 15 15 COBOL COBOL COBOL Java Java Sun Java Java Java 1995 Be BeOS BeOS BeOS OS OS API
4 1 BeOS FTP Be Intel OS Macintosh OS Apple Be Apple Be Be BeOS BeOS Be Palm BeOS BeOS BeOS RPG Java.NET RPG *2 *2 RPG Report Program Generator
1 5 adoption curve 1.
6 1 2 Supply and Demand Web HTML Web Web HTML HTML Web HTML HTML Web Web Web 5,000 500 Web Web Web Web HTML HTML Web IT
2 7 Java.NET Oracle DBA.NET Python.NET.NET Python.NET Python IT
8 1 Java Java Java Java 1. Web Web