Programming Bitcoin — Jimmy Song by Jimmy Song — books
Jimmy Song

Programming Bitcoin — Jimmy Song

Build Bitcoin from scratch in Python — elliptic curves, transactions, scripts, blocks.

Overview

Programming Bitcoin by Jimmy Song teaches you Bitcoin by building it from scratch in Python. Over the course of the book you implement the cryptographic and protocol machinery yourself — finite field arithmetic, elliptic-curve cryptography, key and signature handling, transaction parsing and serialization, Bitcoin Script, blocks, simplified payment verification, and SegWit — with exercises at each step so you write working code, not just read about it.

The strength is genuine understanding: by the end you don't just know that Bitcoin uses elliptic curves and scripts — you've coded them, which cements the concepts far better than prose. It's well-structured and paced for self-study. The honest caveats: it demands comfort with programming and a tolerance for math (the early elliptic-curve chapters are the steepest climb), it's Python-only, and it predates some newer features — notably it stops before Taproot and doesn't cover Lightning, so it's a foundations book rather than a current-everything reference.

Buy it if you're a programmer who learns by implementing and wants to truly understand Bitcoin's internals. If you want a conceptual technical overview without writing code, Mastering Bitcoin or Grokking Bitcoin fit better.

Key features

  • Format: paperback
  • Language: Python — hands-on coding throughout
  • Level: for programmers; math comfort helps
  • Topics: elliptic curves, transactions, Script, blocks, SPV, SegWit
  • Exercises build a working Bitcoin library step by step
  • Learn-by-doing structure ideal for self-study
  • Predates Taproot and does not cover Lightning

Specs

  • format Paperback
  • language Python

Who it’s for

Programmers who learn by building the protocol themselves.

Programming Bitcoin — Jimmy Song: frequently asked questions

Do I need to know how to code?

Yes. It's a build-it-yourself book in Python and assumes programming ability plus a tolerance for the early elliptic-curve math.

Does it cover Taproot and Lightning?

No. It stops before Taproot and doesn't cover Lightning — it's a foundations book, so supplement with current sources for newer features.

How is it different from Mastering Bitcoin?

Mastering Bitcoin explains and references the protocol; Programming Bitcoin has you implement it yourself in Python for deeper, hands-on understanding.

Is the math hard?

The elliptic-curve chapters are the steepest part, but the book walks through them; persistence matters more than advanced math background.