程序員高效學習法
1、制定計劃
(一)遠期計劃:1-2年內的計劃。時間可以分割成多個學習段,每個學習段1~6個月。一是計劃自己達到某職位某薪資的要求;二是計劃在這個時期內自己要學習的具體學科的知識,拿軟件開發來說,它們可以是某程序語言、某一類算法、數據結構、系統編程、網絡編程、設計模式、數據庫技術、軟件工程理論、編譯器原理、機器學習等內容。需要註意的是,遠期計劃中學習的學科需要盡量與自身已經掌握的學科結合後能夠成體系,比如這些知識能夠達到一個崗位某薪資的要求。
(二)中期計劃:1-4個月的內容。時間可以分割成多個學習塊,每個學習塊3~15天。將遠期計劃中的內容進行拆分。例如上面的具體學科系統編程可以分化成:(1)基本概念;(2)I/O編程;(3)進程相關編程;(4)多線程編程;(5)文件系統;(6)信號;(7)資源調度部分;(8)共享庫;(9)進程間的通信;(10)管道;(11)消息隊列;(12)信號量;(13)共享內存;(14)內存映射與虛擬內存;(15)文件鎖;(16)socket編程;(17)終端和偽終端。
分成這17個部分來學習,可以先根據每個部分的難易程度先安排一個學習塊,然後根據其難易程度以及空余時間的量在中期進行調整。
(三)短期計劃:每天的計劃。在每天估計好第二天可利用的空余時間,進行對以上學習塊中的內容細化到具體第二天要做的事情。它們可以是:編程出某個程序、看完某個視頻並理解記好筆記、讀完某本書的某幾頁內容並理解做好筆記等。
如果第二天有特殊情況未能按時完成當天任務,就需要將任務順推到第二天。同時如果當天任務完成比較輕松,可以選擇隨時添加適當的任務。
需要註意:因臨時原因導致的未能按時完成,盡量只改變短期計劃,不要改變中期計劃的進程。
2、學習資料的選取
學習資料的選擇空間特別大,容易造成選擇困難癥以及在某個時間點對學習內容的散亂,所以在早期計劃階段需要結合自己的能力和長期計劃,確定好自己需要看的資料,對於不看的資料早點丟掉。
3、作息和飲食、運動
需要將自己的生物鐘和作息時間穩定下來,固定時間飲食、固定時間運動。這樣對身體也有好處。控制自己晚上的睡覺時間:推薦睡覺時間23:30,最晚睡覺時間:01:00。
4、控制娛樂
卸載自己容易上癮的遊戲,和沒有作用的APP。有意識停止自己做無聊的事情。
5、關於懈怠
營造氛圍,有意識讓自己處於一種學習的模式之下。減少攜帶時間。如果確實攜帶了,可以適當休息,吃點東西。
6、關於寫博客
目前的計劃是撰寫以下幾個專欄,每天將在下列任意專欄中發表一篇文章:
(1)python開發專欄;
(2)C/C++開發專欄;
(3)JAVA開發專欄;
(4)系統編程專欄;
(5)網絡編程專欄;
(6)數據結構和算法專欄;
(7)leetcode專欄;
(8)產品經理專欄;
(9)雜談專欄。
共勉!
程序員高效學習法