<p>If you have already started reading a book on bitcoin, I'm going to assume you have at least a layman understand of how it works, and don't need to be linked any complete introductions.</p>

<p>The traditional starting point for learning the technical aspects behind bitcoin is, of course, <a href="https://bitcoin.org/bitcoin.pdf" rel="noreferrer">Satoshi Nakamoto's Bitcoin Whitepaper</a></p>

<p>Other good reads include the <a href="https://bitcoin.org/en/developer-guide#consensus-rule-changes" rel="noreferrer">Bitcoin Developer Guide</a> and the <a href="https://en.bitcoin.it/wiki/Help:Introduction" rel="noreferrer">Bitcoin Wiki</a>.</p>

<p>The bitcointalk forum's have a lot of information on them too, <a href="https://bitcointalk.org/index.php?topic=7269.0" rel="noreferrer">New to Bitcoin? Start here!</a></p>

<p>And the book Mastering Bitcoin by Andreas Antonopoulos, <a href="https://github.com/bitcoinbook/bitcoinbook" rel="noreferrer">available freely on GitHub</a>, is another good source.</p>

<p>If you are more of a visual/auditory learner, try a video like <a href="https://www.youtube.com/watch?v=Lx9zgZCMqXE" rel="noreferrer">How Bitcoin Works Under The Hood</a>.</p>

<p>These resources all depend on your technical background, because you mentioned that your experience with cryptography was limited, and this is key to fully understanding how bitcoin works. So if you find that you struggle with understanding concepts such as hashing, signing, encoding, and asymmetric keys, then I would suggest first delving into some introductory material for cryptography such as <a href="https://www.coursera.org/learn/crypto" rel="noreferrer">Dan Boneh's free course</a>, a book on the subject, or even the <a href="https://crypto.stackexchange.com/">Crypto StackExchange site</a>. </p>

<p>After you are familiar with bitcoin itself, you will probably want to expand your learning into other blockchain technologies, for example Ethereum and its smart contracts, but understanding Bitcoin is a great starting point.</p>

CC BY-SA 3.0
2017-06-30T08:10:40.383Z
2017-06-30T08:10:40.383Z
meshcollider
<p>I would suggest the following:   </p>

<ul>
<li>satoshi bitcoin white paper </li>
<li>the book "<a href="http://bitcoinbook.cs.princeton.edu" rel="nofollow noreferrer">Bitcoin and Cryptocurrency Technologies</a>" </li>
<li>the course on coursera.org that goes with the above book</li>
<li>university of Nicosia MOOC, which is the first class in a masters program in Digital Currencies</li>
</ul>

CC BY-SA 3.0
2017-06-27T23:16:47.133Z
2017-06-27T23:16:47.133Z
Albert S
<p>Studying Bitcoin and it's core protocols is the best place to start if you want to take the 'blockchain train'. Almost all cryptocurrencies today are bitcoins code forked and changed for their respective implementations However, for the concepts required in understanding bitcoin, I suggest the following pre-requisites.</p>

<h2>Mathematics</h2>

<ul>
<li>Probability: Basic probability theory for understanding the calculations about the probabilities of deriving private keys using brute force. Although you might not be able to fully understand whats given in the white paper, for which you might need some more knowledge.</li>
<li>Permutations and Combinations: Basic knowledge to calculate the numbers involved in finding the probabilities.</li>
<li>Byzantine General's Problem: Understand the problem and the possible solutions</li>
</ul>

<h2>Cryptography</h2>

<ul>
<li>Cryptographic hash functions (SHA-2, RIPEMD160): In depth knowledge would obviously help, but just a gist of what they do would suffice</li>
<li>Digital Signatures: After getting a grasp over what they are, you should take an in depth look into ECDSA's which would help you in appreciating the mathematics and the sort of 'invincibiltiy' of the underlying algorithm and further strengthening of the same in the bitcoin implementation</li>
</ul>

<h2>Data-Structures</h2>

