1/5
_Follow along with this video:_ --- ### Best Practices Let's kick things off with some resources and best practices to succeed in this course. ### Links and Resources [**Course GitHub Repo**](https://github.com/Cyfrin/assembly-evm-opcodes-and-formal-verification-course) - This repo should serve as your guide as you progress through each section of the course. Links to `what's covered`, `supplementary resources`, and the `individual repos` of each section can be found here. [**Cyfrin Discord**](https://discord.gg/cyfrin) - Join an active and growing community to meet fellow students, converse with auditors and receive support along the way. > ❗ **NOTE** > Each section's respective repo will have its own `discussions` tab. Please use this to raise questions, doubts or concerns! Please leverage `discussions` for technical questions as often as you can so others may learn from your question! ::image{src='/formal-verification-0/best-practices/best-practices1.png' style='width: 100%; height: auto;'} Given the advanced nature of this course, I expect everyone to have some idea as to how to formulate and ask good questions. For those looking for a bit of guidance in this respect, the course repo contains guidelines you can follow in [**how-to-ask-a-question.md**](https://github.com/Cyfrin/assembly-evm-opcodes-and-formal-verification-course/blob/main/how-to-ask-a-question.md) and [**how-to-answer-a-question.md**](https://github.com/Cyfrin/assembly-evm-opcodes-and-formal-verification-course/blob/main/how-to-answer-a-question.md) This space moves quickly and things are always changing, because of this some recorded content may become inaccurate. Keep an eye out below each video for an `Updates` section if you come across any inconsistencies in the course content. If you don't find an update there, consider submitting feedback, or double checking your issue in GitHub discussions! 🙏 ::image{src='/formal-verification-0/best-practices/best-practices2.png' style='width: 100%; height: auto;'} ### Tips - **Code Along With Me:** Actually taking the steps and going through the motions is how you build the memory recall and skills necessary to actually use these methodologies in the real world. Follow along in your own editor by cloning the section repos and get the most out of each lesson. - **Take Breaks:** Too often do people try to rush through content and complete everything all at once. **Don't do this.** Your brain doesn't work this way! Your brain needs time to absorb information. Every 20-30 minutes consider taking 5 minutes of downtime to truly internalize the content. Rushing through things will not allow you to retain the information. - **Pace Yourself:** Go at the speed that makes sense for you. Everyone is going to have their own speed, their own level of experience and their own circumstances that all add up to a unique pace of learning. What makes sense for one person may not make sense for you, and that's ok. Find consistency without it feeling forced. - **Customize Video Playback:** Updraft allows you to set the speed at which the video is played, so if I'm talking too quickly - slow me down! Additionally, Updraft supports an ever growing list of closed caption languages, so customize your experience in a way that removes the friction from learning. ::image{src='/formal-verification-0/best-practices/best-practices3.png' style='width: 100%; height: auto;'} > ❗ **NOTE** > If you would like to contribute subtitles for your native language, please reach out via [**GitHub Issues**](https://github.com/Cyfrin/assembly-evm-opcodes-and-formal-verification-course/issues), or [**Cyfrin Discord**](https://discord.gg/cyfrin) server. - **Bounce Around:** This course is intended to be modular! You needn't complete the content sequentially, feel free to bounce around as you need more or less context for each topic. > ❗ **IMPORTANT** > Repetition is the mother of skill. - **Collaborate:** This space is incredibly collaborative. Be sure to join likeminded communities, jump into discussions, and leverage forums and AI to your advantage each step of the way. Communities like [Peerahna](https://peeranha.io/) and [Stack Exchange](https://ethereum.stackexchange.com/) are great to get involved in. I put so much emphasis on networking and resources because often times, knowing where to find answers and how to overcome hurdles is far more important than your smart contract knowledge. Plus, syncing with other people in the space makes it way more fun! Finally, at the end of each section, keep an eye out for optional NFT challenges you can complete to flex your newly learnt skills and verify your completion of the content. With all that out of the way, let's take a look at some valuable prerequisites you should consider having before moving further.
Patrick covers some best practices to prepare us for the advanced content to come.
Previous lesson
Previous
Next lesson
Next
Give us feedback
Course Overview
About the course
Assembly
Writing smart contracts using Huff and Yul
Ethereum Virtual Machine OPCodes
Formal verification testing
Smart contract invariant testing
Halmos, Certora, Kontrol
Security researcher
$49,999 - $120,000 (avg. salary)
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
Guest lecturers:
Josselin Feist
Head of Blockchain at Trail of Bits
Last updated on January 17, 2025
Solidity Developer
Assembly and Formal VerificationDuration: 30min
Duration: 4h 38min
Duration: 3h 57min
Duration: 1h 56min
Course Overview
About the course
Assembly
Writing smart contracts using Huff and Yul
Ethereum Virtual Machine OPCodes
Formal verification testing
Smart contract invariant testing
Halmos, Certora, Kontrol
Security researcher
$49,999 - $120,000 (avg. salary)
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
Guest lecturers:
Josselin Feist
Head of Blockchain at Trail of Bits
Last updated on January 17, 2025
Testimonials
Read what our students have to say about this course.
Chainlink
Chainlink
Gustavo Gonzalez
Solutions Engineer at OpenZeppelin
Francesco Andreoli
Lead Devrel at Metamask
Albert Hu
DeForm Founding Engineer
Radek
Senior Developer Advocate at Ceramic
Boidushya
WalletConnect
Idris
Developer Relations Engineer at Axelar