Небольшой роадмап для начинающих
Перед стартом первого модуля в чате было предложение о том, чтобы написать небольшой роудмап для начинающих свой путь в разработке смарт контрактов. Думаю, сейчас он будет полезен для тех, кто хотел бы присоединиться ко второму модулю курса, пройдя базовые темы самостоятельно, или для тех, кто вообще хочет учиться сам.
Я уже писал про погружение в Solidity и высказывал свое мнение о популярных языках разработки, поэтому тут добавлю еще следующее.
Многие, исходя из сообщений в различных web3 группах, приходят в эту сферу с разными целями:
1. Научится создавать DAPP и писать смарт контракты;
2. Запустить свой проект / биржу;
3. Слышали про выплаты в конкурсных аудитах и хотят начать зарабатывать там;
4. Хотят запустить свою ноду и майнить крипту;
5. Интересуются блокчейном в целом и хотят научиться создавать свои сети;
6. Думают быстро разбогатеть на крипте, торгуя на бирже;
7. Планируют создать своего defi бота;
Я специально разделил темы пробелом, чтобы сделать акцент. Последние 4 либо мало связаны с Solidity, либо вообще далеки от него. Тут, к сожалению, подсказать по обучению много чего не смогу.
Для создания блокчейн сетей и создания ботов могут потребоваться и другие языки, например, Rust или Python (тут лучше копать в этом направлении). Биржевая торговля - вообще мимо этого канала. А про запуск своей ноды можете спросить в чате, есть куда более опытные участники, которые могут подсказать, с чего начать.
Поэтому, если вам интересны эти 4 темы - к сожалению, ничем помочь тут не смогу.
А вот для первых трех - вы попали по адресу на этот канал - можно предложить такую схему начального обучения.
1. Типы данных в Solidity. Это такие "кирпичики", из которых состоит сам язык. Без должного навыка и понимания их работы никакое обучение дальше не пойдет. Точнее, пойдет, но из-за большого количества нюансов вы совершите много ошибок, которые в конечном итоге приведут к потере ваших денег. Это действительно важная тема, хоть и кажется простой.
Обратите особое внимание на сложные типы данных: array, mapping, struct и enum. А также как они работают друг с другом.
2. Функции, области видимости и циклы. Когда закончите с типами данных, можно переходить к изучению функций. Начните с самых простых: прибавление / вычитание чисел, установка переменных, ввод данных и их вывод из вложенных маппингов и массивов структур и т.д.
3. Интерфейсы, библиотеки и наследования. Другая базовая тема для понимая работы смарт контрактов. Тут необходимо научиться строить связи между контрактами и разбивать код проекта логически, чтобы уменьшить его и сделать более читаемым.
4. Низкоуровневые вызовы: call, staticcall, delegatecall. Первое касание с опкодами EVM и одни и самых популярных методов, которые используют разработчики в своих прjтоколах. Если с call все более-менее понятно, то понимание работы delegatecall может занять у вас кучу времени. Тем не менее, его потратить стоит, чтобы не нарваться на проблемы в будущем..
5. И вот только после первых четырех пунктов можно приступать к изучению токенов и nft, а именно базовых стандартов ERC20 и ERC721. И тут нужно детально разбирать код контрактов популярных библиотек, типа Open Zeppelin, а также некоторые простые уже существующие токены: USDT, USDC, WETH и т.д. Будет хорошо, если вы сможете сказать, за что отвечает буквально каждая строка в их контрактах и к какому результату приведет выполнение той или иной функции.
6. Далее идут популярные паттерны: голосование, timelock, government, аукцион и DAO. По сути, на этих 5 архитектурных решениях строятся 90% всех протоколов.
7. После этого вы можете перейти к более сложным стандартам ERC, как например, ERC4626 - vaults, или ERC712 - подписи.
Изучение этих семи пунктов может занять у вас продолжительное время. Если хотите присоединиться ко второму модулю, то достаточно будет пройти первые 4 темы.
Как и всегда я очень рекомендую канал Ильи, где хорошо объясняются базовые темы по Solidity:
https://youtu.be/8A8-7Ks26yY?si=6BCsvfEl82TkHfR9
Post #1114
1.88K
- 🔥 13
- ❤ 5
- 👍 4
- ❤🔥 1