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.
The Pragmatic 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.
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.
Cracking the Coding Interview: 150 Programming Interview Questions and Solutions, 6th edition
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.