A reading guide for those serious about programming
I selected these particular books because I wanted to provide a list of books that wouldn’t just increase your technical skills and make you a better programmer but would also challenge you to grow as a person and share your knowledge next in your line.
There’s no single programming book that will make you a better programmer. The best books to learn to code can vary based on what language you’re pursuing, so the sections below didn’t just focus on one language but eleven. Without further ado, here are some of the books every programmer should read.
1. Go Programming Language
Personally, I haven’t quite made up my mind about the Go language itself just yet, but this book is undeniably fantastic! Every programming language needs an introductory book like this: clear and concise, thorough coverage of the entire language without being dense or boring, and puts as much effort into teaching good taste & style as learning the language itself.
I especially appreciated how this book was organized: the first chapter starts with several illustrative examples before introducing the language itself. Then the next several chapters cover all of the basic & advanced features of the language. The final few chapters cover some of the other concerns of modern professional programmers beyond just the language itself: the built environment, packaging, testing, etc.
2. Learning Python, 5th Edition (1600 page)
I know a 1600 page book seems almost crazy but, before you start looking elsewhere (as I did) for something shorter, let me try to explain why this 1600 page book may actually end up saving you a lot of time and making you a better Python programmer in the end.
First of all, I’ve read many of the other up-to-date, shorter Python books, and being new to Python. I ended up spending most of my time searching online, trying to fill in the gaps that the other authors failed to fill in. With this book, you don’t need to reference anything else because the author does a great job answering every question. You can tell he’s dedicated his life to teaching Python and knows what problems his readers will run into.
3. Programming in Scala
This book explains concepts concisely and clearly with concrete examples. Not only does it give you a tour of the Scala programming language, but also the foundations behind object-oriented and functional programming at large, the two pillars of Scala. Must read for anybody who wants to really learn Scala and the programming style and pattern it represents, instead of merely scratching its syntax and semantics (which is well supplied by the scala-lang website).
4. Programming in C (Developer’s Library)
This is quite a nice book for beginners interested in learning to code with the C language. It starts with the basics with some nice examples and walkthroughs. It covers areas such as data types, recursion, loop, conditions. It is a food companion book if you are doing a CS course and need extra help with the subject. It does seem to miss some of the more usual libraries in C.
5. Learn C++ Quickly
C++ is one of the key languages to know in terms of getting a coding job. This one begins with a section that helps those new to programming understand that they need to download an environment to work — Video Studio. The book helps the readers know how to obtain this product and its advantages to the rest of the process.
Then the author takes the reader through the process of defining the various elements with which they will be dealing as they learn to become a C++ programmer. This is a continuous process throughout the book as Code Quickly introduces new material.
6. Introduction to Programming in Java
I am using this book to self-study Java, and it is truly excellent. At the end of each sub-chapter, many practice problems are quite interesting and ultimately reinforce the material.
I believe this book is superior to other introductory java books (and some other introductory programming books, for that matter) because of the sheer number of practice problems without answers (some are on the book’s website). I’ve discovered that being able to answer a question on your own or make a valiant effort on your own is much more educationally valuable than having the answer shown to you. Furthermore, this book does not advocate a particular IDE. It encourages the user to manually compile and run the programs, which I think is completely necessary for a java programmer to understand.
7. Swift in Depth
The book is fairly easy to read. Concepts are explored gradually, with a focus on how to reason about the various constructs of Swift. Different approaches to solving a certain problem are presented side by side, with pro’s and con’s presented for all cases.
Theoretical aspects are balanced by an abundance of code examples, more than you’d normally find in a programming book. The author has put a lot of effort into demystifying abstract concepts on the spot into the mundane (but useful) examples you’re likely to encounter in your day to day work as a programmer.
8. Kotlin in Action
This is a great place to start if you need to get up to speed with Kotlin fast. It’s written clearly and concisely and is great for the Java developer looking to change over.
This book is an exceptionally well written deep dive into the Kotlin programming language. The concepts are presented in clear, concise language that flows well and is easy to understand without sacrificing any detail. For a 300 page book, I’m surprised at how in-depth it went with its topics. Perhaps that is a testament to how easy Kotlin is to use, or maybe it was because the book used the reader’s existing knowledge of Java as a starting point.
9. Learn C++ Quickly
C++ is one of the key languages to know in terms of getting a coding job. This one begins with a section that helps those new to programming understand that they need to download an environment to work — Video Studio. The book helps the readers know how to obtain this product and its advantages to the rest of the process.
Then the author takes the reader through the process of defining the various elements with which they will be dealing as they learn to become a C++ programmer. This is a continuous process throughout the book as Code Quickly introduces new material.
10. Programming in Lua, fourth edition
Programming in Lua is an amazing textbook. It effortlessly illuminates the “scary parts” of Lua, exposing the powerful features that are often overlooked by casual users. The read is simple. The first 18 chapters can be absorbed by anyone with basic programming knowledge in about twenty to thirty minutes (the book’s balance outlines more advanced features and the interface to C).
If you’re new to programming, this book will guide you through fundamental concepts, and the examples at the end of each chapter are easy to digest. Lua has an interactive shell making it fun to test the commands as you read.
11. The Ruby programming language
A fully comprehensive guide to the language, including many advanced topics, is ideal for any programmer who wants to master the Ruby language. The author assumes the reader has a sound foundation in programming another language and often gives excellent examples and analogies for people who may already understand a concept or context in C/C++, Java, Perl, or Python.
The book is sectioned and organized masterfully, making topics easy to find, and forward and backward references found throughout the book are helpful instead of a hindrance. The book may have to be read mostly for someone who has no previous experience in Ruby, but the topics are contained well enough so that someone looking to hone their skills in certain areas can find what they need very easily.