Summer Reading List for Beginner Programmers
Tags: Software Development, Programming, Programmer, Programmers Life, Software Outsourcing

One of VOLO’s Senior Software Developers and avid readers, Ruben Markosyan, has put together a reading list for beginner software developers with the aim of helping them become better professionals and advance their careers.

Not too long ago a budding young professional asked me to recommend him some books that would be useful to a software developer that is just starting out in the field. He was looking for materials that would not only give him a solid knowledge base in programming regardless of the language, but that would also be easy to digest.

Now if you run a “must read books for programmers” search in Google, you will inevitably come across lists that will include books like Uncle Bob’s, aka Robert C. Martin’s, Clean Code, Clean Coder, and Clean Architecture; Steve McConnell’s Code Complete; Fowler and Beck’s Refactoring; Hunt and Thomas’ The Pragmatic Programmer; Gamma, Vlissides, Johnson, and Helm’s Design Patterns; Cormen’s Introduction to Algorithms and others. While all of these are excellent, to a beginner they might seem a tad intimidating due to their sheer volume and the depth of the subject matter that they cover. An exception to this is Clean Code — an outstanding book that you can enjoy after familiarizing yourself with the basics of programming.

After having thought long and hard about this, I compiled a list of 5 books. Once again, these will be most useful for beginners and those whose educational background isn’t in CS. While experienced software engineers could also find these useful and enjoyable, they would be better off picking up something from the list above.

So, here we go, in no particular order of importance.

1. Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

Code takes you through the inner workings of a computer — how it “thinks” and how it works. It starts off by introducing the general concept of “codes” and the encoding and decoding of information through the Morse code and the Braille alphabet all the way to the binary system and Boolean algebra.

The entire book is illustrated and simple to the point of genius. It makes you understand what goes on “under the hood” of computers and other smart machines by starting with walking you through how to make a rudimentary calculator to eventually teaching you how to build a computer from scratch (with your bare hands) and run CPUs.

If you’ve ever met someone who doesn’t just know computers, but “feels” them, you get an acute sense that this person has such a deep knowledge and understanding of inner computing processes that it’s almost intuitive for them. This is exactly what Code sets out to accomplish for its readers.

I see it as an essential preliminary step in achieving a fundamental understanding of the concept of codes as well as the inner structures of computer hardware and software.

2. Computer Science Distilled by Wladston Ferreira Filho

This is the shortest book on the list in terms of the number of pages, yet it covers the widest breadth of the various fields in Computer Science. I personally see it as a great condensed set of notes on CS that help you easily grasp the concepts of the subject and fill any knowledge gaps you may have. While it does skip over some nuances due to its concise nature, the book masterfully hits all the main notes of the principles of computation without overly confusing its readers with professional jargon. The author explains everything as he would explain it to a non-technical person. The entire book is simple and to the point.

I see it as an excellent choice for beginner programmers and especially those taking online courses like “How to Become a Programmer in 3 Months and Get Hired” — these will never cover the fundamentals of CS like Filho’s Computer Science Distilled.

3. Grokking Algorithms by Aditya Bhargava

Before we get grokking, I do want to once again mention the book Introduction to Algorithms by Cormen et al. Yes, it’s superb and amazingly comprehensive — it’s 1300 pages, after all, about a third of which cover Discrete Mathematics. Now, can you honest-to-digital-god say that you’ve read it cover to cover? And if you have, would you recommend it to a beginner?

If you want someone to explain algorithms to you like you were a 6-year-old, there’s no better option than Grokking Algorithms, a 250-page illustrated, beginner-friendly guide that teaches you how to apply algorithms in the everyday problems you face as a programmer. The author has truly come up with an ingenious way to explain complex concepts like algorithms and data structures in an easy language with quirky, real-world examples.

4. Think Like a Programmer by Anton Spraul

This book is an exception to the rule I’ve set above in that it’s not language-agnostic — the author uses C++ examples to bring home the covered programming concepts. Nevertheless, this is not a book about C++, it’s about problem solving, and its creative thinking concepts go beyond the realm of any particular language. If you disregard the “Pointers” section of the book, the rest can be applicable to any programming language.

As any programming tutor will tell you, the problem isn’t about teaching students the syntax of the language, it’s about teaching them to use that language to solve problems. That’s where this book comes in so handy — it truly teaches you to think like a programmer and enhances your problem-solving abilities.

5. The Complete Software Developer’s Career Guide by John Sonmez

This one completely deviates from the list above. I see it as an encyclopedia of sorts for marketing yourself as a software developer. As a rule, if there’s a weak side to engineers, it’s their soft skills — they often struggle to present themselves in the best possible light. This career guide will teach you how to do just that — from honing your technical and social skills to understanding the psychology behind people and events and successfully creating your personal brand. After all, technical skills are a service that you provide and that you must be able to sell.

Granted, the credentials of John Sonmez, the author, as a programmer are often disputed. Some say he is more of a snake oil salesman than a programmer. And he seems to be inviting and/or creating quite a great deal of controversy around himself and his brand on social media. I see it this way — the man has written several bestsellers and has a successful social media presence and businesses. In other words, he’s been able to achieve exactly what he preaches in his books. If that’s not a testament to the book’s credibility, I don’t know what is.

If you want to code professionally and not just recreationally, I highly recommend you get this book. It covers important professional concepts and ideas that I had to learn over the course of many years as a result of trial and error, in a really accessible way. You don’t even have to read it cover to cover, rather focusing on chapters that interest you most at the time being.

I tried to put together a list of books which I find will be most beneficial to young professionals in this field, even though they might not be listed in the top half of most conventional lists you’ll find on the internet. I hope you enjoy them and get the most use out of them for your careers.