# 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 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 😉