How to Get Started in Bitcoin Development

in #bitcoin8 years ago (edited)

Say you are a software engineer that's interested in bitcoin. You've read a ton on Hacker News, Slashdot, Tech Crunch. You may have read through reddit bitcoin forums, or bitcointalk.com and bitcoin.com. Perhaps you've even bought some bitcoins and follow the price religiously on bitcoin wisdom. You're starting to get it. You understand vaguely how bitcoin works and would like to see whether you can make something. So how do you get started? I'm hoping to show you exactly how to get started and to point you to resources you can use to understand what's going on.

Step 1: Read the white paper. Thankfully, the Satoshi Nakamoto Institute has published the entire thing in HTML.

You don't need to understand everything, but note all the things you don't quite understand. It's only about 10 pages, so you should be able to get through it in an hour or so.

Step 2: Look through the source of a bitcoin wallet written in your language.

If you're a Python programmer, you can look at Electrum. If you're a Java programmer, you can look at bitcoinj. If you're a Go programmer, you can look at btcd. If you're a C programmer, you can look at the reference client. If you're a Javascript programmer, take a look at BitcoinJS. There are literally hundreds of bitcoin projects and you can probably find one in the language you know best. Look through whatever documentation might exist.

Step 3: (optional) Contribute to an open source project.

If you don't have a github account yet, create one. There are many guides to learn how to use github. Most of these projects have an active irc channel where you can talk to the developers directly. Ask if there's something you can do to get your hands wet and do it.

Step 4: Subscribe to the development email list and irc channels.

For the main bitcoin client, they are the bitcoin development email list and the #bitcoin-dev channel respectively. There are literally hundreds of irc channels devoted to bitcoin which you can look up here.

Now you don't have an excuse. Get started!

Sort:  

Very cool.
I'm a java developer so I'll take a look at bitcoinj.
Thanks for the info!

Having a github is very important for a developer. It's like having a driver license.