新手軟體工程師要知道的十個基本技能
June 13, 2014 13:46
到了畢業季,許多剛學校畢業的學生也開始進入職場,進入職場後,很多事情可能與原本想像不同,沒有人有把握一開始就百分之能掌握工作的全部項目,軟體工程師這行業也是如此,與上個世代相比,軟體撰寫這個行業也經過許多的轉變,New Relic 特別列舉了十個新手網路工程師應注意的相關技能,讓初出茅廬的新手也能掌握成為達人的關鍵。
1、版本控制管理
未涉及版本控制管理可能是現代電腦相關課程中最大的疏漏,這些課程只著重要如何撰寫程式碼,但卻沒有於程式碼的管理卻支字未提。其實每一個軟體工程師都應該懂得利用 Git 或 Subversion 有效地創建程式庫(repository),編輯、送出程式碼,創建與合併分支,並利用版本控制組織化整個工作流程。
2、學會清楚的寫作
軟體工程師要撰寫的可不只有程式碼,還有針對專案寫下說明、給版本控制寫送出註解、寫下系統漏洞報告。這些都需要清晰有效的文字交流,不過這個基礎的技能程式語言相關課程也一樣都被忽略不提了。
3、正規描述法
正規描述法本身就幾乎是一門語言學了,每個現代軟體工程師都要學會如何使用它。現代的各式程式語言本身有其標準格式可供運用,舉例來說,如果在程式中要校驗某字串是否含有 5 個字元、1 個破折號和 1 個數字,軟體工程式應該馬上就能寫出「/^[A-Z]{5}-\d$/」這樣的描述字句。
4、善用程式庫
在 2014 年的今日,再也沒人還要正規描述法從 URL 析取主機名稱了,因為每個現代程式語言都有執行常用功能的標準程式庫可供運用。軟體工程師更需要了解,現今的程式語言在經過開發、測試和調校下的標準程式碼通常要比自己重新寫的程式碼更快、更好。
更重要的是,無需再花時間重新撰寫的程式碼,利用起來總是快得多了。
5、SQL
近來有人表示,多數人的 SQL 都是在工作中才學會的,為何資料庫居然然是選修課?還有人不用資料庫的嗎?
把資料以書面存放的時代已經結束,現在一切數據都要進入資料庫了,而 SQL 則是其常用來檢索的進出資料庫。同時 SQL 也成了一種說明性語言而不是程序語言,所以用它來解決問題時需要新的思考方式。每一個軟體工程師也都應了解資料庫標準化基礎,能夠使用 SELECT(以及 INNER、OUTER JOIN)、INSERT、UPDATE 和 DELETE 等指令。
6、會用 IDE、編輯器與 CLI 等工具
只會用鋸子的木匠永遠出不了師,若以電腦科學專業畢業的人卻只懂得使用記事本或 pico 也同樣讓人感到吃驚。若能熟練的運用這些工具掌控程式碼與其他電腦中的資料,會讓軟體工程師的日子更好過,所以諸如種種 UNIX 的指令,如 shell script、find、grep 及 sed 都是軟體工程師要能熟悉運用的。
7、調校除蟲
每一個軟體工程師都應該能用各式互動式除錯軟體,讓工程師能透過逐步追踪問題,得以從經驗中來精益求精尋求改善之道的能力實在是太重要了。
8、預防性編程
就算是明星級的軟體工程師也不能完全不發生失誤,失控、出錯方是世界的常態。預防性編程只是了解這事實所做的預防措施正是理解了這個事實。如果東西不會不出錯,人們不會檢查文件是否能正常開啟、檢查客戶 ID 是否為合理整數,也不用測試程式執行是否正確。
軟體工程師也要知道編譯器中的警告都是有實際功效,可讓日子好過一點,而不是要人避而遠之的麻煩事。軟體工程師也都應該知道為什麼 PHP 程式的開頭都要寫著「set_error_reporting(E_ALL)」,而每個 Perl 程式則都寫著「use strict; use warnings;」。
9、團隊合作
很少程式撰寫的工作會單獨由一人完成,如果你經常如此,那麼往住腦力會受損、程式撰寫技巧也會每況愈下。程式碼必須與他人交互混合與交換撰寫,無論再有才華的工程師,若無法與其他人合作,那麼都早晚都會成為一個組織的負擔。
10、運用已有的程式碼
在學校時,每個作業都是一個新專案,但現實的工作場合不是如此。對於剛出社會的人來說,一開始接到的項任務多半是追踪修改程式漏洞。接下來,可能有機會在現有的程式中添加一些功能來進行修補,如果夠幸運的話,在幾個月後方有機會設計撰寫新程式。
(出處:10 Secrets You Should Have Learned with Your Software Engineering Degree – But Probably Didn't)