Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
Build a Computer
Image: coursera.org
#82 overall

Build a Computer

Coursera

5 recommenders · 5 threads · recommended in 4 years, 2016–2020 · score 5.5

Go to course ↗

Nand2Tetris (Build a Computer) on Coursera, taught by Shimon Schocken and Noam Nisan, in which learners build a general-purpose 16-bit computer from logic gates up through assembler, virtual machine, compiler, and OS-level pieces. The course is the first half of the book The Elements of Computing Systems.

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.

CS Fundamentals & Systemsbeginnerfreeinteractive MOOC#nand2tetris#computer architecture#logic gates#assembly#compilers#schocken

Recommendations by year

20062026

What commenters said (5)

  1. Strongly recommendsindigochill2020in “Ask HN: What's the best resource for learning modern x64 assembly?”
    Learn whatever assembly language first

    On this front, I can highly recommend these two resources, preferably in this order for someone totally new to assembly:

    NAND to Tetris, a course that will have you build an emulated general-purpose CPU from first principles even with no prior knowledge. You'll learn exactly about registers and memory by making them. I even recommend this to non-hardware people because the way they divide each layer of complexity is great practice even in software. https://www.coursera.org/learn/build-a-computer

    Microcorruption, a series of incrementally difficult MSP430 (an easy-to-understand 16-bit instruction set) exploitation exercises in the browser: https://microcorruption.com

    These are both geared towards being a gentle introduction to assembly and CPU architecture principles. They don't touch certain facts of X86/64 processors like pipelining or variable-length instructions, but IMO those are best left until you're comfortable with the basics.

  2. Strongly recommendsuzairfreaksout2018in “Ask HN: What are the MOOCs you have taken in 2018? Which do you recommend?”

    The best MOOC course I have taken this year is the one I'm currently doing. It is called nand2tetris [1] where you actually build a 16 bit computer all the way from nand gate. Along the journey you will be building the memory, operating system and also writing a compiler. You can follow my journey in tweets [2].

    Another great course I'd recommend is Big History[3]. Like nand2tetris,it gives you a great overview of the entire history of our being. From Big Bang to 2018.

    Also, I am looking for some great online courses on Distributed systems. It would be good if assignments are challenging and where you have to write a lot of code.

    [1] Nand2tetris: https://www.coursera.org/learn/build-a-computer

    [2] My Nand2tetris journey in tweets: https://twitter.com/abiduzz420/status/1076192382398357505

    [3] Big History Project: https://polymathgoodies.xyz/big-history-project/

    Edit: added extra spaces

  3. Strongly recommendslkrych2018

    I have spent a lot of time taking online courses. Here are my favorites.

    CS50 (https://www.edx.org/course/cs50s-introduction-computer-scien...) - Best Intro to Computer Science

    Nand2Tetris I and II (https://www.coursera.org/learn/build-a-computer) - Build a computer from logic gates up to a compiler, this is the best class I've ever taken.

    Agile Development Using Ruby on Rails (https://www.edx.org/professional-certificate/agile-developme...) - Great introduction to web development and software engineering principles

    I've also been reading some technical books. Would definitely recommend

    Modern Operating Systems - Tanenbaum Designing Data-Intensive Applications - Kleppmann

  4. RecommendsDiggie12252017in “Low-Level Programming University – A roadmap to becoming a low-level programmer”

    I am taking a great coursera course on the very basics of a computer (uses a hardware simulator to build the chipsets necessary to build a computer). It is VERY intro-friendly and gentle, including teaching basic Boolean algebra. Also can be very hands on, which is what I really like about it. Might be a good fit!

    https://www.coursera.org/learn/build-a-computer/

  5. Recommendsbhrgunatha2016in “Building a Modern Computer from First Principles”

    The authors also created a course on Coursera [1] which is also worth a look. Although it only covers the first half of the book (up to Assembler Language.) The authors have promised part 2 but it hasn't been released yet.

    [1] https://www.coursera.org/learn/build-a-computer

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help