10 Programming Books you Need to Read
Sometimes we want to reach the next level on programming and we just don’t know where to start. I’ve been there, with that sensation that I should do something but I didn’t know what to read or what to learn.
So I revamped my previous blog post about books and I gathered a list of books that can make the difference.
This book was one of the best books I read in my entire professional life. After you read this book you will be more conscious about the need of writing clean code and I bet you will not look back.
From naming variables to code testing, this book covers all the topics you need to improve your code dramatically.
Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year…amzn.to
This book like the previous one, is a must to read to every programmer. It will improve dramatically the way you structure and design your software, to achieve high levels of maintainability and correctness in your product.
Clean Architecture: A Craftsman’s Guide to Software Structure and Design (Robert C. Martin Series) [Robert C. Martin]…www.amazon.com
This book is an extraordinary and easy to digest guide to the most used algorithms in computer science. Is so easy to read that even non programmers can understand how this algorithms work.
Summary Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to…amzn.to
Software design patterns are a handy tool to have in your box. These are software design patterns that are in compliance with the SOLID object oriented principles:
- Single Responsibility Principle. A class should only have one reason to change.
- Open/Closed Principle. Software entities should be open for extension, but close for modification.
- Liskov Substitution Principle. subtypes must be substitutable for their base types.
- Interface Segregation Principle. Clients should not depend on methods they don’t use (keep it short and simple).
- Dependency Inversion Principle. High level modules should not depend on low level models
What’s so special about design patterns?At any given moment, someone struggles with the same software design problems…www.amazon.com
Test driven development allows you to program your software in incremental steps, defining first the business logic rules trough tests, see them fail and produce the minimal amount of code to see them pass. At a first sight it seems that you are doing more work than you should, but once you adopt it you will see that you do less code, with more quality and you will have confidence to change your code without worrying that everything will fall apart.
Follows two TDD projects from start to finish, illustrating techniques programmers can use to increase the quality of…amzn.to
This book will help you achieve a fair balance between your technical skills and your soft skills. Soft skills are an important part to achieve success, because to do something awesome you have to interact with other people.
SummarySoft Skills: The software developer's life manual is a unique guide, offering techniques and practices for a…amzn.to
This book was designed to prepare you to coding interviews. Every programmer is a problem solver, and this books trains exactly that your problem solving.
I am not a recruiter. I am a software engineer. And as such, I know what it's like to be asked to whip up brilliant…amzn.to
8) Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)
This book is good for you to realise the benefit of knowing several languages. Reading this book will help you to expand the way you think about problem solving. You will learn Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby.
You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is…www.amazon.com
As a programmers we often think in problem solving through the languages we program. Learning elixir will make you enter in the world of functional programming languages and will shape the way you think, making problem solving much more easier.
This is a book of a specific language, but I recommended anyway because elixir it’s pure functional programming, and so a different paradigm.
This book it’s the best in my opinion to master go programming language. This recent technology it’s known by the simple but powerful concurrency primitives and by high levels of performance.
This is a book of a specific language, but I recommended because go programming language has a lot of different things like implicit interfaces and a Communicating Sequential Processes concurrency model. Like I say the languages you know shape the way you think.
Hope you like it,