Интервью Senior Engineer в Polygon Labs Андриян Честных | robot_dreams
Для отслеживания статуса заказа — авторизируйтесь
Введите код, который был выслан на почту Введите код с SMS, который был выслан на номер
 
Код действителен в течение 5 минут Код с sms действителен в течение 5 минут
Вы уверены, что хотите выйти?
Сеанс завершен
На главную
«‎Блокчейн — это большая деревня»: трудно ли войти в криптоиндустрию

«‎Блокчейн — это большая деревня»: трудно ли войти в криптоиндустрию

И что поможет найти первую работу

Андриян Честных, Senior Engineer в Polygon Labs и лектор курса Solidity для блокчейн-разработки, имеет более 20 лет опыта в разработке, из них 12 — на позиции Team/Tech Lead. Андриян много работал с реляционными базами данных и Business Intelligence системами, а семь лет назад изменил направление и перешел в блокчейн.

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

Далее со слов Андрияна

Андриян Честных, Senior Engineer в Polygon Labs и лектор курса Solidity для блокчейн-разработки

Раньше крипта воспринималась как дорогая игрушка

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

Разобраться в этой сфере было сложнее, чем сейчас, но был намного меньший объем информации, которую нужно знать для работы. Я учился самостоятельно: никаких курсов или книг не было. Читал форумы, общался, ходил на все конференции, причастные к сфере. В 2016 году я уже точно понимал, что это перспективное направление, которое будет развиваться, поэтому решил сменить специализацию.

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

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

Сейчас я в основном пишу на Solidity, если мы говорим о той части, которая программирует децентрализованную логику.

Solidity — язык высокого уровня; он компилируется в байт-код, который деплоится в сеть. При этом в любом проекте, связанном с блокчейном, значительная часть функционала создается с помощью обычных языков программирования — Go, JavaScript, Java.

Смарт-контракты — это абсолютная прозрачность

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

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

То есть если смарт-контракт контролирует аккаунт, то у вас есть гарантия, что вас не заблокируют, — если, конечно, функционала блокировки нет в смарт-контракте. И тот, кто создавал этот смарт-контракт, на это не влияет.

Смарт-контракты пишутся не только на Solidity — есть и другие языки, например Viper. Она, как и Solidity, тоже компилируется в байт-кодEVM, в которую компилируется и Solidity. Но этот язык менее популярен.

Говорят, что тестировать смарт-контракты проще, если сравнивать с сайтами. Но это не так. Это примерно то же, что сравнивать сложность работы молотком или лопатой. Все зависит от конкретного кейса. У смарт-контрактов своя специфика, нужно учитывать возможные векторы атаки, когда вы пишете тесты.

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

Что может облегчить переход в блокчейн

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

Я бы выделил такие пункты, которые могут облегчить переход в сферу блокчейн:

1. Технический бэкграунд. Если вы уже работаете с какой-то технологией, вам будет легче овладевать следующими.

2. Информация о сфере. Сначала следует ознакомиться с разными ресурсами о блокчейне независимо от того, хотите ли вы быть техническим специалистом или нетехническим. Узнайте о современных концепциях, поймите, какими будут ограничения, как работает индустрия в целом, какие существуют платформы и самые известные компании.

3. Основы блокчейна. Найдите релевантные ресурсы (YouTube-каналы, форумы и т. д.) и попытайтесь разобраться с основами.

4. Отслеживание событий. Подпишитесь на новости профильных СМИ, посещайте конференции, связанные с блокчейном.

5. Софт-скилы. Такие же, как и во всей IT-сфере. Это умение планировать время, работать в команде, хорошо общаться.

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

7. Действуйте. Когда вы начинаете учить основы, можно параллельно учить и Solidity. И в какой-то момент вы станете понимать, как связаны процессы. Тогда можно делать какие-то пет-проекты. Вот это и будет практикой. Вы ставите себе задание, выполняете его и выкладываете на GitHub.

Можно также контрибьютить в какой-нибудь проект: по крайней мере вы прочтете код, поймете его логику. Это еще одна грандиозная разница между централизованными и децентрализованными системами. Последние всегда имеют открытый код, потому что это основа комьюнити аудита.

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

Как получить первую работу и успешно пройти испытательный срок

Во-первых, если на ваше резюме откликнулась компания, работающая с децентрализованной системой, можно открыть документацию, GitHub, прочитать смарт-контракты. Вы для себя поймете, интересно ли будет вам работать. И если вы расскажете на интервью, что ознакомились с кодом, — это большой плюс.

курс по теме: Solidity для блокчейн-разработки
Андриан Честных Senior Engineer в Polygon Labs
 

Когда вы пишете код, всегда представляйте себе, что он должен не только работать, но и быть простым в поддержке. Это, кстати, касается любой разработки, не только блокчейна.

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

Если у вас чистый код — вас будут ценить и вам будет проще работать. Есть много ресурсов, посвященных этой теме: можно почитать произведения Роберта Мартина, например, «Чистый код» и «Чистая архитектура».

Уделяйте большое внимание тестированию. Во-первых, это снижение вероятности ошибок в тот момент, когда ваша программа заработает. Во-вторых, поддержка будущих изменений. И третье — тесты должны документировать. Я даже иногда начинаю читать код по тестам: они показывают, что делает сам код.

Как проходит день блокчейн-разработчика

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

Коммуникаций с партнерами в блокчейн-проектах больше. Это связано с тем, что эта область очень быстро развивается.

Еще одно последствие открытого кода, API и системы стандартов индустрии — проектам относительно легко интегрироваться. Поэтому здесь все двигается гораздо быстрее, и может быть даже несколько митингов в неделю. Конечно, если вы новичок, то сначала с вами будет ходить более опытный сотрудник, а вы, скорее всего, будете только слушателем, пока не наберетесь опыта.

Преимущества работы в сфере блокчейн и будущее технологии

Вы оказываетесь в очень прозрачной среде. Это как большая деревня — вы всех видите 🙂 Если появляется что-то инновационное, у вас есть возможность моментально с ним познакомиться: обмен знаниями происходит гораздо быстрее.

В сфере блокчейн очень много талантливых людей и тех, кто готов поддерживать деньгами эти таланты. Здесь родился целый класс инноваций и технологий, связанных с криптографией. Пример такой технологии, которая появилась и была проспонсирована в блокчейн-среде, — Zero Knowledge Proof (Доказательство с нулевыми разглашениями). То есть вы можете доказать, что вам больше 18 лет и вы не живете в россии, например. Но вы не покажете, ни сколько вам реально лет, ни то, что вы живете в Канаде.

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

А еще, возможно, блокчейн-технология может повлиять на баланс между властью и обществом. Условно говоря, можно использовать эту прозрачность, гарантию того, что логика не меняется для контроля власти. К примеру, деньги в тендерах. Прозрачные выборы. Это сложно претворить в жизнь, но, возможно, это так и будет в будущем.

Ещё статьи
Или как правильно подготовиться к техническому собеседованию
Расширения для браузеров, облачные сервисы и библиотеки.