Как, где и зачем учить 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 собраны гениальные умы и я думаю, что на самом деле не так важно, над каким проектом ты работаешь, а важно с кем именно ты работаешь: с такими людьми мы любой проект сделаем выдающимся.
Подобається Сподобалось 2
До обраного В обраному 0
Язык программирования Solidity
Solidity — статично-типизируемый, объектно-ориентированный, высокоуровневый язык программирования для написания смарт контрактов исполняемых Ethereum Virtual Machine.
Смарт контракты это программируемые соглашения, которые хранятся в блокчейне и автоматически исполняются, когда выполняются условия, определенные в коде контракта.
С помощью смарт контрактов делают NFT-сейлы, проводят голосования, устраивают ICO, разрабатывают токены, децентрализированные игры и обменники. Поэтому на фоне хайпа криптовалют язык программирования Solidity быстро обрел востребованность и популярность.
Solidity имеет схожий синтаксис с Javascript и C++, поддерживает наследование, библиотеки, позволяет создавать сложные структуры и перечисления, что делает код понятным, удобным и легко читаемым
Солидити входит в ТОП самых высокооплачиваемых языков программирования в 2022 году, а так же является важнейшим инструментом для разработки децентрализированных приложений под Ethereum и другие блокчейны.
История языка Solidity
Разработка Solidity стартовала в 2014 году, когда команда Ethereum начала работу над своим блокчейном. Целью создания Solidity было предоставить способ написания безопасных смарт-контрактов, которые будут выполняться на мощностях Эфира.
Идея была предложена Гэвином Вудом (Бывший научный сотрудник Microsoft, соучредитель Ethereum, ученый информатик, создатель Polkadot и Kusama), но основная часть разработки проходила под кураторством Христиана Райтвинзера, так же в команде состояли: Либойс Лавльянд, Алекс Беркман, Якоб Хаун и Пипп Макк.
Создавая солидити разработчики были вдохновлены такими языками, как Python, C++ и Javascript. Он также был разработан с учетом уникальных возможностей, которые предоставляет блокчейн Ethereum, включая возможность создания цифровых активов, использования токенов и управления децентрализованными приложениями.
Первая стейбл версия Солидити вышла в 2015 году, с тех пор язык активно развивается и постоянно меняется. Вокруг него сформировалось большое и активное комьюнити блокчейн разработчиков и контрибюторов. На сегодняшний день Solidity — самый популярный язык программирования для написания смарт контрактов.
Пример кода на Solidity
Давайте рассмотрим несколько примеров кода с использованием языка программирования Solidity:

Но даже несмотря на хайп объем рынка постоянно растет и смотря на общую картину есть понимание, что Solidity будет становиться все более востребованным.

Мир начинает принимать и массово использовать криптовалюты, все больше корпораций интегрируют блокчейн решения в свои бизнес процессы. Каждый день на рынке появляются новые крипто-стартапы и всем им нужны специалисты, поэтому на сегодняшний день смело можно сказать, что Solidity — самый перспективный для изучения язык программирования в 2023 году.
Где учить Solidity?
Начать изучение Солидити можно на нашем сайте! Solidity University — образовательная платформа для изучения языка программирования Solidity и Блокчейн Разработки.
У нас вы найдете все необходимые материалы, базу знаний, словарь, бесплатные курсы по созданию децентрализированных приложений (dApps), а так же множество интересной информации о web3 и профессии блокчейн разработчиков изнутри в нашем блоге.
Полезные материалы
- Solidity University — https://solidity.university/
- Документация Solidity — https://docs.soliditylang.org/
- YouTube канал «Блокчейн Разработчик» — https://www.youtube.com/c/BlockchainDeveloper
Что такое Solidity?
Solidity представляет собой высокоуровневый язык программирования, предназначенный для виртуальной машины Ethereum. Он имеет синтаксис, схожий с JavaScript. Работа с Solidity предполагает знание программирования в целом и Ethereum в частности.

