While modern coding is often enabled by online resources such as StackOverflow, there is still no substitute for a good book. These sites, while great for checking facts and soliciting the advice of other programmers, still lack the perspective and breadth of knowledge offered by a professionally published book. They don’t just teach syntax; they teach best practices that allow you to become a more competent coder and adapt to changes in language and style over the years.
If you’re interested in expanding your horizons as a programmer, consider checking out one or more of these great works on coding.
While Knuth’s four volumes can be used as a reference, the real value comes from reading all of them cover to cover and completing the included exercises. Don’t get me wrong, it’s a challenge—as any of its readers can attest—but it’s definitely worth the time. This book delves into programming on a fundamental level that few consider.
For advanced programmers, this book can be an eye-opener, teaching lessons about how complicated the practice can truly be. Oh, and Bill Gates is a fan as well.
Robert Martin understands that code isn’t just something that needs to work—it’s something that needs to be understood by others. Clean Code may be written with regards to Java, but in reality, any coder can learn from the lessons that it teaches about writing code that can be easily interpreted by your coworkers. It’s not just about the technical side of coding; it’s about being professional and working with others in a way that promotes good collaboration and reduces missteps along the way.
In a similar vein to the last entry, Feathers has composed a book that concerns itself with working with code devised by others. Inheriting a large body of code can be intimidating, especially if you can’t get the insight of the original programmer. This book teaches anyone about the best ways to work with other people’s code without completely rewriting it, and the tactics that can be used to feel more confident and comfortable with inherited code.
Though programming jobs can be greatly varied, Cracking the Coding Interview is happy to provide advice on the technical skills that employers are looking for. Covering actual tech giants and their hiring procedures, this book offers a suite of actual interview questions for anyone looking to assess their readiness for a particular job. McDowell is very thorough here, including everything from resume building to the jargon best used in the industry.
Widely recommended, and for good reason, The Pragmatic Programmer is a collection of timeless recommendations for programmers. It’s not highly technical, and many of its suggestions may seem obvious, but reading it goes a long way toward making anyone into a better programmer. Again, it teaches professionalism, and ways to become a valued member of the team with strong insights into how to improve a body of code. For anybody hoping to break into coding as a job, this is practically required reading.