程序員的自我修養(一)

1)數據結構
數據結構課程通俗的說就是告訴你如何用最基本的語言類型、變量,關鍵詞語句等,去處理各式各樣的邏輯問題,我們稱之爲算法,而日常編程中的各種問題,例如排序、文件夾遍歷操作、數據庫查詢等,都可以在數據結構課程中,找到對應的數學原型。數據結構課程的理解能力,也是一個人數學能力的體現,數據結構學習的好壞,是程序員水平差異的一個重要分水嶺,對於這一塊內容的學習,有如下建議:使用VB、C、C++、Pascal等語言,買一本相關語言數據結構與算法的書,或者在網上下載相關的PDF電子書,完整的學習一邊,並將書本中的所有案例親自編寫運行調試一遍,當能夠領悟到某些日常編程中常見手法源於某些數據結構和算法時,就基本達到了學習效果。
歡迎夾裙四九九七五四六一四交流,暗號CS.
2)操作系統
所有編程語言的開發以及應用的運行,都基於操作系統,桌面編程中的大部分場景包括內存、進程、文件系統、網絡通訊、用戶界面等,都源於操作系統的定義和概念,完整的瞭解操作系統的起源和組成以及運行邏輯,對多線程、複雜界面、文件管理以及一些難以正常理解編程思路等開發中遇到的場景,有非常大的幫助,不僅幫助理解,也能掌握更多有效的程序寫法。具體可以買一本操作系統的書或者下載相關PDF電子書,完整的瀏覽一遍,做到能夠結合實際編程場景來看待操作系統原理,就基本達到了學習效果。
3)數據庫
傳統的關係型數據庫,入門簡單,深入卻難,往往開發人員能夠較快的掌握增刪改查、視圖、索引、存儲過程等基本數據庫操作,卻在編寫複雜查詢、設計主外鍵、優化字段、去除冗餘等時,出現只會依葫蘆畫瓢卻不能自主思考擴展的狀況。究其原因還是沒能瞭解關係數據庫的根本原理,而數據庫這一門課程,系統的闡述了關係型數據庫的來龍去脈,瞭解其中的數學原理或邏輯基礎所在,對提升數據庫編程水平有質的影響。建議也是買一本數據庫的相關書籍或者下載PDF電子書,能夠把熟練的把第一範式、第二範式等數據庫課程的基本知識點與數據庫編程場景建立起關聯,也基本達到了學習效果。
4)編譯原理
編譯原理是編程語言以及各類語言編譯器的科學基礎,可以說編譯原理創造了世界上的幾乎所有的IT應用,學習編譯原理的基礎是數據結構和算法,因此編譯原理的學習要花費更多的時間和精力,由於現代高級編程語言的編譯器,在代碼優化、資源優化方面已經做的足夠智能,因此,編譯原理的學習對實戰的影響越來越小,但是正所謂本盛末榮,如果認爲自己對數據結構和算法的學習達到了一個較高的水平和狀態,可以在編譯原理學習上進一步深入,最終把自己和普通程序員拉開更大的差距。
2、英語能力
英語的天然特性和字母長度還有學科發展的歷史因素,決定了編程語言一定是基於英語的,在編程過程中,從語言的關鍵詞到文檔的內容又或是搜索引擎的搜索結果,都不可避免的會遇到英文。大部分編程人員,都具備英語四級左右的英文基礎,卻由於非專業以及工作環境原因,逐漸疏遠甚至完全淡忘了英語。而實際操作中,大部分編程語言資料都是英文,在線編程問答內容也是英文,因此,很有必要把英語能力重新恢復到一個不用太高但行之有效的水平,達到如下效果:
1)對自己所使用語言,每一個關鍵詞都知道具體的英文翻譯、邏輯含義以及讀音。
2)對於自己使用語言所涉及到的相關方法、類庫、框架、工具等,能知道其中每一個方法、過程以及參數關鍵詞等的英文翻譯、邏輯含義以及讀音。
3)對常見的編程邏輯和核心關鍵詞,能夠用英文組織問題的描述,最簡答的也行,只要能被搜索引擎讀懂就可以。比如如何在C#中把整形轉換爲字符串類型這個問題,最簡易的英文描述就是 C# Integer Covert To String。
4)在自己技術知識範圍內的任何的英文的技術手冊、文檔、文章或是問題描述,能夠讀懂8成的內容含義,能夠讀懂完整的技術含義。
任何一個開發人員,都應當具備搜索能力,甚至是一定要具備搜索能力,搜索引擎的寶藏,是無窮無盡的,同樣具備搜索意識的不同程序員,卻因爲搜索技巧的差異最終在程序開發質量、項目實施效率、甚至是工程產品質量上出現數倍的差異,因此,掌握高效、先進、靈活的搜索方法和技巧,是非常非常非常(重要的事情說三遍)有用的。其中主要的方法介紹如下:
1)搜索源選擇
2)關鍵詞構造
搜索關鍵詞的構造,直接影響搜索效率和正確結果的過濾,沒有什麼特別的技巧,關鍵在於搜索積累,但是總體遵循的原則是,準確和簡潔,比如當出現一個描述,如何用C#對XML進行序列化和反序列化,非常愚蠢的關鍵詞構造就是“如何用C#對XML進行序列化和反序列化”,而正確高效的關鍵詞則是“C# XML 序列化 反序列化”,或者在谷歌裏面搜索則是“C# XML Serialization”。在平時的編程中,一定要注意相關方法和經驗的積累
3)聯想搜索
聯想搜索,不屬於搜索引擎的範疇,卻是在搜索中很有用的高級技巧,舉一個通俗的例子,比如想使用C#,利用某個.NET類處理一種HTTP通訊,但是一直搜索不到完美的結果,不過換個思路,考慮到VB.NET也是.NET體系,和C#完全相通,那麼也可以試着用VB.NET關鍵詞進行搜索,搜索到完美代碼後再臨摹成C#代碼。這樣的聯想搜索,不僅能夠幫助搜索正確結果,也是對大腦思維的訓練,值得多多嘗試。
4)資源搜索
開源的框架、產品、工具、控件等開發輔助類東西越來越多,穩健性和迭代性越來越強,去尋找一款成熟的工具或者插件,也成爲了大量開發者的必備方法和技能,而如何高效的搜索出想要的資源,也成爲了一門學問,其核心方法就在於知曉資源網站的地址,常見的例如有開源中國、Github、CSDN下載、pudn等。資源類網站需要平時多積累,到用到的時候會非常關鍵。
開發人員,一定要養成業務思維的模式,所謂的業務思維,就是在做任何一個項目的時候,寫任何代碼前,需要對項目本身的業務概念和業務邏輯甚至業務流程都要有一個全面的學習和理解,這雖然不是一個項目的強制要求,卻是一個很好的開發習慣,無論自己的覺得是開發者還是測試員又或是技術總監,掌握了業務原理,才能夠更好的設計或閱讀項目的數據結構和流程結構。程序員的思維往往和用戶或者客戶是不一致的,擺脫技術思維模式,習慣於用業務思維解決問題的程序員,不一定最優秀,但一定是一個很容易溝通的程序員

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章