create account

致广大程序员的一封信 by yingpingzhang

View this thread on: hive.blogpeakd.comecency.com
· @yingpingzhang · (edited)
$2.91
致广大程序员的一封信
区块链技术已经火遍全球,这句话一点都不夸张。2017年的时候区块链还只是一小部分人在参与,2018年区块链已经成了各行各业关注的一个焦点。

年初徐小平老师建议企业家ALL IN区块链,直言这是一场顺之者昌,逆之者亡的革命。之前还只是币圈的人在搞区块链,现在腾讯、阿里、京东等互联网巨头都纷纷展示了自己在区块链方面的成绩。去年年底广州黄浦区发布了“区块链10条”,从适用范围、培育、成长、平台、应用、技术、金融、活动等多环节对区块链企业或机构进行重点政策扶持。2018年杭州将区块链写入到了政府的工作报告中,区块链技术将会成为杭州支持的下一个重点,并成立了杭州区块链产业园。除了政府、企业在高度关注之外,高校也相继开设了区块链相关课程,清华大学、西安电子科技大学等高校已经正式开课。

如果说2017年对于大多数普通人来说最大的机会是区块链投资,可以用很低的价格买到很好的区块链资产(比如身边很多人在EOS几块钱的时候抄了很多,现在熊市的情况下也涨了10倍左右,如果牛市来临,搞不好很快就财富自由了!),那么2018年对于广大程序员来说是一次人生不能错过的机会,随着EOS等公链的上线,将会迎来一次DAPP(去中心化应用)的开发热潮。相比个人投资来说,DAPP会是一个更大的蛋糕,也是一个更大的机会,至于有多大就让我们拭目以待吧!

如果你之前从事过J2EE、.NET、IOS、Android开发,你就会理解掌握一门新技术的重要性了。我是在VB、ASP那个年代学习的J2EE,后来J2EE火起来之后,只要给人说我会J2EE别人就刮目相看了。再后来到移动互联网时代,一个只要有2年以上Android开发经验的工程师工资就可以超过有很多年开发经验工程师的工资。而这种比较放在区块链技术上可能不适用,因为区块链技术的重要性已经远远超过了你的想象力。互联网发展到现在也只是做了一件事情,让信息几乎零成本的传输,而区块链可以让信息流、资金流、物流都高效的运转起来。

需要注意的是早期的互联网一开始是没有商业模式的,而区块链上来就有成熟的商业模式。区块链的发展与互联网不一样,互联网是从零发展起来的,而区块链是在现有互联网的基础上发展起来的,区块链的应用已从金融延伸到物联网、智能制造、供应链管理、数字资产交易等多个领域,并对云计算、大数据、移动互联网等新一代信息技术的发展带来新的机遇。

区块链是一种历史记录不可篡改的数据库,因此区块链可以作为一种信任的工具,让价值几乎零成本的传输,可以让重构现有的生产关系。但由于区块链是分布式系统、密码学、博弈论、网络协议(P2P)等很多学科的集合,这导致大部分程序员对DAPP(去中心化应用)开发有点恐惧,担心自己没有能力参与到这场革命中来,甚至有人叹息,这场革命来的太迅猛,我已经赶不上了。

嗯,这种心情完全是庸人自扰,在我看来完全没有必要。首先区块链才刚刚正式开始,现在加入还属于早期,其次DAPP开发其实没有想象的那么难,最大的问题是自己,只要全身心投入进来,我认为每个人都可以掌握DAPP开发。

那问题来了,要踏进区块链世界成为区块链世界里的弄潮儿从事DAPP开发需要具备什么样的能力?经过我最近的梳理和思考,从事DAPP开发只需要掌握以下三种能力就可以了(ps,可以作为区块链公司HR招聘的模板)。

第一,能够正确理解区块链。理解区块链的本质、特点和商业价值,了解分布式、共识机制、密码学、P2P网络的基本概念,对区块链的商业价值和应用场景有一定的认知。
第二,至少熟悉一种开发语言。比如Javascript、C++、Go、Python等。
第三,至少熟悉一种区块链的智能合约开发。比如以太坊、超级账本、EOS等。

嗯,好像有点多,但没关系,这些其实都没有你想象的那么难。

关于第一点正确理解区块链可能是大多人的一个坎。对于大部分人来说,最难的事情是克服自己内心的障碍去拥抱区块链这个新生事物。同时由于区块链技术比较新,中文方面的书籍、资料比较匮乏,导致大部分无法正确理解区块链。片面和断章取义的理解都会误导大家,如果能够在一段时间里系统学习区块链我认为这不是一件难事。

