paint-brush
Мой путь разработчика Solidityк@alcueca
2,553 чтения
2,553 чтения

Мой путь разработчика Solidity

Слишком долго; Читать

Я начал программировать смарт-контракты пять лет назад, в пожилом возрасте 38 лет, и прошел путь от отсутствия профессионального опыта программирования до создания передовых смарт-контрактов.
featured image - Мой путь разработчика Solidity
Alberto Cuesta Cañada  HackerNoon profile picture

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


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


Вот мое путешествие.

Начало

В 2018 году я недавно переехал с женой и маленьким ребенком из Мельбурна в Лиссабон, чтобы мы все могли быть ближе к семье. У меня была достойная карьера инженера по суперкомпьютерам и архитектора решений для инвестиционно-банковской деятельности, и я думал, что Лиссабон будет достаточно большим, чтобы я мог найти работу.


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


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

Я написал автору, чтобы поблагодарить его за вдохновение искать работу в блокчейне. Мы разговорились и вместе с его другом решили основать TechHQ, консалтинговую компанию по блокчейну с высокими идеалами. В нашей консультационной компании из трех человек я буду техническим экспертом.


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


Без предварительного опыта я бы стал техническим экспертом.


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


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


Наша первая деловая возможность возникла несколько месяцев спустя, когда мы реализовали проект ЦементДАО . Мы взяли на борт Бернардо, молодой и талантливый местный хакер , который в какой-то момент попросил помощи с математикой. Я мало что знал, но я мог попытаться сделать Fixidity работает над построением пользовательской кривой AMM с использованием логарифмов.

Эта задача заняла у меня около месяца: Бернардо научил меня Solidity, Javascript, git и truffle. Я ничего не знал, правда. Результаты оказались далеко не выдающимися: они были переработаны и неэффективны даже по стандартам 2018 года. В моем незнании ,
Я искренне верил, что это высший уровень .


Результаты оказались далеко не выдающимися: они были переработаны и неэффективны даже по стандартам 2018 года.


Обладая некоторыми навыками кодирования и имея только Бернардо опыт разработки внешнего интерфейса, я взял на себя смарт-контракты для CementDAO. К сожалению, отчасти из-за неэффективной реализации Fixidity, мы так и не дошли до стадии основной сети.


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


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


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


Несмотря на ужасное выступление… я усвоил важные уроки


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


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


Поворотный момент

В конце концов у компании снова закончились деньги, и нам всем пришлось искать работу. Затем я наткнулся наоткрытая проблема в OpenZeppelin . Им нужно было что-то вроде связанного списка, и я сделал это сначала для CementDAO, затем для hq20-contracts и даже написал об этом хорошую статью .


После обсуждений с Нвентуро , мой вклад был интегрирован как EnumerableSet.sol в одном из выпусков OpenZeppelin. Я сделал это. Часть моего кода наконец-то вышла в свет. И с OpenZeppelin не меньше.


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


Я знал, что смогу это сделать. В конечном итоге это привело к публикации AccessControl.sol в версия 3.0 открытых контрактов на цеппелины, что снова стало огромной вехой в моей карьере.


Я сделал это. Часть моего кода наконец-то вышла в свет. И с OpenZeppelin не меньше.


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


Мне приходилось говорить по видео и проводить уроки по разработке Solidity. Мне также нужно было быть тщательным, потому что курсы должны были быть последовательными. Та же схема, что и в применяемых здесь статьях; Я изучал разные вещи и сразу же обучал их, и это позволило мне многое узнать о развитии твердости.


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


Я изучал разные вещи и сразу же обучал их, и это позволило мне многое узнать о развитии твердости.


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

К тому времени я написал код для Fixidity, опубликовал несколько статей о математике с фиксированной точкой и безуспешно пытался помочь OpenZeppelin и основной команде Solidity. Я также знал, что АММ с логарифмическими функциями нетривиальны, и знал одного Михаила, с которым мы могли бы заключить контракт, чтобы заставить их работать.

Я был первым сотрудником @yield. Я убедил Аллана нанять Брюс со времен моей работы в TechHQ в качестве фронтенд-инженера, и все мы трое, с помощью очень молодого Георгиос , успешно запустил Yield v1 в основной сети.


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


Одна из вещей, которые мы узнали, заключается в том, что, в отличие от Uniswap, нам нужно будет внести изменения в протокол в поисках соответствия продукта рынку. Поскольку наши контракты в основном были неизменными, вскоре мы начали работу над Yield v2.

Перенесемся в сегодняшний день

Yield Protocol v2 существовал около двух лет, и я многому научился из него, но сейчас он закрывается. Хотя наша техническая работа была на высшем уровне, фиксированные ставки на данный момент не соответствуют продуктовому рынку децентрализованного финансирования.


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


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


Если мне повезет, я найду то, что кому-то нужно, например CementDAO, AllianceBlock, контракты на курсы OpenZeppelin, BeyondSkills и, наконец, Yield. Если я не могу найти кого-то, у кого есть потребность, всегда есть чему поучиться и о чем потом написать, как и во всех моих статьях.


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


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


Спасибо за прочтение. Я надеюсь, что это вдохновит вас. Удачи.