The Productive Programmer

  • ISBN13:


  • ISBN10:


  • Edition: 1st
  • Format: Paperback
  • Copyright: 2008-07-01
  • Publisher: Oreilly & Associates Inc
  • Purchase Benefits
  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $39.99 Save up to $6.00
  • Buy New


Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
  • The eBook copy of this book is not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.


This book shows how to improve your life (and career) in software development by taking advantage of four key principles: acceleration, focus, automation, and DRYness. Learn from a highly experience master developer how to make your work time more effective. Discover how to avoid interruptions that break your focus; learn how discover the best tools for the job, and use them effectively; find out how to avoid repeating yourself as you're coding. Get the most you possibly can out of your tools, from your laptop or workstation to your development environment. We only get 24 hours in a day. Use them well.

Author Biography

Neal Ford is an Application Architect at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. Before joining ThoughtWorks, Neal was the Chief Technology Officer at The DSW Group, Ltd., a nationally recognized training and development firm. Neal has a degree in Computer Science from Georgia State University specializing in languages and compilers and a minor in mathematics specializing in statistical analysis. He is also the designer and developer of applications, instructional materials, magazine articles, video presentations, and author of the books Developing with Delphi: Object-Oriented Techniques (Prentice-Hall, 1996), JBuilder 3 Unleashed (Sams, 1999) (as the lead author), Art of Java Web Development (Manning, 2003), and No Fluff, Just Stuff Anthology: The 2006 Edition (editor and contributor). His language proficiencies include Java, C#/.NET, Ruby, Object Pascal, C++, and C. His primary consulting focus is the design and construction of large-scale enterprise applications. Neal has taught on-site classes nationally and internationally to all phases of the military and to many Fortune 500 companies. He is also an internationally acclaimed speaker, having spoken at numerous developer conferences worldwide.If you have an insatiable curiosity about Neal, visit his web site at http://www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.

Table of Contents

Forewordp. vii
Prefacep. ix
Introductionp. 1
Why a Book on Programmer Productivity?p. 2
What This Book Is Aboutp. 3
Where to Go Now?p. 5
Accelerationp. 9
Launching Padp. 10
Acceleratorsp. 18
Macrosp. 33
Summaryp. 35
Focusp. 37
Kill Distractionsp. 38
Search Trumps Navigationp. 40
Find Hard Targetsp. 42
Use Rooted Viewsp. 44
Use Sticky Attributesp. 46
Use Project-Based Shortcutsp. 47
Multiply Your Monitorsp. 48
Segregate Your Workspace with Virtual Desktopsp. 48
Summaryp. 50
Automationp. 51
Don't Reinvent Wheelsp. 53
Cache Stuff Locallyp. 53
Automate Your Interaction with Web Sitesp. 54
Interact with RSS Feedsp. 54
Subvert Ant for Non-Build Tasksp. 56
Subvert Rake for Common Tasksp. 57
Subvert Selenium to Walk Web Pagesp. 58
Use Bash to Harvest Exception Countsp. 60
Replace Batch Files with Windows Power Shellp. 61
Use Mac OS X Automator to Delete Old Downloadsp. 62
Tame Command-Line Subversionp. 62
Build a SQL Splitter in Rubyp. 64
Justifying Automationp. 65
Don't Shave Yaksp. 67
Summaryp. 68
Canonicalityp. 69
DRY Version Controlp. 70
Use a Canonical Build Machinep. 72
Indirectionp. 73
Use Virtualizationp. 80
DRY Impedance Mismatchesp. 80
DRY Documentationp. 88
Summaryp. 93
Test-Driven Designp. 97
Evolving Testsp. 99
Code Coveragep. 105
Static Analysisp. 109
Byte Code Analysisp. 110
Source Analysisp. 112
Generate Metrics with Panopticodep. 113
Analysis for Dynamic Languagesp. 116
Good Citizenshipp. 119
Breaking Encapsulationp. 120
Constructorsp. 121
Static Methodsp. 121
Criminal Behaviorp. 126
Yagnip. 129
Ancient Philosophersp. 135
Aristotle's Essential and Accidental Propertiesp. 136
Occam's Razorp. 137
The Law of Demeterp. 140
Software Lorep. 141
Question Authorityp. 143
Angry Monkeysp. 144
Fluent Interfacesp. 145
Anti-Objectsp. 147
Meta-Programmingp. 149
Java and Reflectionp. 150
Testing Java with Groovyp. 151
Writing Fluent Interfacesp. 152
Whither Meta-Programming?p. 154
Composed Method and Slapp. 155
Composed Method in Actionp. 156
Slapp. 160
Polyglot Programmingp. 165
How Did We Get Here? And Where Exactly Is Here?p. 166
Where Are We Going? And How Do We Get There?p. 169
Ola's Pyramidp. 173
Find the Perfect Toolsp. 175
The Quest for the Perfect Editorp. 176
The Candidatesp. 179
Choosing the Right Tool for the Jobp. 180
Un-Choosing the Wrong Toolsp. 186
Conclusion: Carrying on the Conversationp. 189
Building Blocksp. 191
Indexp. 199
Table of Contents provided by Ingram. All Rights Reserved.

Rewards Program

Write a Review