Crypto Basics Series: How To Learn Solidity

A Resource-Rich Guide for Those Looking To Get Smart About Ethereum Contracts

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.

Approaches To Learning

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.

Resources

Ethereum’s Solidity Documentation

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.

SpeedRunEthereum

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

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

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

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

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

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

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

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.

Solidity By Example

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

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

Free Courses

Solidity Zero to Hero Course

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

Space Dogo Interactive Solidity Course

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

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

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.

Best Books

Mastering Ethereum

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.

The Senior Solidity Engineer’s Book

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.

Best People to Follow on Twitter

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.

Becoming a Solidity Ninja

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

Subscribe to BanklessDAO
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.