如何“用以致學”
先說我的看法,學校里面的學生,建議“學以致用”,職場中的人士,建議“用以致學”,
如何“用以致學”
。原因很簡單,學生,要理解原理,方便以后使用知識的時候,即使不會,能夠根據理論推導出來,另外,學生其實是有職業啦,我說句話,“職業學習者”。既然學生的職業是學習,因此,就要“求甚解”,知其然,還要知其所以然,我的理解,這是職業道德,做不到的,不叫好學生。嗯,我承認,我在做學生的時候,不是好學生,呵呵,我的建筑專業學得有點爛。嘿嘿。
因此,從學生角度,研究源碼邏輯是可以的。因為你要去理解底層很多細節,記住,下回調用的時候,自然會用,實在不會用,抄總會吧,把人家的代碼抄過來,變一變,就可以滿足自己的需求。
但是,研究源碼是很費時間的,比如讀兩本書,應該說,這兩本書是有差別的,至少,它們的目標客戶群不一樣,后者,更多面向學生,就是針對學生的需求來設計的,而前者,應該說,一個是很標準的商用程序員,嗯,商用作者,他的書,有很強的目的性,主要針對在職程序員,因此,書的風格體現短平快,抽象度比較好,更多體現在“用”,而不是“分析”。這是我的看法。
其實,這里面已經體現職業人士學習需求和學生是不一樣的,職業程序員,有個中心思想,就是快速使用,因為公司里做事,沒有太多時間給你學習,大家都在忙著賺錢,一個需求過來,程序員首先評估自己的知識體系,自己積攢的工程庫能否支撐,有的,打勾,沒有的,就要去找,還要趕快找,因為項目有時間的。
所以,職業程序員學習,有點不求甚解的,很多時候,同樣學個東西,職業程序員學習,沒有學生來得扎實。原因很簡單,我們研究一個庫,通常要研究它的“特性”,什么叫做特性呢?我的理解,就是程序api沒有講清楚的事情。一個函數,什么參數,返回什么,這個往往一目了然,但是,它內部的實現,是空間優先,還是時間優先,有沒有某種潛在隱患,是不是線程安全,等等,一個程序員,不理解這些“特性”,可以說沒有掌握這個庫,寫出程序來,bug一大堆,肯定會有問題。
所以我說,學習使用別人的庫,很多時候,比重寫還累,自己寫,自己拿解決方案,很多時候符合自己的習慣,其實不難的,但是,真要掌握一個庫,要從源代碼中“逆推”別人的思想,其實非常難,更何況,很多源代碼,尤其是開源的啊,變量命名很簡化,注釋不規范,其實我說句話,這堆代碼,只能用,不能學,但是,別人學不會你的特性,又沒法用好,因此,最后還是不能用,因此,叫做垃圾,
資料共享平臺
《如何“用以致學”》(http://salifelink.com)。ok,這里說一點我的看法,職業程序員怎么選書,有時間的話,找點源碼分析看,可以,但通常,對于解決目前的工作,沒有多大用途,更多的是用來**內功,因為真要一個項目火燒眉毛了,你再去看源碼分析,晚了,時間也不夠了。
項目中應對問題,一般建議開快餐式書籍,或者google,能解決問題是最好,搞不懂的,先做出來看,自己做測試程序來測,先解決問題。
當然,這里面也能看出一個程序員能不能做久,一些程序言,當時用快餐的方法解決了,但留下了問題,下來,項目不那么緊急的時候,就會去自己再仔細K一遍源碼或者有深度的書籍,再多測試一下,盡量掌握透,而絕大多數人,項目一完,喝酒去咯,呵呵,大家說是不是這樣?
大家說,哪個程序員可以做得很久?
大家老是說我們中國缺程序設計大師,很浮躁,但是,我想說一句,就在這些細節上,大家不妨問問自己,看自己是怎么做的?
因此,對于學習,我的建議,如果你是學生,按照學生的'方法,深入挖掘,但不妨礙你看點快餐式書籍啊。但當你以后到了職場,要學會“用以致學”,這樣才能賺到薪水,有錢吃飯。不過,如果你要做個好的程序員,想成長為牛人的話,那么,注意啊,重點來了,你要學會吃苦。
什么叫做吃苦?
項目完成了,大家出去聚餐,唱卡拉OK,你可不可以看看手表,22:00了,站起來和大家說聲抱歉,我要回去看書了。大家出去旅游,你說你們去玩,我在家里看書。有個電視很好看,你和家人講,你們慢慢看,你坐在電腦前,看書,做實驗。到2:00睡覺。每天晚上,19:00回到家,吃晚飯,把該做的家務做了,然后坐到電腦前去學習?
公交車上,隨手拿出手機,開始看書。這些都不是最重要的,最重要的,上述習慣,你保持10年看看。有一點需要提醒的是,“能力越強者,頭抬得越高,不用看別人臉色”這句話是錯的。真正你看了很多書,能解決很多問題之后,頭會越來越低的,而且,一定會看別人的臉色。
原因很簡單,看書,你看得越多,我這里擺句話,你會覺得你不懂的東西越多,你會越來越發現,這個世界需要合作,每個人都有你不知道的東東,你需要借助他們的力量。 頭抬得太高,別人還會和你合作嗎?人力有時而窮,我們學習,不是說什么事情都要自己來,那會累死的。學會合作,你的事業更容易成功。
【如何“用以致學”】相關文章:
1.信以致遠