Профессия разработчика программного обеспечения обширна и динамична, изменения происходят постоянно и очень важно отслеживать тенденции. Новым трендом 2017-2018 года смело можно назвать блокчейн (БЧ). Бесчисленные ICO, небывалый рост капитализации криптовалют привлекли сюда очень много внимания. Так возник большой спрос на рынке труда, и индивидуальные разработчики/cофтверные компании активно начали изучать предметную область и предлагать свои услуги. Сейчас уже можно сделать определённые выводы по професии и по рынку, о которых и хотелось бы поговорить.

Если вы тоже интересуетесь, то добро пожаловать под кат, расскажу своё видение ситуации.

Если всё максимально упростить, то блокчейн-разработчик — это такой же разработчик софта, только разобравшийся в ещё одной технологии или выучивший ещё один синтаксис условно нового языка программирования. Но такие короткие статьи писать неинтересно, поэтому мы попробуем классифицировать предметную область, немного поговорим о зарплатах, обязательно — о стеке и посмотрим короткие ответы действующих БЧ разработчиков.

Что же такое блокчейн?


Итак, сначала давайте поговорим о том, что же такое блокчейн. Подразумеваем, что у всех уже есть понимание, поэтому углубляться не буду, а приведу два определения, которые мне больше всего нравятся. Одно простое, второе сложное.

Первое
Блокчейн — это иммутабельная децентрализованная база данных.

Второе
A blockchain is a “cryptographically secure transactional singleton machine with shared-state.” [1]

Объяснение словосочетаний под катом
“Cryptographically secure” means that the creation of digital currency is secured by complex mathematical algorithms that are obscenely hard to break. Think of a firewall of sorts. They make it nearly impossible to cheat the system (e.g. create fake transactions, erase transactions, etc.)
“Transactional singleton machine” means that there’s a single canonical instance of the machine responsible for all the transactions being created in the system. In other words, there’s a single global truth that everyone believes in.
“With shared-state” means that the state stored on this machine is shared and open to everyone.

Определение взято отсюда — medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369

Простая классификация разработчиков, занятых в блокчейн


Давайте попробуем классифицировать.

Классифицировать отрасль по стеку технологий ещё рано, поэтому лучше всего ввести деление по отношению к самой технологии:



Опосредованное отношение


Опосредованное означает, что разработчику не приходилось погружаться в саму технологию, и она для него используется скорее как предметная область. Например, кто-то работает с автомобильной промышленностью, а кто-то автоматизирует рекрутинг. В данный пункт можно включить создание лендингов для криптовалютных проектов, использование готовых API от криптовалютных шлюзов. Данная категория нам не особо интересна.

Прямое же отношение к блокчейну можно, в свою очередь, разделить на использование результатов технологии и на создание и развитие технологии. Например, кто-то пользуется elastic search, а кто-то его пишет/развивает. Та же самая история здесь. Блокчейн — это не rocket science, а просто ещё одна технология, которой довольно просто пользоваться, если вы, конечно, не хотите разработать свою сеть.

Прямое отношение (Результаты технологии)


