“Those who cannot remember the past are condemned to repeat it”
Writers vs Programmers
Software development is creative work, as is writing, therefore I will draw a parallel between how writers and programmers improve on their skills, in order to show you a new angle on how to become a better programmer.
In 1998 José Saramago won the Nobel Prize for literature. In an interview he was asked about his daily writing routine. His answer: “I write two pages. And then I read and read and read.”
In Stephen Kings autobiography “On Writing” we find the following quote:
“If you want to be a writer you must do two things above all others: read a lot and write a lot.”
On the reading part he also states in the this Yale speach that once you’ve read enough you will realize that what your are reading “really sucks” and that you can do better yourself.
The best way to become a good author is to read lots an lots of books. If you would like to write good fiction you should read a lot of fiction. The same goes for any programmer. If you want to be a good programmer you should read lots of code. There is only one problem. While bad fiction might stand out like a sore thumb, bad code is harder to spot unless you already know how to tell good code from bad.
It seems quite simple: if you don’t read, you can’t be a writer. If you don’t read good code, you can’t write good code.
This is where books come in handy. While not all programming books out there are good, the good ones are relatively easy to find by asking fellow programmers or searching the internet.
What are the benefits of reading books?
What, then, are the general benefits of reading a book if you are a programmer?
Obviously, reading will improve your programmatic vocabulary, you’ll learn how to express yourself in different ways. A good book on code shows you how to implement best practices or patterns in a way that no description or non-programmatic explanation can and it’ll probably be more fun as good code can be both instructive and compelling.
Another benefit is that you’ll learn how to spot good code from bad. Learning how to differentiate between good or bad code is a skill that all developers should nurture as this will benefit both himself and his peers when he is making code reviews.
Getting ahead of the pack
So you’ll increase your programming skills by reading books but will that give you a chance to stand out when compared to others or would you just be chasing along with the pack?
According to Peopleware: Productive Projects and Teams — DeMarco & Lister, 1999:
“The average software developer, for example, doesn’t own a single
book on the subject of his or her work, and hasn’t ever read one.”
That’s quite enlightening isn’t it? So if the average developer doesn’t improve on his coding skills by reading and you do, you’ll almost certainly, slowly but surely, leave that riff raff of hobby developers in your wake and head to the front part of the pack. And we all know which developers get the fat pay checks and fun projects, don’t we?
If you like it, spread it.