10 Books, every computer science student must read.
I am from mathematics background who turned to computer science later. I completed my graduation in Mathematics and Physics major and I can say that mathematics is still my favourite subject.
After graduation, I turned to hottest stream of engineering i.e. Computer Science. I started my Masters in Computer Application and my sole moto was making some quick money with this hottest stream. As soon as I started my formal education in Computer Application, I started loving Computer Engineering more. I was supposed to learn coding languages (C, C++, Java, C# etc) and Database to start coding as quickly as possible. But I was on a different path altogether, I was spending more time on Assembly, Computer Organisation, Operating System, Data Structure, Data Analysis & Algorithms, Compiler, Combinatorics etc. Once I dig deeper, I came to know that I am very near to mathematical concepts once again. That’s the reason for my love towards Computer Engineering.
Now Computer Science study was passion rather than money making machine. I started learning Computer Science from heart and never bother about syllabus or grades.
After almost 10 years I can say that I was right in making choice of Computer Engineering over Computer Applications. Today, we are running a small software company in India and use to switch among various tech stacks & technology platforms on daily basis. So knowing core concepts helps a lot in daily operations.
I am a book lover since early childhood days and I am a proud owner of my personal library (consists more than 1200 books). But you don’t need to read 1200 books to learn computer science, here I am listing 10 most important, useful & very core books. I am writing down them in the exact order one should read them:
- Computer Architecture & Digital Design (by M. Morris Mano)
- The C Programming Language ( Dennis Ritchie)
- Operating Systems (Andrew S. Tanenbaum)
- Data Structures using C (Andrew S. Tanenbaum)
- Computer Networks (Andrew S. Tanenbaum)
- Introduction to Algorithms (Thomas H. Cormen)
- Fundamentals of Database System (Shamkant B. Navathe)
- Automata Theory, Language & Computation (Jeffrey D Ullman)
- PL/SQL ( Ivan Bayross)
- System Analysis & Design (Alan Dennis)
- Others: Unix, Shell Script, Java Script, Ruby are some other good scripts to learn.
Apart from above list of books one need to learn
Java: Learn from official website documentation (or can use Complete Reference, Black Book, Pearson, Apress, Head First or any other standard book as well). Practice code is the key to success.
Design Patterns: Learn design patterns as early as possible and start using them in your programming.
Python: Python is very easy to learn and you can learn it from official website and through forum tutorials as well. Learning Python with Django is always a bonus.
Keep exploring as much as possible and keep a sharp eye on open source community and frameworks. Please feel free to ask me questions, I would be happy to share my learnings. Please correct me if I am wrong somewhere.