Hacker News new | ask | show | jobs
by WalterBright 1470 days ago
I suppose I came to understanding programming in an unusual way. I first knew a bit of BASIC and could write simple programs in it, how the computer actually worked was a baffling mystery.

My first semester in college, I took a class in semiconductor physics. That started with the PN junction, to diodes, to transistors, to gates, to flip-flops, to clocking, to registers, adders, etc.

Later on, this made learning microprocessors straightforward, then assembler, then C, etc.

I suppose it would have been faster to go straight to programming, but I am happier knowing how it works all the way down.

2 comments

I learned it the hard way as well. I think my book was "computer architecture" by Morris & Mano you start from PN to logic gates to truth tables to carnough diagrams to writing your own adder to D transistors to memory to bus to clock to cpu to write your own assembly to perform machine instructions.
I also learned electronics first, but in a much more amateurish way. As a kid I loved electronics magazines and building projects from them. My dream was a Z-80 kit, but even much simpler kits were too expensive for me. I ended up making a make-believe computer with a few logic gates, decade counters and flip flops. That was my "computer", which taught me digital logic. Not a lot of power, but for a 10-11 old it could compute the stuff I wanted, and I eventually learned digital logic.

I never got the Z-80 kit but I eventually got a computer with DOS, which had QBasic, where I learned to code by modding GORILLA.BAS and NIBBLES.BAS. What a weird language, there was AND and OR, but not NOR, XOR, NAND and others...