5 Books You Can Read to Boost Your Computer Science Knowledge

Written by varunb94 | Published 2020/05/24
Tech Story Tags: cryptography | algorithms | distributed-systems | programming | books | cloud-computing | data-structures | hackernoon-top-story

TLDR The Algorithm Design Manual by Steven Skiena is a guide for computer science students. The book covers topics like big-O complexities, tree data structures, searchings and sorting, graphs, dynamic programming, and much more. Bruce Schneier provides advice on which algorithm will help you maintain your users’ privacy in the best way possible. The full table of contents of The Linux Command Line by Willian Shots will be a guide to the development of a Linux OS based on Linux, most of what you learn from this book will be applicable to you.via the TL;DR App

Make use of your downtime and read something good!
I hope you are taking good care of your health and maintaining social distancing to help flatten the curve of SARS-CoV-2 infections.
We have no other option but to stay at home during these trying times, but we can invest this time in ourselves to come out of this pandemic better.
I thought it would be good to list a few books that will help you strengthen and elevate your computer science knowledge. Everyone from a beginner to an advanced professional can better themselves from these books.

1. The Algorithm Design Manual by Steven Skiena

Steven has more than 30 years of experience in computer science and is a distinguished professor at Stony Brook University.
He wrote this book, keeping one simple philosophy in mind: every sound programmer should be able to use and extend already-developed efficient algorithms in their projects when the beef arrives.
Steven reflects on the fact that most of the programmers around the world lose touch with algorithm study as they indulge themselves in the corporate world.
This prohibits them from applying these available algorithms, practically in their projects, and end-up using inefficient, brute force solutions to otherwise trivial problems.
This book covers topics like big-O complexities, tree data structures, searchings and sorting, graphs, dynamic programming, and much more.
Part 2 of this book brings a reference to various algorithms and data structures widely in use today and can help you quickly search for an algorithm to tackle problems while programming.
Explore full table of contents

2. Designing Data-Intensive Applications by Martin Kleppmann

Martin has been working with software for more than ten years. He has co-founded and sold a couple of startups and now he is working on distributed systems research.
I came to know about him last year when I was researching some approaches to implement distributed locking and found his analysis of Redlocks and interesting dialogue between Martin and the author of Redlocks.
In his book, he covers a lot of techniques and tools that came to light in the past decade and takes you deep into how they are implemented at their core, points you to the very first research papers written for those topics.
The book focuses on distributed systems and various algorithms and systems developed to solve the problems with these systems.
I think this one is a must-read for you if you work with huge amounts of traffic and data.
This book might actually take a lot of time to complete if you try to understand the topics covered in-depth. So, I would suggest you take notes and try to go slow, maybe take a few months.
Explore full Table of Contents

3. Applied Cryptography by Bruce Schneier

Most of you might already know Bruce from his famous blog, Schneier on Security. He is an experienced veteran in internet security and has written various books related to the topic.
I found this book when I wanted to learn about various cryptographic algorithms that I was going to use in my upcoming project. This book will cover most of the widely-used algorithms to secure exchanges your computer makes over the internet and the math behind those algorithms.
Privacy is a major concern now with increasing amounts of user data coming from your applications. Bruce provides advice on which algorithm will help you maintain your users’ privacy in the best way possible.
Explore the full table of contents.

4. Clean Code by Robert C. Martin A.K.A. Uncle Bob

Robert is quite famous among programmers due to his contributions to the Agile Manifesto and, secondly, due to this book itself.
Robert highlights, in this book, some key practices that benefit everyone, from the programmer to the manager. He lays the SOLID principle for designing flexible and agile code that requires the least modifications and is extendable to a great extent.
He highlights how requirements from stakeholders can change over time and a programmer needs to think one step ahead and provide that extendability to the code without having to change every single line of it.
I wish I had read it at the beginning of my career, but I just finished it last year. If you haven’t had the wisdom of Uncle Bob yet, you should, right now.
Explore the full table of contents.

5. The Linux Command Line by Willian Shots

Most of the development and deployment servers out there are based on Linux OS. So, it wouldn’t be wise to keep a Linux guide out of this discussion.
Even if you use a macOS, most of what you learn from this book will be applicable to you as well.
Willian has been working with Linux systems for over 15 years and in this book, he has tried to cover all the important topics that should feed 90% of the requirements of a programmer.
I had a course in college that taught me Linux command-line skills and that made my life so much easier when I joined my first company.
This book will cover topics for beginners, like navigating between directories, writing advanced shell scripts, and automating stuff. It goes through permissions, regular expressions, file searching, networking, and a lot more.
Explore the full table of contents.

Conclusion

I have tried to cover books from the most important topics here and if you think I missed something, please let me know in the comments or if you have any suggestions.
Until then, stay home, stay safe.

Written by varunb94 | Coder. Designer. Creative enthusiast. Trying to be a writer.
Published by HackerNoon on 2020/05/24