Getting into Web3: A Guide for Developers
Learning resources curated by a real team currently heads-down in the space
As a developer, it’s crucial to stay on top of the latest developments in technology. It’s how you future proof your income, stay current and solve the problems you encounter at work and personal projects in the most efficient way possible. Keeping up with the rapid pace of change often means you’ll be self-guiding through new topics you’re unfamiliar with.
One of these “new topics” is the collection of ideas and technologies that people have been calling “web3”. It’s a broad and diverse space, and it can be hard to know where to start. Here at Autonolas, we’re all in on building with and for web3, and we believe the best way to expand the potential of the space is to bring in as many talented folks as possible.
That’s why we wanted to share this roadmap. There’s lots of guides out there already, but these curated resources come recommended by our team — real engineers, researchers, programmers and product people working in the field now.
We hope you find it useful and invite you to join our Discord if you have questions or want to connect. Let’s get into it!
Step 0: What is web3?
First, let’s get some definitions down–web3 is a collection of technologies, concepts and design patterns. It’s a new way of thinking about products and software. Some of the concepts are familiar, and already exist in the current development landscape (web2). Some are quite different.
The primary backend difference is one of decentralization. In web2 systems, applications and services store their data on trusted servers. Access to that data is managed by the owner of the server. In Web3, that data is distributed, either across networks of peer-to-peer nodes, on a distributed ledger called a blockchain, or on both as a crypto-economic protocol. Participants are incentivized to provide the highest quality data with a financial reward — a token that can function as a tradable currency.
You could think of this as being like a governance layer that runs on top of the existing internet. This layer allows two users who don’t know each other to make and settle agreements over the web.
On the frontend, web3 is a lot like web2, but often more colorful, lighthearted and futuristic looking. In the future, web3 apps may need to tone down their quirky design choices and conceal the “under the hood” tech more, but for now there’s definitely more room for experimentation than you may be used to.
Step 1: Get Up and Running
You’ll want to get a solid foundation in some of the basic ideas and concepts. These resources will be the base on which you’ll build out your personal path.
An Engineer’s Hype-Free Observations on Web3 (and its Possibilities) This article comes from a group of engineers who explored web3. They make some great observations about the core concepts, and what they might mean for the future of the internet. Valory co-founder David Galindo says “I think this is good learning material for non-crypto software engineers.”
If that all sounds good to you, let’s go deeper.
If you’re totally new to blockchain here’s a fun interactive demo that demonstrates the concept visually.
Distributed Systems: a lecture series comes recommended by Valory co-founder David Minarsch, who says it’s “Particularly interesting for engineers — but really for everyone”. Nice!
You’ll also want to understand how consensus systems work: we recommend checking out this.
Once you’re feeling good about what you’ve learned, you’ll want to choose a language(s) and ecosystem as your entry point. Luckily, many of the world’s most popular languages are used widely in web3. We’ll focus primarily on Python, since that’s what we’re using the most, but there’s many pathways you can take.
Step 2: More Specific Resources
The Ethereum Ecosystem
Ethereum is one of the largest blockchain ecosystems out there, and many dapps are built for, or on top of, Ethereum. A great place to start would be the official Intro to Ethereum.
We can also recommend Mastering Ethereum by Andreas M. Antonopoulos and Gavin Wood. This book is open source and can be read for free.
Solidity is the primary language used for smart contracts on Ethereum.
CryptoZombies This interactive tutorial will teach you how to make smart contracts by creating your own game and comes recommended by David M.
Solidity By Example does what it says on the tin: what you can do with Solidity, presented as simple examples.
Here’s a great thread that covers Solidity for people with a slightly higher level of experience in programming.
Here’s some simple, intentionally limited versions of popular protocols and web3 apps — David M says this is “great for learning Solidity”.
Solidity, Blockchain, and Smart Contract Course — Beginner to Expert Python Tutorial For this course, you should have at least a beginner’s understanding of Python. It’s a full 16 hours! Team member Viraj says it’s “a good place to start. It covers the basics of smart contracts and web3py. This course is provided by chainlink and it also covers topics such as off-chain ecosystems and data oracles.”
Here’s the documentation for Python Brownie. Brownie is a Python framework for deploying smart contracts. This lighthearted but still informational video from Patrick Collins will help you get started. If you prefer to read, here’s a blog post he’s created.
Web3.py This is a popular Python library for interacting with Ethereum.
Ethereum for Python Developers Here is the official guide from the Ethereum foundation on interacting with Ethereum using Python.
Our Documentation and Quickstart Guides
If you’d like to dive into what the Valory team is building with Autonolas, start here: this blog post outlines the vision, and how our open middleware layer will allow devs to go beyond the existing limitations of off-chain development to create the next generation of crypto-native apps.
Next, we’ve set up quick start guides where you can try out one of the forked technologies that are a part of our stack, the open-aea framework. There’s a guide for beginners, intermediate and advanced users.
Step 3: Connect with Others
You probably already know this, but it’s worth repeating: Twitter is huge for web3 projects, news and community building. If you want to get into this space, you have to be on Twitter. You’ll want to follow at least a few accounts that regularly post about the things you find most interesting.
Here’s some follows to get you started:
Of course, you should strike out on your own and find and follow some accounts that appeal to you specifically. If you see a good retweet, go check out the original account and drop them a follow. Don’t be shy about replying and asking questions, either — Crypto Twitter (“CT” for short) is a friendly bunch and this is a great way to learn and build connections.
Discord communities are huge in web3. It’s a good idea to join the Discord for any project or tool you find interesting, and you may also want to check out some of these communities for builders and developers:
Buildspace has projects, resources and a strong community. There’s even an “intro” project for people looking for something entry level.
Developer DAO’s invites are currently closed, but it’s worth joining and following them on Twitter to know when they open up again.
CryptoDevHub has resources and channels for all levels of devs.
Web3 University is one of the larger Discords in the space, with lots of resources and opportunities to learn and connect.
Be cautious with DMs on Discord — you may wish to adjust your privacy settings so only your friends can DM you. Scams and phishing attacks, sent as DMs from strangers, are unfortunately a well-known problem in Discord communities, so stay safe!
Step 4: Time to Build
Once you’re feeling familiar with the tech, get started on your own personal project. Make anything you like that shows off what you’ve learned, what you’re interested in and what makes your approach uniquely yours.
Share your work, and consider “building in public” with regular updates as you go.
Looking for a more structured pathway?
If you’re already familiar with Python, you may be a good candidate for our Autonolas Academy.
The Academy is a self-paced learning experience, with the option, on completion, to apply for a more intensive, cohort-based Builder Track. The program is designed to teach you everything you need to know to develop your own apps and services using our framework. You can get started with those materials here.
There you have it: we hope these resources are helpful to you and that you enjoy your journey into web3! We also want to invite you to follow us on Twitter and join our Discord to connect with a growing community of forward thinking and friendly developers, designers and builders. See you out there!