[HN Gopher] Written by a 16 year old, a book on how computers work
       ___________________________________________________________________
        
       Written by a 16 year old, a book on how computers work
        
       Author : ILyesMk2
       Score  : 140 points
       Date   : 2024-08-04 14:48 UTC (8 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | ILyesMk2 wrote:
       | Greetings! This is coming from a.. as the title says, a 16 year
       | old who wrote a mini-book on how computers operate internally
       | focusing on RAM and CPU aspects, respectively. Because almost all
       | of us (if not all) use computers and similar devices on a daily
       | basis without an ACTUAL idea on how they work, even though you
       | might have a brief view of your system. You get my point.
       | 
       | Just the fact that I've been using something and not knowing the
       | way it really works, made me go insane. And that's exactly why i
       | stepped up and taught myself all of it, from start to finish,
       | While Apparently my coding knowledge didn't undermine me from
       | writing this in a way of "Im teaching you what i learned" rather
       | than "learning and writing" that took nearly 6 months to finish
       | completely!
       | 
       | If you're the background person.. fine, some acknowledgments you
       | might want: Something that made me crazier? web-dev, no
       | disrespect to you folks out there but i had to add some extra
       | time to the writing (which is exhausting in itself) just to code
       | a (yet) simple HTML/CSS/JS website for the book. But since then,
       | i fell in love with web-design and styling after using Figma to
       | draw all the illustrations seen throughout the segments. Also I
       | had the idea to initiate this project when i was 15! So i think
       | it's pretty safe to say that this article went through a draft-
       | phase of randomly collecting technical information.
       | 
       | And i'm finally happy to share it with the globe! to put it in
       | simple Hacker News fashion, any feedback and/or suggestion(s) is
       | greatly appreciated hoping this becomes a learning material.
       | Check it out and i guarantee you _will_ learn a thing or two:
       | https://github.com/hackclub/RAM-a-thon
        
         | otteromkram wrote:
         | >...when I was 15!
         | 
         | Eh, ideas like this should be pretty simple when you're
         | 1,307,674,368,000 years old ;-)
         | 
         | As others have said, very cool book. Thank you for sharing!
        
         | stonethrowaway wrote:
         | You've been bitten by a bug thats prevalent across space and
         | time. The poor souls who carry this awful affliction have
         | segregated themselves from the polite society to avoid a
         | catastrophic societal collapse. They don't know what they are
         | anymore. We call them embedded systems engineers. We don't know
         | how deep this rabbit hole goes. I wish you a safe journey.
        
       | k310 wrote:
       | What a commendable effort! I come from the days of KIM-1 and cpu
       | and memory boards where the function of every chip was
       | discernable.
       | 
       | At the time, I told my boss to learn these things while they were
       | still comprehensible.
       | 
       | Knowing "what goes on inside" is fun.
        
         | ILyesMk2 wrote:
         | ty! Those days and people like you are what made these things
         | last long.
         | 
         | > while they were still comprehensible
         | 
         | They, in fact still are. Only if you put the time and effort to
         | know what goes inside, It's not fun in terms of learning, but
         | interesting. Then it becomes fun after you really know what
         | goes on.
        
           | nebulous1 wrote:
           | They are, in fact, not still comprehensible. Don't get me
           | wrong, you can learn a lot, but it's no longer possible to
           | have an in depth understanding of everything going on in a
           | modern PC. At a certain abstraction level, sure, but the
           | subsystems are now too complicated for one person to have
           | detailed knowledge of it all.
           | 
           | Okay, I used the word "possible", but perhaps I should have
           | used the word feasible. If the information exists then it's
           | "possible" to learn it. Although given that the hardware
           | companies no longer actually tell us everything that's going
           | on in their hardware, you could make an argument for it not
           | being possible.
        
       | ernestrc wrote:
       | This is beyond brilliant! So well written. Love the gen Z tone.
       | I'm bookmarking it for my kids.
        
         | ILyesMk2 wrote:
         | Haha, that was the #1 priority while writing!
         | 
         | Let them kids know what happens under the hood of their
         | systems.
        
           | esafak wrote:
           | Have you tried explaining it to someone? They will provide
           | you feedback whether they understand, which will help you
           | improve your material and explanations.
        
       | itsmemattchung wrote:
       | Hats off! Wish I had the the grit and determination at 16 to
       | write something like this
       | 
       | > A 'special' CPU register that holds the memory address of the
       | next instruction
       | 
       | Though it's been years since (grad school) I dealt with any
       | assembly, for some reason I recall this being the EIP register?
       | These days, I rarely touch low level language and yet, I have
       | such a deep and profound love for them.
        
         | dooglius wrote:
         | RIP with 64-bit x86
        
           | beardedwizard wrote:
           | Better to start with 64bit registers these days, it's rare to
           | find a 32 bit system when you are just starting out learning
           | assembly.
           | 
           | The "Write great code" series of books is a must read for
           | those interested in low and "high" level concepts.
        
             | aleph_minus_one wrote:
             | > Better to start with 64bit registers these days, it's
             | rare to find a 32 bit system when you are just starting out
             | learning assembly.
             | 
             | x86-64 ("x64") versions of Windows can run x86-32 binaries.
        
         | ILyesMk2 wrote:
         | You're welcome. It wasn't as easy as it looks now, but i
         | managed to pull it off at this age.
         | 
         | > I have such a deep and profound love for them.
         | 
         | Oh god, i wish i included more about registers but it isn't the
         | main focus- And thank you for clarifying which REG it is, It's
         | added to the book!
        
         | spc476 wrote:
         | It depends upon the manufacturer. Motorola used PC (program
         | counter), Intel used IP (instruction pointer). I think it's
         | only the x86 that has multiple names, depending upon the size:
         | IP for 16 bits, EIP for 32 bits, RIP for 64 bits.
        
       | asdf6969 wrote:
       | It's a cool project. You'll have fun writing a compiler
        
         | ILyesMk2 wrote:
         | I can say the same! I considered doing so at some point during
         | my research, might _actually_ give it a go.
        
           | teaearlgraycold wrote:
           | I did a JIT one for Brainfuck. Pretty easy thanks to the
           | language's simplicity.
        
       | icholy wrote:
       | A byte is the smallest addressable unit, not a bit.
        
         | ILyesMk2 wrote:
         | Oopsie, good catch! I intended it as 'the smallest space X can
         | take'
         | 
         | i corrected it.
        
           | icholy wrote:
           | It's a pretty impressive write up.
        
       | metabagel wrote:
       | I like how you highlight key terms. I think that helps a lot with
       | readability.
       | 
       | I also like the irreverent tone.
        
         | ILyesMk2 wrote:
         | > 1
         | 
         | The key-terms highlight was a very late addition, the text
         | without it was a bit uncomfortable to read.
         | 
         | >2
         | 
         | I hope this catches the eyes of Gen Z/Alpha so they can
         | understand how the tablet they're using to watch skibidi videos
         | with works.
        
       | Mathnerd314 wrote:
       | > Unexpected tidbit: If you abbreviate the term 'interrupt
       | descriptor table'. Then reverse it - You get 'TDI', which stands
       | for Turbo Charged Diesel Injection, an engine developed by
       | Volkswagen fo- Okay. Ethically, believe it or not but computers
       | emit more CO2 than cars.
       | 
       | Does this really help people learn the material? I am doing a
       | presentation on networking in a week or two for a high school
       | group. Certainly I could include stuff like this, but to me it
       | seems more like a distraction. If I was writing this I would
       | rather include something like a sample table of how IDT's were
       | used by old DOS video games. (Disclaimer: I'm 30)
        
         | -mlv wrote:
         | If I were to include such a digression, I'd probably keep it as
         | a footnote.
         | 
         | But all in all, great work, OP!
        
           | ILyesMk2 wrote:
           | My pleasure, happy that you liked it
        
         | ILyesMk2 wrote:
         | > Disclaimer: I'm 30
         | 
         | This says it all- jokes aside, i couldn't resist writing a book
         | without including combustion engines.
        
           | Mathnerd314 wrote:
           | > I couldn't resist
           | 
           | The common refrain of a teenager...
           | https://www.npr.org/2016/04/15/474348291/why-teens-are-
           | impul... honestly at that age I never went out of my room,
           | and I still got in trouble. If you do develop some self-
           | control, you could look at
           | https://blog.benjojo.co.uk/post/dive-into-the-world-of-
           | dos-v... or https://www.sciencedirect.com/science/article/abs
           | /pii/B97801... (c.f. also
           | https://hackmd.io/@_01X9rimQmWH33Djf8QhoA/SkygF9WdP which is
           | based on that book)
        
             | ILyesMk2 wrote:
             | These are some of the useful link that i wish came up when
             | googling, and DOS is fairly interesting in itself knowing
             | it's behind everything from medical equipment to today's
             | _common refrain of teenagers_.
        
               | ViktorRay wrote:
               | I'm going to disagree with that other guy.
               | 
               | It's your book. If you want to have a lighthearted fun
               | digression about combustion engines then I think that's
               | fine.
               | 
               | When I read textbooks a fun little digression now and
               | then doesn't bother me at all. Usually it puts a smile on
               | my face.
               | 
               | I am also in my 30's like that guy and that's my 2 cents.
        
         | f1shy wrote:
         | My 2 cts: in Germany yes, in the rest of the world, absolutely
         | leave it out.
        
         | jprete wrote:
         | I think it's audience-dependent. For readers with less
         | background and less pre-existing motivation to learn the
         | material, I think it helps to cut down on the density a little.
         | It's kind of a cruddy experience to have to pause and digest
         | every sentence as you go and it makes it physically hard to
         | read a book that way since you have to constantly track where
         | you were.
         | 
         | If the audience has more background in the material and a
         | stronger pre-existing motivation to read it, then it is
         | probably a distraction, and they need a higher density of
         | information to keep flow.
        
           | ILyesMk2 wrote:
           | So true.
           | 
           | Especially with term highlighting, makes it 2x easier to read
           | and keep the information flow to process (and funnier?).
        
         | pvg wrote:
         | There's a huge difference between an adult talking to a bunch
         | of teens and a teen addressing a bunch of teens. I'm not saying
         | this would be the case with this particular thing but it's not
         | hard to imagine something delivered by a peer which could at
         | worst come across as dorky vs outright cringe when adopted by
         | someone else.
        
       | bitwize wrote:
       | This gives me very old-internet vibes. Like somebody mashed
       | together an introductory guide to how computers work with Real
       | Ultimate Power:
       | https://www.realultimatepower.net/ninja/ninja2.htm
       | 
       | I don't know how to feel about it as an effective instructional
       | guide, but it sure is creative. If it helped _its author_
       | understand computers through the act of collecting, organizing,
       | and presenting the information, I suppose it was worth it in the
       | end.
        
         | ILyesMk2 wrote:
         | It's nothing but WORTH the effort-
         | 
         | > If it helped its author understand computers..
         | 
         | Probably the main reason this book even existed in first place
         | and the perfect example of "The best way to understand
         | something is to explain it to someone else."
        
       | eminent101 wrote:
       | [flagged]
        
         | dang wrote:
         | I don't think we need to bring hammers down on 16-year-olds.
        
           | eminent101 wrote:
           | Fair enough! Thanks @dang!
        
           | trogdor wrote:
           | I am surprised to hear you describe "applying the rules even-
           | handedly" as "bringing the hammer down on a 16-year-old."
           | 
           | IMO, we should all be held to the same standard.
        
       | interludead wrote:
       | It's inspiring. Just wanted to write it.
        
       | markhahn wrote:
       | I'm curious whether this helps anyone - why and how.
       | 
       | I suppose there's some value in minimizing the "cultural
       | impedence mismatch" - using genz terms/style/jokes.
       | 
       | But the quality is not as good as "normal/longform" (let me coin
       | "oldsplaining") coverage on the subject. And really, shouldn't we
       | all aspire to do a good job, rather than just a meh job that's
       | comfortable?
       | 
       | This is the TT of explanations: not entirely accurate, relatively
       | shallow, aimed at being quickly scroll-through-able to obtain a
       | facile sense of knowing. For people who find Blinkist too slow-
       | old-fashioned. You can survive on Pizza Pops, but you really
       | shouldn't.
        
       | Cyph0n wrote:
       | Awesome work! As always, there is an opportunity to "extend" this
       | down/up a few layers :)
       | 
       | Also, are you Algerian by any chance? I am Tunisian - it's always
       | nice to see North Africans (and Africans in general) on HN!
        
       | butterisgood wrote:
       | I keep thinking someday I'll write something but my life has been
       | such a mess lately and my inspiration is about as low as it's
       | ever been.
        
         | delichon wrote:
         | Congratulations on writing these twenty seven words, great
         | start, keep it flowing.
        
       | wizerno wrote:
       | They have an equally impressive post [1] about CPUs!
       | 
       | [1] https://cpu.land
        
       ___________________________________________________________________
       (page generated 2024-08-04 23:01 UTC)