
21 Computer Science Books For Beginners
This content contains affiliate links. When you buy through these links, we may earn an affiliate commission.
We aren’t quite at Matrix levels of AI yet (keyword: “yet”), but computer fluency and computer science are continuous growth industries. Computer science, in the most general terms, is the study of how computers function, including how it works on an engineering sense, but also how it works in a societal sense. It’s a wide-ranging and diverse field that includes the mechanics of computers (hardware, programming, etc.) to the ethics of it and our relationship to computers. There is hardly a field that does not use computer science. For a lot of people, pursuing computer science, either as a career or as a skill, can seem daunting. Not to fear, though! We’ve rounded up some must-read computer science books to help get you started!
via GIPHY
This article is broken down into three sections for your convenience: Learning to Code, Reference and Theory, and a Bonus section. You also don’t have to take my word for this information; I consulted with Dr. David Dittman, who holds a PhD in computer science with a focus on data mining and bioinformatics [1].
As a quick note on diversity: this list is not as diverse as it should be. Many seminal texts from four decades ago on coding are still used industry-wise. Those were largely made by a small population. We want to assure you that computer science is a vibrant field with people of all ethnicities, genders, abilities, and orientations.
Head First C: A Brain-Friendly Guide (1st Edition) by David Griffiths takes the typically difficult C language and makes it pretty easy to learn. While it has quite a bit of cheesy humor, it does a good job of taking first-time programming and making it simple and easy to learn. Like the other Head First books, it has a lot of the essentials without the dry language.
For a real, step-by-step concept computer science book, try Greg Perry’s and Dean Miller’s C Programming Absolute Beginner’s Guide (3rd Edition). Plain language, plenty of additional tips, and annotated code make it a really good first computer science book.
While C++ is an extension of C, you can learn it on its own. For that we recommend C++ Primer (5th Edition) by Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo. This is, admittedly, a little dry. But it’s a practical guide to learning the necessary functions in first time computer programming. It also has detailed explanations with practical applications.
Where better to learn a language than from one of the creators? Bjarne Stroustrup created C++ during grad school, because sometimes you want to mess around on a weekend and create a computer language. He’s also obviously the author of a number of C++ texts by consequence, including Programming: Principles and Practice Using C++ (1st Edition). It’s dry, it’s a little dense, but it will take you from being a beginner and work you through some advanced concepts!
Turning your study into a game is pretty easy with Al Sweigart’s Invent Your Own Computer Games with Python (4th Edition), which teaches you how to program using small games as the models for code. For those of you looking to get into gaming and game design, this is probably a good first text.
As you get more into programming, you may want a quick reference as problems arise and you need quick fixes. Consider getting a copy of Python Cookbook, Third Edition by David Beazley and Brian K. Jones as you get more experience. This really isn’t a text for first time Python programmers, but as you get more experience, keep this in mind.
For those of you who are a bit impatient to get going on your coding journey, check out Java: Learn Java in One Day and Learn It Well: Java for Beginners with Hands-on Project by Jamie Chan. It’s a quick, simple, step-by-step guide to get you programming off the bat. You really will be programming in hours and doing simple math functions before long.
Joshua Bloch’s Effective Java (3rd Edition) might not get you coding in a day, but it will give you a firm background in JAVA. It also has excellent, detailed explanations for different codes and their uses. This is definitely for the beginning programmer who is eager for more sophisticated programming instruction.
For those of you who just want to learn how to do SQL database queries, John L. Viescas and Michael J. Hernandez’s SQL Queries for Mere Mortals: A Hands-On Guide to Data Manipulation in SQL (3rd Edition) can go from the very necessary basics to more complexity in no time. If you just want to learn database queries, the first half has got you. If you later need a reference for complex operations, this is a good guide to have around.
For a comprehensive C language reference, we’ll go with the creators’ own text, C Programming Language, 2nd Edition. Written by two of the creators of C, Brian W. Kernighan and Dennis M. Ritchie, it’s a sort of end-all-be-all of C. It may not be the friendliest for beginners, but it is one of the more comprehensive guides to C.
If you’re looking for a comprehensive JAVA reference, consider Modern Java in Action: Lambdas, Streams, Functional and Reactive Programming (2nd Edition) by Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft. Fair warning, the book is dense, packed with all sorts of information on how JAVA functions in the greater programming scheme. That’s what gives this book an advantage, though, and if you’re a learner who needs to know why something works in order to understand the how, this may be good for you.
Those who want to progress in SQL will probably want to pick up SQL Cookbook: Query Solutions and Techniques for Database Developers by Anthony Molinaro. This is, admittedly, not a book for absolute beginners. But it’s a necessary reference for those of you getting into more complex SQL commands and database creation.
In the battle of Python versus Perl, Python has become the clear winner. However, while Python is more widely used, Perl is still used in some current systems and it’s easy to pick up. For that we recommend Perl by Example (5th Edition) by Ellie Quigley. Dr. Dittman was adamant to add this because “it’s how I learned Perl, it’s quick and easy to get.”
“Science, it’s all about ‘coulda,’ not ‘shoulda’.” Science without ethics is how we get unguarded, inequitable results. While you’re learning to code, maybe temper your deepest hacking desires with Ethics in Computing: A Concise Module by Joseph Migga Kizza. While, yes, another dense read, it’s worth exercising the ideas.
For something with a similar ethical bent but a little more accessible, consider Ethics and Data Science by Mike Loukides, Hilary Mason, and DJ Patil. Privacy, data collection, and digital rights are becoming more prevalent issues. If you go into computer science, it’s good to have a primer on how the work you may do could impact and be impacted by these concepts.
Maybe you don’t really know where you want to start! That’s fine—check out Wallace Wang’s Beginning Programming All-In-One Desk Reference For Dummies. It’s quick, easy, and while largely C heavy, it has some easy, basic programming explanations. It’s a great computer science book for beginners, especially as you feel out what you want to do. And learn.
If you want to learn some general programming skill work, we recommend Venkat Subramaniam and Andy Hunt’s Practices of an Agile Developer: Working in the Real World (Pragmatic Bookshelf). This isn’t so much programming, but good practices for working programmers. It’s got general tips and tricks for working in the field as well as developing good programming habits. You may also want to check out Subramaniam’s books on JAVA Script, should you ever need that language as well.
For a beginner’s guide or for the young girl in your life, consider Girls Who Code: Learn to Code and Change the World by Reshma Saujani. We’ve covered this before, because it’s just that good. While it may not get you coding right away, it introduces a lot of essential programming principles as well as a pretty cool history of computer science.
Those of you who have another young learner, check out Video Games: Design and Code Your Own Adventure (Build It Yourself) by Kathy Ceceri and Mike Crosier. This is a really fun and easy-to-learn guide to coding. The secret is, you can get something out of this no matter your age.
Because it’s computer science, a lot of resources are online. Cplusplus.com is a good location for your C++ needs. Python Software Foundation (pypi.org) has downloadable software. JAVA Oracle (docs.oracle.com) has the answers to all your JAVA needs. Connect with other coders at StackOverflow (stackoverflow.com)
Even if you don’t want to pursue it career-wise, it’s not a bad idea to pick up the skills. With all these computer science books, you might find you have a talent for computer languages. Coding is a useful skill to learn, since C, Python, and JAVA are used all around the world.
#include <stdio.h>
int main()
{
printf(“Have Code, Will Travel!”);
return 0;
}
[1] He also happens to be my husband, and had no choice but to help if he wanted a moment’s peace.
David: “I have a moment’s peace?”
[2] Legacy Systems are languages that have been used continuously for years.