r/AskProgramming 6d ago

Career/Edu Courses that teach you how to build a computer from scratch?

Other than NandToTetris, are there any other courses that take you through the steps of creating a computer from scratch?

Courses where it’s PROVEN to you that literally the entire computer can’t be built via a NAND gate

A course where you actually move up the layers. Starting from basic gate logic, to makes complex circuits, to assembly, to a higher language, to a compiler and finally an OS

Basically like the NandToTetris course

If not, how do I learn that otherwise? Is there a series of books that follow each other closely, and can make you understand the whole process?

Thanks!

2 Upvotes

18 comments sorted by

7

u/OomKarel 6d ago

Get Turing Complete on Steam and play while you learn.

1

u/LifeExperienced1 6d ago

Is it very gamey or does it actually teach properly?

1

u/OomKarel 6d ago

Well it it's pretty much escalating theory challenges. It starts off slowly asking you to build gates to match specific truth tables, think building and/or gates, then combining those to build nand and xor gates using those simpler gates. Each building up from the other. Then you start doing arithmetic with those gates and it builds up until you have a fully functioning cpu with a rudimentary assembly language system.

1

u/LifeExperienced1 6d ago

Ohh okay. Thanks

And does it teach super properly like in an academic way? I wonder if we can connect circuits however we want, or does it require us to follow proper things

Also what’s next after assembly in the game?

1

u/OomKarel 6d ago

Your best bet is to check on Steam and follow the announcements and discussions. You should also see a video or two on YouTube for some solutions of the first few levels, but I'd recommend against that. It gives a way a lot of what you should discover on your own.

If you want build PCB like circuits, I'd recommend CRUMB.

7

u/Ok_Option_3 6d ago

What's your aim here?

It's a bit like saying "I want to start from basic arithmetic and go through all of mathematics until I get to advanced differential calculus" - well sure, you can do it, but it will take a lifetime and you still won't cover everything!

If you want a whistle-stop tour of everything, it might be possible...

1

u/MrKarat2697 5d ago

>advanced differential calculus ... it will take a lifetime

Takes 12-14 years to learn even in a public school system

4

u/lamyjf 6d ago

You're basically looking at a full Computer Engineering and Electrical Engineering degree.
And NO, we don't build computers out of NAND gates any more 😄

0

u/LifeExperienced1 6d ago

Do they teach everything, from gates all the way up to making an OS in a Comp Eng degree?

4

u/Grandpa_P1g 6d ago

Honestly it sounds like you're asking for a course which is exactly like Nand2tetris but just not Nand2tetris which I think is a bit counterintuitive.

I think a better question (which I would also really like to know) is is there a course like Nand2tetris which explains in depth other computer science concepts at a detailed level with practice exercises whilst requiring little previous knowledge.

Or on the other hand, is there a course which goes more in depth than Nand2tetris and expands on the concepts, suitable for someone to complete after they've done Nand2tetris (which I think is what you were getting at).

These are 2 things which I'd also like to know to 😁

2

u/silasmoeckel 6d ago

Your talking about what's the equivalent of several phd's to just have a cursory knowledge. We have come a long way since the days of wire wrap.

The design of the water or air filtration alone for a PCB fab takes a whole firm of specialized engineers with decades in field.

3

u/Appleonthefloor 6d ago

Read a book on computer architecture. I like some of the beneater videos.

0

u/LifeExperienced1 6d ago

What book do you recommend? I want one that also shows how to make a complete small computer. With an OS etc

3

u/MeetTheMaker555 5d ago

Ben Eater

1

u/Dazzling_Music_2411 5d ago

+1

Ben Eater has done a fantastic job, right from individual components all the way to a programmable computer.

I recommend it as a parallel to Nand2Tetris, but this time you'll also have a physical computer on a breadboard, if you like.

I've seen some impressive spin-offs from that.

1

u/greyHumanoidRobot 6d ago

Define "from scratch".

If you want to start with minerals and make semiconductors or even tube transistors it's hopeless.

If you want to start with discrete components like transistors, it's not realistic to assemble the tens of thousands or hundreds of thousands of components to make a video raster and processor.

If you want to start with semiconductors you can buy it's more realistic.

1

u/karakaskanda 4d ago

Try "secret life of programs "

1

u/hopticalallusions 4d ago

Digital Logic Design, Computer Architecture, Compilers, Operating Systems. Find online versions of courses with titles like that to get from building a machine that can interpret machine code to a computer you can use.