---
title: Course Guide
objectives:
  - understand what web3 is
  - understand what Solana is
  - learn how this course is structured
  - know how to get the most from this course
description: "Understand what web3, blockchains, and Solana are."
---

## Welcome

Welcome to the best starting point for developers looking to learn web3 and
blockchain!

## What is web3?

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.

## What is Solana?

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.

## What do I need before I start?

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](https://aka.ms/terminal) and
    [WSL](https://learn.microsoft.com/en-us/windows/wsl/) installed.
  - Have [node.js](https://nodejs.org/en/download) 20 installed. Windows
    machines should install node.js inside WSL2.
- Basic TypeScript programming experience.
- Basic use of the command line
- Basic use of git (either via the command line or your favorite GUI)

## How do I use the course effectively?

This course is broken down into individual lessons. 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:

1. **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.

2. **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.

3. **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!
