go语言?密码学?solidity?主链开发?
近期,百度、小米、京东、360、联想等行业巨头纷纷开出高薪招聘区块链开发,甚至有公司开出了500万元的年薪在找区块链工程师。正在埋头苦干、默默搬砖的你,是不是也有些蠢蠢欲动?是时候掌握一下自己的命运了。
该如何成为一名年薪百万的区块链工程师呢?我们带着这样的问题,请教了链块学院执行院长魏红心博士。
想要成为年薪百万的区块链工程师,那得先成为区块链工程师;要成为区块链工程师,那你先得是工程师才行。所以,成为年薪百万的区块链工程师你的练级路线可以概括为:开发工程师→区块链工程师→年薪百万的区块链工程师。
第一关,如何成为开发工程师?
工程师种类繁多,我们这里特指有一定计编程基础,至少有一门语言编程经验,接受过写代码debug洗礼,爱过痛过,累过哭过的开发工程师,俗称“码农”。
而那些只是看过几天某个流行语言的语法或者视频,或者只是写过hello world是远远不够的。如果你恰好是熟悉go或者c++语言,那么你在学习以太坊或者比特币这些经典的区块链技术实现的时候会更具有优势。
上面说的都是些外功,而内功则不容易看出高低。对于开发工程师,不仅需要具有一定外功基础,也要日积月累修炼内功。
在区块链技术中,内功包括了高等数学、近世代数、离散数学、图论等数学基础,还有包括了诸如计算机组成、编译原理、计算机网络、数据结构、操作系统、算法、设计模式和网络安全等计算机基础。
这些东西类似武林秘籍中的“易筋经”,短期打架帮不上忙,但是时间越长,内功的作用就会越明显。
第二关,如何成为区块链工程师?
进入这一关的前提是你已经是个开发工程师了,并且具有一定的内外功容基础。那么接下来,你需要掌握区块链的核心原理和技术:
首先,我们会有个创世块,就是区块链的第一个区块。然后,我们分解动作:有交易的产生,交易的传递,交易的接收,交易的确认,到区块的产生、传递和确认。循环这个过程又有新的区块的产生,同时我们把一个能够代表前一个区块的一个记号记录在这个新产生的区块中。这样所有的区块就从创世块开始串在一起,形成一个链条,这个链条就是区块链。
在这个过程中,交易信息可能会被伪造和篡改,那么我们需要用密码学的方法保证数据的安全。我们还要学习通过P2P网络进行信息的传递,通过共识算法来实现分布式的节点之间能够达成一致,通过基于时间戳的区块的链来保证事件发生的顺序的不可篡改,通过学习特定的数据存储结构来存储区块中的数据等。
掌握了上述基本操作还不够,我们还需要学习区块链技术的开发语言。
目前,区块链技术从1.0(以比特币为代表)发展到2.0(以以太坊为代表)。在2.0的一般架构中,主要分为主链开发和区块链应用开发两部分。
我们以苹果手机的系统做类比,主链开发就像开发一个苹果操作系统,在上面可以运行各种各样的APP;应用开发就是开发能够在主链上运行的应用程序,比如微信等等。
主链开发的主要语言有go语言、C++、Java等,比如比特币最主要的开发语言是C++,以太坊和超级账本Hyperledger的主要开发语言都是go。现有的主链的技术方案中,go语言是应用最多的,当然也有一些新链采用了一些例如rust等新的语言。
区块链应用开发就是常见的智能合约的开发,智能合约的开发语言在各主链中不尽相同。我们以以太坊为例,应用最广泛的智能合约开发语言是solidity,这是一种类似JavaScript的高级语言。
现在,我们来正式介绍成为区块链工程师的基本流程:首先,我们需要先学习go语言。学会go之后我们是不是就可以编写主链程序了?如果你是天才,那是有可能的。如果你说“师傅,我只想学几招打几个街头小混混,我不想称霸武林”,那你可以只学学应用开发,例如学习solidity的基本语法,然后针对具体的应用场景开发应用即可。不过,由于以太坊是支持图灵完备的,所以你写应用的时候需要格外小心,不然很容易伤到自己,著名的“THE DAO”事件就是一个武艺不精者失手伤了一群人的例子。
按理说,应该是先学习主链的开发,然后再学习上面的应用。但是,应用开发相对主链更形象,更有趣一些,也更容易入手一些,所以也可以先学习应用开发,有一些直观的感受后再来逐步啃主链这个硬骨头。
如果你可能走到这一步,那么恭喜你,你已经成为一名区块链工程师了,张嘴要个30K应该没有什么问题,能不能拿到50k就要看你的修为了。不过你要是想成为一派宗师,现在还为时尚早,搞不好还要被人打得落花流水。
第三关,如何成为年薪百万的区块链工程师
要想成为一派宗师,那你必须得有两把刷子才行。你可能想问,我每天勤学苦练,每天不断的写代码行不行?我只能说,有可能。回想一下,我们见过的武林宗师,有的靠师承名门,有的靠天赋异禀,有的靠运气好。这里我们的师承名门的人就是我们一定要紧跟那些内功打的好的人,比如原来就是密码学专家,分布式系统专家,软件专家,在掌握区块链技术之后融会贯通,把自己的内功融入到区块链的技术中,自创一派,这就是年薪百万的武林宗师了。
当然,也有天赋异禀的人,原来就是懂一些计算机编程,后来看到了区块链的技术,不断钻研,理解越来越深,并自创一套,比如杨过这样的。也有像复制忍者“卡卡西”一样的,集合各家的特长,为我所用并加以改进,创出一个博采众长的技术。
当然,对于大多数人来说,可能不一定师承名门,也不一定天赋异禀,那就需要我们用科学的方法,投入足够的努力来学习、实践,方能成为一代大侠,就像郭靖这样。
所以,成为年薪百万的区块链工程师,具体的进阶路线可以在总结如下:
掌握一定的编程基础并有实践经验,当然要是会go和js后面学起来能节省学语言的时间
学习区块链技术原理,这里需要学习密码学知识,共识算法,p2p网络等
学习solidity面向对象编程,以太坊应用的开发、部署、测试
学习主链的开发,为了更好的学习,我们先来学习前辈以太坊、比特币的源码实现
最后,需要我们自己完整的设计并实现自己的主链和应用开发。
与其说是这是大侠的一生回顾,不如说,这是新一代大侠的诞生路径。希望这篇文章梳理的内容能够帮助你快速学习区块链技术。
请关注“区块链工程师”微信公众平台,获取第一手技术资讯。
魏红心,系清华大学电子系博士,链块学院执行院长,10年软件开发与管理经验。
链块学院,专注于区块链技术开发、研究和教育,致力于打造专业的区块链技术开发学习平台。
责编 | 晓宇
铅笔道“投资人UGC栏目”诚邀感兴趣的投资人向铅笔道投稿。内容可参考:1、对行业、市场的见解与看法;2、投资案例笔记;3、对某一行业的深入研究心得、行业报告等。投稿请加微信(124926554)或邮箱(wuxiaoyu@oa.pencilnews.cn)。
此文版权归原作者所有,非铅笔道原创,不对文中观点和真实性负责,内容仅供读者参考。
联系创业者
进入个人中心-联络人,即可查看请求结果
您还未认证身份,暂时无法和ta联系!请尽快前往个人中心进行创投认证哦。