TL;DR;

The following is a list of courses and clerks that I have studied and highly recommend others to study:

  1. For newbie:
  2. Algorithms and Data Structre:
  3. Software Construction
    • MIT 6.031: Coding, coding and coding… But I love it!
  4. System
  5. Deep Learning

Why this page

During my undergraduate years, I found that the courses from renowned universities around the world played a pivotal role in my personal growth. Some of them deepened my understanding of specific fields, while others enhanced my coding skills. Certain courses challenged and sharpened my thinking abilities, and a few even introduced me to the world of research in areas that genuinely interest me. Moreover, the period during which I worked hard in these courses made me more self-motivated.

In all the courses I have taken, I find some to be truly excellent. Therefore, I highly recommend anyone who is new to Computer Science (whether they are freshmen or anyone interested in gaining some knowledge of Computer Science) to learn the following courses.

If you cannot find a suitable course for yourself in the following list, you can check out csdiy, a website that gathers numerous computer science courses. It was established by a student from Peking University, and I have personally gained a lot from this website as well.

Lastly, I would like to express my respect to the professors who teach these courses and make them open-access. Their efforts have enabled people from all around the world to access equal and high-quality education.

Let’s start!

Course List

For newbie

  • MIT Missing Semester

    While working on my first project, I find various tools that I don’t know before such as git, shell. No one taught me how to use them, assuming I was already proficient. This course taught me how to use these tools. I highly recommend taking this course immediately after or even during learning your first programming language.

    Website of this course: https://missing.csail.mit.edu/2020/

  • Learn Git Branching

    You can learn git like playing a game. And it willn’t take much time. You can learn it before your first project. Version control will greatly benefit you.

    Website of this course: https://learngitbranching.js.org

  • UCB CS61A

    It’s the first course I learned online, and I really gained lots of idea about “coding” from this course such as how to view code from an abstract level, and how to write pretty code. I love it so much that I recommand it to my friends everytime when they ask me if there are some courses that can learn Python or coding. You can learn it at any time !

    Website of this course: https://inst.eecs.berkeley.edu/~cs61a/su20/

Algorithms and Data Structre

  • UCB CS61B & UCB CS170

    These two courses cover classic algorithms and data structures. In 61B, you will have more opportunities to practice implementing algorithms, while 170 is more focused on algorithm design.

    61B:https://sp18.datastructur.es/ 170:https://cs170.org/

Software Construction

  • MIT 6.031

    We often hear about the importance of writing high-quality code. This course teaches you how to write code that is Safe from bugs, Easy to Understand, Ready for change. Moreover, you will write a large amount of code in this course. For those who love coding and want to improve their coding skills, this course will benefit you greatly. Personally, I have noticed a significant improvement in my coding ability after completing this course.

    Website of this course: https://web.mit.edu/6.031/www/sp21/

System

  • CSAPP

    After taking this course seriously, your understanding of computer systems will definitely go up a notch. Although it can be challenging and demanding in terms of workload, it is important to avoid relying on others’ code and ideas. Enjoy it!

    Website of this course: http://csapp.cs.cmu.edu/

Deep Learning

  • Dive into Deep Learning

    This book was recommended to me by my first mentor. It’s a great book for beginners in deep learning, covering topics from Linear Regression to Convolutional Neural Networks (even though they may not be the most recent) to Attention. It provides beginners with a fundamental understanding of What is deep learning, and you will see its implementation.

    Website of this book: http://d2l.ai

Course I am learning

Currently, I am learning following courses, welcome to share your idea about them with me!

  • MIT 18.06
  • Stanford CS144
  • MIT Web Development Crash Course