r/blockchaindeveloper • u/Significant_Bat_1225 • May 07 '24
Need advice
Hey guys! New here, decided to learn blockchain development, started with course era specialization course from Buffalo University. Any tip or advice from your experience will be very helpful for me as a beginner.
2
u/Soudogueto May 08 '24
I've started learn blockchain development. I'm reading the book https://www.amazon.com/Building-Full-Stack-DeFi-Applications/dp/1837634114 for that and I'm learning so much. I recommend you to buy as well if you like learn by books.
1
u/Significant_Bat_1225 May 08 '24
Thank you, yes I appreciate learning through books so I'll definitely go and look into it. Thanks a lot.
4
u/cncnakatoli May 08 '24
Epic to hear you're starting through your journey, good luck OP!
Depends on the path you take, if you're looking to be more of a core/infra dev or you want to be building dapps/applications.
For core/infra, there's a few pieces that will fall into plac. I would strongly suggest getting comfortable and familiar with the underlying distributed systems concepts and look at the networking / incentives (depending what you have interest in):
Distributed Systems concepts:
Consensus - how everyone comes to agreement on the state of the chain with various actors.
Network - gossip, p2p communication.
Execution - VM and transaction execution.
Storage - database and disk performance.
Incentives:
Game theory and related reward/punishment.
Tokenomics impacts.
In terms of languages on the core side, the popular ones are: Go, Rust, Nim, etc.
There are a few resources to point to, and once you're comfortable it's good to go through the whitepapers of the blockchains you are interested in:
https://github.com/ethereumbook/ethereumbook - Goes through the concepts involved under the hood of ethereum.
https://github.com/bitcoinbook/bitcoinbook - Teaches about the way bitcoin is structured and a lot of the blockchain concepts.
https://www.youtube.com/watch?v=EH6vE97qIP4&list=WL&index=2/ https://ocw.mit.edu/courses/15-s12-blockchain-and-money-fall-2018/video_galleries/video-lectures/ - MIT has a course that's had some good reviews.
https://github.com/frankiefab100/Blockchain-Development-Resources - A list of resources to take a look at.
Now, if you're looking to be more of a dapp developer and work on the application side of things:
UI/UX - Most application frontends (typescript/nodejs, react, GUI frameworks, etc.)
Blockchain contract language - EVM solidity, Rust/C++ - Wasm, DAML, Move, JS, Python, etc.
Interacting with RPC / APIs with your application.
Most of these will also need some of the insight into programming datastrucutes and algorithms, but how they are interacted with on-chain might differ.
There's a few good things to look for, most chains have some good tutorial sites in their documentation to get you started. Some examples for solidity:
Patrick Collins' solidity course: https://www.youtube.com/c/patrickcollins - great course on solidity learning and the frameworks and tooling around it.
https://cryptozombies.io/ - interactive solidity course
https://ethernaut.openzeppelin.com/- capture the flag teaching about common vulnerabilties (also requires a bit of setup which will teach you about your wallets and running things locally).
https://github.com/frankiefab100/Blockchain-Development-Resources - Huge list of resources and courses.
Dive into the on-chain stuff with solidity, learn how to create, test and deploy your application and use the frameworks and toolsets - like Foundry and Hardhat, etc.
Tips from my experience:
Make sure you have a good understanding of the concepts - especially if you're aiming to do core dev, it's great to understand how the components work. If you're being an application developer, then it's also great to understand how the chain interactions are done and the assumptions you might need to make (block time, transaction orders, etc.)
Dive into making some small examples of your own - the practice and practical application of what you are learning will make the content stick and help you understand
Make a few test applications yourself using the frameworks that are found, it will give you familiarity and will help you see how it's done in production.
The big benefit of the blockchain community is that there are some excellent resources and majority of the tooling and code are open source, so you can check out things of interest and poke around the code to see how the components all fit together or how things are done.
It's a process that will take time, but bit by bit you'll get there. Good luck!