На практике вы можете приступить к использованию Solidity в веб-браузере без необходимости загружать либо компилировать что-нибудь. Это приложение лишь поддерживает компиляцию — если же вы пожелаете выполнить код либо ввести его в блокчейн, потребуется применение клиента, к примеру, такого как Geth либо AlethZero.
Зачем нужен Solidity?
В 2014 году язык был предложен Гэйвином Вудом, последующая разработка происходила под управлением Кристиана Райтвизнера, который руководил командой Solidity в рамках проекта Ethereum. На самом деле, Solidity является одним из 4-х языков (еще есть Serpent, LLL и Mutan), которые были спроектированных в целях трансляции в байт-код VM Ethereum.
В связи с появлением технологий блокчейна, а в особенности стека технологий на основе Ethereum, язык программирования Solidity получил широкое распространение. На практике он позволяет создавать программное обеспечение умных контрактов. Именно поэтому Solidity нередко называют объектно- и предметно-ориентированным языком самовыполняющихся контрактов.
Итак, статически типизированный Solidity создан для разработки самовыполняющихся контрактов, которые исполняются на виртуальной машине Ethereum (EVM), то есть программы транслируются в байткод EVM. Наличие данного языка дает возможность создавать самодостаточные приложения, которые содержат бизнес-логику, результирующую в неотменяемые транзакционные записи блокчейна.
Пожалуй, для первоначального знакомства достаточно. Если интересно, ниже пример программы, написанной на Solidity:

