友@昱全yuquan在微博中提到“有時候覺得自己基礎不紮實看看演算法,電腦網路,作業系統。又覺著自己工作的東西還木有做的好,得多熟悉項目和安卓源碼,這兩件事情得有一個平衡吧。特別是基礎知識,最怕學的不系統,到時候打了水漂。。。”那麼到底怎麼平衡這兩部分知識的學習呢?
我們先把理論知識和項目知識各自所指的內容確定一下。
我認為這裡說的理論知識指的是演算法、資料結構、作業系統、設計模式、物件導向分析與設計、軟體工程等電腦學科中通用性較強的理論內容,這些內容可能很難直接作用於項目,並且其收益不是立即就能得到體現,但是這些理論卻能為自己的思想、理念等更升到新的高度。
另一方面,項目知識我認為其所指包括工作中用到的開發語言、項目工具、項目代碼、項目文檔以及與工作內容密切相關的衍生知識。其內容主要圍著日常工作,作用是提高工作效率和工作能力,並且能在較短的時間內收效顯著,有利於工作任務的完成。
建立在這樣兩類知識劃分的基礎之上,就可以較合理的分配學習計划了。
首先是考慮緊急程度。如果項目需要的知識很急迫,那麼就可以優先學習這部分知識,而且要有重點,有取捨,除非時間充裕,不要眉毛鬍子一把抓。這部分的系統性不那麼強,因此可以在較短的時間內熟悉並掌握,當你在試用期內的時候,這部分是最高優先順序要學習的內容。
其次是考慮個人的持續發展。每一位技術人員都希望自己能持續發展,只有實踐經驗是不夠的,而且用不了多久就會發現實踐經驗的提升會越來越慢,這樣就需要理論學習了,理論與實踐相結合才能使自己的水平快速上行。這些理論知識一般在工作時間內是沒有時間學習的,主要的時間來自業餘。理論知識有一定的系統性,有些課程有相互關聯,這時就要充分瞭解課程的前後置關係以及課程內容、基本要求、適應人群等,防止對系統性的破壞。同時最好與經驗豐富的朋友多交流,以免在不合時宜的時候花大量的時間在不恰當的課程上。要先學會走路,再試著跑步。
餘下的就是考慮自己的時間、現有的水平、學習狀態等其他因素了,不在此一一敘述。
總結一下,要根據項目的緊急程度來安排學習內容的優先順序,對理論知識要保持學習的持久性和連貫性,選擇合適的課程學習並且要持之以恒。這就是我對開頭問題的回答。
——歡迎轉載,請註明出處 http://blog.csdn.net/caowenbin ——