5 ms·
Ask HN: What computer science concepts should I learn to work with Blockchain?
Hi HN!
I am looking to get comfortable using Blockchain technology over the coming year. What computer science concepts should I be comfortable with/seek to master?
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.
- tastroder 7y agoMerkle 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 7y agoHehehe... Thanks ;)
- decentralised 7y agoSome 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 7y agoThank you!
- knopkop_ 7y agoSome 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 7y ago+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.
- buzzier 7y agoMastering 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 7y agoThanks a lot for the links! Out of curiosity, why use Go instead of say Python?
- stephenr 7y agoI’d suggest a healthy grasp of scepticism and an understanding of what buzzworditis is. Seriously.
- rasz 7y agoYes, read up on computer fraud, scams, ponzi and pyramid schemes.
- oiasdjfoiasd 7y agolol, miss the boat?
- leni1 7y agoI 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 7y agoIt 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.
- api 7y agoNobody mentioned game theory, so I will mention game theory. Having a basic intuition for it helps in understanding the fine points of consensus etc.
- drallison 7y agoRead Maurice Herlihy's review article: https://cacm.acm.org/magazines/2019/2/234355-blockchains-from-a-distributed-computing-perspective/fulltext https://cacm.acm.org/magazines/2019/2/234355-blockchains-fro... You will find that doing a cost-benefit analysis of Blockchains and their use in a variety of applications to be a useful exercise.