Becoming a Better Programmer
Pete Goodliffe
Praise for Becoming a Better Programmer
Becoming a Better Programmer oozes experience and communicates the wisdom drawn from a career in the software business. Snappy, single-topic chapters make the book really readable with common themes being tackled from every angle. If you are a software engineer looking to go from good to great, this book is for you. I will be using it with the junior developers Im responsible for mentoring.
Andrew Burrowslead developer
Goodliffe takes the very broad subject of computer programming and manages to break it down into a clear, compelling, and engaging narrative. He has a particular flair for saying things that seem obvious, but I hadnt realised before he said them. Any programmer who aspires to be a great programmer should read this book.
Greg Lawcofounder and CEO of Undo Software
Pete Goodliffe successfully blends the theoretical with the practical. Where things must be done in a particular way, he pulls no punches. Where grey areas exist, he clearly explains different points of view. If you consider and apply what he says youll benefit and be better; youll become a better programmer. Overall this book is full of distilled real-world experience, mixed with humor, to provide gentle wisdom.
Dr. Andrew BennettBEng/PhD/MIET/MIEEE
This book will fuel your passion for the art and science of programming. Pete understands that great software comes from good people doing their best work. He illustrates how to do this through good coding practices, a good attitude, and good relationships, with lots of examples. Bonus: its really fun to read!
Lisa Crispincoauthor of Agile Testing: A Practical Guide for Testers and Agile Teams
Petes got a wealth of experience being a programmer and mentor. In this book, hes applied the same attention to detail categorising and describing those experiences as he does to the task of actually being a programmer. Knowing about programming is only one part of being a programmer, and whether youre new to the Code Factory, an old hand, or starting to mentor someone, this is a treasure trove of advice about how to go about itfrom someone who really knows. Its a manual about many of the hurdles youll encounter, and how to negotiate them safely and effectively.
Steve Loveeditor of C Vu magazine
All too often, programmers are divided into average programmers and rockstar or ninja developers. Where theres a rockstar, theres a trashed codebase with broken classes and spaced-out control flow. Where theres a ninja, theres mysterious bugs and build problems that appear in the middle of the night. Where theres an average, theres a distribution. In the longterm, what matters is less where on the distribution someone is than where they are headed. If you want to divide programmers into two groups, there are programmers who get better and programmers who dont. You care about the first group. This book is for them.
Kevlin Henneyconsultant, speaker, and author of 97 Things Every Programmer Should Know
This book is quite dull, and Im not convinced by the fish on the cover.
Alice Goodliffeage 12
Dedication
For my wife, Bryony, who I adore.
And our three wonderful girls.
Psalm 150.
Also by Pete Goodliffe
Code Craft: The Practice of Writing Excellent Code (No Starch Press) 97 Things Every Programmer Should Know (OReilly, contributed three chapters) Beautiful Architecture (OReilly, contributed one chapter)
Introduction
You care about code. Youre passionate about programming. Youre the kind ofdeveloper who likes to craft truly great software. And youve picked up this bookbecause you want to do it even better . Good call.
This book will help you.
The aim is to do exactly what it says on the cover: help you become a betterprogrammer. But what does that mean exactly?
Pretty early in any programmers career comes the realisation that theres moreto being a great coder than a simple understanding of syntax and a mastery ofbasic design. The awesome programmers, those productive people who craft beautifulcode and work effectively with other people, know far more. There are methodsof working, attitudes, approaches, idioms, and techniques you learn over timethat increase your effectiveness. There are useful social skills, and a wholepile of tribal knowledge to pick up.
And, of course, you need to learn syntax and design.
That is exactly what this book is about. Its a catalogue of useful techniquesand approaches to the art and craft of programming that will help you becomebetter.
I wont pretend that this is an exhaustive treatise. The field is vast.Theres always more to learn, with new ground being claimed every day. Thesechapters are simply the fruit of more than 15 years of my work as aprofessional programmer. Ive seen enough code, and made enough mistakes. Iwont claim Im an expert; Im just well seasoned. If you can learn from themistakes Ive made and garner inspiration from what Ive experienced, thenyoull gain a leg up in your own development career.
Whats Covered?
The topics covered in this book run the whole gamut of the softwaredevelopers 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 work better.
- Illustrations of effective 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.
Theres no particular language or industry bias here.
Who Should Read This?
You!
Whether youre an industry expert, a seasoned developer, a neophyte professional, or a hobbyist coderthis book will serve you.
Becoming a Better Programmer aims to help programmers at any level improve. Thats a grand claim, but theres always something we can learn, and always room for improvement, no matter how experienced a programmer you are. Each chapter provides the opportunity to review your skills and work out practical ways to improve.
The only prerequisite for making use of this book is that you must want to become a better programmer.
The Structure
The information in this book is presented in a series of simple, self-containedchapters, each covering a single topic. If youre a traditionalist, you canread them in order from front to back. But feel free to read chapters in anyorder you want. Go straight to what seems most pertinent to you, if that makesyou most happy.
The chapters are presented in five parts:
We start right at the bottom, at the codeface, where programmers feel most comfortable. This section reveals important code-writing techniques, and shows ways to write the best code possible. It covers code writing, code reading, code design, and mechanisms to write robust code.Stepping back from the codeface, this part covers the important programming practices that help make you a better programmer. Well see healthy attitudes and approaches to the coding task, and sound techniques that will help you craft better code.These chapters dig deep to build excellence into your personal programming life. Well look at how to learn effectively, consider behaving ethically, find stimulating challenges, avoid stagnation, as well as improve physical well-being.These chapters talk about practical ways to get things done: to deliver code on time without getting sidetracked or delayed.Software development is a social activity. These chapters show how to work well with the other inhabitants of the software factory.