Основы входа:
- Необходимо базово знать, как работают обычные web 2.0 приложения, понимать, какой код будет выполняться на сервере, а какой на клиенте, как взаимодействуют бекенд и фронтенд;
- Познакомиться с предметной областью: что такое Blockchain - любой бесплатный курс или учебник. Знать, в чем революционное отличие Ethereum от Bitcoin, понимать существующие алгоритмы консенсуса и разницу между ними, знать, что такое смарт-контракт;
- Изучить криптографию Для просмотра ссылки Войди или Зарегистрируйся
- Прочитать документацию по Ethereum Для просмотра ссылки Войди или Зарегистрируйся
- Прочитать документацию по Solidity Для просмотра ссылки Войди или Зарегистрируйся
- Попробовать позапускать примеры смарт-контрактов в он-лайн среде Для просмотра ссылки Войди или Зарегистрируйся, почитать документацию по Remix Для просмотра ссылки Войди или Зарегистрируйся, освоить дебаггер и статический анализатор;
- Изучить библиотеку контарктов Для просмотра ссылки Войди или Зарегистрируйся и их возможности;
- Освоить фреймворк для разработки и тестирования смарт-контрактов, настроить себе локальную среду разработки и тестирования, выбор фреймворка эффективно делать исходя из того, знаете ли вы еще и JavaScript или нет: если знаете - берите hardhat - он проще для входа, если не знаете - берите foundry - он мощнее, и работая с ним можно не знать других языков кроме Solidity.
- Научиться писать юнит-тесты в выбранном фреймворке;
- можно посмотреть 32-часовой курс от FreeCodeCamp Для просмотра ссылки Войди или Зарегистрируйся для обобщения всего вышепрочитанного;
- Для просмотра ссылки Войди или Зарегистрируйся - изучить документацию и уроки от Alchemy.
- выучить все типовые уязвимости смарт-контрактов, отработать их в своей локальной среде разработки;
13. Порешать задачки
Для просмотра ссылки Войди или Зарегистрируйся
- порешать все задачи с Для просмотра ссылки Войди или Зарегистрируйся;
Разработчик со знанием одного лишь Solidity нужен на проектах очень редко, поэтому дальше нужно определиться, что вам ближе: фронтенд, бекенд или DevOps и в соответствии с этим вам нужен разный стек:
1.1 Если вам ближе фронтенд, нужно ориентироваться на вакансии, которые обычно называются Web3 - разработчик.
- изучить нативный javascript хотя бы до уровня написания обработчика нажатия кнопки, знать, как работают async await, изучить фронтенд фреймворк типа React;
- прочитать документацию по библиотеке web3 Для просмотра ссылки Войди или Зарегистрируйся, а так же по библиотеке ethers.js Для просмотра ссылки Войди или Зарегистрируйся
- научиться интегрировать популярные кошельки (хотя бы metamask) верстку сайта и вызывать с фронтенда функции смарт-контракта;
1.2 Если вам ближе бекенд, нужно ориентироваться на вакансии, которые обычно называются: бекенд-разработчик <такой-то язык>, а в описании вакансии обычно упоминается, что специфика проекта связана с блокчейн.
1. Выучить 1 язык/платформу из списка (эти языки чаще всего используются для бекенда в блокчейн-проектах): node.js (JavaScript/TypeScript), Python, Java, Kotlin, C#, Go - их используют +- одинаково часто, но по ощущениям Go начинает лидировать.
- Найти библиотеку для работы с web3 для выбранного языка и разобраться, как на ней взаимодействовать со смарт-контрактами Solidity
- Разобраться как написать на выбранном языке написать интеграционный микросервис, который будет работать между централизованным бекендом приложения и блокчейном.
1.3 Если вам ближе DevOps, то нужно смотреть на вакансии, которые обычно называются Blockchain Engineer - они самые высокооплачиваемые и самые сложные.
- немного познакомиться с Linux: Ubuntu, основами командной строки;
- немного поучить Python в сторону автоматизации рутинных операций системного администрирования;
- разобраться как используя Kubernetes поднять свою Blockchain - сеть на основе популярных Ethereum-клиентов Для просмотра ссылки Войди или Зарегистрируйся, как поддерживать консенсус в сети.
- разобраться, на чем написаны популярные опенсорсные Ethereum-клиенты, немного поучить эти ЯП и попытаться контрибьютить в эти клиенты (потому что в реальной работе придется их модифицировать).
- Научиться настраивать GitLab пайплайн для web3-фронтенда, централизованного бекенда, модифицированного Ethereum-клиента.
Вне зависимости от выбранного направления развития:
- выучить алгоритмы - подойдет любой курс или учебник.
хороший бесплатный курс от Яндекса:
Для просмотра ссылки Войди или Зарегистрируйся
- Порешать задачки с Для просмотра ссылки Войди или Зарегистрируйся на эти алгоритмы, помнить наизусть сложность алгоритмов, потому что следующим шагом мы идем на собес;
- сходить на собес, ходить на собес после каждого следующего шага и кроме выполнения следующих шагов, разбирать для себя вопросы, на которые не смог ответить на собесе;
- поучаствовать в любом хакатоне: Для просмотра ссылки Войди или Зарегистрируйся и заодно написать пет-проект (идеи: NFT-коллекция, ферма, приложение для криптовалютного арбитража, платежный крипто-модуль для интернет-магазина на любом движке, свой токен ERC20, приложение для постановки крипто-кошельков на автовывод);
- устроиться на работу (уже давно должны взять) и дальше уже расти в том более узком стеке, в котором работает команда;
- если не удалось устроиться на нормальную работу - можно пойти работать за еду в стартап, которых огромное количество;
- где искать работу и проекты:
Кроме того, существует направление аудита смарт-контрактов Solidity и децентрализованных приложений. Отличный бесплатный курс:
Для просмотра ссылки Войди или Зарегистрируйся
Так же на Boosty по подписке Программист доступны материалы моих курсов, которые я раньше давала для группы:
by: Юлия Бедросова.