If you like computers and things done by your terms, surely you want to learn to code. Programming gives you that satisfaction of creating something out of nothing, which is associated with creativity.
Nothing more pleasant than, from a simple text editor, writing useful programs that mold reality with great applications, operating systems, expert programs and, why not, games. While learning to code is not an easy task, it can be fun.
When you learn how to code, you have the tools. But you have to learn to use them in the most appropriate way. So if you like to solve problems creatively, these books will lead you to become an expert programmer and they should be in your library.
Code: The Hidden Language of Computer Hardware and Software
Author: Charles Petzold, published by Microsoft Press.
Although you have worked with computers for a long time, Petzold teaches you in this book many things that you did not know, or at least makes you see them from a different angle. This book is a gateway to many technological aspects that will complete your education as a programmer.
Authors: Andrew Hunt and Dave Thomas, published by Addison-Wesley Professional.
This book is a collection of tips for programmers that will teach you that coding is a collective effort. Most of the code used by software engineers and programmers is not theirs, so the authors show you how to work in this environment.
Multiple job opportunities.
One code challenge.
Get rid of repetitive hiring processes for all the positions you apply to, and access many job offers by taking a single real-world assessment.
Thinking: fast and slow
We bring you here a best seller in the world of psychology, by Nobel Prize winner Daniel Kahneman. An essential book to improve your own thinking processes.
Kahneman talks about two systems of thoughts. System 1 is fast, intuitive, emotional. System 2 is slower, logical, deliberative. When it comes to thinking, both systems work together and, on many occasions, they work badly.
Discover how to optimize your logical thinking without the bias of emotional thinking to make the best decisions. An essential work that introduces us to the world of epistemology and serves us in a practical way.
Design Patterns: Elements of Reusable Object-Oriented Software
This is not an easy read, but it introduces us to an important topic: software design patterns.
Mastering this book requires a good command of UML. Still, it is a book you should not overlook. In it you will find 23 software design patterns aimed at making software more efficient, flexible and, at the same time, elegant.
Usable practical examples that will help you to better conceive your projects as a developer.
Introduction to Algorithms
Authors: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, published by MIT Press.
If you have a career in Computer Science, you surely know this book. A bit complex to read, but mastering the philosophy behind the algorithms is essential if you want to progress as a programmer or software engineer.
The Art of Computer Programming: Volume 1
Author: Donald E. Knuth, published by Addison-Wesley Professional.
Another difficult but necessary read if you want to fully understand algorithms and data structures, mathematics included. It is a book that challenges your intellect and perseverance, but the information inside is a real treasure.
Code Complete: A Practical Handbook of Software Construction
Author: Steve McConnell, published by Microsoft Press.
This book is considered a true encyclopedia of practical programming and a book that every programmer has to read, despite its 900 pages. Regardless of your level, this manual will change the way you see, think and write code.
Author: Gayle Laakmann McDowell, published by himself.
If you are looking for a job as a software engineer this book is for you. In its pages it collects 150 frequently asked questions in job interviews and how to answer them like an ace. After reading it, you will solve programming problems with the best approach, even if you are not applying for a job.
The Mythical Man-Month: Essays on Software Engineering
Author: Frederick P. Brooks Jr., published by Addison-Wesley Professional.
This book is one of the most helpful if you want to learn how to handle software engineering projects. Basically, it teaches you what to do and what not if you are developing a project with a team of coders.
Algorithms to Live By: The Computer Science of Human Decisions
Authors: Brian Christian and Tom Griffiths, published by Henry Holt and Co.
Although not exactly about programming, this book delves into the problem-solving techniques behind algorithms, connecting psychology and computer science. Many programmers do not see the application of the algorithms they use with real life, when all the connections are there.
The advantages of being a programmer and reading books for programmers
Reading is a discipline that is difficult to maintain nowadays due to the large amount of inputs and forms of entertainment. But, as developers, we are interested in it. It is a leisurely and reflective act that undoubtedly improves our concentration by the simple fact of doing it.
If you are a programmer, maintaining a weekly rhythm of reading will help you to structure your thinking, to master other registers beyond code, and to optimize yourself as a programmer with clear and concise examples that you can return to again and again.
As they say, those who read books make a difference in any field, whatever it may be. Because the simple act of reading already improves our cognition in many ways.