Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    The Secret Life of ProgramsJon Steinhart

    The Secret Life of Programs

    Jon Steinhart · 2019

    ProgrammingComputer Science
    Open LibraryAmazon
    Stats for nerds
    5recommend
    8mentions
    5people
    2019–2024years
    100% recommend

    Mentions per year

    201920202021202220232024

    What Hacker News says

    1. divanApr 2024
      Great article! I've posted it in other comments before, but it's worth repeating:

      The best explanation I've seen is in the book "The Secret Life of Programs" by Jonathan E. Steinhart. I'll quote that paragraph verbatim:

      ---

      Computer programming is a two-step process:

      1. Understand the universe.

      2. Explain it to a three-year-old.

      What does this mean? Well, you can't write computer programs to do things that you yourself don't understand. For example, you can't write a spellchecker if you don't know the rules for spelling, and you can't write a good action video game if you don't know physics. So, the first step in becoming a good computer programmer is to learn as much as you can about everything else. Solutions to problems often come from unexpected places, so don't ignore something just because it doesn't seem immediately relevant.

      The second step of the process requires explaining what you know to a machine that has a very rigid view of the world, like young children do. This rigidity in children is really obvious when they're about three years old. Let's say you're trying to get out the door. You ask your child, "Where are your shoes?" The response: "There." She did answer your question. The problem is, she doesn't understand that you're really asking her to put her shoes on so that you both can go somewhere. Flexibility and the ability to make inferences are skills that children learn as they grow up. But computers are like Peter Pan: they never grow up.

      thread
    2. divanApr 2023
      The best explanation I've seen is in the book "The Secret Life of Programs" by Jonathan E. Steinhart. I'll quote that paragraph verbatim:

      ---

      Computer programming is a two-step process:

      1. Understand the universe.

      2. Explain it to a three-year-old.

      What does this mean? Well, you can't write computer programs to do things that you yourself don't understand. For example, you can't write a spellchecker if you don't know the rules for spelling, and you can't write a good action video game if you don't know physics. So, the first step in becoming a good computer programmer is to learn as much as you can about everything else. Solutions to problems often come from unexpected places, so don't ignore something just because it doesn't seem immediately relevant.

      The second step of the process requires explaining what you know to a machine that has a very rigid view of the world, like young children do. This rigidity in children is really obvious when they're about three years old. Let's say you're trying to get out the door. You ask your child, "Where are your shoes?" The response: "There." She did answer your question. The problem is, she doesn't understand that you're really asking her to put her shoes on so that you both can go somewhere. Flexibility and the ability to make inferences are skills that children learn as they grow up. But computers are like Peter Pan: they never grow up.

      thread
    3. mtremsalAug 2022
      I’ve really enjoyed The Secret Life of Programs by Jonathan E. Steinhart. From analog signals, to gates, to cpus and memory, and so on all the way up. Very cool concept, well executed.
      thread
    4. Shared404Apr 2022
      > I'm afraid that if I show him how to download (or, better yet, build) emacs, how to build SBCL, install SLIME, etc... and hand the kid copies of SICL and PCL someone will call child protective services on me.

      Fwiw, I'm only a couple years older than #2, and I would kill to have someone in meatspace who would help me with all of the above.

      As far as other options, I would say Pico-8, tic80, UXN, Minetest/Minecraft, Godot, or Unity may all be decent options to start with, depending on how in depth you want to go.

      Oh, also I really really really really like the book The Secret life of Programs. In my opinion, it really is worth learning how the layer below where you're working works.

      thread
    5. Shared404Apr 2022
      I highly recommend "The Secret Life of Programs" for this purpose.

      It starts at the hardware level and works up - it definitely massively improved my understanding of everything that goes on in a machine.

      thread
    6. Shared404Dec 2020
      You may like "The Secret Life of Programs" by Jonathan Steinhart.

      It starts at boolean logic and works up to a web browser and then some other stuff.

      Edit: It's a high level covering of each topic of course, it does have to fit in a book. It's ~444 pages.

      thread

    Related

    Cover of The art of computer programming
    2007–2026

    The art of computer programming

    Donald Knuth
    336 recommend · 1,799
    Cover of The Elements of Computing Systems
    2008–2026

    The Elements of Computing Systems

    Noam Nisan
    204 recommend · 344
    Cover of The Practice of Programming
    2007–2026

    The Practice of Programming

    Brian W. Kernighan
    90 recommend · 184
    Cover of Programming from the Ground Up
    2009–2026

    Programming from the Ground Up

    Jonathan Bartlett
    36 recommend · 56
    Cover of The Pragmatic Programmer
    2007–2026

    The Pragmatic Programmer

    Andy Hunt
    353 recommend · 700
    Cover of Programming Pearls
    2007–2026

    Programming Pearls

    Jon Bentley
    158 recommend · 315
    The psychology of computer programmingGerald M. Weinberg
    2009–2026

    The psychology of computer programming

    Gerald M. Weinberg
    44 recommend · 122
    Cover of Clean Code
    2008–2026

    Clean Code

    Robert C. Martin
    298 recommend · 951