【51CTO独家特稿】学以至用,不少时候,学习同样东西最好须要可以在实际中应用起来。git
因此我在第2课"怎么看待牛人"中强调的必须“看代码 + 写代码”。程序员
不过我在里面提到的例子“ORM”却并很差,ORM太过庞大。实际编码,应该是从小开始。github
运维工做中更常常使用的是脚本语言,脚本程序甚至是shell命令均可以完成不少有意义的事情。shell
这些猪头应该在工做中体验不少;但做为程序员,程序可以发挥的做用也能够体如今生活上。编程
玩Draw Something单词想不出来,是彻底能够写个程序来输出单词列表的。设计模式
上网下载一个英文单词词库;而后甚至能够用最傻X的方式去逐个单词检查,看Draw Something给出的字母是否可以组成各个单词。架构
程序首先是要完成需求,这里的需求仅仅是要方便玩游戏,猜出朋友的单词谜语。运维
程序运行慢点彻底无所谓,千分之一秒输出结果,仍是10秒输出结果,都不会影响这个需求的实现。ide
(固然,若是是玩Facebook上的限时拚单词游戏那需求又是不一样。)工具
这种“程序”是所谓的Throw-away code,写完就扔。
像Draw Something这样的游戏,乐趣就在于努力去想、努力猜成功以后的成就感。有了这样一个程序,那就不用努力去想,游戏的乐趣也就会在瞬间丧失,“破解工具”天然也就得扔掉了。
即使写完就扔,但写这样的程序却有其意义。写与不写是差异是0与1的差异,这是本质的区别。
我会很是鄙视那些热衷于看各类语言的介绍但却一行程序都不写的人。
有的人,据说erlang很牛B,上网搜了一堆介绍,不断的感叹“哇~Erlang确实很牛!”,“哦耶!Facebook Chat跟Web QQ都是在用erlang,果真erlang才是王道!”
可是,他本身却不写任何一行erlang程序;有时,还会抱怨公司的管理层都是×××,这个项目用erlang再合适不过,为何不用,为何不给团队使用erlang的机会呢?
必定要写程序,没有机会,也要创造机会。
而在我看来,生活中这种“玩游戏”的机会再合适不过。
写了Draw Something的“破解工具”,会使得猜单词没有成就感,丧失游戏的乐趣;但,完成了一个程序去破解一个游戏,这自己也是一件有成就感的事情啊~
而且,游戏的乐趣会转移为编程的乐趣;而乐趣,是让本身变厉害的最大动力。
Geek享受这样的机会;而ED则等待别人享受这样的机会。
“作,就对了” - 慈济宗创始人 证严法师
做业:
1. 使用Perl 实现一个程序输入若干字母,输出这些字母所能组成的全部单词列表。素,就是要写个 Draw Something的“破解工具”。
2. 比较Perl的实现跟云风的lua实现有何不一样:https://github.com/cloudwu/guess-word
51CTO系列: