What technologies one should learn to become mature in cryptocurrency 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.
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