How to Choose the Perfect Programming Book to Read Right Now
One of the biggest challenges of studying programming books: choosing the perfect programming book to read.
Thousands of books exist, but many of them are not quality. Books can easily waste our time if they are either poorly written or the wrong programming book to read for what you want to learn.
Choosing quality books is a skill. But you need to evaluate more than quality to choose the best programming book: you need to know precisely what you want to study, and that alone can be overwhelming.
In this article, let’s go over three steps to effectively evaluate and choose the perfect programming book for you.
Step 1: Decide on the Technology to Learn
Sometimes this step is intuitive, especially for working programmers who have an obvious skill they need to grow in order to complete a project. It can also be obvious when you are out interviewing and recruiters keep demanding the same skills.
But even experienced programmers can not know what they want to learn.
A beginning programmer may struggle choosing a first language. A more advanced programmer may struggle deciding how to stay fresh while their current company operates with frameworks or libraries that are out of date. Often, companies may be slower to adopt in-demand technologies. Just because your company is slow to adopt, that does not mean you have to be.
So how do you know what to study? If it is not obvious to you, do not rely on intuition. If you take a vague approach of browsing bookstores or listening to what your community is practicing, you might lose sight of yourself and what you need to grow in your career.
A pitfall for beginner programmers: they form a curriculum not catered to them. With an overwhelming number of career paths in programming, it’s tempting to choose a technology that you ‘should’ learn rather than a technology that you can justify within yourself. Often what you ‘should’ learn will be in line with what you ‘want’ to learn, but fully justifying the technology choice to yourself will help you both commit and enjoy the new technology you are studying. Why? We are more likely to connect to something when it is a part of our personal growth narrative.
In the past, when I didn’t know what to study, I took suggestions from other programming friends. The problem with that: when they told me what to study, I felt like I didn’t own the choice myself. Choosing your own path means that you choose your career narrative.
So how do you choose what to study for yourself?
Two ways: researching and prototyping.
Researching is different from taking direct suggestions for what to study. Researching is deep observation from many sources. Prototyping is a design term that means building a test for yourself to know that you are iterating in the right direction. Prototyping is one of the core concepts in the book Designing Your Work Life.
One research path: compile a list of dream companies you would like to work at and find a past or present job posting you are interested in. If you study several job postings, you are bound to find patterns of particular skills you do not have. In a job posting, remember that the first couple bullets are the essentials, so weight those above the nice-to-haves at the bottom.
You can prototype by conducting informational interviews. This gives you the opportunity to imagine yourself in the shoes of someone, in a role you would like to have one day, who has skills you would like to uncover. Ask questions about the hard decisions they have to make. Ask about the evolution of the codebase. Ask them what they enjoy about the technologies they use on the job.
For ready-made paths to learn in fundamental programming areas, see Teach Yourself Computer Science. This fantastic resource was extensively updated in May 2020. It includes book and video recommendations for common programming topics.
In many Books on Code articles, such as 3 Crucial Strategies to Becoming a Programmer, I talk about the end-game first approach. The end-game first approach is first envisioning where you want to be.
Imagine the board when you got the checkmate. This is your anchor point. If you don’t define your vision, you are at risk of delaying your true goal.
Step 2: Get More Specific
Once you decide on the technology you want to learn through books, it is time to get even more concrete. When you first land on a technology you want to learn, you might only know its name. Too often, we dive right into the nuts and bolts before getting the big picture.
When you get a big picture of a technology, you are able to define the scope of your learning journey and confirm that it is truly the right thing to learn. How long is learning going to take? What kind of applications can you think of for this technology?
Application is key.
When we think about ourselves as programmers, it’s important to think of ourselves as builders and not learners. So before you get into the weeds of the technology, think of a small project you can begin building.
Think “How do I play with this technology?”
In my Skill Mastery Planner, which I offer for free through Books on Code, the planner prompts you to research and write three things you did not previously know about the technology you are trying to learn. This can be history — like when it was developed and for what purpose — or it can be unique traits in contrast to another similar framework you know. It can be anything.
Get specific by doing light research on official docs or Wikipedia articles.When you do this, something magical happens: you are more likely to get started right away. Too often, we procrastinate learning a new skill because the skill is too big and undefined. Defining it now in a low-pressure way is a crucial step toward getting started.
Getting specific is another step in evaluating your technology. By writing about your new technology and reflecting on it, you may learn that this technology isn’t actually what you want to be learning. In your research, you might stumble across something even better.
Give yourself the freedom to pivot.
But getting specific helps you in another way: you are able to evaluate the books you want to buy.
When you know nothing about the technology, how are you supposed to know whether a book is right? When you look at a table of contents, you should have expectations. Take the time to build these expectations now.
Step 3: Choose Your Book
You know the technology you want to study.
You have a good idea what that technology is about and its contribution to your larger goal.
Now, it’s time to choose your weapon — your study material.
Too often, we are poor at identifying quality in technical writing and we might find ourselves slogging through a wall of text, thinking that we are the stupid ones. In the Books on Code article, How to Read Programming Books, we learn that you are not stupid, but the book is.
When you evaluate a book, look at the following things:
The table of contents: A table of contents tells you what you are going to learn throughout the book. Is the table of contents well organized? Does each item align with your expectations? Is the scope too broad or too narrow? Is the book distributing topics in a way that is logical to you?
Formatting: When you glance at a page without reading any words, what do you see? Are you looking at a wall of text or short paragraphs broken up with lists, highlighted tips, and diagrams? A well-formatted book is easier and more enjoyable to read.
The length and complexity of sentences: Technical books ought to explain concepts as simply as possible. The book’s job is to present information in the most easy-to-digest manner. If the book is not working to do this, put it down.
Conversational style: Is the book using second-person pronouns like ‘you’ and ‘your’? Is the book trying to engage you with questions? Is the book slightly informal and even a little bit fun? If you spot these characteristics in a book, the authors probably know something about learning theory. You are more likely to be engaged and to get the maximum benefit from the book.
Book reviews: If other people have had success learning from this book, you may be successful, too.
After evaluating the book based on these characteristics — and the book passes — congratulations! You have chosen the programming book for you. Put it in your shopping cart or borrow it from a local library, and enjoy!
Bonus Step: Get Access to Unlimited Books (for Free)
Ever wonder how I am able to read and review so many amazing books on this platform? I use O’Reilly Learning to get access to an astoundingly massive digital library with all of the major publications in tech.
And by massive, I mean that most of the programming books you already own.
You can absorb as much information as your brain can possibly hold for free for 10 whole days. It’s worth checking out if you’re interested in going on a reading binge.
Thank you for taking the time to read this article on choosing the best programming book. If you liked the article, don’t forget to share it with others who may benefit.
So many programmers every day are finding themselves wasting time and money on poor resources. By sharing this article, you might save your friends the trouble.
If you want more on how to study technical books effectively, learn faster, and take control of your career, sign up for my free course, Get the Most From Technical Books (for Programmers). At Books on Code, my mission is to be your companion in learning and studying books to master technical skills in programming.
If you want more on how to be effective at studying, see the article 3 Common Self-Taught Programmer Mistakes That You May Be Making.
See you there. 😊