Plan to become a hacker

Inspired by Eric S. Raymond

Language

  • python
    • UCB CS61A
  • C/C++

    Learn it, so you’re able to know how to solve tricky problems during development. At the same time, it’s not an efficient language to programming. :: If a language does too much for you, it may be simultaneously a good tool for production and a bad one for learning. — by ESR

    • Harvard CS50X, Mooc course: C Programming by Zhejiang University, Coursera Introduction to Programming in C specialization by Duke University
    • study163 course C++ programming by Zhejiang University, Amirkabir University of Technology 1400-2
  • LISP
  • JAVA
    • UCB CS61B, Coursera: Algorithms I & II,
  • Perl
  • Rust
    • Stanford CS110L

      Architecture

  • Coursera: Nand2Tetris, UCB CS61C, CMU CS15213: CSAPP
  • ETH: Digital Design and Computer Architecture

System

Operating System

  • MIT 6.S081: Operating System Engineering, NJU OS: Operating System Design and Implementation

    Parallel and distributed sytem

  • CMU 15-418/Stanford CS149, UCSC CSE138, Cambridge Concurrent and Distributed Systems

    Machine learning System

  • Bilibili, CMU 10-414/714,

    Computer Network

  • UMASS Computer Networking: A Top-Down Approach, Stanford CS144

    Software Engineering

  • UCB CS169 …