Photo by Kobu Agency on Unsplash
in ,

WinWin CryCry LoveLove LOLLOL CuteCute WTFWTF OMGOMG

The 9 Books Every Computer Science Student Should Read

Computer science is one of the hardest and most intellectually challenging subjects to take. The specialization within it means entire areas are inaccessible to even talented computer scientists.

Here are 9 suggestions of books you should read if you are studying computer science and want to have a more broad understanding of the subject.

This post contains affiliate links. Affiliate disclosure: As an Amazon Associate, we may earn commissions from qualifying purchases from Amazon.com and other Amazon websites.

#1 Structure and Interpretation of Computer Programs

I credit this book and the accompanying videos with giving me enough tools to be hired by google when I didn't have a college degree. This book feels like pure math at the beginning and builds up from there into a full program that can interpret itself. It's a thing of beauty and the teachers clearly know it.

This book (and videos) will help you realize that sometimes, you are not telling a computer what to do, you are defining what something is, you are writing an algorithm, distilled knowledge. The fact that a computer will run it is almost secondary.

Want to read more reviews of this book or buy it? Check out the links below:

Contributor: J. Pablo Fernández | Twitter

Company: Dashman | Twitter

13 points
Upvote Downvote

#2 Structure Computer Organization

We are surrounded by inanimate objects and then there are these computers that feel magical. How can a computer compute? This book starts at the level of transistors and from there it builds gates, and from gates, it builds an ALU, part of a processor and from there a processor. Every step was understandable by teenage-me and although I know it's a simplification of what's going on in a real processor, it removed the mystique around computers and empowered me with a lot of understanding.

Want to read more reviews of this book or buy it? Check out the links below:

Contributor: J. Pablo Fernández | Twitter

Company: Dashman | Twitter

#3 Programming Languages: Application and Interpretation

It's just semantics! Well, semantics are important. The meaning of things is important. Do you understand where the semantics of your programming language end and the syntax begins?

You can learn tens of programming languages to develop an intuition or you can read this book (I've done both actually). Once you understand these core concepts, picking up new programming languages and new technologies will be much easier. This book makes you build a bunch of interpreters for programming languages that all use the same syntax but their semantics vary radically. I remember being in awe of how small a change was required to turn an eager language into a lazy one.

Want to read this book? Find it here.

Contributor: J. Pablo Fernández | Twitter

Company: Dashman | Twitter

#4 The Self-Taught Programmer

Cory is not your average software engineer. Faced with a tough job market after graduating from college with a political science major, he taught himself to program: landing a job as a software engineer at eBay in just one year. After a successful programming career in Silicon Valley, he published his first book, The Self-Taught Programmer: The Definitive Guide to Programming Professionally, that not only teaches you to code but also covers the other essential skills you need to learn to program as a career.

In the past year, the book has already sold over 40,000 copies and has consistently been one of the best-selling software books on Amazon – quite a feat on its own and even more impressive seeing as Cory self-published it! Shortlisted for the Indie Book Awards, publishers have already translated it into three different languages: with two more on the way.

Want to read more reviews of this book or buy it? Check out the links below:

Contributor: Cory Althoff

Company: goselftaught.com

#5 The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity

This book is a must-read for all developers who need to better understand that real people--not computer scientists--have to use the programs that they develop each day for their daily job. The developers usually have a completely different mindset (engineering-centric), and this book can help them to make the switch to a more user-centered approach.

Want to read more reviews of this book or buy it? Check out the links below:

Contributor: Bennett Lauber

Company: TheUsabilityPeople.com 

#6 Clean Code: A Handbook of Agile Software Craftsmanship

This is another essential book because writing clean and readable code is one of the most important skills that a software engineer can have. The majority of a software engineer's job is reading and interpreting someone else's code, so the cleanliness of that code is critical.

Want to read more reviews of this book or buy it? Check out the links below:

Contributor: Sam Gavis-Hughson

Company: byte-by-byte.com

#7 Elementary Number Theory with Programming

Elementary Number Theory with Programming gives a great introduction to elementary number theory with fundamental coverage of computer programming.

It helps bridge the gap between mathematics and programming. The book is authored by several highly-qualified experts in the fields of mathematics and computer science and offers a great source of information for readers of all levels of experience and explores number theory in the context of programming.

Want to read more reviews of this book or buy it? Check out the links below:

Contributor: Lindsey Havens

Company: phishlabs.com

#8 Sketching User Experiences: Getting the Design Right and the Right Design

I can’t think of a single more important read, relevant to the everyday challenges and tasks of a computer scientist. This book isn’t about drawing it is all about the communication of ideas and fostering the right type of feedback from peers, stakeholders, and users.

I recommend it as a great first read to anyone in this field, because the lessons and techniques so perfectly match the right ways to collaborate in an agile team.

A reader is free to both consume it cover-to-cover or jump around, but unlike a lot of other technical books in this field, the practical lessons and discussions make it enjoyable for every reader.

Want to read more reviews of this book or buy it? Check out the links below:

Contributor: Christopher Allen

Company: alleninteractions.com

#9 Cracking the Coding Interview

This is the bible for anyone who is preparing for their interviews and a must read. Software engineers have a tendency to grossly under-prepare for their interviews and then blame the system for their lack of success. However, if you really want to be successful, you should study hard for your interviews, and this book is the best place to start.

Want to read more reviews of this book or buy it? Check out the links below:

Contributor: Sam Gavis-Hughson

Company: byte-by-byte.com

This post was created with our nice and easy submission form. Create your post!

Written by Nathaniel Fried

Co-founder of Fupping. Busy churning out content and building an empire.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.