# Overview
# Introduction
Welcome to our beginner's tutorial for smart contract developers interested in learning more about the Ethereum Virtual Machine (EVM). This tutorial is aimed towards developers who are already familiar with smart contracts and have had some experience programming in a smart contract language such as Solidity or Vyper.
In this tutorial, we'll be covering:
- The basics of the Ethereum Virtual Machine
- The basics of writing assembly in Huff
- "Hello, World! in assembly
- Simple Storage in assembly
- Setting up a Foundry environment to write, test, and deploy your code
- Deploying your contracts to various Ethereum testnets
This tutorial loosely follows the original Hardhat tutorial (opens new window).
To follow this tutorial you must:
- Be proficient in Solidity/Vyper (opens new window).
- Understand how smart contracts (opens new window) work.
- Be competent using git (opens new window).
- Have at least read the Foundry (opens new window) docs or developed contracts with it.