Computer Science Self Learning Guideline¶
This computer science self-learning guide draws inspiration from "Teach Yourself Computer Science" and "csdiy.wiki" presenting the content in a more streamlined and efficient manner.
Meanwhile, the following guidelines can also serve as your reference.
- r/learningprogramming
- might.net
- A Self-Learning, Modern Computer Science Curriculum
- Open Source Society University
- UCB course guides
There are 2 types of software engineer: those who understand computer science well enough to do challenging, innovative work, and those who just get by because they're familiar with a few high level tools. Both call themselves software engineers, and both tend to earn similar salaries in their early careers. But Type 1 engineers progress toward more fulfilling and well-remunerated work over time, whether that's valuable commercial work or breakthrough open-source projects, technical leadership or high-quality individual contributions.
Your self-learning journey should encompass 11 essential areas:
- Programming
- Computer Architecture
- Algorithms and Data Structures
- Math for CS
- Operating Systems
- Computer Networking
- Databases
- Languages and Compilers
- Distributed Systems
- Artificial Intelligence
- Others
Before embarking on your self-learning adventure, we recommend starting with an introductory course: Crash Course Computer Science by Carrie Anne. Here is my Notes
This series will provide an excellent foundation for your studies.
The recommended content will be marked with a star and displayed in bold at the beginning of the text, while the content I have completed will be marked with a checkmark and set to green at the end of the text.