1. 程式人生 > >淺談程式設計師該具備的自我修養

淺談程式設計師該具備的自我修養

各行各業的工作者,都有其要求,那麼作為程式設計師,我們又該具備哪些素養呢?博主在這裡淺談個人看法,如有不當之處,請大佬們指正。


一、知識儲備

1、數學

或許在很多人看來,學計算機用不到什麼數學,最多也就是一百以內的加減乘除,用在for迴圈、陣列索引之類的上面。但其實不然,大部分人這樣覺得是因為基本都工作在應用層,所以相對而言,用到的數學知識會比較少,也比較淺顯。
而當從應用層更深地學習研究時,就需要一定的數學能力了。

1)高等數學
在高數中我們學習到了重積分、級數等,這對於我們深入學習人工智慧、學習影象處理以及我們對我們的程式進行更進一步地優化都是很重要的。

2)離散數學
很多院校都把離散數學作為計算機相關專業的必修課程,這是因為離散數學裡面的圖論等知識對於我們深入學習計算機演算法知識大有裨益。同時離散數學的邏輯學也是我們控制計算機所必須瞭解的內容。只有瞭解了這些我們才能更好地完成我們的程式。

2、計算機

1)作業系統
作業系統(OS)是配置在計算機硬體上的第一層軟體。是對硬體系統的首次擴充。所有程式語言的開發以及應用程式的執行,都直接依賴於作業系統的支援。檔案系統。程序等桌面程式設計中的場景大都來源於作業系統的定義和概念。因此完整地瞭解作業系統的起源和組成以及執行邏輯,對多執行緒、複雜介面、檔案管理以及一些難以正常理解程式設計思路等開發中遇到的場景,有非常大的幫助,不僅幫助理解,也能掌握更多有效的程式寫法。

2)組合語言
組合語言是一般程式設計師能為機器程式設計的底層語言(現代的CPU/GPU還是會把指令再分解成微指令),所以學習彙編能讓程式設計師知道機器在軟體層面上的最底層操作。那麼,熟悉彙編後,可以更容易理解C/C++/OC這類語言如何在機器上執行。一些有經驗的程式設計師,看彙編時可以快速反映為C/C++程式碼。這些經驗和知識有很多好處: 
  • 效能優化:在設計及編碼中能考慮到底層的執行方式,從而編寫出高效能的程式碼 
  • 深度除錯:遇到一些崩潰火其他問題時,在沒有除錯資訊下也可以找到問題所在。有時候遇到編譯器本身的錯誤,單憑研究原始碼無法定位。 
  • 工具開發:可以實現AOT/JIT編譯、native偵錯程式、記憶體/效能剖析工具等 
3)編譯原理
編譯原理蘊涵著計算機學科中解決問題的思路、抽象問題和解決問題的方法。編譯原理課程的學習有利於加深對程式語言的理解,可以幫助我們更加快速地掌握新的語言工具;課程中包含了很多軟體技術,程式設計語言編譯程式構造的基本原理和實現方法是軟體的核心技術之一。同時編譯原理中的詞法分析、語法分析等內容對自然語言處理領域有大用處,是計算機基礎。對模式識別(模式串的分析、匹配)、人工智慧的學習也有幫助,對我們寫程式碼、瞭解程式本質也有著舉足輕重的作用。

4)資料結構
在計算機界流傳著這麼一個公式:程式 = 演算法 + 資料結構,資料結構對我們的重要性不言而喻。資料結構記錄了我們如何對資料進行儲存,以及資料之間的關係,是我們的程式的基石。

5)資料庫
資料庫是資料管理的有效技術,是電腦科學的重要分支。現如今,資訊資源已成為各個部門的重要財富和資源,因此作為資訊系統核心和基礎的資料庫技術受到越來越廣泛的應用,越來越多的應用領域採用資料庫技術來儲存和處理資訊資源。特別是隨著網際網路的發展,廣大使用者可以直接訪問並使用資料庫,例如網購。資料庫已經和我們密切相關,我們開發過程中更加離不開資料庫的使用。

3、英語

很多人覺得計算機程式設計不需要很多英語知識,所以覺得英語就不重要,博主認為這觀點有失偏頗。雖然我們在編碼過程中所使用的英語很少,但我們仍應該學好英語。首先,目前很多的資料原版都是英文的,而翻譯過來的有相對一部分和原版相差比較大(當然,也有一部分翻譯的還是不錯的)。其次,隨著經濟全球化的發展,我們難免需要與外國人打交道,日常溝通、合作等,這都需要我們有一定的英語能力。

二、資訊檢索能力

我們在學習、生活、工作中,都需要檢索一些資訊,如果我們有比較好的檢索資訊的能力,那就可以大大提高我們的檢索效率,讓我們更好更快地完成我們要做的事。

三、獨立思考的意識

在我們的身邊,有一部分人總是期待別人幫他做好一些事情。每次遇到困難,第一時間不是自己想辦法解決,而總是找別人幫忙。這樣的人,缺乏獨立思考的意識,很難成長起來。獨立思考的意識,是指當我們遇到問題時能獨立思考,自己尋找解決方式而不是一味地靠他人,這說起來簡單,做起來卻並非那麼簡單。

四、團隊協作意識

很多專案都不可能只由一個人來完成,很多時候我們都需要與其他人協作完成一些專案,因此團隊協作意識就必不可少了,這是一個優秀的程式設計師所必不可少的。如果你寫程式碼很厲害,那隻能說你知識掌握得好,而不能把你稱為一名優秀的程式設計師(就像一部分黑客,他們自己的實力很強但不善於團隊協作),而當你同時具有團隊協作意識並且能很好地進行團隊協作,那麼你就是一個優秀的程式設計師了。

五、好的程式設計習慣

1、習慣使用快捷鍵

快捷鍵可以幫助我們更快更好地進行編碼,可以提高我們的編碼效率,如果可以使用快捷鍵代替所有的滑鼠操作,想想那會為我們提高很多效率。

2、習慣於寫註釋

很多人不願意在編碼過程中寫註釋,總覺得這是浪費時間的事情。事實上,寫註釋是很好的習慣,可以幫助我們在經過很長一段時間再去看程式碼時能夠更快地看懂那些程式碼,同時也方便別人去讀我們寫的程式碼,畢竟很多開發中不僅僅是一兩個人進行開發,是需要團隊合作的。

3、習慣於資料備份

“永恆之藍”相信給很多人留下了深刻的印象,很多人的資料因此丟失了。但如果經常進行資料備份,那麼在面臨這樣的問題時,就能減少我們的損失。同時,計算機作為電器,拋錨也是很普遍的事情,如果做好了備份,也可以幫助我們在計算機出故障時,減少不利影響的產生。

作者:耑新新,釋出於  部落格園
轉載請註明出處,歡迎郵件交流:[email protected]