paint-brush
我作为 Solidity 开发人员的旅程by@alcueca
2,476
2,476

我作为 Solidity 开发人员的旅程

五年前,我 38 岁,开始编写智能合约,从没有专业编程经验到构建尖端智能合约。
featured image - 我作为 Solidity 开发人员的旅程
Alberto Cuesta Cañada  HackerNoon profile picture

五年前,我 38 岁,开始编写智能合约,从没有专业编程经验到构建尖端智能合约。


许多人询问他们如何走类似的道路。虽然没有特定的资源或成功秘诀,但您也可以使用一种模式。


这是我的旅程。

开始

2018 年,我最近与妻子和年幼的孩子从墨尔本搬到了里斯本,这样我们就可以离家人更近了。作为一名超级计算工程师和投资银行解决方案架构师,我的职业生涯很不错,我认为里斯本足够大,足以让我找到工作。


很快,我发现里斯本的就业市场完全不需要超级计算工程师,而我的解决方案架构师背景只会让我担任无聊的中层经理角色。


我很早以前就对区块链技术感兴趣,但从未真正投入其中。然后我读了一篇关于雇用区块链工程师有多难的文章,并看到了机会。

我写信给作者,感谢他给我在区块链领域找工作的启发。我们聊了聊,和他的一个朋友一起决定创办 TechHQ,一家有远大理想的区块链咨询公司。在我们的三人咨询公司中,我将是技术专家。


我大约有一个月的时间从企业解决方案架构师过渡到创建可以出售给客户的基于区块链的项目。


如果没有任何经验,我将成为技术专家。


我的任务之一是撰写区块链技术文章来吸引客户,就像那篇让我认识合作伙伴的文章一样。撰写这些文章并公开我所学到的知识将是我职业生涯的关键。


我的第一篇文章是关于开始从事那份工作并详细介绍了我在区块链领域的第一步。我对 Solidity 的介绍是完成加密僵尸教程


几个月后,我们的第一个商业机会出现了,项目是 水泥DAO 。我们邀请了贝尔纳多,一位年轻而有才华的当地黑客,他在某个时候寻求有关数学方面的帮助。我知道的不多,但我可以尝试做Fixidity 致力于使用对数构建自定义 AMM 曲线。

这项任务花了我大约一个月的时间,Bernardo 教我 Solidity、javascript、git 和 truffle。我真的什么都不知道。即使按照 2018 年的标准,结果也不尽如人意——设计过度且效率低下。在我的无知中,
我真的相信它是顶级的


即使按照 2018 年的标准,结果也不尽如人意——设计过度且效率低下


在获得了一些 Solidity 编码能力并且只有 Bernardo 擅长前端开发后,我接管了 CementDAO 的智能合约。不幸的是,部分由于 Fixidity 的实施效率低下,我们从未进入主网阶段。


当我们寻找更多客户时,我继续进行实验,以便我可以写更多文章,因为这就是我们期望获得客户的方式。最终,我想出了一个有趣的想法 供应链解决方案。虽然这个想法没有成功,但它让我想出了一个基于角色的访问控制契约这实际上是不错的。


就在破产即将来临的时候,这段代码为我们赢得了另一个客户:联盟区块雇用我们编写一个具有许多许可角色的区块链发行平台。


尽管智能合约的性能很糟糕,但他们只需要我们交付的 Ganache 的概念验证。我学到了关于智能合约架构的重要教训,链上存储,以及前端集成。


尽管表现糟糕……我学到了重要的教训


我们再次没有收入,而且现金也非常短缺。我决定放弃我的薪水并购买公司三分之一的股份,这样我们就不会破产。我不认为我们有很大的机会成为一家公司,但这并不重要,我在编码,我在学习,我在享受乐趣。获得良好的区块链体验似乎是一笔便宜的交易。


当我们寻找更多客户时。我合作过hq20-合同 乌伊夫利斯,开发并记录各种 Solidity 模式和用例。当然,我写道许多文章关于他们


转折点

