Ваш план изучения кода на пути к деву смарт-контрактов. От нуля до вашего деплоя.
Всем привет, работяги.
Начиная учить код, многие, и я был не исключение, впадают в ступор, задумываясь, что, как и в какой последовательности учить. Какой язык выбрать, что учить после основ, что нужно для написания своего смарт-контракта?
И именно эта статья направлена на то, чтобы поставить вас на путь дева и уяснить все детали. В этой статье вы найдете ответы на эти вопросы. Прочитав её, сможете наконец определиться с изучением кодинга, а так же записать свой план становления девом.
Мой личный тг канал | LCSP DAO | Мои другие соц. сети
Навигация
- Вступление
- База
2.1 План изучения JS
2.2 План изучения Python - Библиотека Web3
3.1 Библиотека Web3 для JavaScript
3.2 Библиотека Web3 для Python
3.3 Инструменты для работы с Web3 - Язык смарт-контрактов Solidity
4.1 Solidity - Заключение
База
Итак, путь каждого дева начинается с выбора основного/базового языка программирования. Тут всё максимально субъективно и все выбирают ЯП под свои нужды. Мой выбор пал именно на JavaScript. Но так же, хорошим кандидатом является Python.
В целом, не важно какой ЯП вы выбрали. И если ваш выбор пал на питон, эта статья всё равно вам подойдет. Ведь это именно план к веб3 деву, а не тех статья.
План изучения JS
Мы можем поделить изучение JS на 3 условные части: База, Продвинутый язык и ещё более Продвинутый язык.
- Базовый JavaScript. Изучение базы позволит вам понимать язык и уже делать каике-либо махинации/решать задачи:
1) Основы. Синтаксис.
2) Числа.
3) Строки.
4) Функции.
5) Массивы.
6) Объекты.
7) Асинхронность.
8) Работа с DOM деревом.
Видео-курс по изучению базовой джавы. - Продвинутый JavaScript. Изучив продвинутый язык вы станете близки к становлению кодером на джаве. Но не web3 кодером, поэтому это ещё далеко не конец пути:
1) Prototype
2) This
3) Замыкания
4) Асинхронность
5) Promise
6) Объекты с Object.create
7) ES6 классы
8) Работа Async, Await
9) Proxy объекты, функуции, классы
10) Генераторы. Symbol iterator, for of
11) Методы массивов
12) Map, Set, WeakMap, WeakSet
13) Запросы на сервер
14) Spread и Rest
15) Деструктуризация
16) LocalStorage
Плейлист по изучению продвинутой джавой. - ЕЩЁ БОЛЕЕ продвинутый JavaScript. Этот пункт небольшой, но ценный. Это заключительная прямая к изучению джавы:
1) EcmoScript. Все нововведения. Видео.
2) Паттерны. Шаблоны проектирования. Видео.
3) Практика. Самый заключительный этап. Есть хороший плейлист из 6 видео с практикой джавы.
План изучения Python
Я лично Пайтон не изучал, поэтому не могу разделить, как я сделал с джавой, изучение на три этапа. Поэтому я вынесу вам ресурсы, а там DYOR)
План изучения Python:
1) Переменные и типы.
2) Списки, словари и множества.
3) Основные операторы.
4) Форматирование строк.
5) Основные операции со строками.
6) Условия.
7) Циклы.
8) Функции.
9) Понимание списков.
10) Классы и объекты.
Плейлист по изучению питона.
Сайт с подробной план-картой изучения языка.
DYOR.
Следующий этап. Библиотека Web3.
Если вы изучили основной язык - поздравляю! Следующие этапы займут куда меньше времени и сил, но не стоит расслабляться. К слову, смарт контракты с одинаковым успехом могут писать как и Frontend, так и Backend разработчики. Так что если вы уже действующий дев и работаете фронтом или бэком, разницы нету.
Библиотека Web3 для JavaScript
Библиотека Web3 для джавы есть как и для фронтенда, так и для бэкенда, если вы хотите писать сервер, который работает с блокчейном на Node.js.
Опять же, библиотека не сложная, так что оставляю вам ресурсы для диора.
Документация web3.js - Ethereum JavaScript API
Библиотека Web3 для Python
Опять же, ресурс предоставляю, все дальше - Dyor. Т.к. это не тех. статья, а лишь ваш план изучения.
Инструменты для работы с Web3
Но нам нужно как-то работать с Web3. Для этого существуют различные инструменты Web3. Рассмотрим некоторые из них, одни из самых важных:
1) Geth - позволяет запустить свою локальную ноду Эфира на удаленном сервере. Делается буквально за пару консольных команд.
2) Remix - онлайн редактор для смарт-контрактов, который позволяет добавлять смарт-контракты в блокчейн. В общем - плейграунд смарт контрактов, там ещё множество функций. DYOR.
3) Truffle - набор инструментов для легкого деплоя ваших смарт-контрактов. Позволяет разворачивать смарт контракты на сервере.
4) Metamask - позволяет авторизоваться в блокчейн-сеть.
5) Securify - инструмент аудита безопасности смарт-контрактов, разработанный Ethereum Foundation и ChainSecurity в 2017 году
На самом деле таких инструментов уйма, и для каждой вашей задачи нужно искать свой, поэтому невозможно в эту главу запихнуть все.
Язык смарт контрактов Solidity
Наконец-то, вы добрались до финишной прямой вашего пути к становлению Web3 девом. Последнее, что нужно выучить - это язык смарт-контрактов. Итак, мы рассмотрим лишь один из них: Solidity (язык смарт-контрактов ETH).
Нужно понимать, что языки смарт-контрактов, это просто высокоуровневые языки с тем же самым синтаксисом. Именно поэтому изучение таких языков, при знании джавы или питона, замет буквально пару дней. А при отсутствии знаний, не больше недели. Ведь у таких языков не шибко большой функционал и учиться легко. Поэтому эта часть, скорее всего, самая легкая в становлении веб3 девом для многих.
Solidity
Solidity это высокоуровневый ЯП для смарт-контрактов, который не отличается синтаксисом от вышеперечисленных ЯП.
Официальная документация Solidity
Так же хочу выделить проект, под названием OpenZepplin. Они написали целый GitHub репозиторий смарт-контрактов. Этот репозиторий будет очень удобен во время изучения Solidity. Например, если хотите узнать как делать свои крипто-токены в сети эфира (ERC-20), вы можете зайти в их репозиторий и найти пример. К слову, OpenZepplin раздают свои смарт-контракты всем, т.е. каждый может воспользоваться ими, чтобы писать свои.
Заключение
Итак, давайте вкратце подытожим всё выше сказанное:
Что вам нужно для написания смарт-контрактов:
- Базовый ЯП: мы рассмотрели JavaScript и Python.
- Библиотека Web3 для вашего ЯП. Ссылки тут.
- Инструменты для работы с Web3.
- ЯП для смарт-контрактов. Мы рассмотрели Solidity.
Надеюсь, я решил вашу дилемму и вы смогли определиться. Если у вас остались какие-то вопросы можете написать комментарий, отвечу на все. А так же буду благодарен вашему фидбэку на статью, подписке на мой личный тг канал, а так же на другие мои соц. сети.К слову, так же в скором времени я планирую выпустить видео на своем ютуб канале по этой же теме, в котором всё будет показано с примерами и на деле. Думаю для многих это будет гараздо удобнее статьи. Поэтому подписывайтесь, чтобы не пропустить.
Всем хард ворка и удачного деплоя!