В данную категорию, например, можно отнести написание смарт-контрактов на языке Solidity. Смарт-контракт — это такая штука, которая представляет собой алгоритм типа “if this then that” и которая умеет общаться с внешним миром с помощью специальных оракулов (http://www.oraclize.it/). Например, на смарт-контракте можно написать форвадный контракт на цену биткоина через месяц, и эта сделка будет надёжнее любой биржи, потому что будет заложена полная децентрализация и неподдельность данных. Подробнее можно почитать здесь.

Кстати, малоизвестных специализированных языков программирования для смарт-контрактов создано очень много. Наиболее полный список есть здесь — https://github.com/s-tikhomirov/smart-contract-languages

На всякий случай о том, что такое форвард
Форвард — это один их производных инструментов на финансовом рынке. Форвардный контракт означает, что мы уже сейчас договариваемся о цене и заключаем сделку о покупке/продаже биткоина, но исполнится она только через месяц и в выигрыше окажется тот, кто ближе оказался к рыночной цене.

Подробнее и хорошо о деривативах написано вот в этой статье — geektimes.ru/post/60141

Самый популярный смарт-контракт — на выпуск токена для ICO. Но он стал настолько популярным, что уже есть конструкторы (https://wizard.oracles.org/), и можно всё делать без программирования.

К данному пункту также можно отнести такую работу, как создание личного кабинета инвестора для ICO. Здесь разработчику надо разбираться, как устроены ноды эфира, биткоина, выбрать инструменты и фреймворки.

Сюда же относится написание различных кошельков к криптовалютам, создание биржи для торговли криптовалютами (кажется, каждый второй хочет открыть себе новую :-) ), или даже просто интеграции с биржами для создания своих новых продуктов.

Вклад в развитие технологии


Здесь уже сложнее. Можно провести разделение на тех, кто пишет сам код и на тех, кто занимается проектированием. В том числе теоретическим. Например, надо продумывать консенсус, и здесь вам поможет теория игр. Или продумывать экономику, и здесь уже неплохо бы иметь экономическое/финансовое образование.

Сами разработчики блокчейн-нод часто используют С++, Go. Иногда Rust и ещё реже Haskell. Разработчики ядра обычно обладают математическим образованием, им важно также знать криптографию.

Какие сложности и нюансы


Как это ни парадоксально, но в блокчейн-разработку легче входят front-end программисты. Причина очень простая — привыкли, что у них слой данных абстрактный. Back-end разработчикам и особенно разработчикам баз данных труднее. Они привыкли, что БД надо защитить, следить за консистентностью, целостностью. Надо понимать, как хранить информацию. А ведь в блокчейне всё не так. Тут вам:

  • Открытость;
  • Заложенная иммутабельность;
  • Безопасность.

И всё уже разработано и придумано до нас. Просто используй.

А вот Solidity хорошим разработчиком учиться за 3-4 дня. Он очень простой. Но надо понимать, что важно знать best practices, быть в курсе последних уязвимостей, уметь проводить аудит.

Сложно перейти в блокчейн тем, кто не любит новое и консервативен. Часто проекты требуют интересных решений, для которых стандартных методов не достаточно.

Подытожим, чем же можно заниматься. Попробуем просто перечислить, чем же может заниматься БЧ-разработчик:

  • Пишет смарт-контракты;
  • Занимается разработкой блокчейн-нод;
  • Разрабатывает концепт, занимается теоретической частью;
  • Проектирует консенсус (узкая специализация под определённые задачи);
  • Разрабатывает различные dAPP-продукты.

Как обучаться


На самом деле это тема отдельной статьи, если коротко то в интернете есть уже и платные и бесплатные курсы.

Как можно поучаствовать на практике после того, как обучитесь.

Биткоин появился благодаря шифропанкам (подробнее об истории здесь — https://www.ozon.ru/context/detail/id/135325988/), а это значит, что у основной технологии, стоящей за биткоином (блокчейн), очень хорошее коммьюнити. Что, в свою очередь, указывает на большое количество опен-сорса, простого и сложного. Например, у проекта DeCenter есть прекрасный бот для Телеграма (https://github.com/DeCenterOrg/moneebot). Он же эфир кошелёк. Репозиторий уже давно не обновлялся. Можно помочь в развитии. Например, очень нужно внедрить туда backup и восстановление кошелька по 12 словам (Стандарты BIP-32, BIP-39, BIP-44).

А ещё можно в core биткоина закоммитить, но нужно постараться, если хотите, чтобы ваш pull request приняли.

Так же ниже представлены ответы блокчейн-разработчиков, которых я знаю. Надеюсь, их комментарии вам помогут понять эту новую отрасль получше.

Короткие ответы блокчейн-разработчиков


Константин, freelance-разработчик
Как ты начал заниматься блокчейном?
Случайно получилось, уже тогда я фрилансил, и текущий заказчик предложил проект, связанный с блокчейном. Пришлось разбираться с нуля, поначалу было сложно. Это был 2015 год.

Чем тебе конкретно довелось заниматься в БЧ?
Делал поддержку мультиподписных адресов в bitcoinJ. Клиент для биткойна на Java, который используется в большинстве андроид устройств. Ещё для интересного проекта COLU делал интеграцию их протокола и их COLU SDK в opensource-кошелёк в copay. Покер ещё делал на Ethereum.

Нравится ли?
Нравится, если проект стоящий. А так есть большие ограничения и очень много ерунды сейчас вокруг блокчейна.

Считаешь ли ты, что зарплаты блокчейн-разработчиков выше?
По моим ненаучным наблюдениям, да, больше. Но если честно, считаю, что сеньор-разработчиков сейчас очень мало, можно по пальцам пересчитать.

Какие советы можешь дать тем, кто хотел бы начать?
Если человек хочет, то и так начнёт. Solidity, например, очень простая штука) Mastering Bitcoin прочитать можно.

Игорь Гуламов, VP Engineering in Bankex
Как ты начал заниматься блокчейном? Чем тебе конкретно довелось заниматься в БЧ?
Начал активно следить ещё в 2012, с 2017 начал работать, написал несколько смарт-контрактов. Сейчас фулл-тайм в блокчейне, но не совсем как разработчик, скорее как руководитель.

Нравится ли?
Да. Интересно, потому что блокчейн даёт новые экономические инструменты, анонимность. Это технология, которая привносит много хорошего в жизнь.

Считаешь ли ты, что зарплаты блокчейн-разработчиков выше?
Сейчас, во время хайпа, точно выше. До хайпа зарплаты были как у программистов на каком-нибудь эзотерическом языке типа Haskell.

Какие советы можешь дать тем, кто хотел бы начать?
Участвовать в опенсорсных проектах, в том же эфириуме. Например, есть проект магазин чисел. На гитхабе есть большая статья, как программировать на Solidity. Можно с неё начать — https://github.com/ethereum/wiki/wiki/%5BRussian%5D-%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D0%BE-Solidity

https://ownanumber.github.io/

Sergey Zenkov, System Architect and Lead developer with blockchain experience
https://www.linkedin.com/in/sergey-zenkov-1b0713b2
Как ты начал заниматься блокчейном?
Много лет занимался веб-разработкой. Интересовался блокчейном давно, но без конкретных применений. Однажды друзьям нужна была помощь в этой сфере и я согласился принять участие в блокчейн проекте. Сейчас большая часть работы уже связана с dapp приложениями.

Чем тебе конкретно довелось заниматься в БЧ?
В основном пишу смарт-контракты и провожу code-review чужого кода. Участвовал также в проектах по созданию кастомного блокчейна. Периодически приходится проводить R&D исследования для различных проектов связанных с БЧ.

Нравится ли?
Да, отрасль новая. Мысли и подходы нужны другие, а это всегда интересно. Люблю изучать новые технологии и перспективные направления.

Считаешь ли ты, что зарплаты блокчейн-разработчиков выше?
Зависит от того, чем именно занимается блокчейн-разработчик. В целом, думаю, да, выше на текущий момент. Дальше уже будет видно по тому как будет развиваться отрасль.

Какие советы можешь дать тем, кто хотел бы начать?
Главное — читайте документацию и научитесь добывать нужную для работы информацию. Для работы со смарт-контрактами нужно прочитать всю документацию по solidity, truffle, OpenZeppelin, Infura и нужных для работы в truffle: chai (библиотека для asset) и mocha (тестовый фреймворк).

Критически важным является тестирование кода в testnet (ROPSTEN, KOVAN, RINKEBY)
Рекомендую читать побольше чужого кода, анализировать различные бизнес-кейсы интеграции блокчейна в бизнес-процессы, использовать актуальные паттерны разработки и следовать code-style выбранного стека. Следите за изменениями в отрасли и за появлением новых инструментов для разработчиков.

После изучения Ethereum и EVM, погружаться в другие блокчейны.

Заключение


Как видим, профессия блокчейн-разработчика пока в процессе формирования. Многое ещё в индустрии необходимо будет пройти, доработать и стандартизовать. Но уже сейчас есть понимание, что востребованность, а значит оплата на рынке труда определённо выше. К текущему моменту уже есть понимание как войти в профессию, где обучаться.

Даже если вы совсем не верите в блокчейн, а биткоин считаете самым большим пузырём, то всё равно рекомендуем присмотреться к технологии поближе, хотя бы с технической точки зрения.

Комментарии (5)


  1. balexa
    29.11.2018 17:00

    Что-то я не заметил что зарплаты выше. Но хайпа много, да. Последние пару месяцев мой линкедин просто засыпали эйчары предлагающие должность синьор-стаф-чиф-лид-блокчейн-девелопера аж за 180 тысяч в месяц и печеньки.


    1. NikMelnikov Автор
      29.11.2018 17:24

      ну это немного


      1. balexa
        29.11.2018 17:26

        О том и речь. «Классические» компании более надежны и предлагают больше.


  1. j8kin
    29.11.2018 17:16
    +2

    Рынок ICO схлопнулся к середине 18 года. 90% ICO были признаны мошенническими и не принесли бабки вложившим. Сейчас пена сходит, но обратного отскока и денег в ICO проектах пока нет. Вместе с этим ушло большинство проектов на блокчейне. Почти все токены — мусорные посмотрите хотя бы на www.coinmarketcap.com.
    На данный момент с введением multi-owner контракта стало сложнее автоматически тестировать деплойнутые контракты через myetherwallet. Причем имхо я не увидел в этом механизме суперположительные моменты, а кривость тестирования через метемаск прямо убила.
    Поэтому я бы не рекомендовал входить сейчас в блокчейн на профессиональном уровне, только для интереса. Возможно выстрелит, но не сейчас.
    С этой статьей вы на полтора года запоздали, даже может больше.


    1. NikMelnikov Автор
      29.11.2018 17:25

      я её писал в феврале примерно, но по опредлённым причинам не было возможности опубликовать.