宅男程序員給老婆的計算機課程之10:做,就對了!
原創【51CTO獨家特稿】學以致用,很多時候,學習一樣東西最好需要能夠在實際中應用起來。
所以我在第2課"怎么看待牛人"中強調的必須“看代碼 + 寫代碼”。
不過我在里面提到的例子“ORM”卻并不好,ORM太過龐大。實際編碼,應該是從小開始。
運維工作中更經常使用的是腳本語言,腳本程序甚至是shell命令都可以完成很多有意義的事情。
這些豬頭應該在工作中體驗很多;但作為程序員,程序能夠發揮的作用也可以體現在生活上。
玩Draw Something單詞想不出來,是完全可以寫個程序來輸出單詞列表的。
上網下載一個英文單詞詞庫;然后甚至可以用最傻X的方式去逐個單詞檢查,看Draw Something給出的字母是否能夠組成各個單詞。
程序首先是要完成需求,這里的需求僅僅是要方便玩游戲,猜出朋友的單詞謎語。
程序運行慢點完全無所謂,千分之一秒輸出結果,還是10秒輸出結果,都不會影響這個需求的實現。
(當然,如果是玩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系列: