Are you looking for a book to improve your programming skills? There are tons of books that we can buy today but not all books are great. We don’t want to spend our money on such a not good book. However, it’s not possible to know which is good and which is not good for me before reading it. For those people, I will introduce recommended books from the book list that I’ve read.
By the way, I try to choose books where we can learn techniques/thoughts that are useful in the long term. Once you read one of those books, the skills you learn will be a lifelong skills because it’s not for a specific language.
- Why a programmer should read a book
- For Beginners
- OOP, Clean Architecture, and Clean Code
Why a programmer should read a book
Reading a book is the easiest way to learn new things fast. If you don’t read even a single book a year but want to improve your skills, you should recognize that the learning curve becomes gentle. A book contains a lot of thoughts and examples that the author and editor spend a long time refining the content. A book is written by an expert. It’s not too much to say that “10 years of experience into a single book“. The order of the content is basically basics to advanced level. It means that a good book brings you forward faster than searching for something on the internet.
The Art of Readable Code
This book teaches you basic things. If you haven’t read any books on programming, this could be the first choice because it is easy to read. I think you can read it to the end even if you normally don’t read a book. If you have worked with colleagues for a while, you already might learn them through the code review. This book has such content and you can apply those techniques right after reading it.
We all should write code as much readable as possible. It tells you how to write readable code from naming, and commenting to testing code. I think all developers should read this book.
The book was published in 2011 but the content is important and we all should know them. Code Complete is also well known but the number of pages is more than 900 pages. I think it’s too much for the first book. I strongly recommend this book as the first book.
The Art of Unit Testing
This is the first book that I bought by myself. The project that I worked on before didn’t have a rule that unit tests must exist for the corresponding code. I didn’t know how to write unit tests, so I bought this one.
The Art of Unit Testing, Second Edition are written in C#. My English level was not good when I read it but I could read to the end. It is easy to understand the thoughts with examples. You can learn what a good test code is and how the test code looks like. If you face some issues that you can’t write a test for some reason, this book gives you a solution for some cases.
The Art of Unit Testing, Third Edition are written in TypeScript. Basically, the latest version should be chosen but if you have a strong reason to choose the second edition, you should know the frameworks used in the book could be a bit old. However, the technique itself will never be rusty.
OOP, Clean Architecture, and Clean Code
Design Patterns – Elements of Reusable Object-Oriented Software
Design Patterns extend your skill. I believe that there are good patterns for all cases. If I find that the code is not readable or not scalable, I think I just don’t know the good patterns for it. By learning Design Patterns and applying the techniques, our code will be readable, scalable, and maintainable.
Let’s learn the patterns from this book because it is hard to experience those cases in a short time in our development.
Adaptive Code via C Sharp
I learned SOLID principles with this book. SOLID stands for the following.
- S – Single responsibility principle
- O – Open closed principle
- L – Liskov substitution principle
- I – Interface segregation principle
- D – Dependency inversion principle
SOLID is an important concept to write a clean code and this book tells you them more deeply than the articles on the internet and how to apply those techniques.
It also contains Agile with Scrum process things. If you want to learn both programming techniques and the Agile process, this is a good choice.
Refactoring Improving the Design of Existing Code
Even if we develop new software, we need to maintain the code in the future. To make the code maintainable, the code regularly needs to be refactored. This book has a list for “Code Smells” that indicates the code could become unreadable. The author shows a solution for each issue with an example. The best part of this book is explaining each step from the original code to the refactored code.
When should the tests be executed? How small each step should be? When should we commit the change? I learned a lot of nice development habits from this book.
I recommend you read at most 3 techniques a day. If we learn a lot in a day, we can’t remember them well, and thus, we can’t apply the technique in our code. If we learn less than 3 techniques, we can remember them well and try to apply them to our code.
API Design Patterns
I have wanted to know the API design patterns. By the way, I’ve not worked on API stuff so far. But, this book covers many important points for API designers. It teaches you about scalability, handling null and a default value, how to receive parameters, and so on. I have looked for this book for a long time. It is hard to change the API due to the backward compatibility. If we change the interface, a user must change the code. For the user experience and the maintainability, we should know those patterns and the points before working on the API stuff. That’s why I bought this book.
This book is written by JJ Geewax from Google and published by Manning Publications which is my recommended publisher. Google API is widely used, so I thought this must be one of the great books for API design.
Testing Web APIs
After learning API design patterns and implementing our API, we need to write tests for it. When the behavior of the API changes, the code of the client-side must also change. We should not make such a mistake. Let’s learn the theory and the good practice for the unit tests that are robust and reliable enough.Testing Web APIs
Become an Awesome Software Architect Book1
Software architects have various knowledge. They need to look for and offer a decent solution for the team. Once the architecture is decided, it’s hard to change it in the future after the software grows. The software architect should know a lot of patterns in various fields.
This book handles 20 topics. Most of them are coding-related but you can learn new things from this book. This content is not heavy but nice for the first book for those people who want to be software architects. This book is “Book 1”. I have been looking forward to “Book 2”. If “Book 2” is published, I will definitely buy it.
Learn DOCKER In a Month of Lunches
I hadn’t used Docker until I’ve read this book. You don’t have to know anything about Docker to read this book. This book brings you from a beginner to an intermediate user. It tells you not only how to set up and write a Dockerfile but also how to efficiently build your software, how to collect logs into one place from the multiple software, and how to set up the source code repository with a build server, and so on. After you read this book, you will be one of the experts on your team.Learn Docker in a month of lunches
Programming Machine Learning From Coding to Deep Learning
If you are interested in Machine Learning, I recommend this book to you. Some might just want to know how to use the Machine Learning Modules but some want to know the logic behind it. This book teaches you the mechanism of each approach with Mathematics. So, this book contains formulas but the author explains them in an easy way.
It explains the basics and then the advanced ones. If you need to work with such a thing, you should know the mechanism, otherwise, you might not be able to address a problem.
These years, I buy some books at end of the year and read them throughout the year. I personally like Manning Publications. as a publisher because all books that I bought there were great. They are reliable and well structured. If you don’t have your preference, check the published books from Manning Publications. .