BTC#: Start at the Very Beginning


Series: BTC# – Learning to Program Bitcoin in C#

Next: Modular Arithmetic »

When you read you begin with A-B-C
When you sing you being with DO-RE-MI

When you learn to program Bitcoin, according to Jimmy Song in his new book Programming Bitcoin, you begin with Finite Fields and Elliptic Curve Cryptography.

Let’s get ourselves singing from the same Song sheet and start with the maths that underlies the public key cryptography used to build Bitcoin transactions.

As Jimmy says in the first paragraph of Chapter 1:

One of the most difficult things about learning how to program Bitcoin is knowing where to start.  There are so many components that depend on each other that learning one thing may lead you to have to learn another, which in turn may lead you to learn something else before you can understand the original thing.


Going down the rabbit-hole of dependencies is certainly something I experienced when first looking at how Bitcoin works. And although he describes the maths-first approach as “eating vegetables” I kinda like knowing how it all works behind the scenes so, to me, these are some tasty, tasty vegetables.

In this BTC# series of posts I’m going to work my way through Programming Bitcoin. I’ve been programming professionally in C# since 2001. It’s my native tongue and I’ll be translating the book’s Python into C# as I go.

Get the book: O’Reilly / Amazon / GitHub.

Next: Modular Arithmetic »