Skip to content

List of beginner friendly resources to start blockchain development

Notifications You must be signed in to change notification settings

BlocSoc-iitr/Intro-to-Blockchain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation

Intro-to-blockchain

If you want to learn about web3 and blockchain development then this repo can help you master the technology. This file does not assume your expereince with blockchain development and hence contains material suitable for both begginers and experts. Please use your judgment to find resources relevant to your skill level. Learning is a step-by-step process and diving deep into advanced concepts without a good grasp on fundamentals would never yeild positive results.

What is a Blockchain?

A blockchain is a distributed ledger which stores transactions in a decentralized, transparent and immutable way. This video by 3Blue1Brown explains clearly how bitcoin works in a beginner-friendly way. How does Bitcoin actually work?

There are a lot different blockchains out there but the two most important are:

Bitcoin

The afferomentioned video by 3b1b is a great place to start for anyone wanting to learn about bitcoin. For folks who want to dive deeper into how the technology works should really read Grokking Bitcoin.
Understanding the Bitcoin Whitepaper is also important along side GB.

This book is perfect for people who want to grasp the cryptography behind how bitcoin works. It does get quite technical after the first few chapters but for anyone wanting to build on any blockchain, it is critical to understand the fundamental workings of bitcoin as it is the inspiration for every blockchain out there.

After going through the above resources, you should really play around with a blockchain yourself. This demo by Andreas Brownworth is perfect for visualising hashes, blocks, tokens, etc.

If you want to learn more about cryptography, you can check out these puzzles on Cryptohacks and learn about advance concepts like Elliptic Curve Cryptography which are fundamental to how bitcoin, ethereum and other blockchains work.

Even if you wish to build for Ethereum, every blockchain developer should go through the above resources and understand the fundamental working of bitcon. If you wish to further learn about the bitcoin ecosystem, the next best resource every bitcoin developer should study is Mastering Bitcoin written by Andreas M. Antonopoulos.

This amount of knowledge is enough for you to start contributing in open-source projects and apply for programmes like Summer of Bitcoin.

Ethereum

Bitcoin was created as a decentralised p2p cash system or a 'cryptocurrency'. It was evident that the benefits of a public blockchain could used far beyond just money. Ethereum was developed with the purpose of adding smart contracts onto the blockchain. The EVM is turing complete machine that can run any logic and execute it with the benefits of a blockchain.

Ethereum Foundation has some great articles on understanding the ecosystem. Along with blogs, reading the Ethereum Whitepaper also helps in understadning its differences from bitcoin.

Understanding the basics of Ethereum is enough to start Dapp development but the EVM is a very complicated and fascinating machine. As a begginer its recommended to stop here and pick it up again after creating some projects. Speaking of projects, becoming an expert Blockchain developer requires mastery in:

Web2 Resources


A Decentralised Application or DApp is just a normal web app with a blockchain like Ethereum serving as its backend. Hence, building a good DApp requires skills in traditional web2 development as well. A DApp consists of smart contracts that can be interacted with through a front-end. Usually these DApps also have backend architechture to handle various SDKs, libraries and even databases.

List of Web2 Resources:

  1. Basics of HTML, CSS (for building beautiful frontends).
  2. JavaScript Basics : Variables, Data Types, if-else blocks, Switch, Loops, Functions, async functions, callbacks : https://www.w3schools.com/js/
  3. Node.js basics: node, npm, package.json
  4. API and HTTP Requests (GET, POST, PATCH etc..)
  5. JavaScript libraries built for integrating ethereum to your frontend like Ethers.js and Web3.js.

Also learning JavaScript frontend frameworks like React.js, Next.js would be great to build more complex applications.

Web3 Resources


The most important component of a DApp is the smart contract. The most popular language to write smart contracts in is Solidity. The best way to learn a new language is through hands-on practice and thats why CryptoZombies is recommended as it teaches solidity by building a simple game while explaining various concepts like data-types, arrays, functions, etc.
Solidity by example is also a great resource to learn basic syntax and concepts of the language.

By far the most complete and high quality tutorial on Solidity development is by Patrick Collins:
32 HOURS FULL BLOCKCHAIN DEVELOPMENT COURSE
He also has a video with detailed guidance on How to become a Blockchain Engineer

