Computer Science
What is Computer Science
Computer Science (abbreviated as CS) is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (including the design and implementation of [[hardware]] and [[software]]). Computer science is generally considered an area of academic research and distinct from [[computer programming]].1
Get Started
I loved reading Nand2Tetris and CS:APP book. It explains computing very well from ground up. What else? What CS books should I read?
Here's my personal selections:
If you're self-studying, check out: Teach Yourself Computer Science by Bradfield School of CS.
The CS field is never short of good open university classes and courses. There are many CS curriculum, both informal (opinionated) and formal. One of them is Path to a free self-taught education in Computer Science by OSSU (Open Source Society University). Formal or not, everyone has a different path to their CS education. More education stuffs here.
Beyond that, continue reading papers (or paper summaries) and implement CS ideas. Here's a few good starting points:
- Get "a paper each week" from The Morning Paper by Adrian Colyer.
- BaseCS - Exploring the basics of computer science, every Monday, for a year.
Articles are also good source for CS readings.
Many students and learners have written notes about things they learned.
What about videos? I got you covered.
If you are into specific CS topics such as programming language theory or Turing, check other topics. Data structures and algorithms is a larger topic separated from this.
Lastly, keep learning by staying connected to the world-wide CS communities.
This section will cover the following topics:
📄️ Algorithms
...ongoing
📄️ Articles and Notes
List of CS blog posts, articles, notes, and stuffs like that.
📄️ Books
What CS Books Should Everyone Read?
📄️ Data Structures
...ongoing
📄️ Education
Curricula and a list of university classes available online and CS-focused courses.
📄️ Other Topics
A section to keep smaller topics like Turing, Programming Language Theory, computer architecture, and the likes.
📄️ Papers
Good papers in Computer Science (CS).
📄️ Social Media
Subreddits, Tweets, and Discord chats.
📄️ Videos
Videos or screencasts that don't fit as courses. These can be educational or not (just informational).