Skip to main content

10 Books Every Programmer Should Read

10 Books Every Programmer Should Read

There is saying that if you learn from your mistakes, you will only going to learn few things, but if you learn from other's mistake, you can learn lot of things in short time, and what could be better way to learn from someone's experience then reading books. Programming as a career is about constant learning and updating yourself, but unfortunately there is no right way to begin. School and Colleges are far behind when it comes to real world programming, and every computer science graduate is not lucky to work in a company which is great in training. Only viable option is to read book and follow advice from the great programmer and authors who are gone to that path. I still regret that why I didn't come to know about Clean Code when I started programming. These are the books which can change your career, can make you better programmer. These books are more about a way of thinking, organizing, and becoming better at the craft of software engineering. They won't make you better at any particular programming language e..g Java but they will help you to become a better Programmer.

There is one more thing I like about all these books, you can read them in couch, in bed or even in your daily commute to work. I mean you don't need a compiler or IDE to trying the stuff in the book to see how it works like other hardcore programming books. For example, you won't get anything from Java Concurrency In Practice without writing applications, executing tests and understanding output. Even though I have read them already, I have PDF versions of these books in my iPad and read them in my commute to work. BTW, in order to get most from any programming book, coding and trying out their example is must.

1) Programming Perls
This is the first book I read for preparing programming interview. It contain some of the toughest problem for newbie and if you try to solve them by your own, you will learn a lot. They challenge your understanding of core concept in memory, CPU and algorithms. Some of you might think that this book is out of date, as it first published in 1999, but you will be wrong. It's a true classic and all the analysis, explanations are still valuable for any programmer. It's great book to practice data structure, algorithms design, searching, sorting, heaps and performance tuning techniques. To give you a glimpse of what you get, try to solve this problem by your own :
"How to sort up to 10 million unique non-negative integers, all of which are less than 107 in 1.25M memory? What if we have only 1M (or less) memory available? What if our integers are not unique, but number of occurrences of each value is limited?"
Salute to Jon Bentley for creating a master piece, it fully justify its name "Programming Pearls".
Best Programming books to read

2) GOF Design Patterns
How many of you have surprised when you see your senior partner solving problem in more elegant way by applying object oriented design principles and design patterns? Well, I am. When I started my career I didn't know anything about design patterns and how it helps to write better code. I came from C, C++ background and what I know was to write code in some classes or structures and use main to test the stuff. It was when I started learning Java and its API I come to know about things like Collections.sychronizedList(), which is used to synchronize a List in Java and BufferedReader which is used to read character data are examples of Decorator design pattern. I realize true power of design pattern when during a code review, one of my senior partner re-factor my big if-else block into state design pattern. Now coming back to book, Design Patterns, Elements of Reusable Object Oriented Software is another classic and original source of those 23 patterns put together by famous Gang of Four, Eric Gamma, Richard Hel, Ralph Johnson and John Vlissides. I was in doubt to recommend Head First Design pattern or this book, because frankly I was benefited more from Head First, but again serious developer doesn't like Head first style and being classic, this book can't ignored. BTW, if you like Head first series, then go for Head First Design pattern, another gem.
10 books every programmer must read

3) The Mythical Man Month
You must read this book if you want to know about software development, estimates, project management and things which can go wrong in software development. I always wonder, why creating a multistory building can be better planned and can be better estimates than building a software. Why all other industry have better tools, process and quality controls than software world and this is one of the book which help you to understand why. If you aspire to become a project manager, this is the must read for you.
Must read books for programmers

4) Clean Code
My favorite, I have read it almost 3 to 4 times and still love to read it. I always regret why I didn't get a copy of this book when I started my career. Uncle Bob has done a fabulous job teaching craftsmanship of software development through his series of books and this one is simply best. You will learn how to name your variable, how to write better methods, how to structure your code better, what is code smell, why solving problem in one way is wrong and why other way is better. You will connect more if you are a Java developer, but I think any object oriented programmer e.g. C++ or Python will benefit from general advice about code, programming and art of software development. If you like style of Uncle Bob, you can also take a look at Clean Coder, second part of this book, which will help you to become a better professional programmer.
Great books to learn Programming

5) Refactoring by Martin Fowler
Once you finish Clean code and hungry for more then this is the book to read. It is the best book an intermediate programmer can read, it will help you to teach art of re-factoring which is the second step towards clean code, fist step being designing and writing test. In this book, you will learn step by step how to make your code better. It will also help you to learn test driven development, a proven strategy to write clean code, as you can't refactor code without having enough test cases. In order to get most of this book, not just read but do the examples at your pace. This books about doing things along with reading. Great thing is Martin is very clear about why you do that refacotring and how it improves the code quality.
Best book to learn code refactoring

6) The Design of Everyday Things
Many of you would be surprised to see this book in a list of must read books for programmers, some of you might be thinking what the heck a 27 year old book is doing in the list created in 2015, as this book was first published in 1988 with the title "The Psychology of Everyday things".  I recommend this book because programmers are curious by nature and they are heavily involved in designing of product, and this book will teach you how design serves as the communication between product and user. You will be much better designer and have understanding of how things works after reading this book. If you need another reason, this is one of the best seller created by Donald A. Norman.
list of good programming books

7) Effective Java
Wow, my another favorite and holy grail of Java developers. Understanding of Java API is incomplete without reading this book. This books is written by none other than Joshua Bloch, who has written lot of important code in JDK e.g. Java Collection framework and many core classes injava.lang package. Almost all Java developer is familiar of this book and if anyone has not read it, go read it, this is simply great. You will not only learn best practices but also understand the reasoning behind why Java API is designed that way, as you are getting first hand information from the programmer who has created that. I don't thing, I need to convince any Java developer to read this book but for my C++, Python and Ruby programmers, you can learn a lot about API design, design patterns and writing clean and robust code from this book. I told you about learning from other's experience and Clean Code and Effective Java is the best example of that philosophy.
Best Java Books Ever

