The ULTIMATE BOOK LIST for BEGINNERS learning to code

The ULTIMATE BOOK LIST for BEGINNERS learning to code


If you want to learn how to program then it pays to have some good books by your side. That is why I have put together a collection of top books designed to help you learn to code and develop yourself as a programmer. I want to help you become the best developer you can be. So let’s get into it.

General Programming Books

In this section, I have put together a broad list of books, which I consider to be more general, rather than language specific. I have included language specific books further down, but these are the books that will give you the necessary foundations to become a skilled professional programmer.

Head First Learn to Code by Eric Freeman

Head First books don’t look like your traditional programming textbooks. Rather they are quirky, visual and strives to entertain.

The whole thing is design to teach you the key concepts of programming in a fun, practical and easy to understand way. It uses Python, which is a notable popular yet easy to read language, ideal for a beginner.

It doesn’t over complicate, it doesn’t overwhelm, and it doesn’t bore you to death. This book is perfect for a complete newbie looking to dip their toe into programming.

And if you like this book you will be pleased to know it’s one of a series. Head First has a number of books on different topics and programming languages. Such as Head First Design Patterns, Head First Python, Head First Java, Head First Android, and the list goes on.

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

As a beginner, what you might not know is how important it is to write clean code! In fact, it’s one of 9 mistakes beginners make when learning code. That’s why Clean Code is a very important book.

Clean Code will teach you the difference between good code and bad code, why it’s vital to write good clean code, and the best practices to make you’re code squeaky clean.

Good programmers care about the code they write. They are craftsman, who write beautiful code. Yes, that’s right, well-crafted code can be a beautiful thing.

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold 

Anyone remotely interested in computers and technology will find Code, by Charles Petzold, an interesting read.

This book cuts to the core of how computers actually work! But explains everything in a very accessible way so virtually anybody can pick up and read this.

As a beginner or self-taught programmer, we don’t tend to have that deeper knowledge of how computers work. And while it’s not a prerequisite to be able to write code, have this knowledge does give you an edge.

Having the marriage of hardware and software embeds a greater fundamental understanding and allows you to see the bigger picture.

You can walk away from this book finally knowing how your code really works and what’s going on behind the scenes.

The Pragmatic Programmer by Andrew Hunt, David Thomas

This is an ideal book for anyone new to software development. It’s an easy read, filled with great analogies, and tons of wisdom that new programmers need to hear.

The Pragmatic Programmer talks more about the philosophies of Software Development. This allows you to understand the core process, which will make you a better programmer.

There are a lot of lessons that programmers learn over time, and this book is a culmination of those lessons. So you could probably save yourself some time by reading this book and digesting those lesson now.

Code Complete: A Practical Handbook of Software Construction by Steve McConnell 

Pre-warning, there is a lot to this book, it like 900 pages! But to summarize, think of this book as a definitive guide to software construction.

The book gives a beginner a great insight into the professional methodologies and general approach to building software. But really goes into the nitty-gritty, hence the length of the book.

I know as a beginner we don’t tend to think in this way. Instead, we are more concern with getting the code to actually work! Which sometimes results in poorly constructed hacky code.

Code Complete will helps shape the way you think about building software.

Needless to say that it’s a very comprehensive book. I myself, as of writing the blog post, am still working my way through it. But I can see why it comes highly recommended for beginners.

Sure, it has been around for a few good years so some stuff may be slightly outdated. However, the core still holds up!

Coders at Work: Reflections on the Craft of Programming by Peter Seibel

If you want to be the best, learn from the best.

Coders at Work is a collection of 16 interviews with some of the programming worlds best and brightest.

It’s an interesting an insightful read for any programmer. But the wisdom shared in this books can be very helpful for beginners. I particularly like something that Jamie Zawinski, Lisp hacker, and Netscape Developer, said…

“If you don’t understand how something works, ask someone who does. A lot of people are skittish about that. And that doesn’t help anybody. Not knowing something doesn’t mean you’re dumb–it just means you don’t know it yet.” 

Personally, I found this very comforting when I first started out.

Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

Algorithms can be a scary topic for beginners, but luckily we have this book. I’d say it’s probably one of the best algorithm books for beginners currently out there.

This book has been designed to be both comprehensive and accessible to programmers of all levels. So while this book is branded as an introduction, it still covers everything you would need to know in detail!

Examples are written in plain English and pseudocode, which mean you don’t have to worry about programming language specifics. I am sure if you’re a beginner, that’s music to your ears!

Simply, this is the ideal book for your first foray into data structures and algorithms.

Programming Pearls by Jon Bentley

Programming Pearls is somewhat of a golden oldie and regularly cited as a programming classic that has stood the test of time.

It’s packed full of pearls of wisdom (see what I did there) that have come from years of programming experience. You are shown programming problems that others have faced, and how these problems have been address. This aids your ability to tackle programming problems, helping you to become a better problem solver.

While this is a classic, you will also be happy to know that the second edition has been updated. So it includes modern programming methods and environments. Plus new examples.

Just a little disclaimer here though. This book does it’s best to be accessible, but there maybe some technical stuff unfamiliar to complete beginners. Well, that’s what I personally found anyway.

But despite that, I still feel this is a great book for new programmers for the sheer fact that it will help you become a better problem solver. And as you may have guessed, solving problems is a big part of programming!

Cracking the Coding Interview by Gayle Laakmann McDowell

This is the book you are going to want to have to hand when you seriously start thinking about venturing into the job market.

First and foremost, it’s a career orientated book. However, it does also provide some great information on data structures, algorithms and other technical stuff. But it’s all in relation to securing that job offer.

If you want to land a job at a big tech company, then this is the book you need. This book is very practical and tells you everything you need to know and what to expect.

