Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
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
    R

    Ruslan Spivak

    ruslanspivak.com · Personal blog · on HN since 2007

    Ruslan Spivak writes hands-on tutorial series on building an interpreter and a web server, using Python.

    Visit blogRSSHN submissions
    Languages & CompilersProgramming
    What HN says

    Commenters repeatedly recommend the 'Let's Build A Simple Interpreter' series as an excellent, approachable way to learn language implementation, plus the web server series.

    Stats for nerds
    47HN people shared it
    121linked in comments
    1.9Kstory points
    Jan 2026last shared
    2013people per year2026

    Top posts on HN

    1. 1
      Let's Build a Simple Interpreter, Part 1 (2015)
      15 people · 344 points · first shared 2015 · 53 comments on HN
    2. 2
      Let’s Build a Web Server. Part 1
      10 people · 294 points · first shared 2015 · 35 comments on HN
    3. 3
      Let’s Build a Web Server, Part 3
      3 people · 203 points · first shared 2015 · 10 comments on HN
    4. 4
      Let's Build a Simple Interpreter. Part 14: Nested Scopes (2017)
      1 person · 145 points · first shared 2017 · 7 comments on HN
    5. 5
      Let’s Build a Web Server. Part 2
      4 people · 113 points · first shared 2015 · 8 comments on HN
    6. 6
      Let’s Build a Simple Interpreter, Part 18: Executing Procedure Calls
      3 people · 93 points · first shared 2020 · 5 comments on HN
    7. 7
      Let's Build a Simple Interpreter, Part 2
      3 people · 92 points · first shared 2015 · 7 comments on HN
    8. 8
      Let’s Build a Simple Interpreter, Part 7
      1 person · 90 points · first shared 2015 · 1 comments on HN
    9. 9
      EOF is not a character
      3 people · 83 points · first shared 2020 · 132 comments on HN
    10. 10
      Let’s Build a Simple Interpreter. Part 6
      3 people · 75 points · first shared 2015 · 3 comments on HN

    What HN people wrote when they linked it

    • hoodoofJul 2015

      Your path to enlightenment begins by learning at a detailed level what a web server does, and what a web browser says to that server.

      Do these tutorials:

      http://ruslanspivak.com/lsbaws-part1/

      http://ruslanspivak.com/lsbaws-part2/

      http://ruslanspivak.com/lsbaws-part3/

      And when you are doing web development, use this command to understand exactly what is being passed between client and server (replace port number with the port number that your server is running on).

      sudo ngrep -W byline -d lo port 8001

      You have progressed to the next rank in your journey when you understand in detail what a request (typically from a browser) looks like and how it is structured, and what a response (from a web server) looks like and how it is structured.

    • ignoramousJan 2026

      > This is not what this article does.

      Discounting books, many other well written articles on JIT have been shared on HN over the years [0][1][2]; the one I particularly liked as it introduces the trinity in a concise way: Compiler, Interpreter, JIT https://nickdesaulniers.github.io/blog/2015/05/25/interpreter-compiler-jit / https://archive.vn/HaFlQ (2015).

      [0] How to JIT - an introduction, https://eli.thegreenplace.net/2013/11/05/how-to-jit-an-introduction (2013).

      [1] Bytecode compilers and interpreters, https://bernsteinbear.com/blog/bytecode-interpreters/ (2019).

      [2] Let's build a Simple Interp, https://ruslanspivak.com/lsbasi-part1/ (2015).

    • pjmlpNov 2021

      Trying to go through books about algorithms and data structures that use Python, might be a better approach.

      https://jovian.ai/learn/data-structures-and-algorithms-in-python

      By the way, are you aware of the SICP Python version?

      https://wizardforcel.gitbooks.io/sicp-in-python/content/

      When feeling more confident you can even try a go at something like doing a toy compiler.

      https://ruslanspivak.com/lsbasi-part1/

      Or if you prefer a book instead,

      https://www.amazon.com/Writing-Interpreters-Compilers-Raspberry-Python/dp/1977509207

    • dancecodesSep 2013

      If you need some help for any info about initial Erlang ask me.

      For start:

      http://www.maht0x0r.net/library/computing/erlang.pdf

      http://www.erlang.org/erldoc

      http://rosettacode.org/wiki/Category:Erlang

      http://ruslanspivak.com/2007/09/09/erlang-for-python-programmers-part-i/

      and you need emacs24+ for good ide and programming with erlang or just use interactive shell erl for initial start.

    • kvakkeflyJun 2021

      I know the author quite well. It all started with him following "Let’s Build A Simple Interpreter. Part 1." from Ruslan's blog (https://ruslanspivak.com/lsbasi-part1/) where you are creating an interpreter for a pascal like language.

      He then decided to spit out some c64 assembler, and it has been a pretty cool journey after that :D

    • rspivakMay 2016

      Sorry for the shameless plug, but about a year ago I started a series of articles on how to write a simple interpreter called "Let's Build A Simple Interpreter." Take a look, it might be something that you may like:
      Part 1: https://ruslanspivak.com/lsbasi-part1/
      ...
      Part 9: https://ruslanspivak.com/lsbasi-part9/

    Related

    Pat Shaughnessypatshaughnessy.net95 people

    Learning to Read X86 Assembly Language

    Pat Shaughnessy
    Personal · last shared 2025
    John Wiegleynewartisans.com49 people

    Monads in pictures

    John Wiegley
    Personal · last shared 2026
    Eli Benderskyeli.thegreenplace.net428 people

    Common Pitfalls in Go Benchmarking

    Eli Bendersky
    Personal · last shared 2026
    Niko Matsakissmallcultfollowing.com221 people

    Towards a Rust Foundation

    Niko Matsakis
    Personal · last shared 2026
    PyPy Blogmorepypy.blogspot.com242 people

    Let's Remove the Global Interpreter Lock

    PyPy Blog
    Company · last shared 2024
    Fredrik Lundheffbot.org64 people

    Simple Top-Down Parsing in Python

    Fredrik Lundh
    Personal · last shared 2023
    Andrew Godwinaeracode.org68 people

    Hello, This Is London Rising: 3D Printing Maps from LIDAR Data

    Andrew Godwin
    Personal · last shared 2025
    Mikhail Shilkovmikhail.io23 people

    Serverless: Cold Start War

    Mikhail Shilkov
    Personal · last shared 2025