13 computer science books

The Pragmatic Programmer

The Pragmatic Programmer

1999
by Andrew Hunt, David Thomas
5.0

What is The Pragmatic Programmer about?

The Pragmatic Programmer by Ward Cunningham offers practical insights into software development, from taking requirements to producing effective, maintainable code that satisfies users. The book covers various topics, such as preventing software decay, writing flexible code, and avoiding duplication. If you want to know the best practices and common pitfalls in software development, this book is an excellent choice for you.

Clean Code

Clean Code

2008
by Robert C. Martin
5.0

What is Clean Code about?

While bad code can still work, it can cause major problems in software development. In "Clean Code," Robert C. Martin emphasizes the importance of writing clean, efficient code to save time and resources. Here, you will analyze bad and good codes to quickly identify bugs and improve your codes.

Code

Code

1999
by Charles Petzold
5.0

What is Code about?

It's time to understand how computers work, and it'll be much easier with "CODE" by Charles Petzold. Using examples like flashlights, seesaws, and Morse code, Petzold makes complex ideas easy to understand. Our world has changed tremendously over the last 200 years. Don't you want to know why?

Design Patterns

Design Patterns

1994
by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
5.0

What is Design Patterns about?

Are you a developer looking to improve your skills or solve some problems? Then, "Design Patterns" is a must-read for you. It offers 23 proven solutions for common issues in object-oriented software design. Add this book to your bookshelf if you want to know more about when and how to use patterns effectively.

Superintelligence

Superintelligence

2014
by Nick Bostrom
5.0

What is Superintelligence about?

"Superintelligence: Paths, Dangers, Strategies" by Nick Bostrom explores the development of superintelligent machines and the potential dangers they could bring. Once superintelligent systems are created, they could quickly become smarter than humans and be very hard to manage. Bostrom discusses ways to address the "AI control problem" by ensuring that the goals of superintelligent machines align with what is best for humanity.

Effective Java

Effective Java

2017
by Joshua Bloch
5.0

What is Effective Java about?

Learning a programming language is similar to learning how to speak a foreign language. To use the programming language to its fullest, we must must pay more attention to writing a clear code that can be easily modified. In his book "Effective Java," Joshua Bloch gives useful tips on writing Java code that is easy to understand, adaptable, and well-designed.

Algorithms to Live By

Algorithms to Live By

2017
by Brian Christian, Tom Griffiths
5.0

What is Algorithms to Live By about?

Computer science concepts are deeply ingrained in our daily lives, whether we realize it or not. If you're interested in understanding human memory, organizing your life more efficiently, or delving into the fascinating world of algorithms — Algorithms to Live By is a book for you! Both deeply knowledgeable, Brian Christian and Tom Griffiths skillfully clarify these complex ideas with simplicity and clarity.

The Mythical Man-Month

The Mythical Man-Month

1995
by Frederick Brooks Jr.
5.0

What is The Mythical Man-Month about?

Staying up to date with ideas how to manage complex projects keeps management problems at bay. That's why you should read "The Mythical Man-Month" by Fred Brooks. It's valuable for both seasoned managers and newcomers.

Designing Data-Intensive Applications

Designing Data-Intensive Applications

2017
by Martin Kleppmann
5.0

What is Designing Data-Intensive Applications about?

Can awareness of the pros and cons of certain technological tools help you choose the right technology for your needs? "Designing Data-Intensive Applications" by Martin Kleppmann answers this and many other questions like: "How do major online services manage data?" and "What are the core principles of distributed systems?" To find out more, start to read it right now.

Refactoring

Refactoring

1999
by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
5.0

What is Refactoring about?

"Refactoring" proves that it's possible to improve the design of existing code without changing its external behavior. Here, you will learn the key principles of refactoring and 40 effective techniques to enhance code's indernal structure. The first step is to identify opportunities for improvement. Find out what to do next in "Refactoring."

Computer Systems

Computer Systems

2015
by Randal Bryant, David O'Hallaron
5.0

What is Computer Systems about?

"Computer Systems: A Programmer’s Perspective" shows how knowing the basics of computers' work can help you write better programs and make them run faster. You'll learn how computer hardware is built and how operating systems work. The book mainly focuses on systems that use x86-64 machine code and suggests having some knowledge of C or C++ before reading.

The C Programming Language

The C Programming Language

1988
by Brian W. Kernighan, Dennis M. Ritchie
5.0

What is The C Programming Language about?

"The C Programming Language" is a guide to learning C programming based on the ANSI standards. It shows how to use C's strong points, such as its operators, control flow, and data structures. For a long time, C programmers have used this book to write efficient and well-organized programs. So, don't hesitate to become one of them.

Working Effectively with Legacy Code

Working Effectively with Legacy Code

2004
by Michael Feathers
5.0

What is Working Effectively with Legacy Code about?

In "Working Effectively with Legacy Code," Michael Feathers shares tips for dealing with old systems that are difficult to manage and update. So, you'll get practical advice on how to add new features, fix errors, and improve the design. The book uses examples in languages like Java, C++, C, and C# and helps developers handle systems that are messy or not built with object-oriented design.

Mobile App Screenshots

Find out how to learn quickly and efficiently with our app!

Incorporate the habit of reading into your daily life.

Start your free trial