<ul>
<li>Linked Lists: Basic knowledge of linked lists</li>
<li>Trees: Basic knowledge of trees, different kinds of trees. Concentrate more on binary trees and later on what merkle trees are</li>
<li>Stacks: How stacks work and some basic implementations of the same</li>
</ul>

<h2>Networking</h2>

<ul>
<li>Basic knowledge of networking like IP, broadcasting/multicasting, P2P networks (torrents) would suffice</li>
</ul>

<p>After getting a good grasp on the above topics you can continue with the book you have mentioned, or if you want videos, then there is a playlist on youtube by Princeton University on Bitcoin and cryptocurrencies, the first three lectures would be enough for you to start programming and getting your hands dirty with the Bitcoin Core software</p>

CC BY-SA 3.0
2017-06-28T08:37:18.567Z
2017-06-28T08:37:18.567Z
Shabahat M. Ayubi
<p>I am a web developer. I've been reading a book about BitCoin, decentralization, and the blockchain, which has blown my mind and piqued my curiosity. I am now thinking about taking the CryptoCurrency train.</p>

<p>My goal is to have a full understanding of the Blockchain technology in the future, and all the technologies linked to it; to be able to understand problems and find solutions, and contribute to open source software.</p>

<p>I am aware that this field includes cryptography, security, programming, and networking, although my experience is very limited in these areas.</p>

<p>I'd appreciate it if someone could point me to the most central and specific things I need to learn first in order to move faster in my learning of these topics.</p>

CC BY-SA 3.0
2017-06-27T17:22:46.783Z
You started with a bitcoin book - good! Maybe A. Antonopolus "Mastering Bitcoin" - if not, he describes very well the concept, and it is available online in many languages. Then you connect to UDEMY, do some online courses on Linnux (yes!), networks (IPv4 and IPv6), crypto, and don't forget information security or "ethical hacking". (and learn, that you have to go away from Windows). Programming: well, everyone has an opinion, probably Java/Python or newer languages like Go or Ruby are prominent. What you request has a real tough learning curve - but you probably knew that :-)
pebwindkraft
CC BY-SA 3.0
2017-06-27T23:13:02.310Z
It really depends what you want to do with your knowledge. 
Checkout the book "Bitcoin and Cryptocurrency Technologies" http://bitcoinbook.cs.princeton.edu/ there is a free copy available as well. Then checkout the free course on coursera. University of Nicosia offers a master's in digital currencies with the first MOOC being free. Also read satoshis white paper.
Albert S
<introducing-bitcoin><bitcoin-literature>
What technologies one should learn to become mature in cryptocurrency
elhoucine
# What technologies one should learn to become mature in cryptocurrency

(Asked by: username_0 on 2017-06-23)

I am a web developer. I've been reading a book about BitCoin, decentralization, and the blockchain, which has blown my mind and piqued my curiosity. I am now thinking about taking the CryptoCurrency train.

My goal is to have a full understanding of the Blockchain technology in the future, and all the technologies linked to it; to be able to understand problems and find solutions, and contribute to open source software.

I am aware that this field includes cryptography, security, programming, and networking, although my experience is very limited in these areas.

I'd appreciate it if someone could point me to the most central and specific things I need to learn first in order to move faster in my learning of these topics.

**Tags:** introducing-bitcoin, bitcoin-literature

> **Comments:**
> **username_1**: You started with a bitcoin book - good! Maybe A. Antonopolus "Mastering Bitcoin" - if not, he describes very well the concept, and it is available online in many languages. Then you connect to UDEMY, do some online courses on Linnux (yes!), networks (IPv4 and IPv6), crypto, and don't forget information security or "ethical hacking". (and learn, that you have to go away from Windows). Programming: well, everyone has an opinion, probably Java/Python or newer languages like Go or Ruby are prominent. What you request has a real tough learning curve - but you probably knew that :-)  
> **username_2**: It really depends what you want to do with your knowledge.  Checkout the book "Bitcoin and Cryptocurrency Technologies" http://bitcoinbook.cs.princeton.edu/ there is a free copy available as well. Then checkout the free course on coursera. University of Nicosia offers a master's in digital currencies with the first MOOC being free. Also read satoshis white paper.  

