If you want to code Ethereum Dapps, you will need to learn Solidity, the programming language for smart contracts.
Although Solidity looks simple its not and as a beginner its not always easy to find beginner level tutorials. In this article I will show you what is the best way to learn Solidity if you are a beginner, by starting from easy-to-follow tutorials and progressively bringing you to more advanced topics.
As a newbie, you might have questions such as:
- Which programming language to use for smart contracts?
- What is the syntax of Solidity?
- How to declare variables in Solidity?
- Is Solidity a dynamic compiled language?
- Where should I start my journey as a Ethereum newbie?
These resources will help you to answer your questions:
- CryptoZombies – This is the most popular tutorial for Solidity beginners. More than 300,000 students already followed it, and its very fun to do
- Ethernaut – Game where you need to “hack” smart contracts
I hope that after your first taste of Solidity you are curious to learn more advanced topics. Read on!
After you cut your teeth on your first smart contracts its time to level up and study some more advanced Solidity topics!
- What is the equivalent of objects in Solidity?
- How variables are stored?
- What are the most important token standards?
These links will provide some answers:
- Structure of a contract – Solidity docs
- Control Structures – Solidity docs
- Variable types – Solidity docs
- Security – Solidity docs
- DAO Hacked Explained – This is a major security vulnerabilities of smart contracts that was exploited in the past
- Top 2 token standard every Dapp developer should now (ERC20 and ERC721) – EatTheBlocks article
- Upgradeable Smart contracts – Colony blog
Once you have been through all this reading, you probably feel eager to apply your newfound knowledge to some real-life projects. But before you get there The next step is to study tools that you will need to develop ethereum decentralized applications.
After you feel more comfortable with Solidity, there are still some unanswered questions, such as:
- Which code editor / developing environment to use for Solidity smart contracts?
- How to compile Solidity smart contracts?
- Where to deploy smart contracts during development?
Studying these tools will help you to to answer these questions:
- Remix – The IDE for Solidity smart contracts
- Ganache Tutorial series – Ganache is GUI and command-line tool to create a local ethereum blockchain for development
- Truffle – most popular dapp framework in Nodejs, supported by Consensys
- Embark – second most popular Dapp framework in Python, supported by Status
- Mythril – Security Analysis tool for Solidity smart contracts
- Ethereum Gas Station – Website to know the current gas price on the network. Useful to not overpay gas fees!
After all this knowledge you are finally ready to fit all the pieces together and develop full feature Ethereum applications, or dapps (for Decentralized Applications). Continue to read below for that!
Full project Tutorials ( Ethereum Dapp Tutorial)
Smart contracts need to be combined to a web or mobile frontend to make them user-friendly. These pose a lot questions:
- How to integrate smart contracts with a frontend UI?
- How a web frontend can communicate with a smart contract on Ethereum?
- Which frontend framework to use for Ethereum dapps?
The below resources will provide some answers:
- EatTheBlocks Todo List Dapp – a video/article series on how to build a ToDo list on Ethereum. It covers the backend smart contract, the frontend, and integration between both
- Truffle Pet Shop Tutorial – Official tutorial by Truffle framework
- Drizzle – a React framework for Ethereum Dapps
- Ethereum and Solidity: The Complete Developer’s Guide – Udemy course with Stephen Grider. 20 hours of content. Has received good feedback.
- Become a Blockchain Developer with Ethereum and Solidity – Udemy course. 15 hours of content
- Ethereum Masterclass – Udemy course. 10 hours of content
- What’s Solidity – Youtube channel with advanced Solidity tutorials
- Building a fully decentralized User profile app on Ethereum and IPFS
Once you know how to build Dapps, you can continue your journey by learning about the underlying tech, the Blockchain, cryptography and distributed systems
Blockchain, Cryptography & Distributed Systems
- Mastering Bitcoin – This is THE reference for learning about the Blockchain technology, by master Andreas Antonopoulos. A must-read for Blockchain developers.
- Bitcoin White Paper – Technical specification of Bitcoin
- Ethereum Yellow Paper – Technical specification of Ethereum
- Crypto 101 – Introductory course on cryptography
- Awesome Distributed Systems – Curated list for learning distributed systems
If you still don’t have enough resources you can check out these 2 awesome lists on Github: