May 24th 2020
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
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.
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.
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
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
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.
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.