7 books you must read to be a real software developer

It’s easy to learn to be a coder. But knowing how to code isn’t enough to get and keep a real job in software development

Congratulations on finishing your four-year computer science degree in two years with no actual practical software development experience or attending your coding bootcamp!

But there are a few more things you should know. And there are a few more things you should read.

  1. Code Complete: A Practical Handbook of Software Construction, Second Edition. You learned how to code and all, but did you learn when to code and what to code? Moreover, there are a number of things that you should probably know (like why Booleans may not make great status variables). While there is some dust even on the second edition, there is gold here.
  2. The Mythical Man-Month. Most problems that will happen on your first professional software project are explained in this book. Read it before your first job, but don’t quote it to people (enough people do that, and it just comes off as smug). I suppose you could also just read the complete works of Dilbert, but MMM is shorter.
  3. The Pragmatic Programmer: From Journeyman to Master. This book ages pretty well. Actually, it takes off where Code Complete ends. It is also much shorter.
  4. Design Patterns: Elements of Reusable Object-Oriented Software. The so-called Gang of Four book helps you learn the metapatterns of programming. This will save you from inventing your own whatever framework because you’ll realize that you have invented nothing new. It also will help you think about things in the right way.
  5. Extreme Programming Explained. Whether they do XP on the job or some chaotic adaptation of scrum that smells awfully waterfally (like most companies), this book teaches you how software development should probably work if anyone were motivated to do it right. Don’t worry, very few companies actually do pair programming. Though I admit it is probably good for you, if you don’t drive the other person to murder.
  6. Refactoring: Improving the Design of Existing Code. Your dream of creating anything from scratch is likely to be daunted. Almost everything has legacy code. You’ll spend most of your career dealing with crap code created by people who write like they just finished code camp (no offense)—or stuff created by “the offshore team” (which consists of the people who just finished the two-year version of a four-year computer science program). You’ll rarely be given enough time to rewrite it. Instead, learn how to refactor it.
  7. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition. A good 70 percent of UML was a useless farce to sell overpriced clunky tools (looking at you, Rational Rose). Don’t learn UML to go around annoying people with useless class diagrams. Do learn the basics so you can read a sequence diagram and learn to think this way.

Please for the love of all that is good and right, crack some books. And now that you’ve learned to “code,” actually learn to develop software before bestowing your wonders upon the rest of us. (And don’t forget to get off of my lawn!)