It also prepares you extensively with 189 real-world practical examples of coding interview questions. Giving you ample opportunity to practice and master these types of questions.

Language Specific Programming Books

Below is a section of books, which I consider to be ideal for any beginner looking to learn one of these languages. I have tried to cater for those who want a gentle introduction and those who want something more comprehensive. Hopefully, you will find something here for you.


Head First Java by Kathy Sierra & Bert Bates

Head First Java is your simple, easy and fun guide to learning Java. The Head First series take a more novelty approach to learning, which helps make the information more engaging and easier to grasp for beginners.

Java: A Beginner’s Guide by Herbert Schildt

Herbert Schildt provides a very good introduction to Java in this book. It does help to have some basic programming knowledge, but that’s what you have the “Head First” series for. However, as the title suggests, this book is aimed at beginners and will serve aspiring Java programmers well as a starting point.


Python Crash Course by Eric Matthes

I think an absolute beginner itching to get started will love this book. It’s fast-paced but provides enough hand-holding for beginners. You start by delving into the basics, then you quickly move onto building projects in the second half.

Learn Python 3 The Hard Way by Zed Shaw

Those who want a bit more of a challenge should pick up this book. Despite the “Hard Way” label, it is aimed at beginners. However, the book has you relying less on IDE’s to do all the work. And instead, get you using your own initiative and look things up (a common practice among developers). Zed Shaw has a series “Hard Way” books in other languages, including Ruby and C. You can also get the material for FREE from his website.


Beginning Ruby by Peter Cooper

Here’s a great book to begin your exploration into the world of RUBY. It starts of teaching all the fundamentals of the language, and by the end will have you creating real Ruby applications. This book also demonstrates the breadth of things you can do with Ruby as it’s such a versatile language. Having that wider field of view helps a beginner to understand the possibilities.

Intro To Ruby Programming by John Elder

This may be a somewhat lighter introduction, but it’s a great place to start for someone with no programming knowledge whatsoever. You’ll also be able to wiz through it in a couple of days. And while you won’t emerge an expert, you will still pick up the basics.


C Programming Absolute Beginner’s Guide by Greg Perry & Dean Miller

This book does what it says on the tin, it’s an absolute beginner guide i.e. very noob friendly. In 350 pages, you can go from complete noob to having a competent understanding of programming and the C lanaguage.

C Primer Plus by Stephen Prata

C Primer Plus is a brilliant book that provides a welcome introduction to C. Yet it continues on with some intermediate level material, which provides a good transition. It’s a comprehensive (large) book which will teach you what you need to know to create practical applications with C.


C++ Primer by Stanley Lippman, Josée Lajoie, and Barbara E. Moo

This is a very popular C++ book which provides a very thorough introduction to C++. It covers just about everything in the language but makes it SIMPLE.

Programming: Principles and Practice Using C++ by Bjarne Stroustrup

Learn C++ straight from the creator of the language, Bjarne Stroustrup. It’s a notable introduction to C++ and programming in general, which assumes no previous programming experience.


The C# Player’s Guide by RB Whitaker

Whether you’re a complete beginner or have some experience, this book is designed to be the ultimate guide for someone delving into C#. In addition to covering everything you’d expect from the language, it also covers the very popular .NET framework.

C# Programming in Easy Steps by Mike McGrath

If you want an introductory book that isn’t so meaty then check out this one. It’s a quick read at only at 192 pages, yet it still gives you a good understanding of the language. And of course, it’s very beginner friendly.


Eloquent JavaScript by Marijn Haverbeke

Eloquent JavaScript comes highly recommended as a general programming book. It does teach JavaScript but focuses on the art of programming to get you writing great eloquent code. This book provides all the necessary introductions for beginners but challenges you at the same time so you REALLY learn. And for an added bonus, the book is available online for FREE.

A Smarter Way to Learn JavaScript by Mark Myers

What’s the smart way to learn? By doing! This is a projected based approach to learning, with plenty of consideration for beginners. It keeps things basic and easy to understand so you won’t scared off.


HTML and CSS: Design and Build Websites by Jon Duckett

Jon Duckett’s books are normally the go-to books for aspiring web developers and it’s easy to see why. The information is not only extremely valuable but displayed in a concise and simple manner. The design, layout, and graphics of the book make it visually appealing and importantly, EASY TO DIGEST. If you like this book you should also check out his JavaScript and JQuery edition. You’ll need that if you want to make some bad ass websites.

Learning Web Design by Jennifer Nieder Robbins

This book has been created as a no-nonsense guide to creating professional websites. However, the next edition is set to come out in May 2018. So you may want to hold off and wait for the latest edition to get the most up to date stuff.


The Joy of PHP: A Beginner’s Guide to Programming Interactive Web Applications with PHP and MySQL by Alan Forbes

The Joy of PHP makes no initial assumptions. Even if you don’t know HTML the book provides a quick intro to get you up to speed. You then dive-in to learn PHP through a series of fun exercises, to get your feet wet.

PHP and MySQL Web Development by Luke Welling, Laura Thomson

For a very thorough a complete book on PHP for beginners, consider picking this one up. However, it may be a slight strain as this book is a brick, coming in at 1000 pages. I understand that maybe a bit scary for a beginner. However, it is in an easy to read format accessible for all!

Have I missed any books?

Obviously, I can’t include every book and there will be some that I have missed. But I intend for this to be a growing list. So if you have any suggestions for books which you think will be perfect for a beginner then let me know in the comments. Many thanks!

Feature image designed by Freepik

Sharing is caring!

About the Author Owen

Creator of Code Dad, father and self-taught programmer. My mission is to balance life, work, family, all while learning to code, and hopefully help others who want to do the same.

follow me on: