Get 60% off lifetime access &
job ready curriculum guide

YOU WILL RECEIVE DISCOUNT CODE AND THE GUIDE INTO YOUR EMAIL AFTER SIGNING UP

    We don’t send spam. Unsubscribe anytime.

    Author

    “Your course helped me get my job as a software engineer at Charles Schwab. The course was easy to follow and covered all the material I'd need to nail a leetcode style interview. Thank you!”

    - Mohammed Khan
    The Top 5 Books Every Software Developer Must Read

    The Top 5 Books Every Software Developer Must Read

    February 12, 2016 by Imtiaz Ahmad

    Very few books stand the test of time especially in the world of science and technology. In the software discipline, there are just a handful of books that carry so much wisdom and practical advice that by reading them you can instantly feel empowered and have access to the experiences and stories of some of history’s most passionate veteran software craftsmen & authors. By reading these, you get a summary of almost a sum total of 150 years of struggle and sweat by these gurus. What makes these veterans’ experiences more important than any other today? They’ve seen massive changes in their careers from being perceived as just some weird tech artists during an era when computers were not mainstream to reaching new heights in their careers as masters of the trade when computers did finally become mainstream. I consider these folks to be the catalysts and drivers of all the fascinating technological innovations we see today. The fascinating thing about some of these books is that by reading them, one can almost get a glimpse into the future and know how to handle certain situations during the career navigation process. In this article I want to list these gems that I think every software developer should read to super charge their career and be well prepared to handle anything as a software developer. Regardless of what technological area you’re involved in, these set of books will not only improve you in the discipline, they’ll save you from experiencing things like burn out, bad bosses, software politics, dealing with BAs and preparing for massive changes in the code.

    I’ve picked the top five books I think every single software developer must read!

    1). The Pragmatic Programmer: From Journeyman to Master
    This book takes a highly pragmatic approach to becoming a master at the craft of software development. The anecdotes and situations discussed in the book are highly relevant and full of wisdom. The working programmer will surely enjoy this book.
    Topics covered: A useful approach to software design and construction that allows for efficient, profitable development of high-quality products. Elements of the approach include specification development, customer relations, team management, design practices, development tools, and testing procedures. This approach is presented with the help of anecdotes and technical problems.

    2). Programming Pearls
    This book is timeless because it discusses recurring problem situations with elegance, clarity, and insight. You should have completed my “Practical Data Structures & Algorithms” course to get the most out of this wonderful book. The thirteen columns in this book appeared in the Communications of the ACM between 1983 and 1985. There can’t be more than a couple of technical books on computing from that era that are still worth reading. What Bentley does in each of these columns is take some part of the field of programming–something that every one of us will have run into at some point in our work–and dig underneath it to reveal the part of the problem that is permanent; that doesn’t change from language to language. The first two parts cover problem definition, algorithms, data structures, program verification, and efficiency (performance, code tuning, space tuning); the third part applies the lessons to example pseudocode, looking at sorting, searching, heaps, and an example spellchecker.

    3). Effective Java (2nd Edition)
    This book is often referred to as the bible of Java. Java is a massive language and it has some dark corners that lesser experienced developers often find themselves wandering in. Using Java the RIGHT way can make software development a very productive and rewarding experience, but using it in suboptimal ways could become a complicated mess! The author Joshua Bloch shares his decades of wisdom to explain the dos and don’ts of java and EXACTLY how best to use the language to write effective software. I would recommend this book for anyone that has experience programming in Java for at least 1 year. If you’ve completed my OOP courses and solved those assignments, this book is a must have on your self.

    4). Refactoring: Improving the Design of Existing Code
    This is a highly practical book because it discusses what 60-70% of the programmer job is all about. REFACTORING. As a programmer, you’ll be tasked with reading other peoples code and refactoring it, enhancing it or even removing it. All three of these are challenging tasks but they’re critical programmer responsibilities. REFACTORING is most probably going to account for 60-70% of your job if you join a team that has plenty of software already built. In a startup environment the ratio may be lower closer to 20-30% but you’ll still need to refactor your code as well as others. Award winning author Martin Fowler talks about exactly how to do this in this book. I recommend every java programmer to read this book and implement the techniques discussed.
    Topics covered:Refactoring, improving software code, redesign, design tips, patterns, unit testing, refactoring research, and tools.

    5). Practical Object-Oriented Design in Ruby: An Agile Primer
    Even though this book is written for Ruby developers, it’s highly relevant and it’s one of my most favorite OOP books of all time. It’s relevant for all OOP programmers regardless of the language. The book is an easy read with wonderful examples and explanations on how to convert an idea/problem into OOP code. You can apply the techniques learned in this book in any OOP language of your choice and learn some Ruby along the way which is awesome. The book gives a nice overview of the ruby language without going into too much language specific details and sticking with the OOP topic. It’s a wonderful piece of work I think every developer must read!

    Subscribe

      We do not send spam. Unsubscribe anytime.
      Back to blog
      Software Development
      Sharpen your coding skills

      In this blog, I want to share with you, how to sharpen your coding skills as a developer. Because believe it or not coding is a very ephemeral skill, meaning if you don’t keep practicing or trying to grow in it, you can lose it. It’s like going to the gym and trying to build […]

      Imtiaz Ahmad
      Career Development | Self Improvement
      Is it important for a programmer to type without looking?

      This is a question that may have crossed your mind if you’re a slow typer surrounded by speed demons in the tech environment. Think about it, would typing speed affect your developer experience? My opinion is – hell yea it does! If you mostly use 3 fingers on each hand to punch in code for […]

      Imtiaz Ahmad
      Software Development
      The Conscientious Developer | Tech Lifestyle + IT career

      In this blog, I want to share with you the concept of the “Conscientious developer”. A conscientious developer is someone who can make certain decisions in life to succeed in their career and future. So, the qualities of a conscientious developer are: Number one, who is aware of themselves, their strengths and weaknesses, Number two, […]

      Imtiaz Ahmad