Hello, I've been interested in electronics ever since I was a kid, but the advancements of transistors and ICs just skipped right past me, and without resources and learning opportunities, I couldn't keep up. I didn't do that well in college, so I went another way for many years.
About 10 years ago, I discovered the book, "Code" by Charles Petzold. I knew his name from his many books on programming Windows. I bought the book on a whim and it quickly became my all-time favorite book. It broke down so many brick walls in my understanding of electronics, and I dreamed of building my own relay computer, even after discovering someone else already did it (see: Harry Porter's relay computer).
Every few years, I'd re-read Code and continue to dream, but I still lacked some very basic understanding of electronics in order to be able to build anything (not to mention the prohibitive cost of 100's, 1000's of relay switches).
A few months ago, while on another of my many re-reads of my favorite book, I discovered a series of instructional videos by Ben Eater, about building an 8-bit breadboard computer using mostly basic logic gates (not too different from relay switches). Suddenly another huge breakthrough in my understanding, so I starting buying parts and now I'm building my own -- and learning tons in the process. If you haven't seen his videos, I highly recommend them. They go well with this course.
While working on my breadboard project, someone from the local University, mentioned I should check out this course (I also teach people how to play the game of Go at a location near the University). I looked it up and immediately began soaking it all in. A week and a half in and I'm already on Week 5 assignments.
Could you recommend this to your friends which know nothing about computer and programming? Worth it?
I know this was posted a very long time ago, but I think someone with No computer programming experience might find this a bit tricky, especially as you have to write an assembler in some language; is it in chapter 4 or 5? But if you had the basics you could do it.
It's definitely possible to do it after a few months coding experience.
The authors explicitly assume that the person has some programming experience in a high-level language, preferably an object-oriented one.
The last half of the book is programming intensive. In addition to writing the assembler in Chapter 6 (which is by far the easiest of the programming tasks), you have to write a VM translator in Chapters 7 and 8, you need to learn how to program in Jack in Chapter 9, then you write a compiler in Chapters 10 and 11, and finally you write the operating system libraries in Jack in Chapter 12.