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

jopen 11年前發布 | 10K 次閱讀 軟件工程

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

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

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

        很少有學生會真正為他們的第一份正式工作做好 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

        翻譯作者:html5tricks – 蔣麗麗

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!