In CryptoZombies you'll learn Solidity, one of EVMs programming languages by building an NFT game in which you create, train and grow an army of Zombies.
Given its playful nature it's one of the best best introductions to the EVM and Solidity. While definitely interesting you might want to focus on the first two mini-courses and skip the "Beyond Ethereum" one when starting out.
Solidity isn't the only EVM-compatible Smart Contract programming language. There's also Vyper, a language focused on security and simplicity. If you want to dip your toes into Vyper development you'll definitely don't want to miss Vyper.fun. While working through this online course you'll build your own Pokémon Game written in Vyper and running on the EVM.
Ethereum Blockchain Developer Guide
The Ethereum Blockchain Developer Guide is a massive collection of tutorials and resources to learn the ins and outs of practical Ethereum development.
While working through the curriculum you'll learn how the Ethereum blockchain works, why transactions are structured the way they are and what the Smart Contract lifecycle is comprised of. Finally you'll apply everything you learned in various labs to test your hard earned knowledge and build up a portfolio of blockchain dApps.
Ethereum in Depth
This 2 part blog post series (Part 1 / Part 2) by OpenZeppelin teaches you everything you need to know about the inner-workings of the Ethereum Virtual Machine (EVM) from a software developer's perspective.
Reading through it you'll learn about concepts such as Message Calls, Data Management, the Stack, Memory vs. Storage, Smart Contract creation and more.
The Complete Guide to Full Stack Ethereum Development
This blog post written by Nader Dabit gives an excellent overview and introduction to all the necessary tools for modern dApp development such as React, Hardhat, Ethers and The Graph.
Once you've worked through the tutorial you've learned how to integrate Metamask into your application, how to deploy and test Smart Contracts on Ethereum testnets, how to connect the dApp to a client frontend and how you write and compile contracts written in Solidity.
Solidity, Blockchain and Smart Contract Course – Beginner to Expert Python Tutorial
This massive ~16 hours video course teaches you everything you need to know about Blockchain technology, Smart Contracts, Solidity, NFTs, DeFi, Chainlink and full stack dApp development.
The course's code repository can be found on GitHub.
Full Course on Polygon Development - Build Blockchain Apps on Polygon
This ~5 hours video course teaches you everything you need to know to build and deploy dApps on Polygon.
Working through it you'll learn about the Polygon Ecosystem, the matic.js library, the Token Bridge, Meta Transactions on Polygon, how to integrate Chainlink Oracles, how to run your own Polygon Node and more.
All About Solidity
The "All About Solidity" article series is a collection of in-depth blog posts on various aspects of Solidity and the Ethereum Virtual Machine (EVM). Reading through it you'll learn everything there is to know about addresses, assembly, comments, contracts, functions, libraries and more.
Protip: Browse through the corresponding GitHub repository to find more writeups which haven't been published yet.
Solidity Smart Contract Programming
The Solidity Smart Contract Programming project is a collection of writeups and code snippets that help you master Smart Contract development with the Solidity programming language.
The 17 part series starts with the basics and teaches you everything you need to know to become a proficient dApp developer for EVM-based Blockchains.
Building Secure Smart Contracts
The Building Secure Smart Contracts tutorial by Trail of Bits is one of the best resources to learn about Smart Contract development best practices and toolings in a hands-on fashion.
While working through it you'll learn how to setup a secure Smart Contract development workflow, ways to securely integrate tokens into your dApp and which tools you should use to statically analyze your code for potential bugs and undesired side-effects.
Ethereum Development Tutorials
The Ethereum foundation has its own curated list of community tutorials.
Use the filters at the top to find the content you're interested in and if you wrote a tutorial yourself be sure to click the "Submit a Tutorial" button at the top to get added to the list as well.
The official Solidity documentation has a dedicated section called "Solidity by Example" which will walk you through various mini tutorials covering different aspects of the Solidity programming language and the Ethereum Virtual Machine (EVM).
Solidity by Example
The "Solidity by Example" website is a treasure trove of great outcome-focused tutorials. Do you want to create your own ERC-20 token or create Bi-directional payment channels? Whenever you get stuck you'll definitely want to check out this resource as it might list a tutorial which helps you solve your problem.
The Clean Contracts blog post by Wesley van Heije is a long-form articles which walks you through everything you need to know to write maintainable, secure and gas optimized Smart Contracts.
Protip: Also make sure to check out the accompanying GitHub Repository which has supporting code examples.
Best Practices for Smart Contract Development
Yos Riady's blog post on Smart Contract development best practices is a stellar mini tutorial series which outlines how you can setup a professional development environment to streamline your dApp workflows.
Working through his list you'll learn about static analysis, linters, runbooks, the usage of public testnets as well as best practices for building solid frontends and backends.
The Solidity Workshop project is a collection of guides and resources for Ethereum- and Smart Contract development. It covers topics such as Solidity language concepts, Contract-oriented programming as well as deep dives into advanced Solidity and Ethereum Virtual Machine (EVM) principles concerning inline assembly, memory- and storage layout, the EVM stack and more.
While the repository has been tagged as "legacy" the core concepts still hold true today.
Learn X in Y minutes - Solidity
Learn X in Y minutes has a dedicated site for Solidity development. In it you'll learn how to use the Remix Online IDE, how to work with testnets and how to setup MetaMask. The core focus however is on a huge example Smart Contract written in Solidity, showcasing various language features. While it might be hard for newcomers to work through this gigantic file, Learn X in Y minutes is definitely a good resources for intermediate developers to revisit every now and then.
Learn X in Y minutes - Vyper
In addition to the Solidity example mentioned above, Learn X in Y minutes also has a dedicated site for development with the Vyper programming language. After a brief introduction to Vyper you'll see a huge annotated Smart Contract written in Vyper which walks you through its various language features. While it might be challenging for Vyper devs who are just starting out you'll definitely want to bookmark this page and visit it when you need a quick Vyper refresher.