Хотите знать про Solidity больше? Добро пожаловать на специализированный курс в Otus!
Почему вы должны использовать Solidity для разработки блокчейна
Solidity — это объектно-ориентированный язык программирования, основанный на Ethereum.
Solidity — это продвинутый язык программирования, используемый для реализации смарт-контрактов на основе Ethereum. Это объектно-ориентированный язык, ориентированный на виртуальную машину Ethereum (EVM).
Этот язык имеет статическую типизацию и поддерживает сложные функции программирования, такие как наследование и пользовательские типы данных. Вы можете использовать Solidity для различных вариантов использования смарт-контрактов, таких как голосование, мультиподписные кошельки и краудфандинг. Его разработчики регулярно обновляют репозиторий новейшими функциями и исправлениями ошибок.
Он разработан на основе синтаксиса ECMAScript, поэтому его легко понять и написать код. Он поддерживает иерархические структуры и линеаризацию C3 для множественного наследования. Его сопоставления выполняются через структуры данных ключ-значение.
Вы можете использовать Solidity с такими криптокошельками, как Mist и MetaMask. Вы также можете использовать Truffle для разработки и развертывания высокоуровневого кода Solidity. Подобные инструменты позволяют инженерам создавать децентрализованные приложения (dApps) с минимальными усилиями.
Что такое смарт-контракты и как они работают?
Смарт-контракты — это самоисполняющиеся контракты, работающие на блокчейне. Как только реестр блокчейна подтвердит, что необходимые транзакции были выполнены, смарт-контракты выполняют свои заранее определенные условия. Вы можете использовать их для финансовых транзакций, управления цепочками поставок и проверки личности, среди прочего.
Большинство смарт-контрактов используют токены ERC20 или ERC721 для их выпуска, но вы можете создавать собственные контракты, которые не требуют токена перед выполнением.
Смарт-контракты используют оракулы для обеспечения выполнения всех внешних условных требований перед обработкой транзакций. Оракул действует как посредник между кодом блокчейна и внешними данными и позволяет программам блокчейна взаимодействовать с хранилищами данных за пределами их сети. Оракулы могут быть аппаратными или программными.
Несмотря на то, что смарт-контракты — это очень мощные программы, которые автоматизируют выполнение соглашения, они все же остаются программами. Это означает, что они сильно зависят от лежащего в их основе кода. Если базовый код неисправен, в итоговом контракте будут проблемы.
Solidity и Ethereum
Многие инженеры блокчейна предпочитают Solidity, потому что он работает с Ethereum, де-факто протоколом блокчейна для смарт-контрактов. Это также позволяет им создавать многогранные приложения с богатыми функциональными возможностями, поскольку Solidity является полным по Тьюрингу (т. е. он может выполнять любую задачу, если ему предоставлены правильные инструкции, достаточно времени и вычислительной мощности).
Вы можете использовать различные методы, такие как сеттер, геттер и приветствие, для взаимодействия со смарт-контрактами на основе Ethereum. После создания контракта вам необходимо связать его с вашим крипто-кошельком и сгенерировать оболочку смарт-контракта. Как только это будет сделано, вы можете использовать адрес смарт-контракта для выполнения транзакций.
Какую работу выполняют разработчики Solidity?
Разработчики Solidity проектируют, разрабатывают и развертывают смарт-контракты на Ethereum. Они берут требования клиентов, разбивают их и переводят в работоспособные функциональные варианты использования. Они проверяют смарт-контракты и гарантируют их подлинность. Разработчики Solidity также работают над интеграцией кода Solidity на разные платформы и разработкой новых функций для существующих блокчейн-проектов. Кроме того, они также автоматизируют бизнес-процессы и работают над безопасностью платформы (анализ мошенничества, сканирование безопасности и т. д.).
Какие навыки необходимы, чтобы стать разработчиком Solidity?
На Solidity сильно влияют такие языки, как JavaScript, Python и C++, поэтому инженеры, работающие над Solidity, также должны знать хотя бы один из них. Инженеры Solidity также должны знать стандартные принципы программирования, такие как DRY и KISS и управление базами данных.
Смарт-контракты часто связаны с конфиденциальными данными и денежными транзакциями, поэтому разработчики Solidity должны знать о кибербезопасности. Они также должны быть очень эффективными в сетевой безопасности и предотвращении распространенных кибератак, таких как XSS и DDoS.
Solidity работает на блокчейне, поэтому инженеры Solidity должны быть хорошо осведомлены о протоколах блокчейна и алгоритмах токенизации, таких как ERC721 и ERC20. Кроме того, предпочтение отдается инженерам со знанием инфраструктуры децентрализованных финансов (DeFi) и децентрализованных приложений, поскольку они необходимы для создания расширенных контрактов на блокчейне.
Сложно ли научиться Solidity?
Solidity — сложный язык, основанный на Ethereum. Несмотря на то, что вы можете разработать множество вариантов использования с помощью концепций ООП и предварительно разработанных фрагментов, вы должны изучить основы принципов программирования, работая с такими языками, как Python или JavaScript. Как только вы изучите их, работать с Solidity будет относительно легко. В последние годы блокчейн быстро завоевал популярность в разных сферах. По оценкам, к 2025 году рынок блокчейнов превысит 39 миллиардов долларов США. И это число будет только увеличиваться после внедрения Web 3.0.
Web 3.0 — это третья итерация веб-разработки. Это децентрализованная эволюция веб-технологий, которую массы называют «интернетом будущего». Особое внимание уделяется децентрализованной разработке приложений и веб-дизайну на основе блокчейна. Solidity находится на пути к тому, чтобы стать важной частью разработки приложений Web 3.0 благодаря своей способности создавать (и внедрять) смарт-контракты на разных платформах.
Почему это нужно знать новичкам о разработке Solidity?
Любой, кто начинает работать с Solidity, должен знать, что смарт-контракты неизменны (т. е. вы не можете изменить их после развертывания). При создании таких контрактов нет места для ошибки, поскольку транзакции не могут быть отменены. Это также означает, что ошибки при создании таких контрактов открывают для ваших клиентов юридические и финансовые лазейки. Однако эта функция также может быть полезна для установления доверия и определения легитимности смарт-контрактов. После подписания контракта вы можете быть уверены, что его протоколы не изменятся, если не будет изменен его основной код, что требует полномочий обеих подписывающих сторон.
Новичкам также следует помнить о проблемах с циклами и вычислениях во время разработки. Вычисления в Ethereum — дорогостоящее дело. Вы должны платить за газ за каждый вычислительный шаг, который вы выполняете, и контракты Solidity могут потребовать много шагов. Эти шаги также могут стать целью для хакеров, поскольку они могут использовать их для создания ложных проблем с DOS.
Вам необходимо найти разработчика блокчейн в короткие сроки? Мы можем вам помочь. Добро пожаловать в наше Кадровое агентство IT and Digital. 170 000+ база резюме it специалистов и 5 500+ вакансий успешно закрыто.
Помощники для IT рекрутеров в проведения интервью с кандидатами!
Тщательно отобранные 100+ вопросов в каждом направлении и все твои. Теперь все самое главное под рукой!