【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系列: