Recommended reading for computer science: Nonfiction, fiction, and philosophy
You can learn a lot about coding just by giving it a try. But for expert guidance and a look at the computer science field’s past and future, you’ll want to open a computer science book.
Computer science textbooks build useful skills, while computer science fiction can be fascinating, fun, and informative all at once. Computer science books about philosophy provide insight into the relationship between computers, logic, and the human experience.
Here’s our recommended reading for computer science to get you started.
Craft: The best teaching computer science books
Computer science textbooks and nonfiction build understanding of computer systems, processes, and technologies. They also provide advanced information to enhance your knowledge as you explore the newest ideas in computer science.
Computer science books range from comprehensive to extremely niche. From training manuals to textbooks, works like these occupy space on computer science students, professionals, and hobbyists’ shelves.
By Brian Christian and Tom Griffiths
This book looks at the roles of algorithms in our lives. The work suits anyone interested in how computer science can be used in the contemporary world to tackle some of humanity’s biggest questions.
By Stuart J. Russell and Peter Norvig
This textbook on artificial intelligence explores the field’s theory and practice. Its authors emphasize modern applications of artificial intelligence and its possibilities for the future.
By Robert C. Martin
Divided into three parts, the book looks at how to write clean code, how to clean up bad code, and the future of maximizing code readability. Its audience includes both coding novices and experts.
By Steve McConnell
This practical guide to programming includes code samples representing both the art and the science of software construction. McConnell’s principles and techniques engage coders at all skill levels.
By Charles Petzold
“Code” explores the relationship between human communication and technological innovation. Petzold uses common language systems to explain the development of computers, digital media, and the internet.
By James Kurose and Keith Ross
This book looks each layer of networking, from application to physical. Computer science and electrical engineers may appreciate this look at networking concepts that doesn’t require extensive mathematical and programming knowledge.
By Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
This book contains 23 patterns to help designers create object-oriented software. The authors describe each pattern’s structure, benefits, and usefulness in solving design problems. Demonstrations explain how each pattern can be applied using different programming languages.
By Douglas R. Hofstadter
This book explores maps and links between formal systems. Hofstadter identifies formal systems as the foundation for all mental activity. He uses Kurt Gödel, M.C. Escher, and Johann Sebastian Bach to exemplify the nature of intelligence and the human mind. Short stories, wordplay, and puzzles flavor the work.
By Michael Sipser
The book facilitates clear understanding of simple and complex computational theory topics and concepts. Practice exercises and exercises accompany practical and philosophical exploration of theorems, proofs, and comparable mathematical treatments.
By Conrad Barski
This book is an accessible guide to one of the earliest and most influential coding languages, LISP. Barski’s comics, games, and images introduce LISP syntax and semantics. Readers learn to program games, use advanced features like macros, and create a web server with LISP.
By Stormy Attaway
This textbook takes readers through MATLAB programming and built-in functions. The book builds from basic concepts to advanced problem-solving practices to accommodate readers with no previous programming experience.
By Charles P. Pfleeger and Shari Lawrence Pfleeger
A definitive guide on the subject of computer security, this book covers users, software, devices, and systems alongside networks and data protection. Hundreds of exercises help learners apply tools and techniques against the newest types of attacks and threats.
By Julie Sussman, Harold Abelson, and Gerald Jay Sussman
First published in 1985, this textbook includes fundamentals of computer programming through examples and exercises. The second edition of the work builds upon its influence by emphasizing different approaches for managing time in computational models.
By Brian W. Kernighan and Dennis M. Ritchie
A comprehensive guide to the C programming language, this book serves as an essential reference. Co-author Ritchie was one of the language’s designers. Topics covered include operators, syntax notations, declarations, and scope rules.
By Don Norman
Norman’s book presents simple rules for functional design. The work integrates ideas from ecological psychology, ergonomics, behavioral psychology, and communication. Computer scientists may appreciate its guidance on user-centered design.
By Daniel P. Friedman and Matthias Felleisen
This book introducing computing as an outgrowth of mathematics via the programming language Scheme. It uses illustrations to explain complicated ideas. The book’s conversational tone helps make a challenging subject accessible to computer science novices and advanced programmers alike.
By Cory Althoff
This book is a complete beginner’s guide to data structures and algorithms. Definitions and graphics break down data structures and algorithms into clear, understandable topics.
By Benjamin C. Pierce
Pierce presents a comprehensive guide to type systems and programming languages from theoretical and practical perspectives. Programming examples and exercises accompany each section. Topics covered include simple type systems, universal and existential polymorphism, and type operators.
Fiction: The most fun books about computer science
Computer science knowledge isn’t only in textbooks. Novels explain the history of computer science, its role in present society, and how it could influence our futures.
Computer science fiction books may give you insight into a new aspect of the field or explain something you couldn’t quite grasp in textbook form. They can also bend your mind, provide a sense of escape, and make you think about the relationship between humans and computers in completely different ways.
By D. F. Jones
The first book in the trilogy of the same name, the book explores the creation and power of a supercomputer called Colossus. The speed, artificial intelligence, and authority Colossus gains propel the creation of a rival, Guardian. Struggles of man versus machine, machine versus machine, and man versus man weave through the work.
By Martin Caidin
Published in 1968, Caldin’s novel follows Steve Rand, a cybernetic technician working on an artificial intelligence project for the government. Dubbed Project 79, the creation soon becomes uncontrollable, prompting Rand to act.
By Neal Stephenson
Stephenson interweaves the lives of Lawrence Pritchard Waterhouse and his grandson, Randy. This brisk-paced, seemingly prophetic work explores the technological developments and consequences from World War II, the rise of the internet, and the importance of data encryption.
By Mikhail Voloshin
Voloshin’s lead character, Danny, lived as an obscure computer savant until tech investor Jason Tuttle brought down his employer. Danny offers Tuttle his computer services. The new job sours when Danny becomes mixed up with the Russian mafia.
By Robert Heinlein
Heinlein’s classic sci-fi novel is set on the moon, where a self-aware supercomputer runs a penal colony. The book highlights the complex relationships between humanity, technology, morality, and freedom.
By David Gerrold
Harlie (short for Human Analog Replication Lethetic Intelligence Engine) functions as an artificial intelligence machine. Harlie is tasked with understanding human behavior. Its creator, David Auberson, panics upon realizing Harlie knows far more than he could have imagined.
Philosophy: Required reading for computer scientists
Why pair philosophy and computer science? Philosophy uses logic and reason to answer humanity’s greatest questions and look at the human experience — goals shared by some computer scientists.
Both philosophy and computer science find their foundations in logical reasoning. The former looks at words, while the latter applies numbers and symbolic forms.
Books about computer science and philosophy explore how the two disciplines relate to and inform each other and how they can advance together.
By Atul Gawande
This book encourages using checklists for big and small tasks alike. By using stories from around the world, Gawande highlights the efficacy of checklists and how they can promote change. Computer scientists will appreciate the book’s goal to get things right.
By Bill Burnett and Dave Evans
Readers learn to build a well-lived, joyful life by creating structure. Both authors have computer science backgrounds. Exercises throughout the book provoke creativity and reflection to solve problems and explore future goals.
By Michael Quinn
This book advocates careful consideration of technology’s long- and short-term consequences by looking at its social and ethical benefits and detriments. Quinn uses ethical theories to discuss and analyze problems contemporary computer professionals and computer users face.
By Anna Rosling Rönnlund, Hans Rosling, and Ola Rosling
“Factfulness” is an interdisciplinary exploration of how to ask questions and find information about the world. The work highlights the knowledge gap about poverty, health, and danger worldwide to focus on challenges and opportunities to bring about human progress.
By Steven Pinker
This work asks fundamental questions about the human mind. Pinker combines cognitive science, evolutionary biology, information technology, and art to explain how humans think and behave. Combined, these disciplines may provide insight into the future of the human mind and artificial intelligence.
Buyer beware — and enjoy
The computer science books on this list give you differing perspectives on the discipline. Some are more technical, while others are intended for general audiences. Reviews can help you decide whether each book belongs on your to-read list.
Older computer science textbooks can be difficult to find, so make sure you use a reputable seller or publisher. Some sellers may offer cheaply produced scanned and printed or digital editions. Always check reviews (and ensure they match the product being sold) before purchasing a book from a third-party seller.
Most importantly — enjoy diving deeper into computer science.