关于第二点至少熟悉一种开发语言,我认为也不难。不管是C++还是JavaScript这方面的学习资料已经非常多,大家可以选择一种自己喜欢的开发语言进行深入全面的学习。比如目前最流行的以太坊智能合约开发用的solidity就类似于JavaScript的语法,6月份即将上线的EOS目前使用的开发语言是C++。

这时候你肯定会说了,我没有任何开发经验,可以学习区块链开发吗?答案是肯定的。如果你和我一样喜欢技术,我强烈建议现在立刻马上加入到区块链世界中来,这极有可能是你人生最正确的一次选择。

很多人对于编程有一种莫名其妙的畏惧,动不动就说自己不懂技术,做不了开发,在我看来这都是借口,其实编程没有大家想想的那么难,甚至我认为每个人都可以学会开发,前提是你愿意持续投入一段时间进行系统的学习。

为了让大家克服对开发的恐惧,下面我简单聊聊开发语言。任何一种开发语言都是由数据结构、数据类型、逻辑结构组成,只不过是不同的语言有不同的语法。

在计算机中,为了有效组织数据之间关系,会使用到数据结构,数组就是一种常用的数据结构。要把一个公司的所有人放在一个数据结构里,就可以使用数组的方式进行存储。

数据类型的作用是将不同数据可以有效的存储在计算机中,常见的数据类型有整型、浮点型、字符串等。比如姓名我就可以使用字符串数据类型,年龄就可以使用整型数据类型。

计算机在模拟人类思维的时候需要有相应的逻辑结构,分别是顺序结构、条件分支结构、循环结构。顺序结构是三种结构里最简单的一种编程逻辑,它如同我们写文章一样,代码的执行是按照语句的编写顺序执行的。条件分支结构是三种结构里稍微复杂的一种编程逻辑,它如同我们日常生活中这样的场景,你吃了吗?没吃,我们一起去吃饭,吃了,我找别人去。循环结构是三种结构里最复杂的一种编程逻辑。它如同毛驴拉磨,只要主人不让停,就一直转下去。不同编程语言的之间的差异就如同中文、英语之间的差别,只是语法不一样而已。

好的开发语言就简单说到这里。有了语言开发的基础之后,就可以选定一个公链进行智能合约开发的学习。下面我们以以太坊的solidity智能合约开发为例。智能合约类似我们之前开发的业务逻辑代码,你也可以理解为后端代码,但智能合约开发与我们之前的程序是有很多不一样的地方。首先,由于智能合约代码是运行在区块链上的代码,一旦部署就无法修改,因此在部署之前一定要进行充分测试,防止软件出现严重漏洞。如果一旦发现软件有漏洞,只能修改后重新部署在另外一个不同的地址上,并且通知用户调用新的地址。虽然这一点与我们之前的开发习惯不一样,但这也恰恰体现了智能合约开发的代码即法律的特点。其次,由于智能合约往往会涉及到钱,因此在编程时一定要保证程序的安全性,幸运的是现在我们可以调用第三方提供的程序以保证资金的安全。最后,需要注意的是以太坊的智能合约开发部署、运行都需要耗费GAS,在智能合约开发一定要注意代码的简洁及可读性,这一点也是与之前软件开发不一样的地方。

一个完整的DAPP包含后端的智能合约和前端的展示。传统的系统开发我们的前端是通过WS调用后端的业务代码,在DAPP开发中,前端是通过web3调用链上的智能合约。

![](https://steemitimages.com/DQmRi5guzU2qXFKAPKAcR588i74eiC9Zbb4XGGi1NGWrQvP/image.png)

为了使得大家更直观的理解智能合约开发,我将我们正在进行的区块链开发系列课程部分案例代码贴出来供大家参考。

![](https://steemitimages.com/DQmZ3uT21ss1Tzf2vUBQZQbqdXyDKG15w7TYfXaEcEbW6vq/image.png)

![](https://steemitimages.com/DQmNViWroUHmJDDfiVsSzHrZem4amHm5RbVAsYGFfH3FAa7/image.png)

需要注意的是,以上只是作为DAPP程序员的基本能力。在一个实际项目中往往需要程序员、架构师和运营人员共同配合来完成一个项目的落地。

最后,我在这里再次呼吁广大程序员尽快加入到这场革命中来。为了方便大家沟通交流,我在知识星球上建了一个智能合约与DAPP开发的圈子,在这里我会将一些优秀的资源放在里面供大家学习。

![](https://steemitimages.com/DQmWGdxGv3DscEtPxG6HsDPgRjLYVb7xVjQvNU5fQLNNuYd/image.png)
👍  , , , , , , , , , , , ,
properties (23)
authoryingpingzhang
permlink26ceuo
categorycn
json_metadata{"tags":["cn","blockchain","dapp","smartcontract"],"image":["https://steemitimages.com/DQmRi5guzU2qXFKAPKAcR588i74eiC9Zbb4XGGi1NGWrQvP/image.png","https://steemitimages.com/DQmZ3uT21ss1Tzf2vUBQZQbqdXyDKG15w7TYfXaEcEbW6vq/image.png","https://steemitimages.com/DQmNViWroUHmJDDfiVsSzHrZem4amHm5RbVAsYGFfH3FAa7/image.png","https://steemitimages.com/DQmWGdxGv3DscEtPxG6HsDPgRjLYVb7xVjQvNU5fQLNNuYd/image.png"],"app":"steemit/0.1","format":"markdown"}
created2018-04-23 00:30:21
last_update2018-04-28 00:35:45
depth0
children5
last_payout2018-04-30 00:30:21
cashout_time1969-12-31 23:59:59
total_payout_value2.360 HBD
curator_payout_value0.554 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length3,606
author_reputation1,348,872,191,969
root_title致广大程序员的一封信
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id51,574,142
net_rshares422,090,163,301
author_curate_reward""
vote details (13)
@cheetah ·
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://www.92to.com/xuexi/2018/04-22/33644701.html
properties (22)
authorcheetah
permlinkcheetah-re-yingpingzhang26ceuo
categorycn
json_metadata""
created2018-04-23 00:30:39
last_update2018-04-23 00:30:39
depth1
children0
last_payout2018-04-30 00:30:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length149
author_reputation942,693,160,055,713
root_title致广大程序员的一封信
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id51,574,172
net_rshares0
@jint ·
顺之者昌,逆之者亡。你那个写法,就是民国军阀的口气了。
properties (22)
authorjint
permlinkre-yingpingzhang-26ceuo-20180423t020551042z
categorycn
json_metadata{"tags":["cn"],"app":"steemit/0.1"}
created2018-04-23 02:05:51
last_update2018-04-23 02:05:51
depth1
children1
last_payout2018-04-30 02:05:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length27
author_reputation26,617,009,527
root_title致广大程序员的一封信
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id51,585,583
net_rshares0
@yingpingzhang ·
哈哈
properties (22)
authoryingpingzhang
permlinkre-jint-re-yingpingzhang-26ceuo-20180423t042015825z
categorycn
json_metadata{"tags":["cn"],"app":"steemit/0.1"}
created2018-04-23 04:20:18
last_update2018-04-23 04:20:18
depth2
children0
last_payout2018-04-30 04:20:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2
author_reputation1,348,872,191,969
root_title致广大程序员的一封信
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id51,603,321
net_rshares0
@myapple ·
详细学习了!
properties (22)
authormyapple
permlinkre-yingpingzhang-26ceuo-20180423t014614257z
categorycn
json_metadata{"tags":["cn"],"app":"steemit/0.1"}
created2018-04-23 01:46:15
last_update2018-04-23 01:46:15
depth1
children0
last_payout2018-04-30 01:46:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length6
author_reputation48,560,130,638
root_title致广大程序员的一封信
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id51,582,954
net_rshares0
@steembottrackerr ·
<center>https://steemitimages.com/200x200/https://s-media-cache-ak0.pinimg.com/originals/81/28/3c/81283c6aed7bdb5b9f8ad73b8ce62c2f.jpg</center>
---
<center>Hello @yingpingzhang , Congratulations ✅ . Your content began to appear in the hot section.
I am the information account of "SteemBotTracker" site.
</center>
---
<center>
Your Informations
Total SBD: 21.025
Total STEEM: 0.155
</center>
---
<center>
I recommend to increase this;
You can make "Resteem" and advertise to the followers of the whale accounts.
"Resteem Bot" for you;
✅ The most profitable Resteem Whale @byresteem  has 25.500 Followers + 7000 Sp + Upvote with min +55 accounts. 
</center>
---
<center>
You can purchase "upvote" by bid bots.
"Upvote Bot"
✅ The most profitable whale in the last round. @buildawhale
</center>
---
<center>
I'm taking this message once. You need to use the #steembottrackerr tag for more information.
Those who "upvote" this interpretation will be awarded a "UpVote" prize of 100 Sbd per week per person.
I am a bot, I can not answer the comment. I hope I could help. Good luck. Sorry if I disturbed you.
</center>
properties (22)
authorsteembottrackerr
permlink20180428t235600821z
categorycn
json_metadata{"tags":["advice"],"app":"steemjs/test"}
created2018-04-28 23:56:03
last_update2018-04-28 23:56:03
depth1
children0
last_payout2018-05-05 23:56:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,141
author_reputation-1,493,369,324,060
root_title致广大程序员的一封信
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id52,727,927
net_rshares0