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
    Cover of Programming from the Ground Up

    Programming from the Ground Up

    Jonathan Bartlett · 2009

    Programming from the Ground Up uses Linux assembly language to teach new programmers the most important concepts in programming. It takes you a step at a time through these concepts: * How the processor views memory * How the processor operates * How programs interact with the operating system * How computers represent data internally * How to do low-level and high-level optimization Most beginning-level programming books attempt to shield the reader from how their computer really works. Programming from the Ground Up starts by teaching how the computer works under the hood, so that the programmer will have a sufficient background to be successful in all areas of programming. This book is being used by Princeton University in their COS 217 "Introduction to Programming Systems" course.

    ProgrammingSystems & OS
    Open LibraryAmazon
    Stats for nerds
    36recommend
    56mentions
    48people
    2009–2026years
    75% recommend25% neutral

    Mentions per year

    2009201120132015201720192021202320252026

    What Hacker News says

    1. rramadassNov 2025
      > I want to like it but my brain is too feeble for it.

      That's a self-defeating attitude which you don't want to reinforce :-(

      Assembly is not difficult but writing large-scale programs/systems in it is. But almost nobody does this nowadays; it is generally C & Assembly. So you need to know/understand just enough assembly to get along.

      Start with Jonathan Bartlett's Programming from the Ground Up for a nice introduction - https://news.ycombinator.com/item?id=11702025 Then look at Daniel Kusswurm's and Larry Pyeatt's books. Also https://news.ycombinator.com/item?id=45782206

      thread
    2. tiuFeb 2025
      You are probably thinking about Programming from the Ground Up by Jonathan Bartlett. There are many others in the same style though. He also has a newer book if I recall right.

      https://www.amazon.com/Programming-Ground-Up-Jonathan-Bartle...

      https://download-mirror.savannah.gnu.org/releases/pgubook/

      thread
    3. steppiJun 2023
      This is a really cool little example. I've been teaching myself assembly recently and have found Learn to Program with Assembly (2021) [0] by Johnathan Bartlett to be really valuable. I had initially looked through his freely available book Programming From the Ground Up (2003) [1], which covers x86 assembly, and ended up buying the updated book after finding the old one to be well written but out of date. I've been programming in C for a long time and it's been very cool to dig a little deeper and understand better what's really going on under the hood.

      [0] https://www.bartlettpublishing.com/site/books/learn-to-progr...

      [1] https://download-mirror.savannah.gnu.org/releases/pgubook/Pr...

      thread
    4. tempusrJul 2022
      It uses the gcc compiler so C, or C++ can be applicable.

      That being said, this book teaches network programming from the ground up so I would recommend understanding how to compile and output C code, then go through the book.

      If you run into keywords, or syntax that you are not familiar with, just google it, and then keep working through the examples.

      Mind you, the key takeaways from this book are not how to network practice IN C, but general practices. This knowledge can be applied to plenty of other languages such as Rust.

      thread
    5. olah_1Jun 2022
      I think Pico-8 recently added support for editing assembly operations.

      Also there is a book called Programming from the Ground Up that starts with assembly and moves up to C and beyond.

      thread
    6. banasharkJun 2022
      This is great!

      As a developer who didn't learn via a scholastic setting, taking the time to sit down and learn a bit of assembly was something I see as a critical point in my career.

      Starting with a high level scripting language, my brain had a hard time dealing with so much abstraction and taking what felt like a crazy amount of axioms as given.

      I took a few months to sit down and go through the excellent book Programming From the Ground Up. After doing some bit twiddling, writing a basic allocator, and a handful of the other exercises from the book, I felt way more prepared to handle abstractions higher up.

      Anything that I couldn't infer based on the underlying knowledge was something I could google, then quickly form the missing links between starting from the bottom.

      I feel like learning C could give the same benefits, though I do hear some struggle with pointers, and in assembly you get to look face first at what they actually are. Everyone has different levels of abstraction that they're comfortable with as well. Assembly was enough to fill the seeming void of knowledge that I felt was holding me back, but for others it may be higher depending on which aspects are puzzling (memory management, intermediate representations, etc).

      I also appreciate how much information modern VM authors publish about the inner workings of their platforms. It helps a lot in the same manner to reason about the systems (v8, JVM, CLR, etc).

      thread

    Related

    Cover of Learn to Program with Assembly
    2021–2026

    Learn to Program with Assembly

    Jonathan Bartlett
    4 recommend · 6
    Cover of The Practice of Programming
    2007–2026

    The Practice of Programming

    Brian W. Kernighan
    90 recommend · 184
    Cover of The Science of Programming
    2009–2024

    The Science of Programming

    David Gries
    9 recommend · 15
    Cover of Low-Level Programming
    2019–2026

    Low-Level Programming

    Igor Zhirkov
    3 recommend · 8
    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
    Cover of Advanced programming in the Unix environment
    2008–2025

    Advanced programming in the Unix environment

    W. Richard Stevens
    100 recommend · 153
    Cover of Software fundamentals
    2019–2025

    Software fundamentals

    David Lorge Parnas
    4 recommend · 10