5 Books You Can Read to Boost Your Computer Science Knowledge
Coder. Designer. Creative enthusiast. Trying to be a writer.
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.
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.
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
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.
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.
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
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.
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.
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.
Subscribe to get your daily round-up of top tech stories!