title | objectives | ||||
---|---|---|---|---|---|
Course Guide |
|
Welcome to the best starting point for developers looking to learn web3 and blockchain!
Typically, in older systems, people interact with each other through third-party platforms:
-
User accounts are stored on large platforms like Google, X (formerly known as Twitter), and Meta (Facebook, Instagram). These accounts can be removed at will by the companies, and items 'owned' by these accounts may be lost forever.
-
Accounts that store and transfer value - like payment cards, bank accounts, and stock trading accounts - are handled by large platforms like credit card companies, money transfer organizations, and stock exchanges. In many cases, these companies take a piece (around 1% - 3%) of every transaction that occurs on their platforms. They may often slow transaction settlement down, to benefit the organization. In some cases the item being transferred may not belong to the recipient at all but is rather held on the recipient's behalf.
Web3 is an evolution of the internet that allows people to transact directly with each other:
-
Users own their accounts, represented by their wallet.
-
Transfers of value can occur directly between users.
-
Tokens - representing currencies, digital art, event tickets, real estate, or whatever else - are fully under the custody of the user.
Common uses of web3 include:
-
Selling goods and services online with near-zero fees and instant settlement.
-
Selling digital or physical items, ensuring that each item is genuine and that copies are distinguishable from original items.
-
Instant global payments, without the time and expense of traditional money transfer companies.
Solana allows people to transact directly with each other instantly at almost no cost.
Compared to older platforms like Bitcoin and Ethereum, Solana is:
-
Significantly faster - most transactions complete in a second or two.
-
Massively cheaper - transaction fees (referred to as 'gas fees' in older networks) are typically $0.00025 (much less than one penny) regardless of the value of what's being transferred.
-
Highly decentralized, having one of the highest Nakamoto coefficients (decentralization score) of any proof-of-stake network.
Many of the common use cases on Solana are only possible on Solana, due to the high costs and slow translation times of older blockchains.
In this course, you'll:
- Create web apps that allow people to log on using web3 wallets
- Transfer tokens (like USDC, a token that represents US dollars) between people
- Learn to integrate tools like Solana Pay into your existing apps
- Build a film review application, that runs in real-time on the Solana blockchain. You'll build both a web front-end and the onchain program and database for the app.
- Mint large-scale NFT collections
And much more. We're keeping this course updated so as new tech joins the Solana ecosystem you'll find a course right here.
You don't need previous blockchain experience, or Rust knowledge, to follow this course! You do need:
- A Linux, Mac or Windows computer. Windows machines should have Windows Terminal and WSL installed.
- Basic JavaScript / TypeScript programming experience. We'll also use some Rust but we'll explain the Rust as we go.
- Basic use of the command line
- Basic use of git (either via the command line or your favorite GUI)
There are two tracks:
-
Client-side development - building web and mobile apps that interact with popular onchain Solana programs. These lessons cover things like token transfers, minting, and creating clients for arbitrary programs. You will use basic TypeScript skills for this track. If you want to add blockchain payments, NFTs, blockchain provenance, etc. to your apps this is the best track to start with.
-
Onchain program development - creating custom apps that run on the blockchain. If you want to make a new finance or accounting app, use data from outside Solana onchain, or use the blockchain to store arbitrary data, this track is for you. You will use Rust for this track.
Modules cover a particular topic. These are broken down into individual lessons.
Each lesson starts by listing the lesson objectives - ie, what you'll be learning in the lesson.
Then there's a brief 'Summary' so that you can glance through, get a sense of what the lesson covers, and decide if the lesson is for you or not.
Then each lesson has three sections:
-
Overview - the overview contains explanatory text, examples, and code snippets. You are not expected to code along with any of the examples shown here. The goal is to simply read through and get initial exposure to the lesson topics.
-
Lab - a practical project you absolutely should code along with. This is your second exposure to the content as well as your first opportunity to dive in and do the thing.
-
Challenge - another project, with just a few simple prompts that you should take and implement independently.
The lessons here are very effective, but everyone comes from different backgrounds and aptitudes that can't be taken into account by static content. With that in mind, here are three recommendations for how to get the most out of the course:
-
Be brutally honest with yourself - this may sound a little vague, but being honest with yourself about how well you understand a certain topic is essential to mastering it. It's really easy to read a thing and think "yeah, yeah I get it," only to realize later that you actually didn't. Be honest with yourself while going through each lesson. Please don't hesitate to repeat sections if you need to or do outside research when the lesson phrasing doesn't quite work for you.
-
Do every lab and challenge - this supports the first point. It's pretty tough to lie to yourself about how well you know something when you make yourself try to do it. Do every lab and every challenge to test where you're at and repeat them as needed. We provide solution code for every lab, but be sure to use it as a helpful resource rather than a crutch.
-
Go above and beyond - this sounds cliche, but don't just stop at what the lab and challenges ask you to do. Get creative! Take the projects and make them your own. Build past them. The more you practice the better you get.
Alright, that's it for the pep talk. Get after it!