Как, где и зачем учить Solidity?
Смарт-контракты пишут на Solidity, а на небе только и разговоров, что о них. Как я за месяц выучила новый язык программирования и попала на работу в IT, которая поможет менять мир к лучшему.
Background
Интересоваться программированием я начала еще в школе. В 16 поступила на факультет информатики — надеялась, что там меня чему-то научат. Вскоре мои надежды развеялись, я начала прогуливать пары и по чуть-чуть писать код сама. Попробовала работать java developer в одном стартапе — не зашло. До этого я никогда не набиралась смелости называть себя программистом или разработчиком — воспринимала это как хобби, мне просто нравился процесс. В последние два года, забросив код, посвятила себя популяризации науки в проекте 15×4 — серии бесплатных лекций на разные актуальные околонаучные темы. А потом несколько моих коллег выучили Solidity и пошли работать в Ambisafe Software. Их пример вдохновил меня — я вдруг поняла, что возможно за месяц выучить язык программирования, который поможет мне работать в проектах в быстроразвивающейся индустрии, которая уже в корне меняет мировую экономику, а вскоре изменит и весь мир. Я тоже решила попробовать.
Что такое Solidity и зачем он нужен
Solidity — это язык для написания смарт-контрактов, с помощью которых люди могут проводить ICO, открытые голосования, аукционы, продавать разные ценности, выпускать свою валюту и, как оказалось, даже создавать и продавать котиков.
Контракты используются в блокчейн сети Ethereum и у них есть очень важная особенность: каждая строка кода, каждая команда и просто хранение данных имеет свою определенную стоимость в эфире (ETH). Когда ты публикуешь контракт в сеть, то платишь суммарную стоимость ребятам, которые потратили свои вычислительные мощности на то, чтобы твой контракт был в сети.
Как выучить Solidity
Поскольку язык новый, он сам еще находится в разработке. Пока у него очень короткая документация: ее можно прочесть за 8 часов, а за несколько дней уже можно примерно понять, что делать. Но на глубокое изучение любого языка все равно нужно потратить не меньше полугода.
К сожалению, сейчас практически нет другой возможности выучить его, кроме как самостоятельно. При этом, есть большой спрос на разработчиков. И если компания хочет нанять такого, то самый верный вариант — это обучить человека всем тонкостям работы собственнолично и после этого забрать к себе. Именно так и получилось у меня с Ambisafe Solidity School.
Нюансы и сложности изучения Solidity
Для начала работы с Solidity необходимо понимать основы javascript, а лучше — иметь опыт разработки, так как синтаксисы этих языков очень похожи. В любом случае, javascript придется выучить, ведь он все равно понадобится для unit тестирования. Также, нужно знать, что такое объектно-ориентированное программирование, уметь продумывать архитектуру своей программы.
Как я уже говорила, язык все еще находится в активной разработке и его инструментарий иногда глючит. Обучающих материалов мало, самому разобраться сложно и поэтому лучше общаться с ментором, у которого есть опыт разработки. Сообщество людей пишущих на Solidity еще очень маленькое и бывает, что в интернете нет ответа на возникающие вопросы просто потому, что еще никто с таким не сталкивался.
Главная загвоздка Solidity в его подводных камнях. Изучить синтаксис уже давно ни для кого не проблема, но изучить изъяны языка, чтобы уметь их обойти — вот что сейчас важно. При написании смарт-контрактов приходится постоянно думать, какую функцию будет дешевле использовать. А если в архитектуру кода заберется одна маленькая ошибка, то это может привести к потере нескольких десятков миллионов долларов. Вот это действительно экстремальное программирование, а SCRUM и парное программирование — это очень даже безопасно, да простит меня Кент Бек.
Ambisafe Solidity School
О школе я узнала от своих друзей. Я очень хотела поучиться у Леши Матиясевича, известного white hat hacker’а, который совсем недавно во время хакерской атаки спас $31,000,000 от злоумышленников. Учиться у Леши — это получать актуальную информацию о реальных уязвимостях контрактов и постоянно придумывать как их обойти.
Курс проходил онлайн и длился 5 недель. Каждую неделю Леша проводил вебинар и давал задания. Выполнив задание, мы заливали код на GitHub, а Леша делал ревью, указывая нам на уязвимости в безопасности. Во время курса мы создали Telegram-канал, где можно было задавать вопросы Леше и помогать друг другу. Курс закончился, а чат остался, в него продолжают приходить люди, и мы вместе продолжаем разбираться в языке.
Как Solidity меняет мир
Не знаю как у других, но лично мне работа с Solidity помогает воплощать в жизнь свои идеалы. Я думаю, что смарт-контракты — отличная замена стандартным юридическим процедурам, ведь это дешево и безопасно: и нет риска, что одна из сторон обманет другую. В смарт-контрактах исполнитель — это децентрализованная сеть Ethereum, а не человек или компания.
Мне кажется несправедливым, что традиционное привлечение инвестиций — такая дорогая процедура. Для выпуска акций нужно около $500000 долларов, а для проведения ICO — $10000 и еще столько же на маркетинг. Эту сумму два программиста могут накопить за год и открыть свой проект. Надеюсь, что в перспективе это значительно увеличит количество качественных продуктов в мире, ведь даже если хотя бы 20% этих проектов взлетят, это будет гораздо круче, чем ноль. Мне нравится, что смарт-контракты, которые я пишу непосредственно влияют на развитие этого процесса.
Работа в Ambisafe Software
Мой интерес к Solidity также связан с желанием работать в Ambisafe Software, ведь идеи компании резонируют с моим мировоззрением. Ребята уже меняет мировую экономику, а мне с детства хочется участвовать в чем-то глобальном и значимом. Я хочу жить в мире, где люди могут открыть свой бизнес без взяток, бюрократии и кумовства. И сейчас Ambisafe Software приближает мир к этому идеалу. Мне хочется, чтобы это все продолжало существовать.
Сейчас я помогаю писать контракты для проекта, который занимается продажей недвижимости через блокчейн. В Ambisafe Software собраны гениальные умы и я думаю, что на самом деле не так важно, над каким проектом ты работаешь, а важно с кем именно ты работаешь: с такими людьми мы любой проект сделаем выдающимся.
28 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів