Protocol Studies Intro
Welcome to introductory course to Ethereum protocol. This module provides general overview of every part of Ethereum protocol. It will help you to learn about each part of Ethereum protocol and gain holistic view of this complex machine. After completing the general intro course, you can continue by diving into your specific areas of interest. The protocol is big and contains many domains of computer science, this is only start of the journey that provides foundation to later deepen your knowledge and start contributing as a developer.
Course structure
This course provides comprehensive introduction to every part of Ethereum protocol. The first module is general overview, introducing main concepts in protocol development, its content gets increasingly more technical. Following modules provide deep dive into each section with much more details about execution and consensus layer.
Make sure to follow each lecture in following sections. Each section has a dedicated video lecture with interactive questions to verify your knowledge and more resources in following pages. For each topic, complete the video lecture by answering questions prompted during the video. Then take your time to study provided resources, you can find suggested resources attached to each lecture that you can use to deepen your knowledge or do a practical exercise. Even more extra materials can be found at https://epf.wiki/. After each section, complete also the self test quiz to solidify your knowledge.
And share your experience with others! If you encounter any issues or need help, use the Discord server to get support.
Journey, not the destination
With this course, you can take your own time and pace to follow what interests you the most. It's not about finishing the whole course as fast as possible and nailing all tests. We do not dictate the way you should approach this course, merely suggest its order. Connect with people interested in the same area and share the journey, help each. Don't use only AI to finish the course, you are not training LLMs but yourself. They can be a great tools of assistance when analyzing specific repo, answering questions about docs etc but you cannot rely on them for niche topics like always changing Ethereum.
Remember, you can watch lectures on faster speed to save time , 1.25 or 1.5x
Pre-reading
Before the program, you should be understand at least some general concepts from Ethereum and computer science. If you are not familiar with basics of using Ethereum or have non experience with software development, we recommend gaining at least some understanding of following:
- Cryptography
- Hashing
- Public key cryptography
- Data structures
- Merkle trees
- Networking, p2p and distributed systems
- Software development basics
- Programming languages, compilers
- Ethereum as a platform
- From a user perspective
- As a dapp developer
Intro resources to get prepared:
These are just general suggestions of domain knowledge you will need. More introductory learning resources can be found in Lecture 1.
Methodology
We critique the student-teacher relation, where a teacher dictates a course schedule to a student who has to learn the material.
- Students are not self led, and instead become reliant on an instructor, instead of developing independently.
- Creativity is supressed since students do not explore and engage with knowledge in a dialectic way.
In our system, we have a system of mentorship. Everybody engages in study and research inside the organization. Subjects are not separated from one another and we encourage people to read multiple subjects, but in a directed way. Our aim is to train leaders, and bring people up. Therefore they must possess:
- Strategic knowledge to be able to make strong macro analysis and direct activity.
- Strong skills to directly affect change themselves.
We emphasize a combination of both. As Marx said: ideas should not gather dust in books. We must put our ideas into action through practice. However blind undirected action is wasted effort. Therefore we seek to foster both aspects in participants.
With the mentorship system, whenever members are studying, they are self directed but under the influence of more senior mentors. If they get stuck, they can ask mentors for assistance to get past difficult concepts or discuss ideas to gain a better understanding. Learning through dialogue is encouraged since it creates stronger bonds and relations between people in the community.