10個你在讀軟體工程學位時就應該知道的祕密

edithfang發表於2014-06-20

這是一種非常常見的現象:你讀了好多年的書,然後帶著一張新鮮出爐的大學文憑走進了社會,找到了人生的第一份正式工作,但是很快,那些不成文的規矩,日益複雜難搞的活計,以及周圍沒有一個人會提醒你等等,像大錘一樣捶得你兩眼發昏。程式設計這份工作也不例外。

很少有學生會真正為他們的第一份正式工作做好100%的準備。拿到電腦科學學位並不比高職大專出來的在寫程式碼上有特別大的優勢。而且我特別訝異,很多應屆畢業生甚至是一些有經驗的程式設計師,竟然還在記事本或者文字檔案中寫程式碼,一點也不會版本控制。

如果你不想成為上面描述的那類人——或者想脫離這類人群——那麼花點時間看完這篇文章,掌握這10個基本技能,絕對讓你以後的工作受益匪淺。

1. 版本控制系統

這也許是設計電腦科學課程的時候出現的最大漏洞,我為此真心感到遺憾。高等教育機構教育我們如何建立程式的原始碼,卻沒有關於如何管理這些程式碼的知識。每一個程式設計師都應該懂得如何利用Git 或Subversion 有效地建立repository(倉庫),編輯與提交程式碼,進行分支與合併,瞭解專案工作流。懂得版本控制系統還能讓你在今後的工作中,學到的更多。

2. 如何寫程式碼

作為一個程式設計師,工作內容不僅僅是寫一種程式語言那麼簡單,我們還需要為我們的專案編寫釋出說明,為版本控制系統寫提交資訊,還要為系統中發現的bug寫標籤。所有這些工作內容都離不開有效的英語溝通——這也是一種必須的技能,但是可惜的是,在大學的電腦科學課程中卻很少強調。

3. 正規表示式

正規表示式是一種用來操作和檢驗字串資料的強大工具,每個現代化的程式設計師都應該學會如何使用。每一種程式語言都支援正規表示式,有與之相匹配的標準庫。如果程式碼需要校驗某字串是否含有5個字元、1個破折號和1個數字,你應該馬上就能寫出/^[A-Z]{5}-\d$/。

4. 庫的使用

在2014年,我們已經不需要用正規表示式去URL中提取主機名。每一種現代化的程式語言裡都內含常用功能的標準庫,或者是能更容易使用的標準庫。

程式設計師要做的就是,更好的掌握那些已經編寫好的、經過測試和除錯完畢的程式碼,因為這絕對比程式設計師自己再去想程式碼要來的更快更好、質量更高。

5. SQL

前不久有個人在碰面的時候對我說,“我現在知道的所有SQL都是在我工作中學會的。為什麼以前在學校資料庫這門課是選修的?要是我上過這門課就好了!?”

在平面檔案中儲存資料的時間已經過去。資料庫成為了流入流出資料的新寵,而SQL是一種用於檢索資料庫的語言。SQL是一種宣告式語言,而不是一種程式語言,所以如果你想學會如何使用SQL的話,首先需要學習解決問題的新方法。總的說來,每一個程式設計師都應該瞭解資料庫標準化基礎,能夠執行基本的SELECT(及INNER、OUTER JOIN)、INSERT、UPDATE 和 DELETE語句。

6. 工具的使用:IDE、編輯器以及CL工具

如果只有唯一的一把鋼鋸,別的啥都不會,那麼即便是魯班也永遠無法出師。但是令人奇怪到無法理解的是,現在的學校出來的CS畢業生竟然只知道在記事本和文字檔案中寫程式碼,真是可笑可嘆!上述程式設計工具的合理運用,能幫助我們操作原始碼和其它資料,讓我們的程式設計生涯過得更加輕鬆自在。故而,每一個程式設計師都應該知道Unix命令列、shell指令碼、find、grep 以及 sed的使用。

7. 除錯

每個程式設計師都應該能使用互動式偵錯程式或者Print語句來除錯程式碼。能逐句追查問題的能力非常重要,但是遺憾的是,學校教育給學生的方式是自己憑感覺去找。

8. 防禦性程式設計

即便是特別牛逼的程式設計師都是很容易犯錯的,沒有什麼事情是我們絕對能掌控的,總會有各種意想不到的事情發生。防禦性程式設計就是基於這個理念而來的。如果程式是ok的,那我們就沒有必要檢查檔案開啟成功與否,不用檢查客戶ID是否為合法數字,不用測試程式碼是否執行正確。

程式設計師最好能有效利用編譯器的警告功能,這樣能減輕不少程式設計工作,避免問題的產生和積累。還有一點,每個程式設計師最好也能夠明白PHP程式為什麼要以error_reporting(E_ALL)開頭,而Perl程式則是strict;use warnings;開頭的。

9. 團隊合作

很少有程式設計工作是我們完全可以獨立完成的,而如果有人非要“強自己所難”,那麼我只能說,這大概是“猴子派來的逗比”吧,除了攪得一團亂,我看不出有別的作用。由於需要團隊合作,我們寫出來的程式碼必須要能和其他人的程式碼進行互動,或者經常和別人的程式碼聯合在一起。無論多有才能的程式設計師,如果不能和其他人團結協作,那麼這個傢伙只會是團隊中的負能量,拖大家的後腿。

10. 好好利用現有的程式碼

在學校的時候,我記得,每個班級會分配到一個新穎、未曾開發的專案。但是在現實中的情況卻不是這樣的。剛入職的新人做的第一件事情就是在bug跟蹤系統中修復一些bug。然後就是在當前的程式碼庫的基礎上為現有的系統增加一些小功能。如果你足夠幸運的話,幾個月以後就可以設計新程式碼了。

譯文連結:http://news.html5tricks.com/10-secrets-programmer-know.html

英文原文:10 Secrets You Should Have Learned with Your Software Engineering Degree

相關閱讀
評論(0)

相關文章