個人的努力在時代的進步面前不值一提
在刪一些舊文件時,突然想到了這個問題。順便黑一下Peter Norvig的 Teach Yourself Programming in Ten Years 。他這篇文章除了"Why is everyone in such a rush?"是對的,給的建議經不起時間的考驗。對於過去十年來說,最好的辦法實際上啥也不學等十年才是最划算的,尤其是對於十年之前的我來說。
十年之前爛尾的程序,在我現在看來,要麼就是完全不值得寫,要麼想寫只要有幾天時間就可以寫出來。很多十年前,完全不敢想像自己也能寫的程序,現在竟然已經寫過不少了。看上去好像取得了非常大的進步,可是仔細一想把現在的我直接扔到十年前,該爛尾的還是會爛尾,寫不出來的還是寫不出來。
這十年間
出現了Stack Overflow。以前隨便碰到個小問題都足以使一個程序爛尾了,特別是對於我這種業餘的來說,花幾天時間去解決一個小問題完全是不現實的。現在,絕大多數都只要從Stack Overflow上複製幾行代碼就好了。
git/hg之類的DVCS成為了主流,而在十年前,我想我從來就沒搞明白過CVS和SVN。我承認我是在學會git或者hg的基本操作之後才搞明白SVN的,那時已經沒幾個項目在用CVS了,也就無視了。寫程序而不用版本管理工具是完全無法想像的。
國外有很多不錯的課程對於只要買得起普通電腦的人來說,自學已經沒有任何障礙了。比如MIT 6.828,現在已經只需要用vanilla QEMU就可以了。而在之前,很多類似的課程用的都不是x86指令集,或者需要打過一些奇怪補丁的QEMU或者別的什麼(包括MIT 6.828)。更多的是直接讓你死在boot-loader上。
還有至少大家都聽說過Erlang了,當然絕大多數人都退縮了。而我並沒有。很多問題,用Erlang進行快速原型開發要容易多了,假如你退縮了,你就注意不到了,比如解析H264 bit stream,用Erlang比用C還容易不少。
國內寬頻也普及了。很多大學的各種開源鏡像都已經比較完善了。很容易就能用上各種Linux發行版提供的打包好的庫,而不是自己從不知道哪裡去找源代碼還不知道怎麼編譯。
所以,這十年里,我唯一有效的努力就是試著學了一點Erlang(因為令人吃驚的事實是,大部分人都做不到這一點),其他的進步都和自身努力無關,全是時代的進步帶給我的。
推薦閱讀:
※C語言基礎:函數參數與返回值
※現在學編程,晚么?
※面向項目學習編程--之前的廢話
※從零開始手敲次世代遊戲引擎(四十一)
※如何精通C語言
TAG:編程 |