剛看到其他人的技術學習心得,在此做些分享會加上自己的一些看法:
學習新知識的兩方面:整體結構和細節,就像書的目錄與具體內容,得先了解整體有哪些內容,然後再去學習每節的內容,避免深入細節而迷失學習的方向。
整體結構:就像是介面,抽象類是做什麼的,不用深入實現,看出整個骨架,分離出核心部分,在以後哪種場景下能用上。細節:這時就得了解裡面的原理,不斷實踐,不斷重構。
第一步應該是找到這些主要的類和介面,找出主要的呼叫過程,清楚這個過程.這樣,差不多就明白這個軟體/庫是怎麼工作的了.第二步,是看這些主要類,介面的繼承/實現,這樣可以了解這個軟體/庫可以做什麼,怎麼擴充套件.這樣,乙個數m**量的東東,可以在2~3天的時間裡把它弄清楚。對主要流程的掌握和對層次的掌握是第一位的。第一頭就紮進這些細節,那就完了。
以問題導向,案例為基礎的學習,不要拘泥於語言,要學習能學習到的最好的東東。比如,效能的關鍵在排程,這時候可以看看資源排程模式,hibernate算是把資源排程玩到了極致。基於事件的排程(如.net中的web cache),程序排程,執行緒排程,工作流,這些都算是行為排程,要是把這些東東融會貫通,掌握每一種實現的優點缺點。那麼軟體設計中所有和時間、併發、資源相關的東東都不在話下了。行為排程可以看看.net 中的cache實現,找乙個工作流軟體看看,找找幾個執行緒框架看看,看看幾個典型作業系統的程序排程機制。
找乙個較穩定的的案例學習,如:pertshop架構,包括其業務、構架,了解有哪些業務模組後再從小模組分析起,多看原始碼,看其怎麼實現此功能的。
同樣的問題,多研究幾種解決方案,分析它們的優缺點。
技術學習的通用方法
1 重複 技能掌握最本質途徑就是不斷重複。中國的老祖宗們早就將這一真諦記錄位耳熟能詳的成語 熟能生巧。庖丁解牛的故事都是千百年來關於技能掌握的最好詮 釋 無他,唯手熟爾。2 以賽代練 以賽代練 的本質就是通過實戰來快速提高技能。練習的目的就是為了比賽,所以直接在比賽中進行鍛鍊,可以說是手段與目的合二...
技術人的自我學習
知識獲取速度構建認知優勢 知識深度構建認知優勢 我還聽說過有其他人犯過類似的錯誤或者有做得更好的的嗎?有什麼相關的方法可以應用到這件事情中嗎?2 每天反思對標同樣的內容,是乙個自我催眠的過程。就像理學中講的,我們可以通過自說自話來與潛意識對話,影響我們的思考和認知。3 參考現代企業管理中的 對標管理...
IT技術學習的思維模式
眾所周知,科學技術的發展日新月異,技術更新迭代非常快。對it工程師來說,快速而熟練的掌握一門新技術,是作為程式設計師的一項基本能力。1 遇到業務問題,以現有技術,解決不了這個問題 2 現有的技術可以解決,但是效果不夠好,有更好的技術可以解決。3 個人發展,如跳槽,請求加薪 1 學習基本語法 了解新技...