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.
To successfully acquire Solidity programming skills, a structured learning approach is important. This is because of the languageâs similarity to other relatively complex languages like C++, JavaScript, and Python. These languages, depending on oneâs experience, can take a long time to learn. That is why a structured learning approach is crucial: it ensures proper exposure to the fundamentals and helps to build on them effectively. This way, we can make the most of our time while learning and avoid pitfalls at the point of application.
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:
Basics
Language description
Compiler
Internals
Additional Materials.
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â.
FreeCodeCamp has a reservoir of resources and free courses to help you learn Solidity and become a pro. Thanks to their video tutorials, articles, and interactive coding challenges, you can gain knowledge and skills on not only Solidity (for the backend of blockchain applications) but also on JavaScript, which is required for integrating smart contracts with the frontend of decentralized applications.
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
DeFi development
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 creation
Function calls and modification
Data types
Inheritance
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
Alchemy Universityâs courses offer learning paths in JavaScript and web3 development; areas that aid the application of Solidity skills. The course length ranges from 3â10 weeks, allowing for learning through theory and practice.
The JavaScript fundamentals course serves as an entry point into the basics of JavaScript and programming in general. Learning objectives of the course include:
Becoming a programmer
Proficiency in fullstack development
Mastering Javascript
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
Mastering cryptography
Mastering Solidity
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:
Freshman
Sophomore
Junior
Senior
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.
param_eth, a web3 developer and writer who provides information in different forms for people to learn Solidity, JavaScript, and other tools needed to create web3 applications. He also shares resources from other accounts to build on your knowledge.
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.
Author Bio
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.
Editor Bios
Kornekt is a writer and editor with strong conviction in the world Web3 creates.
Pub-gmn.eth is a blockend developer.
Designer Bio
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