---

## 3 answers

### Answer by username_4 on 2017-06-28. Score: 11 | Accepted answer

Studying Bitcoin and it's core protocols is the best place to start if you want to take the 'blockchain train'. Almost all cryptocurrencies today are bitcoins code forked and changed for their respective implementations However, for the concepts required in understanding bitcoin, I suggest the following pre-requisites.

## Mathematics

* Probability: Basic probability theory for understanding the calculations about the probabilities of deriving private keys using brute force. Although you might not be able to fully understand whats given in the white paper, for which you might need some more knowledge.
* Permutations and Combinations: Basic knowledge to calculate the numbers involved in finding the probabilities.
* Byzantine General's Problem: Understand the problem and the possible solutions

## Cryptography

* Cryptographic hash functions (SHA-2, RIPEMD160): In depth knowledge would obviously help, but just a gist of what they do would suffice
* Digital Signatures: After getting a grasp over what they are, you should take an in depth look into ECDSA's which would help you in appreciating the mathematics and the sort of 'invincibiltiy' of the underlying algorithm and further strengthening of the same in the bitcoin implementation

## Data-Structures

* Linked Lists: Basic knowledge of linked lists
* Trees: Basic knowledge of trees, different kinds of trees. Concentrate more on binary trees and later on what merkle trees are
* Stacks: How stacks work and some basic implementations of the same

## Networking

* Basic knowledge of networking like IP, broadcasting/multicasting, P2P networks (torrents) would suffice

After getting a good grasp on the above topics you can continue with the book you have mentioned, or if you want videos, then there is a playlist on youtube by Princeton University on Bitcoin and cryptocurrencies, the first three lectures would be enough for you to start programming and getting your hands dirty with the Bitcoin Core software


---

### Answer by username_3 on 2017-06-30. Score: 4

If you have already started reading a book on bitcoin, I'm going to assume you have at least a layman understand of how it works, and don't need to be linked any complete introductions.

The traditional starting point for learning the technical aspects behind bitcoin is, of course, [Satoshi Nakamoto's Bitcoin Whitepaper](https://bitcoin.org/bitcoin.pdf)

Other good reads include the [Bitcoin Developer Guide](https://bitcoin.org/en/developer-guide#consensus-rule-changes) and the [Bitcoin Wiki](https://en.bitcoin.it/wiki/Help:Introduction).

The bitcointalk forum's have a lot of information on them too, [New to Bitcoin? Start here!](https://bitcointalk.org/index.php?topic=7269.0)

And the book Mastering Bitcoin by Andreas Antonopoulos, [available freely on GitHub](https://github.com/bitcoinbook/bitcoinbook), is another good source.

If you are more of a visual/auditory learner, try a video like [How Bitcoin Works Under The Hood](https://www.youtube.com/watch?v=Lx9zgZCMqXE).

These resources all depend on your technical background, because you mentioned that your experience with cryptography was limited, and this is key to fully understanding how bitcoin works. So if you find that you struggle with understanding concepts such as hashing, signing, encoding, and asymmetric keys, then I would suggest first delving into some introductory material for cryptography such as [Dan Boneh's free course](https://www.coursera.org/learn/crypto), a book on the subject, or even the [Crypto StackExchange site](https://crypto.stackexchange.com/).

After you are familiar with bitcoin itself, you will probably want to expand your learning into other blockchain technologies, for example Ethereum and its smart contracts, but understanding Bitcoin is a great starting point.


---

### Answer by username_2 on 2017-06-27. Score: 3

I would suggest the following:

* satoshi bitcoin white paper
* the book "[Bitcoin and Cryptocurrency Technologies](http://bitcoinbook.cs.princeton.edu)"
* the course on coursera.org that goes with the above book
* university of Nicosia MOOC, which is the first class in a masters program in Digital Currencies


---

