29天编程挑战,收获知识和友谊

in #cn-0076 years ago (edited)

智能合约开发课.jpg

2018年1月6日,我报名参加了硅谷Live举办的《以太坊智能合约全栈开发入门》课程,通过29天紧张密集的学习和实践,2018年2月4日,我拿到了毕业证书。

毕业证书.png

一、我为什么要学习这门课程?

去年年底我就关注了老董的公众号【老董区块链干货铺】,他制作的区块链原理的系列视频给我留下了很深的印象,所以当他发布第一期的区块链学习课程的时候,我马上就缴费报名了,可惜当时只有50人名额,我未能入选。

第二期扩大到100人,我有幸入选参与了整个学习过程,而我为什么如此卖力地去学习这门课程?我主要有以下几个思考:

1)一个比较实际的问题,周围几个朋友在用imtoken钱包收币,并要给许多人发Token,人数较多时就会变成一件非常费力且容易出错的事,所以想写一个智能合约来自动完成这件事。

2)以太坊号称开创了区块链2.0时代,当前世面上出现的1478种币(来源于coinmarketcap.com),有587种都是以太坊上的代币,想评判这些币的价值,需要深入了解以太坊的背后原理。

3)智能合约在写作社群激励等很多地方有广阔的应用前景,程序员学会它肯定是站在区块链的顶端,既有趣又赚钱。用老董的话来说,学完这门课相当于超过了世界上95%的程序员。

二、苦逼的学习过程

我在报名之前看过一期学员的一篇文章,知道学习强度非常大,而我又没有写过Javascript程序,所以提前预习了一点github、Solidity和Truffle的相关内容,好让自己能够在正式学习过程中不掉队。

1月7日上午10点,学习班正式开班,而我正在杭州参加公信宝新版本发布会,会后与一帮区块链爱好者交流甚酣,一直没空看课程视频,直到第二天晚上才有空做作业。

学习课程表

本次课程的作业发放和批改过程全部在github上进行,而我以前没怎么用过github,第0课的视频看了好几遍才搞明白了复杂的提交过程,后来还是助教整理的一张流程图更清晰。

github提交流程

第一课中关于ETH地址的引号问题就挺折磨人,幸亏有助教帮忙,第一课的作业才能及时完成。现在回忆起来,当时犯错的问题确实比较初级,多些耐心和讨论,前几课的内容还是相对容易的。

第四课的开发环境用到了VirtualBox中的Ubuntu虚拟机,还好以前有Linux的命令行基础,这一课勉强通过,但各种开发工具的版本问题仍是巨大的坑。无奈,我尝试着用Windows跑通了整个Truffle环境

真正的难点在第五、第六课,这里需要用到Javascript和React框架,再加上node.js、truffle和Testrpc(现在叫Ganache CLI)之类的环境,才能跑通整个程序。我按照视频中的说明敲入了代码,可是运行中总是出现莫名的错误,由于前端开发技能几乎为零,所以遇到错误后束手无策,不知道到哪里去找错。

在第五课的做作业过程中,曾经一度想过放弃,为了体验后面的白帽黑客大赛,借鉴了队友的代码,终于挺了过来。通过认真比对代码,发现自己当时写错了好几处代码。

三、刺激的白帽黑客大赛

第七课可以说是整个课程的点睛之作,老董在以太坊网络上发布了一份带有漏洞的智能合约,10个小组各显神通,运用平生所学去偷走合约中的ETH。这个过程中我有幸担任了B组的组长,这时候才发现队友们个个深藏不露,Python、Javascript、Solidity、Myetherwallet和Metamask全都运用娴熟,最后还完成了一个Hacking核武器,可惜时间不够用了。

非常遗憾,我们组最终并没有获得比赛冠军,但在这次比赛中,我们不仅巩固了以前学过的内容,更是收获了团队合作的经验和宝贵的友谊。这里我要感谢几位并肩作战的战友,他们是高翔、熊雄、Hong Zhong、陈浩林,有两位战友处于地球的另一端,经常熬夜破解老董的合约,一位战友为了方便队友操作,把以太坊养猫的钱包私钥都贡献了出来。

