Best CS Fundamentals & Systems courses
The 49 CS Fundamentals & Systems courses Redditors recommend to each other on Reddit, ranked by how many people recommended each one, how strongly, in how many separate threads and over how many years (2,679 recommendations). 38 of them are free. How ranking works.

CS50: Introduction to Computer Science
Harvard University · beginner · free
Commenters repeatedly call it an excellent, high-production-value intro that builds a strong foundation, with David Malan's lecturing singled out as a major strength.

The Elements of Computing Systems (Nand2Tetris)
nand2tetris.org · intermediate · free
Commenters call it a fantastic, practical way to understand how computers work from first principles, with one saying it is probably the best course they have taken.
CS101 Introduction to Computer Science
Coursera · beginner · free
Most commenters name Udacity's CS101 as the best free intro to CS for beginners, so this Coursera entry is mainly a pointer to a similar course; only one comment directly recommends the Coursera version.

6.0001 Introduction to Computer Science and Programming in Python
MIT OCW · beginner · free
Commenters recommend it as a solid Python-based introduction to programming and algorithms, though one commenter prefers Harvard's CS50 as a starting point.
CS106A Programming Methodology
Stanford University · beginner · free
Commenters call it a fun, well-structured introduction to programming and computer science, with a lecturer who is easy to learn from and assignments that give quick, rewarding results.
6.001x Introduction to Computer Science and Programming Using Python
edX (MITx) · beginner · free
Commenters bring it up mainly as a rigorous beginner alternative to CS50, described as a course that hits learners with a year of data structures and algorithms and is less "real world" in focus.
Introduction to Computer Science and Programming in Python
edX · beginner · free
Commenters say they never tire of recommending it as a starting point for learning computer science with Python.
The Missing Semester of Your CS Education
MIT CSAIL · beginner · free
Commenters call it a godsend and highly recommend it regardless of level, for filling the gap of practical tooling that classes don't teach.

6.828 Operating System Engineering
MIT OpenCourseWare · advanced · free
Commenters call it one of the best OS courses and say the labs are very hard and very rewarding, with the xv6 codebase praised as small enough to understand fully.

Crash Course Computer Science
YouTube · beginner · free
Commenters point to it as a well-made, watchable high-level introduction to CS history and core concepts, suitable for teens and homeschoolers.
CS 61C Great Ideas in Computer Architecture
UC Berkeley · beginner · free
Commenters call it a transformative foundation for understanding how computers actually work, and recommend it especially for learning C and C++ and machine-level behavior.

The Elements of Computing Systems (Nand2Tetris) Part II
Coursera · intermediate · freemium
Commenters who completed both parts describe enjoying the course, though one notes the teachyourselfcs.com writers only recommend the first part, so fit depends on the reader's approach.

6.004 Computation Structures
MIT OpenCourseWare · intermediate · free
Commenters call it an excellent, clear walk through abstraction layers from 1s and 0s up to a CPU, and say it shaped their careers in systems work.
From Nand to Tetris (Build a Modern Computer from First Principles)
Coursera · intermediate · free
Commenters praise it for making you build a working computer from logic gates and then program it in assembly, which they say teaches architecture far better than reading about it.
Code in Place
Stanford University · beginner · free
One commenter describes the experience as rewarding, especially for volunteers who lead small sections as TAs.

Introduction to Linux
edX · beginner · free
Commenters say it fills in Linux background that self-taught learners often miss, and that it is free despite the Linux Foundation's paid training normally costing thousands.
15-213 Introduction to Computer Systems
Carnegie Mellon University · intermediate · free
Commenters call it one of the best-taught courses they've taken, praise its labs and online lecture presentation, and recommend it as a foundation in systems programming and x86 assembly.

Computer Architecture
Coursera · intermediate
One commenter recommends it as a sound way to learn how CPU pieces fit together, and suggests pairing it with hands-on VHDL or Verilog work.
The Hardware/Software Interface
Coursera · advanced · free
Commenters call it their favorite online course and praise its assignments, and one notes it is a great companion to the CS:APP book.

Build a Computer
Coursera · beginner · free
Commenters call it a gentle, very hands-on introduction to how computers work from first principles, and say the layered approach is valuable even for software people.
Introduction to Computer Science
edX · beginner · freemium
One commenter says it was recommended to them as a free option for learning CS theory, with a paid tier for academic credit.
CS50 (Introduction to Computer Science)
YouTube · beginner · free
Commenters call it an entertaining and friendly introduction to computer science, with one saying the lectures are a breath of fresh air compared to other tutorials.
Programming Paradigms
Stanford University · intermediate · free
Commenters call it an incredible course that greatly improved their programming insight and helped them grasp pointers, with Jerry Cain praised for explaining ideas clearly.

