21 Best Programming Books For Software Developers
21 books for software developers
Best Python Books
- Best For Beginners: Python Crash Course, 2nd Ed. by Eric Matthes
- Best For Intermediate: Fluent Python, 1st Ed. by Luciano Ramalho
- Best For Advanced: Expert Python Programming by Michal Jaworski
- Best For Django Developers: Django for Beginners by William Vincent
- Best Flask-Focused Book: Flask Web Development, 2nd Ed. by Miguel Grinberg
Best C++ Books
- Best for Beginners: Sam’s Teach Yourself C++, 8th Ed. by Siddhartha Rao
- Best for Intermediate Developers: A Tour of C++ (In-depth Series), 2nd Ed. by Bjarne Stroustrup
- Best for Advanced Developers: Advanced C++ by Gazihan Alankus
- Best for C++ Game Developers: Beginning C++ Through Game Programming by Michael Dawson
- Best for Solving Problems with C++: Problem Solving with C++, 10th Ed. by Walter Savitch
- Best for Learning Angular: Angular: Up and Running by Shyam Seshadri
- Best for Learning React: React Quickly by Azat Mardan
- Best for Learning Vue: Fullstack Vue by Hassan Djirdeh
Best PHP Books
- Best for Beginners: PHP: A Step-by-Step Guide by Alexander Clyde
- Best for Intermediate Developers: Modern PHP: New Features and Good Practices by Josh Lockhart
- Best for Advanced Developers: PHP Advanced and Object-Oriented Programming, 3rd Ed. by Larry Ullman
- Best for WordPress Developers: WordPress Plugin Development Cookbook, 2nd Ed. by Yannick Lefebvre
- Best for Solving Problems in PHP: Plug-In PHP: 100 Power Solutions to Practical PHP Problems by Robin Nixon
Programming books for software developers aren’t in short supply, and they tend to pack loads of unique information. As a developer myself, I learned the hard way that videos and tutorials can’t replace good, old-fashioned books. Here’s a roundup of 21 books for software developers you won’t want to miss!
Know How You Learn
Before buying a book, consider your “learning style.” For example, some of us can retain information most easily through just text, some of us learn best through audio, and some of us need lots of images to retain the content. Not sure what your style is? Check out this article from Neumann University!
Then Pick a Language!
If you want to develop desktop games or applications, you’ll be better off with books about C, C++, C#, and Java. Don’t know what language you need to learn? Check out the “PYPL” GitHub, which has a live, global index of the most-used languages!
A Word for the Wise
If you’re already a pro developer, you may already know this. However, for those who are just starting out or in the middle of their development journey, there are a few very important pitfalls to watch out for as you choose and read your books! These occur regularly in the industry, as I have witnessed personally, and knowing the enemy is half the battle, as G.I. Joe would say!
Pitfall 1: Fear of Missing Out (“FOMO”)
The fear of missing out on new technologies, often called “FoMo”, leads to fast developer burnout. Companies and individuals don’t want to miss the next wave of tech, so as soon as a new language, framework, or library comes out, they try to learn it as fast as possible. The vast majority of new or “experimental” languages and frameworks do not gain traction and are therefore not worth the time investment to learn most often. Sticking to the “classics” (i.e., C++, Java, C#, and even Python and more) pays off!
Pitfall 2: Imposter Syndrome
In my opinion, this is a huge issue that isn’t discussed often enough. No matter what stage of developer you are, you will be prone to this issue! This is a feeling many developers get that they are not good at what they’re doing; they will never understand a certain technology, etc. It’s so rampant that there are psychologists who specialize in treating people who have this!
Remember that you are adequate, you are capable, and you can be a great developer! Tech can be hard to learn, so cut yourself some slack! Here’s a detailed article on Medium for those struggling with Imposter Syndrome.
Now, let’s take a look at some great books for you below!
21 Great Software Development Books
We went through swaths of textbooks to find only the highest quality books for you! You’ll notice they’re divided by language and category. Enjoy!
This book is an excellent resource for starting out with Python. It’s straight-to-the-point and focuses on getting you up and running with core knowledge and examples! The book doesn’t have lots of theory and odd details, so you can get through it fast and still learn a lot. However, it does go into detail about why things work the way they do to enhance your understanding of Python.
No matter what you want to do with Python, this book probably has it. You’ll make your own video game, work with big data, and even make your own web application as you follow the book! The content builds on itself, with small code snippets evolving into full-fledged programs in days! The second edition is specifically for the most recent Python release, so you’ll be getting cutting edge content!
- Easy to follow along with for the most part.
- Has real-life Python program examples.
- One of the few books designed for absolute beginners.
- Contains short, clear-cut lessons and tutorials.
- Has basic, intermediate, and advanced Python content; you pick how far to go!
- Introduces the reader to every application of Python: web applications, games, data manipulation, and more!
- The book is rather verbose.
- Some examples are too simplistic and easy, even for beginners.
- The content made for beginners has some material that may be hard for those without experience to understand.
Unlike the book we just looked at, this one reads more like a traditional textbook. It is part of the classic O’Reilly programming book lineup (this is a series for developers that’s been around for decades), so it’s been vetted well. This book may be OK for beginners in Python who have experience with similar languages. However, its content is more geared towards intermediate developers.
Like most O’Reilly books, it dives right into how to do some fairly complex operations in Python and sometimes reads more like a reference book than a tutorial. It covers the basic Python data model, data structures in Python, functions, objects in Python, and the infamous “metaprogramming” of Python. All-in-all, it has a great deal of information for those who are competent in Python already but want to learn some of the higher-level features.
- Has information on lesser-known Python features.
- Has a very comprehensive glossary.
- Uses more concise language, as it isn’t meant for beginners.
- One of the few Python books that is meant for intermediate-level developers.
- Can be read cover-to-cover or only reader-selected topics.
- Although concise, the book can lack fundamental details that it presumes its readers know.
- While comprehensive, even intermediate developers may struggle to understand the content if reading only selected topics and not the whole book.
- Does not contain a great volume of exercises and “practice programs.”
Written by a professional software architect, this book is meant for those who are far beyond the beginner and intermediate level of the language. It is a fairly dense read but filled with great nuances that can help take the reader’s Python knowledge to the next level.
Even the most experienced Python programmer will likely find some surprises! Unlike some of the other books we’re looking at, this one is written as a textbook for higher-level graduate students. It is intended to be read cover-to-cover only, and it does not cover rudimentary Python. However, this is one of the few references out there that caters to Python pros!
- The book is very detailed and contains information that will help Python developers of any level.
- As it is a textbook, it has been peer-reviewed and peer-approved!
- Has a good mixture of theory and practical use of information!
- Designed to support the cutting-edge features just released in Python 3.7.
- Comes with free web content with the book purchase with instructional videos and sample scripts!
- Unlike some other books, it does not have a comprehensive index of tutorials.
- Designed for more academic thinkers than people who are strictly technically-oriented.
This book is designed to help people new to the world of Django, a framework that helps you make websites using Python! Rather than taking a traditional textbook approach, this book goes straight into projects. It’s fast-paced, and it comes with five projects of increasing difficulty.
The book gives hints along the way, so you’ll find yourself figuring things out as you go and get the hints you need to continue when you get stuck! In addition to Django-specific help and information, this book has a brief beginner’s Python tutorial. It is intended to be an “all-in-one” for those looking to make websites in the framework.
- Has both Django guidance and a decent Python tutorial.
- Will likely let you make your first web project with Django in less than a day.
- This book is not a boring textbook; it has real web projects that are very similar to sites you likely use!
- Projects are kept simple enough so that people of any Python skill level should be able to follow along easily.
- Although projects are comprehensive, they are not too detailed.
- The projects that the book walks you through don’t have more advanced information, like how to connect to databases.
- Some fundamentals are glossed over in the interest of time, so you’ll need to supplement the book with some online videos and tutorials.
Another item in the O’Reilly collection, this book shows you how to use Flask, a framework that is also for making websites with Python. Its structure deviates from most O’Reilly books. First, it has a textbook-like reading section where you learn all about Flask, as well as get familiar with its documentation.
After you’re thoroughly familiar with Flask, you then get some practice problems, all of which involve making different web applications using Python and Flask. Even after you build the main project, which is a WordPress-like clone, there’s still more! You are shown how to perform testing on your Python and Flask projects, maintain them, and collaborate on open-source ones. There is also a succinct introduction to Python for those who are completely new to both languages.
- The book is written in a very casual manner.
- Although there is only one large project for the reader, the book contains lots of real-life examples of Flask in action!
- Explores both the how and the why behind Flask websites!
- The main project is very complex but can still be completed by absolute beginners in about two weeks!
- The book contains some typos, likely remnants of old projects.
- Although there is an introduction to Python, there are better resources for beginners looking to learn pure Python instead.
- At times, it seems that the book has too many details about Flask, which can get overwhelming, especially for a developer who is just starting out.
As the title suggests, this is an all-in-one “teach yourself” variety of a C++ book! C++ is notorious for being complex, and it’s a difficult subject to get down. The whole point of the book is to provide a complete introduction to C++ for beginners, rather than a gloss-over with no explanation. It’s broken up into “chunks” that most beginners would be able to digest in about an hour and has small problems to complete throughout it.
The book tends to keep up with the latest versions of C++ and is currently on its eighth edition, showing how long of a reign it’s had on the beginner C++ market! Everything from writing your first “Hello World!” program to objects to testing is covered in this book.
- Unique “chunk” structure, designed to match most people’s attention spans.
- Actually explains things, rather than pretending that we all know them (as many programming resources tend to do).
- New edition is released with every new C++ edition so that readers can always stay current.
- Has plenty of examples and is a great multi-purpose books for those seeking employment in the industry as well as those looking to it as a hobby!
- Because there are so many editions, even new editions sometimes have outdated information on best practices.
- There are a few typos that reference projects from older editions that are no longer in the book.
- This book is not designed to be used as a topical reference. It’s essentially one long tutorial divided into “chunks”.
Designed for those who are already familiar with some aspects of C++ but wish to expand their knowledge in the subject, this book tries to keep it brief as it gives a full tour of all C++ has to offer. Those who are familiar will know that it’s exceptionally difficult to provide a full description of C++, as it has been around for a very long time! Although everything is not as in-depth as the title suggests, everything is explained well enough to put into practice!
The book reads as a hybrid between a textbook and a workbook, perfect for those looking to add to their toolbox on the side. It also has references for further reading if the reader wants to learn more about a particular subtopic. The book is forward-thinking, with discussions on features that will be in future editions of C++!
- Great, quick way for people who already know some C++ to learn even more!
- Also a convenient way for developers to learn about the more modern features of C++ and how to implement them in their existing programs.
- Has information on common C++ libraries that is rare for books (most just stick to “vanilla” C++).
- Progressive-minded book that gives the reader a great historical context and future predictions to get ready for the next wave of tech!
- If you’re a C++ expert, there is very little that this book has that you don’t already know (but it’s still great for Intermediate devs!).
- Some topics in the book involve libraries and classes that are deprecated and no longer used, so make sure you do your own research on best practices!
- The book has a wide berth of content, but it isn’t discussed in the detail that some books give.
Written by someone with a Ph.D. in Computer Science and his colleagues, this book focuses almost solely on advanced C++ concepts. There is no basic tutorial in this book, so it is not suitable for beginners. It’s a very dense book, coming in at 762 pages of raw information. Because it was written by a group of graduate degree-holders, it does tend to hone in on theory more than most books on the topic.
However, I believe the intended audience for this book would be those who are interested in how those complex classes in C++ work so they can build something similar. This book certainly isn’t a hand-holder, but it has lots of unique C++ information and a handy reference with pretty much every component, no matter how abstract, defined and listed.
- Written by a group of academic and practical field experts, so the content is high-quality.
- One of the few current books on the market targeted at Advanced C++ developers.
- Has content divided into chapters, each of which is a discrete topic, so you can pick and choose the material you wish to read.
- Handy glossary and “cheat sheet” are included, making this a great resource for professional and expert developers.
- The contents of the book get very dense and may be hard to understand if you do not have a graduate-level academic background.
- Some material is drawn out in an excessive manner, while other material is not covered as much as it should be.
If you’re interested in making desktop games, you’ve come to the right place! Although it may be used as a textbook, this definitely doesn’t feel like one. It’s a book that you should follow in order, as you gradually learn the necessary components and frameworks you need to make games in C++! At the end of the book, there’s a “final project” where you actually make your own full-fledged game with guidance.
In my opinion, the coolest part about this book is that you learn the basics of C++ as you are learning how to make games! That means you won’t need to be an expert, nor will you need to shell out more money for a second book.
- This book has both a beginner’s level overview of C++ and tutorials and a full series on making games in C++.
- It is “platform-agnostic”. This means that you can make games for any OS (Windows, Mac, Linux)!
- It doesn’t rely on a proprietary game engine like many online tutorials do. You’ll learn how to do everything from scratch!
- Lots of code snippets, screenshots, and hints along the way make the journey through C++ way less painful.
- This may not be the best resource for those already in the game industry. Its content level is equivalent to undergraduate Computer Science.
- If you already know C++, a lot of the information (but not all) may be redundant.
If you’re taking a class that requires you to make a program for something or need to do something for work, this book is a prime choice! Similarly to the C++ Game Development book we discussed earlier, this book teaches you C++ as it walks you through how to use it to solve problems. For example, you’ll learn how to perform physics and statistics calculations.
It follows the traditional textbook format and includes an optional paid component to practice further online. However, that component is not necessary to learn the material, as you can just as easily practice the material on your own computer for free. The book has lots of self-tests and quizzes in it, allowing you to know that you’ve mastered the content!
- Learn C++ and learn how to solve problems in various industries in one book!
- This book is regularly updated to the newest C++ release, so it will always be modern.
- Lots of real-life code examples that are quite extensive. You get not only snippets but full programs with a decent bit of complexity written for you.
- You can “be your own professor” with this one! With all of the self-administered tests, programming challenges, and grading criteria, you can stay on top of your progress.
- There is an optional paid educational component that may cost more than the textbook.
- Some programs in the textbook are several pages of code long, which can get somewhat difficult to read through.
- May not have the types of problems you need to learn how to solve; check out the contents before buying to ensure it does!
- Has items for people with a variety of learning styles, from charts to tables to text to code, almost anyone would be able to learn quickly!
- Allows beginners to delve more into the subject if they wish but does not force it.
- Known as the industry standard. You’ll get brownie points from your boss for having the book in your office!
- The content accelerates very quickly from one chapter to the next. Ensure you understand one chapter before moving on.
- Some discussions of smaller topics are a bit drawn out.
- Like most O’Reilly books, this book doesn’t need to be read linearly; those looking for specific topics can easily find them through the index.
- Contains a bit of info for beginners (although not recommended for them).
- Has lots of real-life coding examples that very closely mirror actual industry applications.
- Focuses more on abstract concepts in application architecture than just code itself, which may or may not be what readers are looking for.
- Much of the book is opinion on what constitutes “good design” and “bad design” rather than fact.
- If you already know what you’re doing, save yourself lots of time by starting out at the intermediate-to-advanced level!
- Written by industry professionals, not academics. Very light on theory and heavy on application.
- Has hands-on examples that demonstrate all concepts covered by the book.
- This is not a universal book. Beginners and rookies should not use this!
Part of the reason for the book’s thoroughness is that its authors have been writing guides ever since the original (called “AngularJS”) version came out and updating it as new releases come out. The book has the reader gradually build up a large Angular web application from scratch, so you’ll be prepared to make or maintain any programs written in Angular!
- Combines a “hands-on” approach with textbook reading, so you watch and do!
- Content largely builds upon itself and is logically structured so the reader can absorb everything and gradually apply it.
- Once you finish the book, you will be at least familiar with every major feature of the most recent Angular release.
- This is not written by the Angular developer team itself.
- Though most items are explained well, Angular has a steep learning curve regardless of how you learn it!
The book covers the fundamentals, some more advanced concepts, unit testing, and everything else you’ll need to know to be a React developer in very little time. It also teaches the technologies that are commonly integrated with React, so you’ll at least have exposure to elements associated with it, as well!
- Covers everything you need to know about React and doesn’t skimp on details.
- Written to build on knowledge that web developers already have.
- Has its own project and explains each piece thoroughly as you go.
- Has exceptionally detailed sections on designing strong User Interfaces.
- The content can get overwhelming quickly, so it’s important to chop it up yourself.
FullStack Vue takes a holistic approach to the framework. Rather than diving right into the technical details, it provides a solid foundation in the technology. Then, it has functional exercises for you to complete along with walkthroughs if you get stuck. The book is also designed to save developers hours of researching oddities of Vue that aren’t intuitive.
- One of the few good books about Vue.
- Has several sample web applications that you can either build or view online.
- Focuses on ensuring you can make applications rather than strictly know only Vue; perfect for those just getting into web development!
- The book is concise and doesn’t go into boring and unnecessary details.
- This is not a full reference, as Vue is updated all the time, so there isn’t any way for paper books to keep up with it.
This is the most beginner-friendly PHP book that’s on the market. It’s designed only for those with zero experience in PHP.
Advertised as a solution that will let you start programming within two hours, it doesn’t disappoint. It’s based on the most recent PHP version and begins with programming fundamentals you’ll need to know, then jumps straight into PHP code.
Divided into modules, this book allows you to start and stop wherever you would like. In two hours, you may be able to make a small web application, but you will not become an expert in that amount of time. However, the volume of information in the book will allow you to become an expert as you read and practice. This is an excellent book for anyone looking to get started with this technology!
- Specifically for beginners only.
- You can choose what level of PHP proficiency you want (beginner, intermediate, or advanced).
- Has lots of samples of various skill levels and importantly shows you common security mistakes made so you won’t make them yourself!
- Always kept up to date with the most current PHP version.
- Though advertised as “beginner to expert,” the content in this book really cuts off at more of an intermediate level.
- There are some grammar issues in the book, but they aren’t bad enough to take away from the value.
This book on PHP requires a baseline level of understanding. The whole purpose of the book is to provide an always-accurate and modern set of lessons on the newest version of PHP. Unlike many online tutorials that use versions of PHP from years (or even decades) ago, this book keeps active PHP developers apprised of changes in the language and industry.
After you’ve mastered beginner-level PHP, this will help take you to the next level. It introduces the best ways to code and highlights anything new in the latest PHP releases. This is an excellent resource for your average PHP dev!
- Though it’s a physical book, it focuses on always being current, so you can easily stay up to date with the rapidly evolving language.
- You’ll learn how to make well-coded PHP programs with this book, not just how to code in PHP.
- The book is a very unique combination of version updates and “best practices,” making it ideal for an intermediate-level PHP developer.
- Covers security issues in-depth with easy solutions to combat them.
- This is not a traditionally laid out PHP textbook; it has a very unique set of focus areas.
- Like all books about “best practices”, some of it is simply the author’s opinion.
As PHP has been out for a very long time, there are plenty of resources for various developer levels that also vary in quality! This book uniquely operates on a visual model. That is, almost every example is shown via screenshots and code snippets in the book rather than lengthy discussions. Though not a textbook, it is organized into fourteen modules, each of which can easily be completed in a week.
This is the cream of the crop as far as PHP content goes. Make sure you have a good handle on the language, because this book certainly gets complex, honing in on optimizing performance, connecting to different kinds of databases, and many more topics that would behoove any PHP developer to know!
- This book is segmented very logically, making it easy to learn at your own pace.
- It covers a very wide variety of PHP subtopics that aren’t often discussed in online tutorials and forums, making it a unique option.
- The author provides free, online support to all readers who purchase his book! His site has video tutorials on it, but he will personally respond to legitimate questions from advanced PHP developers.
- Heavily biased towards a visual learning style. If you’re not a visual learner, you may have difficulty with this book.
- Though for “advanced” developers, a couple of the topics, such as connecting to MySQL databases, are covered in most beginner books.
- Access to the companion site requires a code, so you usually will need to buy the book new to have online access.
A bit on WordPress: WordPress is one of the most used open-source PHP applications. Acting as a Content Management System (CMS), it hosts lots of blogs and websites. However, most WordPress developers just rely on certain websites and word of mouth to learn the technology. Since it’s not often taught at universities and seen as a “technical occupation,” WordPress development is usually a freelance occupation with self-taught developers.
Although WordPress itself is open source, there are many plug-ins for it that are not. That means that there is a good bit of money to be made by creating “premium plug-ins”, which are essentially small programs written in PHP designed to complement the WordPress platform.
WordPress Plugin Development Cookbook is a book that is exactly what it sounds like. While you should know basic PHP, there aren’t many other prerequisites. You don’t even need WordPress experience to be able to follow along (although it certainly wouldn’t hurt).
It’s written by an author who has some fairly successful plug-ins on the WordPress marketplace, so you know you’re learning from a good authority! This book will first give you an introduction to WordPress and how it works.
It will show you how to modify WordPress itself and have you tinker with that a bit before diving into making plug-ins. It comes with a few free, example plug-ins that the book both explains and builds upon throughout. While it’s not a complete resource on everything you can do with WordPress plug-ins, it’s easily the most complete book on the market!
- The book provides an excellent intro to WordPress itself, so it doesn’t matter if readers have experience in WordPress.
- Readers only need to have a small amount of basic PHP experience to understand the book.
- As the author is also the programmer behind several popular plug-ins, you’re learning straight from someone who makes a living off of WordPress development!
- You’ll also learn how to distribute a plug-in once you’ve made it!
- Experienced web developers may be annoyed about some chapters being dedicated to learning the basics of common technologies such as jQuery.
- The book notably lacks information on securing your plug-ins, even though WordPress is notorious for having security issues.
PHP is simple, though it’s simplicity can make some problems more difficult to solve than they might be in other languages. Solving complex problems typically requires you to know some “tricks of the trade”, and that’s where Plug-In PHP comes in! True to the title, it indeed goes over one hundred different common problems that developers often use PHP to solve.
They go from basic to advance, so there’s plenty of wiggle room in there to actually learn the language as you go along! Every problem, of course, has a detailed solution with commented code that clearly shows how and why the authors solved a problem a certain way.
Every problem is its own section of the book. That means you won’t have to jump around from chapter to chapter as you try to solve each one; they’re all “self-contained”. Almost every single issue that crops up in a PHP developer’s life is covered in this, and you can either solve it on your own and use their solutions to check your work, or you can just read it (although it’s typically better to at least try it first).
- This book is truly in the “problem/solution” format. It doesn’t mince words or waste time. It clearly defines every problem and has multiple possible solutions for some!
- You do not need to know PHP already to excel in this book. It will help you pick up the basics as you go!
- Almost every possible operation in PHP is discussed, from handling file uploads to databases to RSS feeds.
- The author wrote this book because he is an industry professional and noted a lack of such a book!
- Though you can learn the basics of PHP through this book, we would recommend getting a more extensive tutorial if you have no experience.
Flask Web Development, 2nd Ed. takes the trophy! That’s because it teaches readers how to code in Python as well as how to use the Flask framework, so it’s all there in one book. Regardless of how you learn, this book should be a cakewalk, compared to the more dense and difficult books out there! It even covers developer methodologies and psychology of development like we talked about earlier in the article! Great minds think alike!
Beginning C++ Through Game Programming brings home the bread, even if you aren’t intent on developing the world’s next AAA game! That’s because it explains broad C++ concepts quite well and uses game programming as a way to learn C++. It’s a quite novel approach that we don’t often see in this industry. It covers the best practices of C++ particularly well, and best practices are very important in C++ especially because almost nothing is handled automatically by the language.
I had the hardest time choosing a winner in this category. I ended up choosing PHP: A Step-by-Step Guide, mostly because of how malleable your experience is! If you just want to learn the basics so you can do something specific, you can do it in a matter of hours! Want to be an intermediate developer? Just put a few weeks of hard reading and dedicated practice with this book, and you’re set! Want to become an expert in PHP? No problem again! Just put in more time, more dedication, and complete the entire book.
My favorite part about this book is that you define your own measures of success with it, depending on what you want to learn, not just what the author felt like spouting off!
Important Legal Information
Services or products you buy through our links may earn us a commission. Every product is individually selected by (obsessive) researchers.
As an Amazon Associate I earn from qualifying purchases.