Becoming a Better Programmer

My latest software development book is called Becoming a Better ProgrammerPublished by the wonderful folks at O'Reilly, it's a handbook for people who care about code. You can purchase it in printed form or as a digital version for your e-reader of choice.

You care about code. You're passionate about programming. You’re the kind of developer who likes to craft truly great software. And you want to do it even better. This book is for you.

It’s a catalogue of useful techniques and approaches to the art and craft of programming that will help you become better.

Find out more:
  • Find out more about the book from the official O'Reilly product pageYou can view the full table of contents there.
  • Or head over to Amazon to purchase.
  • If you are a Safari subscriber, you can read it here.
  • Or grab your iBook here.
The cover image is a flying fish. I'll leave it to your imagination to work out the significance.

It's great to finally see this labour of love come to fruition, and I do hope that stands as a useful resource for programmers today.

What’s covered?
The topics covered in this book cover the whole gamut of the software developer’s life:
  • Code-level concerns that affect how you write individual lines of code, as well as how you design your software modules.
  • Practical techniques that will help you to work better.
  • Illustrations of the correct attitudes and approaches to adopt that will help you become both super-effective and well-grounded.
  • Procedural and organisational tricks and tips that will help you flourish whilst you are incarcerated in the software factory.
There’s no particular language or industry bias here.

The chapters

The book contents include:
  • Care About The Code 
    The right attitude and approach to write good code, and write it well
  • People Power 
    How to position yourself alongside excellent programmers
  • Speak Up! 
    Programming is about communication. How to communicate effectively as a programmer.
  • The Ethical Programmer 
    Issues of ethics in programming.
  • Relish The Challenge 
    How to find the right challenges to stay motivated and keep your skills sharp
  • Write Less Code! 
    Unnecessary code is a millstone; how to avoid the dangers
  • Coping With Complexity 
    Mechanisms to deal with the innate complexity in software development
  • It's The Thought That Accounts 
    How measures of accountability improve your work
  • It's Done When It's Done 
    Software timescale estimation: how, what, and why
  • Smarter Not Harder 
    Techniques for programming most effectively
  • Wallowing In Filth 
    How to cope with unpleasant, messy, or bad codebases
  • Expect the Unexpected 
    Avoiding nasty problems by considering all possible code paths, not just 
  • This Time I've Got It 
    Looks at how to tackle coding problems with your eyes wide open, rather than rushing in wasting your time
  • Don't Ignore That Error 
    Investigates error handling and management
  • Navigating a Route 
    How to quickly learn a new codebase and start writing good code in it
  • Bug Hunting 
    Practical techniques for finding and fixing bugs
  • An Ode To Code 
    A poem leads us to think about working in a dysfunctional team.
  • Improve Code By Removing It 
    How to make you code better, by making your code smaller.
  • A Case for Code Reuse 
    What is the real deal with ``code reuse''?
  • Please Release Me 
    The art of making a reliable software release.
  • Many-festos 
    On the tribalism and factions in software development.
  • A Love For Languages 
    Cultivating a relationship with your programming language, and appreciating the languages out there.
  • This Software Stuff 
    What is software development? Art? Craft? Science? Gardening?
Also, there are chapters covering topics such as:
  • Working with test/QA teams
  • Code freeze
  • Keep it simple
  • Use your brain
  • Nothing is set in stone
  • Learning
  • Effective version control
  • Stagnation
  • The curse of good code

Who's it for?
If you're a software developer then this book is for you. Whether you have six months or six years of experience, you'll be encouraged to improve your skills.

Advance Praise
One of my favourite parts of the book is the "advance praise" at the front. Nestled amongst the luminaries and expert programmers who graciously contributed their honest thoughts on the book is another very honest opinion:

Kinda says it all...