DEV Community

Cover image for Learn Solidity, Blockchain, and Smart Contracts with this Full Free Course
Patrick Collins
Patrick Collins

Posted on • Updated on

Learn Solidity, Blockchain, and Smart Contracts with this Full Free Course

FreeCodeCamp has just released an entire Solidity, Blockchain, and Smart Contract Course – Beginner to Expert Python Tutorial that goes over everything a successful smart contract needs to learn, all jam packed into 1 free 16 hour course.

Taught, by yours truly!

Each section comes with either additional reading or code samples all available in the giant mega GitHub repo associated with the course:

👩‍💻 GitHub Repo: https://github.com/smartcontractkit/full-blockchain-solidity-course-py

The GitHub Repo has everything you need to be successful in the tutorial and learn solidity.

Learn Solidity and Blockchain

You can also watch the amazing trailer for the video here.

Learn Solidity and Blockchain

⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️

Who is this for?

This course is for ANYONE looking to either get started being a smart contract engineer or get better. If you already have some knowledge, skip to the sections you like! That's why they are timestamped! If you know nothing, then start from the start.

If you don't want to become a developer, even YOU can learn a ton from watching specific sections like the "Welcome to Blockchain" section.

Course Layout

The course is divided into "lessons", which each teach foundational concepts for blockchain development.

⭐️ Course Contents ⭐
⌨️ (00:00:00) Introduction

We introduce the course, and what we are going to go over! We give some helpful resources on where to get help, how best to use the course, and how to pace yourself!

⌨️ (00:06:33) Lesson 0: Welcome To Blockchain

Foundational conceptual information about what blockchains actually are, what makes smart contracts so special, and how hybrid smart contracts and oracles make smart contracts even more impactful.

⌨️ (01:31:00) Lesson 1: Welcome to Remix! Simple Storage

We finally start coding solidity! We learn about the Remix IDE, a powerful tool to deploy our smart contracts. We learn a lot of the basic syntax of solidity. We also learn how to deploy our smart contracts! We build a contract that can store very specific data.

⌨️ (02:09:32) Lesson 2: Storage Factory

This shorter lesson we learn some advanced topics of solidity, like the factory pattern, where we can deploy smart contracts from other smart contracts. We build a contract that can deploy Simple Storage contracts!

⌨️ (02:26:35) Lesson 3: Fund Me

We turn up the heat in this tutorial, where we learn how to deal with paying for things, getting pricing information, working with oracles, and importing code from outside our projects. We build a sample project that can be used to help fund future projects!

⌨️ (03:26:48) Lesson 4: Web3.py Simple Storage

We level up our coding environments by moving from Remix to our own local text editors, and start using python and web3.py to build and deploy our smart contracts. We use the same Simple Storage contract that we've been learning with, but with web3.py! Web3.py is a foundational technology to the main one we are going to be using...

⌨️ (04:27:55) Lesson 5: Brownie Simple Storage

Here is where we learn the most powerful tool that we are going to "live" in for the rest of the course, Brownie! This is a smart contract development framework for building, testing, and deploying smart contracts easily. We learn the basics of testing as well, and the layout of a brownie project, yummy!

⌨️ (05:06:34) Lesson 6: Brownie Fund Me

We get even more familiar with brownie by going over our Fund Me project again, and learning things like verifying out contracts, importing dependencies, forking a blockchain, and more!

⌨️ (06:11:38) Lesson 7: SmartContract Lottery

Boom! A whole lottery application that we build from scratch! We learn how to set an entrance fee for our lottery, get a random number for a winner, Openzeppelin contracts, events & logging, and more!

⌨️ (08:21:02) Lesson 8: Chainlink Mix

This quick lesson shows the layout of the chainlink-mix which is a brownie mix that allows us to start a hybrid smart contract project right from the get-go!

⌨️ (08:23:25) Lesson 9: ERC20s, EIPs, and Token Standards

We learn how to create our own ERC20 blockchain token! We also learn about different versions of solidity, and more!

⌨️ (08:34:53) Lesson 10: Defi & Aave

An incredible dive into the world of #DeFi and what makes it so special. We learn how to interact with the Aave protocol and use it's composability for us to make incredibly powerful applications ourselves, even if it's 100% off-chain! We learn some advanced DeFi skills like short selling and depositing collateral.

⌨️ (09:50:20) Lesson 11: NFTs

Art, art, art!! 🎨 We learn how to create art on the blockchain, but with unlimited customization, allowing us to make games, generative art, and more! We make a few adorable randomized dogs and deploy them to the blockchain and Opensea.

⌨️ (11:49:15) Lesson 12: Upgrades

A very advanced tutorial on deploying contracts that can be upgraded using the transparent proxy pattern. This lesson goes a bit into Yul code, which is the low level code of solidity, and some of the dangers and advantages of delegatecall.

⌨️ (12:48:06) Lesson 13: Full Stack Defi

We now add a front-end! We don't go deep into how to create front-ends, so if you're a little new on typescript or javascript, you might want to watch FreeCodeCamps Typescript crash course.

⌨️ (16:14:16) Closing and Summary

At long last, we end this tutorial, and you leave being an amazing smart contract engineer! We talk about joining the community, where to go next, and how to live with this newfound skill of yours!

You can see a more detailed inventory in the GitHub repo, it's very thorough.

How to watch

This is a course that is long, so don't go through the whole thing in 1 go! 30 minutes at a time is perfect, and will give your brain plenty of time of absorb all the information you're getting and make you a better smart contract engineer.

Maybe even grab a buddy to keep each other accountable, by the end of the course, you'll have years of experience under your belt already! This course is an entire data dump of knowledge from years of working with smart contracts.

What should I be expected to use?

You'll want a text editor like Visual Studio Code and a number of dependencies installed. Don't worry, we go over everything!

Be sure to @ me at @patrickalphac if you enjoyed the content or learnt something. Joining the community is one of the best ways to continue learning, and put your skills to use!

Community

Hackathons

Learning More

Top comments (7)

Collapse
 
ricksegal profile image
Rick Segal • Edited

The amount of work that went into this project is epic. @patrickalphac should be knighted. I hope this gets the recognition it deserves. Well done.

Collapse
 
patrickalphac profile image
Patrick Collins

Thank you sir :)

Collapse
 
tahir786 profile image
Tahir-786

Hello ......Sir...!
I'm waiting for the javascript audition....

Should I wait ...... Or searching for Javascript audition on the internet....???
I really liked your teaching style
And I watched your python audition on the youtube ...( Not the coding just watched the first hour of introduction...)

Please update me
I'll be waiting fo your response

Thread Thread
 
patrickalphac profile image
Patrick Collins

Late Q1 or early Q2 of 2022

Collapse
 
roni_sommerfeld profile image
RoNi Sommerfeld

Hello, is it possible to use an ERC20 token inside a function of an ERC721 token?
To better explain what I want to do is as follows.
Before minting an ERC721 token (Item of my game) I want to check if the player has my token (ERC20) in his wallet, if he has he could mint it...
Is it possible to do that? Thanks.

Collapse
 
tamjid0x01 profile image
Aits

It's cool and beginner friendly.

Collapse
 
patrickalphac profile image
Patrick Collins

🙌