
Ask HN: What computer science concepts should I learn to work with Blockchain? - leni1
Hi HN!<p>I am looking to get comfortable using Blockchain technology over the coming year. What computer science concepts should I be comfortable with&#x2F;seek to master?<p>A bit about me: I am a self taught developer with a background that is general IT. I mostly use HTML, CSS, Python and of late I have been dipping my toes in JavaScript as well as Node.js.
======
buzzier
Mastering Bitcoin
[https://github.com/bitcoinbook/bitcoinbook](https://github.com/bitcoinbook/bitcoinbook)

An awesome curated list of Cryptoeconomic research and learning materials
[https://github.com/jpantunes/awesome-
cryptoeconomics](https://github.com/jpantunes/awesome-cryptoeconomics)

A collection about awesome blockchains
[https://github.com/openblockchains/awesome-
blockchains](https://github.com/openblockchains/awesome-blockchains)

Building Blockchain in Go [https://jeiwan.net/posts/building-blockchain-in-go-
part-1/](https://jeiwan.net/posts/building-blockchain-in-go-part-1/)

~~~
leni1
Thanks a lot for the links! Out of curiosity, why use Go instead of say
Python?

------
decentralised
Some level of cryptography (hash functions and signatures), some distributed
computing (consensus algorithms, P2P networking), some tech/economics (game
theory, mechanism design).

If you start with Ethereum, the js ecosystem around it is by far the most
advanced in the blockchain space and you can hit the ground running pretty
fast building dApps while you learn more about the protocols that make them
interesting.

~~~
leni1
Thank you!

------
knopkop_
Some recommended reading:

[https://github.com/bitcoinbook/bitcoinbook](https://github.com/bitcoinbook/bitcoinbook)

[https://github.com/ethereumbook/ethereumbook](https://github.com/ethereumbook/ethereumbook)

Jimmy Song's "Programming Bitcoin"

~~~
tharne
+1 for the Jimmy Song book. The guy does an amazing job of laying out
difficult concepts in a very accessible way without too much dumbing-down.

------
tastroder
Merkle trees and hash functions mostly. Any advanced data structure course
curriculum will likely do. Or go the out of the box route and toy around with
AWS hyperledger and the like.

Pick up a marketing course while you're at it, the number of people using
Blockchain technology for technically sound reasons is pretty small.

~~~
leni1
Hehehe... Thanks ;)

------
drallison
Read Maurice Herlihy's review article:
[https://cacm.acm.org/magazines/2019/2/234355-blockchains-
fro...](https://cacm.acm.org/magazines/2019/2/234355-blockchains-from-a-
distributed-computing-perspective/fulltext)

You will find that doing a cost-benefit analysis of Blockchains and their use
in a variety of applications to be a useful exercise.

------
api
Nobody mentioned game theory, so I will mention game theory. Having a basic
intuition for it helps in understanding the fine points of consensus etc.

------
stephenr
I’d suggest a healthy grasp of scepticism and an understanding of what
buzzworditis is.

Seriously.

~~~
leni1
I think I have the former and the later is why I want to understand the
technology. I am not really after having a buzzword on my resume but more
understanding of the technology and what problems it can solve (or the ability
to identify problems that I can use it for)

~~~
cvaidya1986
It would be funny if you come up with a great blockchain startup by actually
understanding the technology and implementing it at scale on a real problem
and make more money than the trading hype cycle.