Learn the Command Line
Codecademy · beginner · freemium
Commenters suggest it as a fun, interactive way to learn the command line before picking up git, Linux, and deployment tools.

Software Debugging
Udacity · mixed · free
Commenters call it excellent and say it goes beyond debugger commands to the underlying methods for finding bugs and automating debugging.
CS107 Computer Organization & Systems
Stanford University · intermediate · free
Commenters point to it as a solid way to learn C and the memory-level details that higher-level languages hide, with one saying it is a good alternative to skipping C in a CS degree.

Embedded Systems - Shape the World
edX · beginner · freemium
Commenters call it an excellent, high-quality hands-on introduction to embedded programming that works on real hardware.

Introduction to Computer Science
MIT OpenCourseWare · beginner · free
One commenter calls it very cool and easy to follow, and says it should cover gaps left by a missed undergraduate education.
MIT Introduction to Computer Science and Programming
MIT OpenCourseWare · beginner · free
Commenters call the lectures awesome and describe the course as free and challenging, and one suggests keeping it alongside a Python course because it covers different types of programming languages.

15-122 Principles of Imperative Computation
Carnegie Mellon University · beginner · free
Commenters call it mind-blowing for teaching them how to reason about their programs, and praise the course notes as excellent.
Linux Mastery
Udemy · beginner · paid
Commenters call it a very good Linux course with an enthusiastic, knowledgeable tutor, and say it is a one-time purchase compared with monthly subscriptions.
Harvard CS50x 2021
Harvard (edX) · beginner · free
Commenters call it a solid source of formal CS knowledge for beginners, with one saying to start with its first nine lectures before choosing a specialty.
CS101 Introduction to Computer Science
Stanford University · beginner · free
Commenters call it a gentle first taste of programming that focuses on concepts rather than memorizing code, and say it is highly recommended even after another intro course.
Introduction to Programming and Computer Science
freeCodeCamp · beginner · free
Commenters call it a beginner-friendly crash course in programming fundamentals, and one says even the first hour alone introduces the concepts well.
CS101 Introduction to Computer Science
Udacity · beginner · free
Commenters call it a great, project-oriented introduction that focuses on actual coding and problem solving rather than just reading.
Programming Methodologies
Stanford University · beginner · free
Commenters point to it as a free, full video course for learning programming concepts and object-oriented design, one that one commenter says is thorough enough to compare with a university's fundamentals sequence.
6.824 Distributed Systems
MIT OpenCourseWare · advanced · free
Commenters call it an excellent, hands-on introduction to distributed systems, valuable because the labs force you to implement and debug real designs.
Computer Networks
Coursera · beginner · free
Commenters call it an excellent, well-rounded networking course and say it is good even as an introductory class.
6.S096 Assembly Language
MIT OpenCourseWare · beginner · free
Commenters point to it as a starting place for understanding how programs map down to what the processor actually does, with one calling MIT OpenCourseWare's assembly lectures great and saying to start there.
6.002x Circuits and Electronics
edX · beginner · free
Commenters call it one of the best online courses they've taken, praising the lectures, the interactive exercises, and how well it explains how electronics and computers work.
CCNA
Udemy · beginner · paid
Commenters say they passed the CCNA with it and suggest taking the free networking courses on Udemy as a starting point before learning a programming language.
Programming Foundations: Fundamentals
Lynda.com · beginner · freemium
Commenters call it a good introductory and reference course that helped them grasp the basic building blocks of programming.
Computer Science 101
Coursera · beginner · free
Commenters call it perfectly suited to people new to programming and recommend trying it before harder beginner courses like Udacity's CS101.
Kafka course
Udemy · beginner · paid
Commenters recommend it as a quick, practical way to get up to speed on Kafka for a new job, with one commenter saying they took both linked courses and that together they cover the core user-side material.
Linux Command Line Basics
Udacity · beginner · free
Commenters call it a quick, free way to get comfortable with the Linux terminal in only a few hours, and suggest pairing it with The Linux Command Line book.
Intro to Programming
Lynda.com · beginner · paid
Commenters recommend it as an accessible starting point for absolute beginners, praising instructor Simon Allardice's clear explanations.
Build a Web Browser
Udacity · intermediate · free
Commenters suggest it as a fun, hands-on next step for people who want to build something substantial after learning Python.
Computer Architecture
MIT OpenCourseWare · intermediate · free
Commenters point to it as a free route into how computers work at the processor level, with one noting their own school course built a processor and an assembler.
CS10 The Beauty and Joy of Computing
UC Berkeley · beginner
Commenters describe it as a good intro to thinking like a programmer and a sensible step before the CS61 series.