-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathoverview.html
More file actions
34 lines (19 loc) · 2.42 KB
/
overview.html
File metadata and controls
34 lines (19 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<page title="Course Overview" layout="/chapters/_layout.html">
<div class="prose">
<template type="learn-evm-markdown">
# Welcome to the Jungle
Congrats on making it here, Solidity developer and/or EVM enthusiast. It’s time to level up your fundamental, low-level, and intricate knowledge of the beloved platform you build on day after day.
In this course you will learn **binary** and **opcodes**. You will learn **stack** and **memory manipulation**. You will learn how to think in **32-byte words**, how to **wrangle bits**, and how to **emulate data types** with raw 0’s and 1’s.
You will gain the ability to *pierce through* Solidity code, seeing and understanding the opcodes underneath, allowing you to make conscious and strategic decisions on **optimizing gas costs** of your smart contract functions.
You will gain the power to **write smart contracts without Solidity**, and – like a martial art – hope to never see the day when you need to use it.
In summary, this course will enhance your development skills, *particularly* if you are a Solidity developer.
## Why learn the EVM?
A few more reasons to further your understanding of the EVM are:
- **Gas optimizations.** You don’t have to [go crazy](https://twitter.com/varunsrin/status/1567981221376053248) to lower your contract’s gas costs. Simply knowing which opcodes your code is running under the hood will allow you to make small changes for significant gains.
- **Solidity is a weird language.** Until you understand the EVM, that is. Then Solidity’s quirks will make sense to you.
- **Advanced smart contract design patterns.** You’ve probably seen an `assembly {}` block in an OpenZeppelin contract before. This is sometimes necessary for advanced patterns, such as different types of upgradability. Taking this course will help you better understand the benefits and limitations of these patterns.
## From Jungle to a Walk in the Park
As you’ll soon discover while doing the course, learning and writing EVM opcodes is **surprisingly manageable**. Low-level binary is scary to a lot of developers, and understandably so; most machine instructions are hard to read and understand for the most popular platforms.
However, compared to other machines, the EVM is *easy mode.* With the number of opcodes being less than 200 (vs thousands), learning the EVM becomes a matter of simple study – assuming you have the right study material of course 😉
</template>
</div>