As a teen, I taught myself assembler circa 1982 on my Radio Shack Color Computer (with 4k of RAM!). It was indeed painfully challenging, especially due to the complete lack of information available and the fact I didn't know anyone else who knew anything about it. The only reason I persisted was that the BASIC interpreter in ROM was too slow to write any really cool games. The other thing that kept me going was that assembler was arcane hidden knowledge which bestowed power on those who could figure it out. I didn't want to "learn" assembler, I just wanted to use it and that required knowing how it worked.
I succeeded only because my teenage self somehow pulled off a phone call to Motorola sales where I claimed to be an engineer "evaluating" the 6809 CPU and they sent me the manual and a quick reference card. Due to my complete lack of background in computers or electronics, the manual was pretty cryptic but that quick reference card was my constant companion that entire Summer as I used the BASIC PEEK and POKE commands to write programs. I ordered a "Monitor Program" from a small ad in the back of a garage-published computer magazine. When that cassette tape arrived it allowed me to actually read and write assembler mnemonics into memory, set breakpoints and look at registers. The next breakthrough was realizing I could use it to examine the ROM assembler code. When I finally convinced my parents to buy a dot matrix printer, I printed the entire 8k of the BASIC on fan-fold paper and went through it, commenting by hand.
To your point, the fact that it was so hard combined with it being arcane knowledge was perhaps what kept me going. That and the reality it was the only way forward to get the computer to do more cool stuff.
The feeling of mysticism and challenge is dispersed when put into an easy to grasp format. This enables more people to learn enough to reach the skill floor, but it doesn't teach those with an able mind to reach for the ceiling. I see this nowadays a lot, most people around me who didn't grow up with this culture are much worse debuggers. That's not because of their technical skills, but a lack of tenacity. Having answers be far far away means that when you start finding them regardless, you gain an inner mindset of "no matter how hard this is, eventually it is understandable". Seeing what other people could reverse engineer with extremely poor resources inspires one to try harder when there's no solution in sight. It's also taught me that I am _nowhere near as smart_ as I thought I was. To a hilarious degree. Somehow this is not a paradox.
lol that is such a nice story
Which ones?
There's quite a big difficulty spike so to speak in the later section as you go towards the code examples. The beginning explains relatively simple concepts like binary, then basically jmps into an instruction table which won't make sense to anyone who hasn't done some form of programming (they would know binary then, right?).
The tone is also a bit off putting, although I might be out of touch with today's teenagers. When I was learning asm as a teen I learned it from grungy 1337 h4x0r sites (well, they didn't actually use 1337speak except ironically, much like today) which were at least a great deal.. meaner? less nice?.. than the tone of the article.
From what I wrote I gather my main criticism is that it doesn't know its audience. However, it seemingly _was_ produced by an actual group of teenager as per the author's HN comment:
> Hack Club is a group of teenagers from all over the world, and we decided to learn assembly together from scratch and see what happened.
Although it probably means a trained adult was lightly helped by some teenagers in producing it.
I hope this didn't sound too harsh, the effort is very good and so are the illustrations. It needs some fleshing and perhaps a little less "yay!!". Learning assembly is not actually that fun, it's rather painful. It's what you do with it that is fun.