关于这次比赛的过程,我整理了10多页的详细记录,为了不影响后面学员的学习乐趣,这里就强忍住不能剧透了。如果你入选本次课程,一定要投身于这场比赛,一次比赛的收获远多于前六课的总和。

四、课程的运营

1)教师团队

老董和Frank两位老师,带着4位班长和14位助教组成了一个豪华团队,将课程办得井井有条,大家各司其职,目标只有一个:让学员们学有所成。

2)每日打卡

每天一个热点话题,大家都可以发表个人的见解,优秀的回答还被收录在github的【每日优质内容复盘】中。

3)运营班长

几个班长完成了开班、打卡、写稿、催作业、主持、排练、结业、做证书等等繁重的事务,并且每个细节都死抠不放。我在最后的结业仪式上只安排了一个充满学术气息的抽奖任务,还提前排练了1个小时。

4)精彩分享

课程中间的每个周六,几位助教给我们带来了4份知识加餐,海螺老师的《以太坊白皮书解读》、刘芳璐的《XMR白皮书》、何智华的《IOTA技术介绍》以及蔡志诚的《破解养猫合约与智能合约伪随机数》,可以说每篇都值回999元的票价。

5)催作业

几位班长、组长通过各种手段催交作业,无所不用其极,每天打开微信最怕这种信息,我离开校园已经20多年,如今还被90后班长整天催作业,还是老老实实地去看课程视频敲代码吧。

五、参加这个课程需要哪些基础?

零基础是无法完成这门课程的学习的,大概需要以下基础:

  • 会使用科学上网工具,不会它,连炒币都没门;
  • 至少掌握一门面向对象编程语言,比如C++、Python之类的,因为Solidity语言与它类似;
  • 需要有前端开发的基础知识,有些单元测试是用Javascript写的,最后开发出来的Dapp应用的前端也有许多js代码;
  • 最好了解react开发框架,虽然它不是必需的;
  • 会Linux的基本命令行操作,比如md、cd、npm之类的,因为老师介绍的truffle环境是部署在Linux虚拟机上的;
  • 了解区块链的基本原理,比如钱包、地址、区块、Hash、挖矿、BTC、以太坊等等,当然建议看看我写的《区块链生存训练》PDF电子书,可以快速入门;
  • 上面几条对你来说都是小Case?那就点击这里报名吧

六、几个花絮

  • 小组本来10人,一周后有2人不适合学习,退出,小组只剩8人
  • B组的第一任组长由于工作任务很重,难以安排足够的时间学习和参与团队活动,小组积分垫底,我出任新组长,实际上我也没做什么,只是催催作业、打打气、汇总照片、写写作战报告之类的
  • 结业彩排时夏玮欹把老董的奖金说成4000美金,估计想让老董破产
  • 好多学员名字全是英文字母,在抽到2名中奖学员时,编程神勇的顺达助教卡在姓名上,我用汉语拼音解围
  • 陈浩林同学用40秒默认值设置,将班长的歌声传遍结业典礼
  • 学习过程被代码绊住,正好行情冷淡,在场外7万、6万时分别抄底一把

写此文时BTC价格:51150元

本文由币乎(bihu.com)内容支持计划奖励


以前写过的几篇智能合约开发相关的笔记:

Sort:  

向您学习,学习的路上永无止境。

@speeding参与币圈的方式真是另辟蹊径,大家都在抄币,你却把握行业发展拼命在这方面的积累知识。真的很赞!!!

币也一样在炒,抄到5万了,今天快4万了

牛逼了

不明觉厉。

我报名了第二期没录上,不知道第三期能录上不

Coin Marketplace

STEEM 0.30
TRX 0.11
JST 0.034
BTC 66408.70
ETH 3225.39
USDT 1.00
SBD 4.17