Skip to content

Instantly share code, notes, and snippets.

@meetkool
Last active June 7, 2026 19:41
Show Gist options
  • Select an option

  • Save meetkool/cd0998cf64a5b80f144b47bc133a513d to your computer and use it in GitHub Desktop.

Select an option

Save meetkool/cd0998cf64a5b80f144b47bc133a513d to your computer and use it in GitHub Desktop.
[BLOG] Untitled Post
title Untitled Post
date 2026-06-07
excerpt What should your first public milestone be?
tags [blog,quick-post]
privacy public

What should your first public milestone be?

A realistic first goal:

Goal 1

Finish Nand2Tetris.

Goal 2

Build a basic RISC-V CPU in Verilog.

Goal 3

Run C programs on it.

Goal 4

Open-source it on GitHub.

Goal 5

Write detailed technical articles about the design.

At that point, you have something concrete to show.

That's actually a fair challenge.

The answer is: Nand2Tetris does not teach RISC-V directly.

If someone told you:

Finish Nand2Tetris → magically understand RISC-V

that would be wrong.

What Nand2Tetris teaches is the fundamental concepts underneath every CPU, including RISC-V, ARM, and x86.

Think of it like this:

Nand2Tetris teaches

  • Logic gates
  • ALU
  • Registers
  • Memory
  • CPU datapath
  • Instruction decoding
  • Machine language
  • Assembly
  • Compiler basics
  • Operating system basics

These concepts exist in every processor.


For example, in Nand2Tetris you build an ALU.

A RISC-V CPU also has an ALU.

When a RISC-V instruction says:

add x1, x2, x3

the CPU:

  1. Decodes the instruction.
  2. Reads registers x2 and x3.
  3. Sends them to the ALU.
  4. ALU performs addition.
  5. Stores result into x1.

The exact same ideas exist in Nand2Tetris.


What Nand2Tetris does not teach:

  • RISC-V instruction formats
  • Verilog
  • FPGA design
  • Modern cache systems
  • Branch prediction
  • Out-of-order execution
  • Linux boot process

Those come afterward.


A more realistic roadmap is:

Step 1

Nand2Tetris

Learn:

What a CPU fundamentally is.


Step 2

RISC-V Assembly

Learn:

  • Registers
  • Instructions
  • Memory model
  • Calling conventions

Example:

add x5, x6, x7

You'll understand why that instruction works because of Nand2Tetris.


Step 3

Computer Architecture

Read:

Computer Organization and Design

This book is almost exactly the bridge you're looking for.

It takes you from:

"I know what an ALU is"

to

"I understand how a real RISC-V processor is designed."


Step 4

Learn Verilog

Now you can actually implement:

  • Register file
  • ALU
  • Decoder
  • Control unit

for a RISC-V CPU.


If your long-term dream is "one day build processors," then the first milestone I would set is actually:

  1. Finish Nand2Tetris.
  2. Learn basic RISC-V assembly.
  3. Read the RISC-V edition of Patterson & Hennessy.
  4. Build a simple RV32I processor in Verilog.

That sequence is much tighter and more realistic than jumping straight from Nand2Tetris to "startup pitching investors."

And honestly, if you got to step 4, you'd already be in a tiny minority of software engineers. Most developers never get far enough to build even a simple CPU that can execute RISC-V instructions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment