These are the books you should read in Computer Science
I think a
good Computer scientist
needs to know Mathematics and take the approach of "Mathematical approach
to computing".
Unfortunately many people think Computer Science is Computer programming. Here are some of my suggestions though:
1. Start learning CS with "Linear Algebra by Gibert Strang". All the memory organization inside a computer is mathematically represented as a matrix.
2. "Concrete Mathematics - A foundation for computer science, Graham, Knuth, Patashnik"
3. "The design of Everyday things - Donald A Norman"
4. A must have book for all programmers "The C Programming language by Kernighan and Ritchie" - Especially for Indian Universities, Please dont read from local authors. Its disturbing!
5. Book (4) can e supplemented by "C: A Reference Manual - Samuel P. Harbison and Guy R. Steele" and "Expert C Programming: Deep C Secrets By Peter V. Linden"
6. To know how the data is stored in a computer and its operation have a copy of "Introduction to Algorithms by Coremen"
7. Now you know what is programming and how to program. Next you can start knowing about what happens to my program after say gcc hello.c -o hello. Thats where compilers will help. The best book according to me for compilers is "Compilers: Principles, Techniques, and Tools, Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman". Supplement this with Stanfor University video lectures on Compilers and the GCC website.
8. After this you need to know about the brain of the computer - the operating systems. I never suggest you to read the traditional approach to OS i.e. Galvin, tanenbaum, Stallings. Try a new approach. Learn what is a "Kernel" first. Download the source code of Linux kernel. Take the help of "Linux Kernel Development by Robert Love" Build the source code, make changes, build again, write your own code, build again. See the miracle! You may Supplement this with any standard books on OS for a broader view of OS.
9. What does all the code and OS run on. Its a hardware. So have a copy of "Computer Architecture - A quantitative appraoch by Patterson and Hennessey". Supplement this online lectures in Coursera on CA for better understanding.
10. A classic book on Database systems is by Navathe.
11. Netwoking fans Please dont start with Tanenbaum. If you are good in C, Please use the book "Unix Network Programming by Richard Stevens"
12. Embedded system guys can start with "An embedded software primer by David E Simon"
13. "Thinking in Java by Bruce Eckel"
14. For all the upcoming topics in CS such as Cloud computing, Machine learning, Data Analysis, Internet of things, and others. Google is the best source of information.
Thank You!
0 Comments