Article by Oxzh | Edited by Kornekt & Pub | Cover Art by Chameleon
Welcome to Bankless Publishing’s Crypto Basics Series. We’ll be shipping all of our introductory web3 content on Mirror each Monday, enabling users to curate a web3 reference library by minting NFTs on Optimism.
Solidity is the most popular programming language used to create smart contracts on blockchains. Thanks to its innovative qualities, we have an ecosystem of web3 communities running on blockchain technology. Even if you’re not planning to build with Solidity, knowing how it works makes important concepts in the web3 space — where smart contracts determine most activities — easier to understand. So, whether you’re a builder, auditor, hodler, or casual learner interested in Solidity, this article is for you.
That said, learning Solidity without enough understanding of how blockchains work could be likened to trying to fix a car engine without knowing how a car works. Our approach to learning Solidity should therefore include a roadmap that considers the underlying technology (blockchain) where the language is used. Understanding blockchain infrastructure makes it way easier to put programming problems and solutions in context. Without these fundamentals, it’s almost impossible to be successful at Solidity programming.
As we learn Solidity, attention to detail is also crucial; this is how we can successfully learn to develop sustainable projects and by extension, build the web3 ecosystem. Just like seed sowers in a forest, Solidity programmers are primarily responsible for the progress or downturn of the web3 ecosystem based on the success or failure of the projects they build. Poorly-written smart contracts attract hackers who love to exploit web3 systems; several top blockchain projects have suffered a dramatic demise as a result. That is why attention to detail while learning Solidity is key.
The resources in this article, including free courses, books, and subject matter experts, will help you to properly learn Solidity using approaches that suit your learning style. Don’t forget to keep experimenting with practical application of your skills too, so that you can gain real world experience.
Ethereum provides many valuable resources for learning Solidity. Its documentation on Solidity gives deep insights into the different components of the language and the reasons the language operates as it does. The documentation begins with an introduction to Solidity, followed by instructions on how to install Solidity, and basic examples to put the language into context for learners.
Furthermore, the documentation provides information on the most recent version of Solidity as well as previous versions with details on changes between language versions and the implications of such changes. The documentation also provides notes and warnings to keep in mind when using the language. The content of the documentation is presented under key topics, including:
The depth of information provided on Solidity in the documentation is complimented by practical examples and a cheat sheet which can be tested in your integrated development environment (IDE) or Remix.
This site, built by Austin Griffith, provides a series of resources for Solidity learners. Once ready, coders are invited to ‘SpeedRun Ethereum’ via a series of quests, including deployment of an NFT and building a DEX. Austin’s own website also has links to resources such as Scaffold-eth and eth.build — “an educational sandbox for web3”.
Dapp University offers different video tutorials on Solidity and how to build decentralized applications with the language. Their YouTube videos provide step-by-step learning guidance to people of different skill levels as they build blockchain applications. Dapp University videos also provide updates in the blockchain space that are relevant to Solidity learners.
EatTheBlocks YouTube videos give viewers insights on the different ways to build decentralized applications on the blockchain with Solidity. In addition to the tutorial videos, EatTheBlocks provides links to GitHub repositories where you can study the code used in the video tutorials.
White Hat DAO offers a wealth of learning resources on their Discord and website. The DAO hosts several interactive learning sessions and constantly shares valuable learning resources on their Discord channels.
Secureum offers different resources for learning Solidity, including a bootcamp for more experienced students to gain security-focused Solidity skills. Bootcamp students gain such skills by working on security-focused challenges.
In addition to the Bootcamp, Secureum provides a top-quality newsletter on smart contract vulnerabilities and Audit Findings. The articles on smart contract audit findings teach readers about vulnerabilities in real-life blockchain applications.
Etherscan provides a user interface to read and compare smart contracts of different blockchain projects. With Etherscan, you can learn the various approaches smart contract engineers use to develop their projects. You may even find subtle differences in their approaches that help you make better decisions as you build with Solidity.
Remix is an online compilation tool that makes it possible to test Solidity codes while on your internet browser. Think of it as a sandbox to play around with your coding ideas for smart contracts without having to set up the coding environment in your IDE.
Remix can be your first line of defense against improperly written codes. For example, if you’re worried about the safety of a Solidity function and its parameters, you could simply execute the function in Remix to test the outputs.
Users of Solidity by Example are able to navigate through different examples of Solidity code: from simple smart contracts with easy-to-read functions to more complex smart contracts inherited from other smart contracts. Their resources expose learners to the following concepts:
Solidity for applications
Smart contract hacks
Tests for smart contracts
For better understanding, Solidity By Example goes the extra mile to make YouTube videos that explain the topics on their website.
CryptoZombies is one of the best places to learn Solidity. They use a fun approach to teach the fundamentals of the language by helping learners build a blockchain-based zombie game. The great thing about learning at CryptoZombies is their ability to break down chunkier Solidity concepts into beginner-friendly portions.
At every level, learners are exposed to key concepts on Solidity, after which they will have to answer certain questions in order to progress to the next challenge level.
Key learning topics available on CryptoZombies include:
Function calls and modification
Function visibility and access
At the time of writing, the Solidity Zero to Hero Course is free with 33 lessons on offer; designed to teach you all you need to know to launch a live blockchain application. Course participants should learn:
Efficiency in Solidity programming by building projects
Understanding how smart contracts work
Understanding the development functions of Ethereum
Comprehending the structure of Solidity code
Proficiency in the use of Ethereum’s core development tools
With its fictional themes of space exploration, Space Dogo Interactive Solidity Course uses an approach similar to that of CryptoZombies. The course is not as long as other courses but it covers basic concepts that are important to remember. Similar to CryptoZombies, the course starts with a challenge for the user: to define a smart contract that creates fictional characters. The course objective is:
Coding in Solidity
Writing smart contracts
Creating blockchain applications
Becoming a programmer
Proficiency in fullstack development
Alchemy University’s Ethereum Developer Bootcamp course introduces individuals with intermediate skills into the fundamentals of web3 development. Students learn through live sessions, coding sessions, weekly projects, and written guides. The course learning objectives include:
Becoming interview ready
Building smart contracts
Their Road to Web3 course is a self-paced route for intermediate developers who, like in the Ethereum Developer Bootcamp course, can learn through live sessions, coding sessions, weekly projects, and written guides. Learning objectives include:
Developing a developer portfolio
Building smart contracts
Gaining full stack web3 development skills
LearnWeb3 gives users, not only a free course, but a strong community of fellow learners growing together. The learning paths at LearnWeb3 include:
The community support at LearnWeb3 is one of the biggest benefits available to learners. This support eases the learning experience for beginners; experienced learners are also able to build on their knowledge by assisting their less-experienced fellows. With help from more experienced instructors, this community of students is able to achieve even better synergy.
LearnWeb3 also recently launched a learn-to-earn program where students earn while learning about web3 development from experienced instructors and smart contract engineers.
Mastering Ethereum by Andreas Antonopolous is a classic, written for developers. The book provides guidance on EVM-compatible blockchains like Ethereum Classic, RootStack, and Ethereum. Some chapters of the book contain insights on Solidity and other important blockchain concepts including Blockchain Oracles, cryptography, wallets, and tokens.
Among many other benefits, reading Mastering Ethereum helps you contextualize much of the knowledge you’ve gained about Solidity. The book also goes deep into how wallet addresses work, famous hacks, elliptic curves, DAO history, and many other topics that the untrained eye would easily neglect.
If you’re looking to take your skills to the next level, The Senior Solidity Engineer’s Book may be for you. The book sheds light on principles, design patterns to avoid, and other workflow tips and tricks that help learners of Solidity improve the quality of their code.
The best people to follow on Twitter to learn Solidity depends on your learning goals. If you’re a casual learner who just wants to have a better understanding of how safe smart contracts are, following pages that explain the simpler aspects may be more beneficial to you. However, if you’re looking to create your own project or you’re currently running a project, pages that provide granular insights on Solidity might provide more help.
These Twitter accounts are considered to be three of the best developers in the industry:
The best people to follow on Twitter to learn Solidity with a focus on security include:
officer_cia, who provides a treasure trove of information to guide people on important Solidity topics. The security-focused posts guide developers on the ways to not only write Solidity but write safe code. Officer_cia also tweets concepts from their DeFi Developer Roadmap on Github.
trill2scope, who posts insightful threads on how to learn Solidity and audit smart contracts. Whether you’re a beginner or more experienced Solidity developer, there’s always something new to learn from their Twitter threads which emphasizes safe approaches to smart contract development.
There are several approaches to learning Solidity. What’s important is that you remain consistent and persistent in your pursuit of knowledge. Having a mentor is also important as it can greatly accelerate the learning process. Group learning, especially with people of varying skill levels, is also highly encouraged. The collaborations and knowledge-sharing in groups lightens the burden of learning such a complex language like Solidity. All these, combined with the resources in this article, are valuable aids that will greatly help you on your journey to becoming a professional Solidity programmer.
A version of this article was originally published by Bankless Publishing on December 14, 2022.
0xzh is passionate about Web3 technology and its use to improve human development. He enjoys writing, sports, learning about tax regulations, video games and reading.
Kornekt is a writer and editor with strong conviction in the world Web3 creates.
Pub-gmn.eth is a blockend developer.
Chameleon is a designer and creator in the web3 space.
BanklessDAO is an education and media engine dedicated to helping individuals achieve financial independence.
Bankless Publishing is always accepting submissions for publication. We’d love to read your work, so please submit your article here!
This post does not contain financial advice, only educational information. By reading this article, you agree and affirm the above, as well as that you are not being solicited to make a financial decision, and that you in no way are receiving any fiduciary projection, promise, or tacit inference of your ability to achieve financial gains.
Decentralized Ledger Technology 101 by The Crypto Barista
The 101 on NFTs, A Briefing by Lanz
4 Simple Steps To Join a DAO by Samantha Marin
Towards Better Token Distribution by Paul Hoffman
Cryptocurrency Wallets 101 by ijeblowrider