天天看點

新入行程式員應知的十個秘密

初出茅廬的你帶着仍殘留墨香的畢業證書踏上工作崗位,馬上就被書上沒寫的規則和各種繁雜的日常事務來了個下馬威。這樣的故事實在是司空見慣,程式設計工作也不例外。沒有幾個學生能 100% 為自己的第一份真正的工作做好準備。如果你不想成為其中之一,請學學以下這 10 項無需手把手指導就能學會的基本技能。

  初出茅廬的你帶着仍殘留墨香的畢業證書踏上工作崗位,馬上就被書上沒寫的規則和各種繁雜的日常事務來了個下馬威。這樣的故事實在是司空見慣,程式設計工作也不例外。

  沒有幾個學生能 100% 為自己的第一份真正的工作做好準備。如果你不想成為其中之一,請學學以下這 10 項無需手把手指導就能學會的基本技能:

1、版本控制系統(VCS)

  VCS 也許是計算機課程最大的疏漏。這些課程光記得教如何寫代碼,但卻往往忘記教學生如何去管理代碼。每一個程式員都應該懂得利用 Git 或 Subversion 有效地建立 repository(倉庫),編輯與送出代碼,進行分支與合并,了解項目工作流。

2、學會寫作

  身為程式員要寫的不隻有代碼。你還要寫項目的釋出說明,給版本控制寫送出消息,在系統裡面寫漏洞報告。這些和許多地方都需要清晰有效的文字交流—但這個技能計算機科學卻很少強調。

3、正規表達式

  正規表達式本身就是一門語言,每一個現代程式員都要擅長。每一門現代語言都支援正規表達式或者有相關标準庫。如果代碼需要校驗某字元串是否含有 5 個字元、1 個破折号和 1 個數字,你應該馬上就能寫出 /^[A-Z]{5}-\d$/。

4、庫的使用

  現在已經是 2014 年,是以沒人需要用正規表達式從 URL 析取主機名了。因為每一門現代程式設計語言都有執行常用功能的标準庫。

  程式員需要明白,那些經過開發、測試和調試的代碼通常要比自己重新寫的代碼更好。更重要的是,無需編寫的代碼實作起來要快得多。

5、SQL

  很多人的 SQL 都是在工作中學會的。資料庫怎麼會是選修課呢?有不用資料庫的嗎?

  把資料存進平面檔案的時代已經結束了。一切東西都要進出資料庫,而 SQL 則是存取資料的語言。這是一門說明性語言,不是程式語言,是以用它來解決問題時需要新的思考方式。每一個程式員都應該了解資料庫标準化基礎,能夠執行 SELECT(及 INNER、OUTER JOIN)、INSERT、UPDATE 和 DELETE。

6、會用IDE、編輯器及CLI工具

  隻懂用鋸子的木匠永遠也無法出師,是以計算機專業畢業的人隻懂 Notepad 或 pico 令人驚詫。程式設計工具幫助操縱代碼及其他資料,令程式員生活變得容易。是以每一個程式員都應該知道指令行、shell 腳本、find、grep 及 sed 的使用。

7、調試

  每一個程式員都應該知道利用互動式調試器或在代碼中點綴一些輸出語句來調試程式。通過逐漸求精來跟蹤問題的能力實在是太重要了。

8、防錯性程式設計

  錯誤總是難免的,哪怕是明星程式員也不例外。失控是世界的常态,出錯毫不奇怪。防錯性程式設計正是了解了這個事實。如果東西不會不出錯,我們就不會檢查檔案打開成功與否,不會檢查客戶 ID 是否合法數字,不用測試代碼是否允許正确。

  程式員需要知道,編譯器告警是有用的工具,可讓我們生活得更舒适,而不是要避而遠之的麻煩事。每一個程式員都應該知道為什麼每一個 PHP 程式都要這樣開頭:

set_error_reporting(E_ALL)

  每一個 Perl 程式都要寫上這些語句:

use strict; use warnings;

9、團隊協作

  很少程式設計工作會讓你自己一個人完成,如果你經常這麼做,智力會受損,表現會變弱。你的代碼必須與别人的互動或者混合。再有才的程式員,如果無法與别人協作,都會給項目造成負面影響,并迅速成為組織的負擔。

10、利用現有代碼

  在學校的時候,每一次作業都是一個新項目。但現實世界不是這樣的。對于剛工作的人來說,所接到的第一項任務往往是修改代碼漏洞。然後,再在現有代碼庫的基礎上為現有系統增加一個小功能。設計新代碼那是幾個月後的事情,如果幸運的話。

繼續閱讀