個人總結,電腦專業從業者,尤其是工程師,需要掌握以下知識和技術:
1. 多多益善的數學功底
毋庸置疑,邏輯思維的基礎,可能某些人天生適合邏輯思維,但是經過長時間的數學思維鍛煉,邏輯思維一定是底子很好的!
要求程度: 第一階段是夠用,接下來是越充實越好!
如何訓練:不要刻意去看書,去重新學習數學課本,方法是演算法驅動,也就是看演算法需要的時候再去看對應的數學知識.
2. 專業的英文閱讀能力
當需要研究國外的晶片資料手冊或者相關文檔或者標準時候,專業的英文閱讀能力是相當重要的。這個不必多說!
要求程度: 第一階段還是夠用,當然也是越多越好!
如何訓練:多看、多聽,多看包括英文網站,英文文檔,多看就是電影咯,這個簡單。
3. 電腦相關原理
方面很多,例如:電腦的計算模型,cpu、記憶體、硬碟之間的關係,機器指令、彙編、進階語言的關係,函數調用的原理,c++對象結構,進程調度原理,記憶體分頁原理,記憶體管理,編譯器原理,虛擬機器原理,程式載入原理,解譯器原理,物件導向原理,硬體驅動原理,專業術語理解,函數庫原理,編譯串連原理,GUI原理,視覺化檢視原理...
要求程度:第一階段要知道的寬,接下來就是專!
如何訓練:積累,多學!
4. 相當熟悉一門編譯類語言
不如直接說C語言,不一定非要拿C幹什麼事情才說要學C,而是通過理解C的方方面面,讓我們對編譯性語言有個整體的把握,基本類型啊,函數過程啊,標頭檔包含啊,庫函數實現啊,作業系統調用啊,程式設計基本技巧基礎認識啊...
要求程度:越熟悉越好!
如何訓練:多看關於C的書,多寫公用程式,多看開原始碼!
5. 相當熟悉一門解釋類語言
指令碼類語言的高效快捷簡便,是編譯類語言無法比擬的,豐富的庫,自由的特性,眾多的工具,天生的跨平台性質,讓你在手機上看到運行效果。通過熟悉解釋類語言,充分理解動態語言的實現方法,擴充方法,通過對比編譯類語言,自然能體會語言所提供的諸多特性的來由了!
選擇很多:bash\python\perl\ruby都不錯,其中python就很好,bash在linux上應用最多.
要求程式:越熟練越好!
如何訓練:多看書,多寫程式,多看代碼!
6. 演算法(資料結構)
演算法以數學為基礎,不過即便沒有數學功底,應付非演算法類工作也沒問題,只要掌握了一定的演算法基礎即可。但是,可持續的考慮問題,一定要理解演算法,理解動機。理解演算法背後的內容。
要求程度:越多越好,越深越好!
如何訓練:多做題,多思考,學數學,長時間積累不鬆懈!
7. 設計模式
這裡說的設計模式,可以成為廣義的不是咱們說的設計模式那本書的設計模式,而是凡是規範的,有範式的程式設計方法,都是設計模式。這個沒有辦法通過看書就掌握了,需要動手實踐.
要求程度:越多越好!
如何訓練:多看書,多寫程式,多實踐!
8. 整理全面理解大系統
一定要完整的理解一個軟體系統,包括各個方面。推薦熟悉四類系統:
(1)單片機無作業系統,只要簡單無限迴圈控制的簡單介面的應用,掌握如何對硬體編程,如何點燈等。
(2)單片機多任務作業系統,理解多任務的概念和編程特點,當然還有作業系統的實現,架構,機制,啟動方式等等。
(3)linux作業系統,理解現代作業系統的原理,實現,非常重要。
(4)Android作業系統,理解了Android系統,就理解了需要學到的電腦的大部分知識哦!
9. 自己動手寫這寫那
(1)每天寫代碼->需要的文法也看
(2)每天看演算法->需要的數學也看
(3)自己寫一個作業系統->簡單的,五髒俱全的
(4)自己寫一個編譯器->簡單的,能用即可
(5)自己寫一個GUI->簡單的,能看圖片和檔案即可
(6)自己寫一個解譯器->簡單的文法即可
10. 多看多寫多思考,貴在堅持
多寫代碼,多動手調試,多想為什麼,多看開原始碼,多看書,制定目標,堅持不懈!
本文完.