Link Search Menu Expand Document

Computer Science

Computer Science is the study of computers and computational systems. Unlike electrical and computer engineers, computer scientists deal mostly with software and software systems; this includes their theory, design, development, and application. Computer science is the study of algorithmic processes, computational machines and computation itself. As a discipline, computer science spans a range of topics from theoretical studies of algorithms, computation and information to the practical issues of implementing computational systems in hardware and software.


Table of contents

  1. Why Computer Science?
  2. Learning Roadmap
  3. Learning Resources
    1. Programming
    2. Data Structures & Algorithms

Why Computer Science?

Computer Science is great for those who want to build systems and software. It is a highly sought after field in the industry and is a great career option for programming enthusiasts. With the increasing pervasiveness of computing in society, there are a growing number of careers involving computer science. One of the safest bets from career point of view.


Learning Roadmap

  • Learn the basics of programming.
  • Learn the basics of data structures.
  • Learn the basics of algorithms.
  • Learn the basics of operating systems.
  • Learn the basics of computer networks.
  • Learn the basics of databases.
  • Learn the basics of computer architecture.
  • Learn the basics of computer security.
  • Learn the basics of distributed systems.
  • Learn the basics of machine learning and AI.

Learning Resources

Programming

Start with Harvard’s CS50. It is a great introductory course to computer science and programming. Initially, you will learn C and then move on to Python. It will introduce you to various terms & concepts of computer science and programming. It is a great course for beginners.

Move on to MIT’s 6.0001. It is a great course thought in Python which will help you focus more on thinking rather than programming.

Optional

Alternatively, you can follow Dr. Madhavan Mukund’s course on Programming and Data Structures with Python thought at CMI. It has lecture wise videos, lecture notes and assignments.

Continue learning Python with MIT’s 6.0002. It is a great course which will introduce you to the basics of data science and machine learning.

Data Structures & Algorithms

At this stage you are familiar with concepts in programming and have a good grasp of Python. Now, you can start learning data structures and algorithms and prepare for coding interviews along the way as most of the companies ask questions from these topics.

If you have never taken a course on data structures and algorithms from your college, then you can start with MIT’s 6.006. It is a great but focuses more on theorems and proofs.

I personally found Dr. Madhavan Mukund’s course on Design and Analysis of Algorithms more intuitive and easy to understand. Along with this a top resource is Training Material for Indian Computing Olympiad. They have a great collection of problems and topics to learn essential for a top coder.

Optional

If you want to prepare for coding interviews right next after what you have learned, try LeetCode. It is a great resource for practicing coding interview questions. A curated list of problems can be found here.

more coming soon!