UPDATE
Since writing this, Patrick Collins has uploaded another course for foundry this time which is updated to all the latest alpha. The previous course is focused on hardhat and javascript while this one deals completely with solidity. You can choose which one to follow according to your convenience.

PART1
PART2
PART3

After completing this course you should be able to create any project you can think of. If video tutorials are not your style and you prefer resources similar to crypto zombies then perhaps you can try out LearnWeb3DAO. The Freshmen track is perfect for anyone who has no expereience with blockchain whatsoever. LearnWeb3DAO with a lot of content and is just as good as the course by Patrick Collins.

While going through either of the courses (or any other that you prefer) you should also learn about the web3 ecosystem. A basic knowledge of what protocols exist and what they do is critical to understand what problems are present in th ecosystem and how you can fix them.
These youtube channels have great videos on various topics ranging from DeFi, NFTS, Ethereum protocol, Bitcoin and other blockchains as well.

Improving your knowledge everyday is the only way to stay ahead in this industry.

Knowing about various DeFi protocols and how they work is important. Apart from watching videos from above channels, reading the whitepapers of popular projects also gives a lot of technical insight into how they function.

EVM and Security


Learning solidity is not enough be an expert in writing smart contracts. Deploying and interacting with these contracts require gas, so as a developer you should optimise your code to consume th eleast amount of gas possibel. Also since smart contracts are immutable and transparent, anyone can find vulnerabilities in your code and exploit it. Therefore, making sure that your contract is secure is a top priority for any protocol.

In order to write optmised and secure code, a deep knowledge of EVM and security practices is crucial. This field is so vast and technical that the best way to learn is reading blogs and articles from multiple experts. Here is a list of a few resources that provide Alpha about the EVM:

Patrick Collins has uploaded a series of videos that are great to learn smart contract auditing:

If after accumilating all this Alphs you feel like security and auiditing might be your thing, then you should check out out the Secureum Bootcamp. Afetr that you can play CTFs and participate in competitions. Here's a list:

The best way to learn advanced topics is to learn from the best. The greatest minds in the industry are always active on twitter and ready to help out anyone in need. The crypto community is very collaborative and dont hesitate in sharing information. Here's a list of twitter accounts that provide top tier content:

ZK and Cryptography


Apart from learning blockchain concpets and gaining expertise in soldity and EVM, other fields like Zero-Knowledge cryptograohy are also gaining main stream traction. If you like math and want to build a career in these niche, you need to be very skilled with advanced techincal concepts and a passion for research. There are many privacy and scaling focused projects that are actively looking for skilled zk engineers.

The best way to gain an understand of the math behind zk is to go through the zk book by RareSkills. Here you gain context on topics like:

  • Abstract Algebra
  • Elliptic Curve Cryptography
  • Rank-1 Constraint Systems
  • Quadratic Arithmetic Programs

and more ...
Vitalik also has a great blog on Quadratic Arithmetic Programs

There are many systems involved in zk like SNARKs, STARKs, PLonks, and more. The two most popular are SNARKs(used in circom) and PLonks(used in Halo2). This research paper titled Why and How zk-SNARK Works gives a very definitive explaination of zk SNARKS and is a must read. Vitalik wrote a blog that explains plonks very well.

The best way to learn how to write circuits is by following the lecture series by 0xparc.

More resources:


Defi - Additional Resources

  • Snowball Defi Univerisity - Cover all the topics in 1st, 2nd, 3rd and 4th year courses.
  • Fluid - Fluid is an ever evolving Defi platform with highly efficient liquidity management. Can go through the codebase extensively.

The industry is constantly growing and the only way to keep up is constantly learning. This repo is fileld with a lot of resources but there is a lot more content out there that's just as good. If you feel like this repo misses any crucial resources or you'd like to suggest some additional material then feel free to make a Pull Request. Let's keep this resource list active and up to date so it benefits anyone reading this.

If you face any doubts regarding any topic then feel free to raise an issue and discuss it with other buidlers. Asking questions is the best way to understand and learn new topics.

Happy Learning! WAGMI

About

List of beginner friendly resources to start blockchain development

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •