Computer Science

This post is for a guide for understanding Core Computer Science topics

The best way to master Computer Science is to read few good books on the topic.  Programmers Don’t Read Books — But You Should  These are some of the books you can start with


  • Cormen’s Introduction to Algorithms
  • Data structures and Algorithms – Aho, Hopcroft, Ullman
  • Programming Pearls – Bentley
  • How to solve it by computer – Dromey

Cormen’s book is simply brilliant, it makes you understand every details of Algorithms. In addition to this book I strongly recommend you to see the video lectures from MIT. The lectures are given by Liesersonand Erik demaine. The lectures are absolutely brilliant.

Operating System

Quick Intro to various topics

Hands on tutorials

Internals : Gustavo Duarte explains in  detail about various topics

Linux Internals

Linux is a well designed sytem and learning some internals linux will help a lot in understanding how systems are designed in real world
(Thanks to Vijay D’Silva’s brilliant answer . Thanks to The Phrygian Capfor summarizing)
Links based on linux 2.6:

Computer Architecture 

  • Computer Architecture – A Quantitative Approach – Hennessy and Patterson
  • Advanced Computer Architecture – A design space Approach – by Sima , Fountain, Kacsuk
  • Computer Architecture – William Stallings
  • Computer Systems – A programmers perspective Randal E. Bryant / David R. O’Hallaron

Databases and File Systems

  • Database Systems – Jeff. Ullman
  • File Structures – Michael Folk

Computer Networking 

  • Computer Networks – Larie L Peterson , Bruce Davie


Most people find the task of reading books, courses to be daunting and don’t take the first step. To keep yourself motivated to take that first step, you can follow few blogs such as paulgraham, joelonsoftware and also technical people e.g thegeekstuff (thegeekstuff) on Twitter. But blogs are just first steps. The most helpful method is to have a motivating project at hand and to learn the necessary stuff required for that. For CS topics, we have a tech forum on Facebook, with around 150,000 members, and lot of people from research and academics. There are lot of prominent people like college professors, PhD scholars and book authors contributing.

Most people find difficult to read entire books or watch video lectures, they just have time in chunks say 2-3 hours.  Unless the course is well structured, it is difficult to complete the course by breaking it up.  Learning new skills is time consuming because currently there are no good websites that help in adaptive learning or structure the course according to specific needs of the user. Most of the current websites are good, if you already know some basics about the topic, but what is missing is the perspective from a newbie.  At CourseHunt we give a good plan for learning a particular topic. We manually aggregate the best content on the web for a particular topic. We validate our contents by asking feedback from freshers – if they could follow our lesson plan. We believe this kind of adaptive learning can shorten the time taken to learn new skills. Courses are structured using hyperlinks of concepts rather than bookish linear way

DataStructures and Algorithms in the Linux Kernel

Big Ideas in Computer Science

Computer Science for the self taught programmer

Great Ideas of Computer Science

Talk by Director  of Microsoft Research. Gives a good analogy about Cryptography and Diffie Hellman key exchange

Leave A Comment