月薪5k與月薪10k程式設計師的區別
同一個城市,同一個行業,同一個公司,為什麼有的程式員可以拿到3萬的薪水,而有的卻只能拿到3千?這裡我們首先排除一系列的雜的東西,比如裙帶關係,我們只談能力和技術,假設公司已經給到程式設計師能力匹配的薪水,那麼薪水高的程式設計師和薪水底的程式設計師,在思維模式、行為舉止、做事方式上到底差別在哪裡呢?

程式碼和註釋
看一個程式設計師的技術水平,不用問他太多問題,看下寫的程式碼就知道了。有些語言的程式碼,比如像ruby這種的,一個新手的程式碼和一個老手的程式碼高低立判,就像學鋼琴的音樂生一樣,看他們的技術水平,不用講和聲、曲式,現場來一段琶音就知道你水平了,一樣的道理。不用說兩個級別的程式設計師,就是我們自己日常進步的飛快,我們在專案裡看到半年前自己寫的程式碼,都會很嫌棄:“這誰寫的?我?不可能吧,我怎麼會寫這麼爛的程式碼?好吧,我當時到底怎麼想的?”除了程式碼以外,另外一種就是註釋,註釋是一個很好的程式設計習慣,大部分程式設計師都很不注意這個問題,相信所有的程式設計師一開始都很不喜歡寫註釋,因為在程式設計師眼裡,程式碼就是語言,語言就已經說明了他要講什麼內容,沒必要寫註釋,還有一個原因就是寫註釋太麻煩,浪費時間。 但註釋,真的很重要,對一個專案來講,它不僅僅能讓後來的人能看懂你這裡寫了什麼,最重要的是,幾個月過後,它能讓你也能看懂你當初在這個地方到底寫了什麼東西 。

架構與擴充套件
絕大多數的專案中架構不支援太多擴充套件,程式設計師在實際專案中也不會考慮太遠的業務功能,主要是時間問題,以及需求被頻繁修改的問題。我們在不考慮時間和需求的情況下,給程式設計師足夠的開發時間和需求提取時間,能力強和能力差的程式設計師在業務需求的提取深度、架構對未來可預知的擴充套件上會有很大的不同。這個問題如果按級別的話,可能已經上升到軟體設計師或架構師的級別了,程式設計師就是做開發的,架構師才去想那些,這一點不假,但別忘了,架構師都是從程式設計師中來的,在每一個專案中,都把自己置於架構師的高度去思考這套系統應該怎麼設計,可以為可預知的未來預留足夠的擴充套件介面,而不是隻顧解決眼前問題做程式碼搬運工或堆疊工。

業務與溝通
喬布斯有一句話:“使用者永遠都不知道他們自己想要什麼,除非我們把它展示在他們面前。”。程式設計師有個先天的劣勢,就是長時間與機器語言打交道,與人類的溝通能力會大大的次於普通人,機器語言的特殊性讓長時間與之打交道的程式設計師變得比較“木訥、耿直、死板”,這個是沒辦法的,如果你看到一個程式設計師的邏輯思維狀態和口才很像銷售員的話,那完了,你別指望他能寫出好系統來。良好的溝通能力與業務熟悉程度,是程式設計師在職場中非常必要的一種技能,也是經常被程式設計師所忽略的。沒有業務,不談技術,不得不承認以業務驅動的公司佔大多數。小編在畢業後,被第一家公司的老闆好一個說,說我只想著研究技術,應該多拿出點精力關注下業務,經過這麼多年沉澱,算是開竅了,在以業務為驅動的公司裡,尤其是創業公司裡,程式碼質量、底層架構對整個公司的影響可能並不是那麼太大,很多時候,我們只需要出個介面給投資人講,而現實中有很多融資之後做得很大的公司,程式碼質量和技術沉澱並不是太好,畢竟能活下來是創業公司的首要目標。
