当您想到以太坊时,您可能会想到其强大的智能合约系统。对于那些不知道的人,智能合约本质上是存在于以太坊区块链上的程序。他们执行各种任务,例如发送或接收Ether或ERC-20令牌等。

但是,您可能不知道的是智能合约实际上是如何组合在一起的。像所有计算机程序一样,以太坊合约都是用编程语言编写的。在这种情况下,该语言通常是一种称为Solidity的语言

尽管还有其他与智能合约兼容的编程语言,但Solidity是当今的首选语言。因此,当我们阅读Solidity的一些基础知识时,请继续阅读,在这里您可以找到一些有关如何学习Solidity的资源。

坚固性

扎实的编程语言

今天,大多数专业程序员都使用一种或多种流行的现代编程语言。其中的一些示例包括C(和C ++,C#等),Python,Java(和JavaScript),Perl或其他一些示例。对于已经熟悉一种或多种现代编程语言的程序员来说,Solidity的设计易于学习。

如果您在高中时学习了类似Visual Basic的知识,则可能很难选择Solidity。而如果您了解Python或C之类的语言,就会发现Solidity相对熟悉。

Solidity使用其他语言中存在的大量编程概念。例如,Solidity具有变量,函数,类,算术运算,字符串操作等。在使用C之类的语言时,程序员可能会创建某种形式的“ main”函数,例如“ int main(arg1,arg2){// code}”,而Solidity则使用以类似方式创建的“ contract”方式。

固体代码

如您所见,Solidity代码看起来惊人地类似于C ++,C#或JavaScript。Python开发人员将注意到,在Solidity中,除了其他区别之外,变量需要明确声明其类型。

团结还很新,学习资源有限

通常,如果您想学习一种新的编程语言,则可以购买有关该主题的众多书籍之一。例如,如果您想学习JavaScript,则有几十本书或数百本书可以提供必要的自我指导培训。

由于Solidity仍然很新,因此只有少量书籍可用,而且如果不是完全负面的话,Amazon.com上对它们评论似乎也很混杂。

Solidity确实提供了大量有关代码如何工作的文档。但是,对于不是该语言的新手而又不是一个高级程序员的人来说,直接进入文档可能会非常艰巨,即使对于大多数人来说这几乎是不可能的。

理想情况下,文档应更多地用作参考,就像使用字典来查找单词一样。但是,人们不会为了尝试学习口语而从头到尾读一本字典。

但是,如果一个人有足够的敬业精神和耐心,那么他可能会使用现有的文档来学习Solidity,而无需广泛的编程背景。当然,这绝非易事。

团结训练和课程

对于具有一定基础编程经验的人来说,使用Solidity编程可以使自己步履蹒跚的一个有趣选择就是Crypto Zombies该站点与Codecademy非常相似,在该站点中,您将获得一个简短的编程任务,然后直接在浏览器中立即完成该任务即可对其进行检查。但是,Crypto Zombies的主题是使用Solidity制作僵尸游戏。

我们尝试了第一章,只花了不到两个小时就完成了。这有些困难,但是只要坚持不懈,就可以做到。但是,整个课程尚未完成。

开发人员表示,新课程将每隔几周发布一次。完成所有课程后,结果应该是使用Solidity制作的完整游戏。

加密僵尸

虽然可能不足以真正使某人成为Solidity专业人士,但Crypto Zombies确实为智能合约编程和Solidity语法的许多核心概念提供了出色的介绍。

如果您还没有编程经验,则可能要选修Codecademy的免费课程。对于Crypto Zombies来说,了解Python或JavaScript基础知识就足够了。

对于想直接进入实质的更高级的学习者,Block Geeks 在其网站上提供了很棒的免费课程

近年来,出现了一些提供有关各种技术主题的有偿培训的站点。一个例子就是BitDegree,其目的是成为一个经过区块链验证的教育平台,准学生可以通过在线课程学习技术技能。

完成课程后,他们将获得在以太坊区块链上注册的各种在线学位,以进行验证。BitDegree于今年早些时候推出,并提供仅$ 9.99的Solidity课程。

固然课程

udemy.com是其中一些选择,该网站提供基于视频的在线培训。该网站目前提供200美元的固本课程,尽管它似乎经常以90%或90%以上的价格出售,即使不是总是如此。

B9LAB.com提供了另一个可能更加激烈(且昂贵)的选项。他们提供所谓的经过认证的在线以太坊开发人员课程本课程将需要9周,每周6到10个小时。它还花费1450欧元(约合1750美元)。他们还为您提供免费的以太坊101课程,以测试他们的教学方法,并查看它是否适合您的学习风格。

值得学习扎实吗?

如果您想为自己的工作学习Solidity,则可能需要考虑还需要哪些其他技能。虽然学习与区块链相关的技能可能非常有价值,但可能至少需要先成为至少一种其他编程语言的专家。例如,在Bounty0x上为Solidity开发人员发布的这份工作要求任何候选人不仅要了解Solidity,还要了解Truffle,NodeJS和GoLang。

如果您有信心将自己的生命奉献给学习Solidity,请尝试一下。在未来的几年中,您很有可能会拥有可靠的稳定职业。

除了Solidity,还有基于Python的Serpent。由于Python是一种非常简单易懂的语言,因此将来可能会更容易学习。而且,Solidity或Serpent不仅可以在以太坊上使用,这些技能还可以立即转化为RSK和以太坊经典版(这两个竞争的智能合约平台)上的有用编码技能。

不过就目前而言,团结为王。将来,在学习其他智能合约语言时,对Solidity的深入了解将非常有用。