8) Clean Coder
This is the second part of the Clean Code, not officially but usually considered it. As name suggest first part teach you about how a professional programmer write code and this part teaches you how to behave as professional developer. Its a book about code of conduct for Professional Programmers, as tag line rightly suggests. I like this book because of Uncle Bob's story telling and style which feels like he is talking to you, you will feel part of conversation and you will learn how a professional developer should behave in different situation. You will learn how to say Yes and how to say No, sounds funny? but this is the best lesson I have learned from this book. I am sure you will not regret about missing this book.
Must read book for every programmer

9) Domain Driven Design
Software are complex and anything which helps you to reduce that complexity or allow you to better deal with that complexity will much appreciated. Domain Drive Design is rather different way to develop software and that's why I have included this book in my list of must read books for programmers. Eric Evans has done fabulous job in explaining this term "domain drive design" and showing how it can work to tackle complexity. An intermediate and experienced developer would understand the value of domain knowledge. In fact a programmer cannot become a subject matter expert and design a better system without knowing about his domain. This is the reason, programmer stick to one domain e.g. Finance, healthcare, Insurance etc. Its combination of both domain knowledge and programming skill which makes you better programmer.
great book on domain driven design

10) Coders at work
I feel lucky that a book like this is available in my time. Coders at work is based upon nearly 8 hours of interview with fifteen all time great programmers and computer scientists. You will learn from their experience by following this interview about how great programmers learn to program, how they practice their craft, and what they think about future of programming. You will feel excited by just reading table of contents and knowing the names of the programmers, which include greats like Joshua Bloch, Peter Norvig, Donald Knuth, Ken Thomson, and Jamie Zawinski. I strongly recommend that every programmer should have a copy of this book in his self or atleast PDF version in his iPad or Kindle. This books is not only interesting but motivating and expand your vision, thoughts and experience.
Books to become better coders

That's all about my list of 10 books every programmer should read. You don't need a technical book, full of code every time to become a better programmer. I agree that Programming and Coding are two important aspect of a programmer's job, but there are more things as well. In fact you do need some books, which shares real experience from programmers of last decade. These books motivate you, and fill new energy. These books are not for any programming language expert e.g. a Java or C++ developer, instead its for all programmer and software developer. Before leaning Java, C++ or Python its important to learn programming. Languages are just tools not art. The craftsmanship of programming is in these books. In today's busy world, I highly recommend you to have ebooks, pdfs in your iPad, Kindle or your smartphone and read it whenever you get some free time, you will feel recharged.

If you like this article and hungry for more, check out my post 10 Articles Every Programmer Must Read, I am sure you will find it interesting.


Popular posts from this blog

Hidden Wiki

Welcome to The Hidden WikiNew hidden wiki url 2015 http://zqktlwi4fecvo6ri.onion Add it to bookmarks and spread it!!!
Editor's picks Bored? Pick a random page from the article index and replace one of these slots with it.
The Matrix - Very nice to read. How to Exit the Matrix - Learn how to Protect yourself and your rights, online and off. Verifying PGP signatures - A short and simple how-to guide. In Praise Of Hawala - Anonymous informal value transfer system. Volunteer Here are five different things that you can help us out with.
Plunder other hidden service lists for links and place them here! File the SnapBBSIndex links wherever they go. Set external links to HTTPS where available, good certificate, and same content. Care to start recording onionland's history? Check out Onionland's Museum Perform Dead Services Duties. Introduction - Clearnet search engine for Tor Hidden Services (allows you to add new sites to its database). DuckDuckGo - A Hidden S…

Explainer: The nico-teen brain

Explainer: The nico-teen brain The adolescent brain is especially vulnerable to the addictive effects of nicotine BY  TERESA SHIPLEY FELDHAUSEN 7:00AM, AUGUST 19, 2015 Nicotine (black triangle towards center left) tricks the nerve cell (neuron) into sending a message to release more dopamine (yellow dots). Those molecules enter the space (synapse) between one nerve cell and the next. When they get picked up by neighboring cells, this gives users a feel-good high. It also creates the risk of addiction and other health problems.  EMail Print Twitter Facebook Reddit Google+ NATIONAL INSTITUTE ON DRUG ABUSE, ADAPTED BY J. HIRSHFELD Nicotine is the addictive chemical in tobacco smoke and e-cigarette vapors. And doctors say the teenage brain is no place for it to end up. Nicotine can reach the brain within seven seconds of puffing on a cigar, hookah, cigarette or electronic cigarette.
The area of the brain responsible for emotions and controlling our wild impulses is known as the prefrontal c…

fix idm integration on chrome

Chrome Browser IntegrationI do not see IDM extension in Chrome extensions list. How can I install it? 
How to configure IDM extension for Chrome?Please note that all IDM extensions that can be found in Google Store are fake and should not be used. You need to install IDM extension manually from IDM installation folder. Read in step 2 how to do it.

1. Please update IDM to the latest version by using "IDM Help->Check for updates..." menu item

2. I don't see "IDM Integration module" extension in the list of extensions in Chrome. How can I install it?

Press on Chrome menu (arrow 1 on the image), select "Settings" menu item (arrow 2 on the image) and then select "Extensions" tab (arrow 3 on the image). After this open IDM installation folder ("C:\Program Files (x86)\Internet Download Manager" by default, arrow 4 on the image) and drag and drop "IDMGCExt.crx" (arrow 5 on the image) file into "Extensions" page opened in…