最终,公司又没钱了,我们都不得不开始找工作。然后,我偶然发现了一个OpenZeppelin 中的未决问题。他们需要类似链表的东西,我首先为 CementDAO 完成了它,然后为 hq20-contracts ,甚至写了一篇关于它的好文章


经过讨论后恩文图罗,我的贡献被整合为枚举集.sol在 OpenZeppelin 的一个版本中。我成功了。我的一些代码终于上线了。 OpenZeppelin 也同样如此。


受到这一成功的鼓舞,我解决了 OpenZeppelin 修改其访问控制合约的挑战。我对失败的供应链应用程序的主题做了前沿工作,并通过 AllianceBlock 对其进行了完善,然后再次写了一篇关于该主题的详尽文章


我知道我能做到。这最终导致了出版访问控制.sol在里面 3.0版本开放式飞艇合同,这又是我职业生涯中的一个巨大里程碑。


我成功了。我的一些代码终于上线了。 OpenZeppelin 也同样如此。


我仍然需要一份工作,于是我成为了 BeyondSkills 的区块链讲师。我必须创建在线课程来教授 Solidity 编程。和往常一样,我不太适合这份工作。我知道如何编写一些代码,但我的知识存在巨大差距。在那之前,我自己还没有部署过合约。


我必须通过视频进行讨论并制作有关 Solidity 开发的教程。我还必须彻底,因为课程需要保持一致。与此处应用的文章相同的模式;我在学习东西并立即教授它们,这让我学到了很多关于 Solidity 开发的知识。


不幸的是,该公司因法律挑战而关闭,并且该内容从未公开。也许这样更好。


我正在学习一些东西并立即教授它们,这让我学到了很多关于 Solidity 开发的知识。


在录制这些课程时,我遇到了艾伦·尼默格寻求定点数学方面的帮助他有一份白皮书。与当时联系我的其他许多有想法的人不同,艾伦从我从未听说过的风险投资基金那里获得了资金,范例,我认真对待他。

那时,我已经编写了 Fixidity 代码,发表了几篇有关定点数学的文章,并试图帮助 OpenZeppelin 和 Solidity 核心团队,但没有成功。我还知道具有对数函数的 AMM 并不是微不足道的,并且知道一位 Mikhail 的家伙,我们可以通过合同让它们发挥作用。

我是@yield 的第一位员工。我说服艾伦雇用布鲁斯从我作为前端工程师的 TechHQ 时代开始,我们三个人在一位非常年轻的人的帮助下乔治斯,成功在主网上启动 Yield v1。


我学到了很多——关于抵押债务引擎, 协议集成, 舍入误差,链下许可,闪贷, 和燃气效率,仅举几例。就像我尝试做以前从未做过的事情一样,这并没有取得很大的成功。


我们了解到的一件事是,与 Uniswap 不同,我们需要对协议进行更改,以寻找产品市场契合度。由于我们的合约大多是不可变的,因此我们很快就开始了 Yield v2 的工作。

快进到今天

Yield Protocol v2 上线了大约两年,我从中学到了很多东西,但现在它即将关闭。虽然我们的技术工作是一流的,但固定利率目前还没有适合去中心化金融的产品市场。


再次在野外,我再次选择了困难的道路,我没有再担任首席工程师/首席技术官的角色,而是将自己设置为其他初创公司的顾问,这些初创公司可能会从我学到的经验教训中受益。没有关于如何做到这一点的手册,我知道我的知识差距很大,但改进的机会也很大。


现在,您应该看到该模式。我总是在自己的舒适区之外,经常失败,但总是把我学到的东西教给别人。这篇文章可以被视为一个例子。


如果幸运的话,我会找到有人想要的东西,比如 CementDAO、AllianceBlock、OpenZeppelin 合约、BeyondSkills 课程,最后是 Yield。如果我找不到有需要的人,总有一些东西可以学习然后写下来,就像我所有的文章一样。


我总是在自己的舒适区之外,经常失败,但总是把我学到的东西教给别人。


尝试、失败、学习和教学循环不是我的发明,但它确实有效。这常常让我看起来像个白痴,也许这对某些人来说是最难的。我自己,我对自己的失败感到自豪。


谢谢阅读。我希望这能给你一些启发。祝你好运。