初出茅廬的你帶著仍殘留墨香的畢業證書踏上工作崗位,馬上就被書上沒寫的規則和各種繁雜的日常事務來了個下馬威。這樣的故事實在是司空見慣,程式設計工作也不例外。
沒有幾個學生能 100% 為自己的第一份真正的工作做好準備。如果你不想成為其中之一,請學學以下這 10 項無需親自指導就能學會的基本技能。
1、版本控制系統(VCS)
VCS 也許是資工課程最大的疏漏。這些課程光記得教如何寫 Code ,但卻往往忘記教學生如何去管理 Code 。每一個程式設計師都應該懂得利用 Git 或 Subversion 有效地創建 repository(倉庫),編輯與提交 Code ,進行分支與合併,了解項目工作流。
2、學會寫作
身為程式設計師要寫的不只有 Code 。你還要寫 Project 的發佈說明,給版本控制寫提交消息,在系統裡面寫漏洞報告。這些和許多地方都需要清晰有效的文字交流 —— 但這個技能電腦科學卻很少強調。
3、正則表達式
正則表達式本身就是一門語言,每一個現代程式設計師都要擅長。每一門現代語言都支持正則表達式或者有相關標準庫。如果 Code 需要校驗某字符串是否含有 5 個字符、1 個破折號和 1 個數字,你應該馬上就能寫出 /^[AZ]{5}-d$/。
4、庫的使用
現在已經是 2014 年,所以沒人需要用正則表達式從 URL 析取主機名了。因為每一門現代程式語言都有執行常用功能的標準庫。
工程師需要明白,那些經過開發、測試和調試的 Code 通常要比自己重新寫的 Code 更好。更重要的是,無需編寫的 Code 實現起來要快得多。
5、SQL
很多人的 SQL 都是在工作中學會的。數據庫怎麼會是選修課呢?有不用數據庫的嗎?
把數據存進平面文件的時代已經結束了。一切東西都要進出數據庫,而 SQL 則是存取數據的語言。這是一門說明性語言,不是程式語言,所以用它來解決問題時需要新的思考方式。每一個開發者都應該了解數據庫標準化基礎,能夠執行 SELECT(及 INNER、OUTER JOIN)、INSERT、UPDATE 和 DELETE。
6、會用 IDE、編輯器及 CLI 工具
只懂用鋸子的木匠永遠也無法出師,所以資工畢業的人只懂 Notepad 或 pico 令人驚詫。Coding 工具幫助操縱 Code 及其他數據,令開發者生活變得容易。所以每一個開發者都應該知道命令行、shell 腳本、find、grep 及 sed 的使用。
7、調試
每一個開發者都應該知道利用交互式調試器,或在 Code 中點綴一些輸出語句來調試程序。通過逐步求精來跟踪問題的能力實在是太重要了。
8、防錯性編程
錯誤總是難免的,哪怕是明星程式設計師也不例外。失控是世界的常態,出錯毫不奇怪。防錯性 Coding 正是理解了這個事實。如果東西不會不出錯,我們就不會檢查文件打開成功與否,不會檢查客戶 ID 是否合法數字,不用測試 Code 是否允許正確。
程式設計師需要知道,編譯器告警是有用的工具,可讓我們生活得更舒適,而不是要避而遠之的麻煩事。每一個程式設計師都應該知道為什麼每一個 PHP 程式都要這樣開頭:
set_error_reporting(E_ALL)
每一個 Perl 程序都要寫上這些語句:
use strict; use warnings;
9、團隊協作
很少開發工作會讓你自己一個人完成,如果你經常這麼做,智力會受損,表現會變弱。你的 Code 必須與別人的交互或者混合。再有才的開發者,如果無法與別人協作,都會給項目造成負面影響,並迅速成為組織的負擔。
10、利用現有程式碼
在學校的時候,每一次作業都是一個新項目。但現實世界不是這樣的。對於剛工作的人來說,所接到的第一項任務往往是修改 Code 漏洞。然後,再在現有程式庫的基礎上為現有系統增加一個小功能。設計新程式碼那是幾個月後的事情,如果幸運的話。
延伸閱讀:
(轉載自合作媒體《36kr》; 原文出處:blog.newrelic.com ; 圖片來源:JohnathanLobel, CC Licensed)
Source: techorange.com