Main Page

From Productiveprogrammer

Jump to: navigation, search

Contents

The Productive Programmer

9780596519780_cat.gif


This site is a companion to The Productive Programmer, written by Neal Ford, published by O'Reilly Media, First Edition July 2008, ISBN 10: 0-596-51978-8 | ISBN 13: 9780596519780.

What This Site is For

The meta-goal of this book is to create a dialogue, not a monologue, about productivity at both the mechanics level and the practices level. I want to raise the awareness of how we as developers can become more productive. At the same time, I want other, much smarter people to carry on this conversation. Collectively, we can come up with a lot of amazingly cool stuff. This means there can never be a comprehensive book about either aspect of productivity: it’s a constantly changing landscape. To spur dialogue based on the monologue I’ve just created, I host a public wiki here. Every time you find something that makes you more productive, tell everyone else. When you discover a pattern (or anti-pattern) for productivity, publish it. The only way to continuously improve our productivity as a group is to collaborate, share war stories, and discover new stuff. Let’s continue the conversation.

Contribute!

Mechanics

Acceleration

Focus

Automation

Canonicality


Practice

Test Driven Design

Static Analysis

Good Citizenship

YAGNI

Ancient Philosophers

Question Authority

Meta-programming

Composed Method and SLAP

Polyglot Programming

Find the Perfect Tools

Building Blocks (Command-line goodies)


Miscellaneous Stuff Not Covered Above

Other Favorite Productivity Sites

Recommended Reading


Errata


From the Back Cover

Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away, no matter what platform you use. Master developer Neal Ford not only offers advice on the mechanics of productivity-how to work smarter, spurn interruptions, get the most out your computer, and avoid repetition-he also details valuable practices that will help you elude common traps, improve your code, and become more valuable to your team. You'll learn to:

  • Write the test before you write the code
  • Manage the lifecycle of your objects fastidiously
  • Build only what you need now, not what you might need later
  • Apply ancient philosophies to software development
  • Question authority, rather than blindly adhere to standards
  • Make hard things easier and impossible things possible through meta-programming
  • Be sure all code within a method is at the same level of abstraction
  • Pick the right editor and assemble the best tools for the job

This isn't theory, but the fruits of Ford's real-world experience as an Application Architect at the global IT consultancy ThoughtWorks. Whether you're a beginner or a pro with years of experience, you'll improve your work and your career with the simple and straightforward principles in The Productive Programmer.

From the Intro

Productivity is defined as the amount of useful work performed over time. Someone who is more productive performs more effective work in a given time interval than someone less productive. This book is all about how to become more productive as you go about the tasks required to develop software. It is language and operating system agnostic: I provide tips in a variety of languages, and across three major operating systems: Windows (in various flavors), Mac OS X, and *-nix (Unix and Linux alternatives). This book is about individual programmer productivity, not group productivity. To that end, I don’t talk about methodology (well, maybe a little here and there, but always on the periphery). I also don’t discuss productivity gains that affect the whole team. My mission is to allow individual programmers the tools and philosophies to get more useful work done per unit of time.



jnf_logo.gif For more about the author (I'm sure you're all dying to know), you can check out nealford.com.

Personal tools