劍法三套,程序員也能掙大錢(一)

(本文共分三部分,現在打開的是《第一部分》,歡迎繼續閱讀第二部分三部

1 引子

都說海闊憑魚躍,又有多少魚能躍出大海?都說天高任鳥飛,但真正能一飛沖天的,也不過是寥寥數鷹而已;在IT圈裏流浪的程序員,當青春逝去、漸至而立之年時,又有多少人黯然退出?30歲,似乎宣告了程序人生的終結。
從學會寫第一個Basic程序起,已過去了15年,我也曾爲30歲煩惱過。近日《神鵰》熱播,楊過在獨孤劍聖的劍冢中發現寶劍若干,見證了獨孤劍聖在人生不同階段對劍道的領悟。忽有所感,聯想起古聖今賢的論述,結合自已這些年來的經歷,不禁豁然開朗。
程序之道,在於悟,悟透表象後面的真相。程序人生,大致可分爲三個階段:
n 編碼階段:凌厲剛猛,無堅不摧,弱冠前以之與河朔羣雄爭鋒
n 設計階段:重劍無鋒,大巧不工,四十歲前恃之橫行天下
n 思想階段:四十歲後,不滯於物,草木竹石均可爲劍。自此精修,漸進於無劍勝有劍之境
本文針對普通程序員的實際情況,對這三個階段進行解說,並給出了“升級”的祕笈。所述觀點,不適合IT狂人和天才——因爲我不是。

2 編碼,技巧作先鋒

2.1   階段釋義

老張:小王,昨天討論的那個EJB接口,已經實現了嗎?
小王:我已經實現了,現在客戶端可以通過EJB與服務器進行通信了。
上述對話,取自於某項目組的會議紀錄,老張是這個小組的開發經理。小王畢業一年,在項目組中主要從事代碼編寫工作。每天上班,老張會給小王分配當天的工作,告訴小王有哪些Java接口,需要寫多少個Java類,具體有什麼要求等等。小王按照要求,寫完這些類後,交給老張,一天的工作就完成了。衡量小王的能力的標準是,看他是不是能做好具體的事,即“我能做(I can do it)”。
小王是典型的第一階段中人。該階段中人,通常是入門三年內的,初窺門徑,鬥志昂揚。在網上常看到的“VB好還是DELPHI好”“.Net好還是J2EE好”等貼子,多數都是由這個階段的人提出,人氣值劇旺(這是合理的,符合人才的金字塔結構),往往爭吵得頭破血流也不罷休。筆者也曾因此與同班一MM大吵出口,如今回想,深感當年之可愛。獨孤劍聖弱冠前,手持無名利劍,凌厲剛猛,與河朔羣雄爭鋒。程序員也一樣,手持“編程語言”利劍,以“面向對象”爲招式,東征西戰,編出代碼無數。

2.2   應該做的事

找 一家有正經事幹的公司,打一槍換個地方的不要。這是重中之重。“蓬生麻中,不扶自直,白沙在涅,與之俱黑”,現階段的程序員,是無力改變現狀的。如果你所 在的團隊不能按正規方式進行較大型軟件產品的開發,那你所能學到的東西就會少許多。如果是正規開發團隊,而且有前輩願意盡心盡力地教你,那就是撿到寶了, 不給錢都行。
從技術角度,這個階段的人,關注細節是必修課,追求的是技巧這個層次。“如何才能用最少的語句實現表達式求值”“i++++i有何區別”等是最關心的問題。當技巧的積累達到一定程度時,應付日常工作將比較輕鬆,此時信心爆棚,最喜歡的口頭禪是“天底下沒有編不出來的程序”,技術特點是對某種編程語言(如JavaC#)非常熟悉,甚至達到“回字有四種寫法”的境界。凡事必追根究底,有股子“語不驚人死不休”的蠻勁。
筆者沒有任何貶義,相反,是褒義,因爲這是必須經歷的。佛雲:“既未入迷,何言解脫?”如果你是工作三年內的同行,那麼應以“入迷”爲榮。上學時,老師常教導我們“先把書讀厚,再把書讀薄”,只有“深入”,才能“淺出”,也是這個道理。

2.3   不應該做的事

年少氣盛,固然可愛,但若因此而鼻孔朝天,則是大大的不妥了。你的許多同事,API沒有你熟悉,編程也沒有你快,但他們能爲企業創造的價值卻可能比你大(爲什麼?看下文)。時下流行“態度決定一切”,此時的你,應以低姿態爲主,傲氣會讓你短視。
“ 技術代表一切”可能是你的信仰。但你的老闆可能對技術根本不感興趣,老闆關心的是你能爲公司創造多大的價值。許多***甚至養不活自己,因爲單純的自我陶醉 式的***、騷擾、破壞並不能創造價值,通常都是在改行後(例如當安全顧問),他們的技術才能用於創造價值,才能使自己過上好日子。許多***則乾脆是雙重身 份,平時從事着另一份職業。所以,如果想掙更多的錢,那你就不能迷信技術(屠龍之技有何用?),而是要審視你所做出的貢獻。許多牛人覺得自己水平很高,爲 什麼老闆就是不給加薪?反思一下,自己給公司掙了多少錢吧。

2.4   侷限性

1、鋒芒有餘,韌勁不足。該階段的人,銳氣太盛,遇到挫折後容易氣餒,輕言成敗往往是他們的缺點。(什麼?沒有銳氣?是誰,是誰把你招進公司來的?)
人不可有傲氣,但不可無傲骨,傲骨體現在面對困難上。要勇於用抽繭剝絲的精神,去磨,去啃,相信吧,只要你的困難不是想發明質能方程,最終一定會被你搞定的。事實上,你遇上的問題,大多數都可以通過Google、百度搜出答案來。
2、與具體的語言或編程工具綁定得比較緊,受語言的限制較大。
3、需要良好的體力。人到中年,體力上往往拼不過剛畢業的學生,這就是所謂的“程序員30歲問題”的原因。我有一些朋友,已過而立之年,卻還在苦苦尋找編碼的職位。雖然我很同情,但愛莫能助,如果這種情況繼續下去,“尋尋覓覓,冷冷清清,悽悽慘慘慼戚”將是必然的結果。
朋友,趕快升級吧。

2.5   進階指南

1、多記多寫。好記性不如爛筆頭,把各種想法寫下來,把經典的代碼摘錄下來(最好用源碼工具來管理,推薦VSS),有價值的東西,還可以發表在博客中(俺們那個時候苦啊,網絡不發達,嘔心瀝血之佳作,卻只能孤芳自賞),這些就是你的財富,在關鍵時刻拿來就能用;
2、 別忘了挖井。不知是否聽說過兩個和尚的故事,原文不在此粘貼了,大意是一個和尚天天挑水,另一個除了挑水外,還在寺廟附近挖井。若干天后,第一個和尚還在 挑水,第二個和尚已經挖好井,不用再挑水了。編碼好比挑水,作爲本職工作,自然是要賣力地挑,好爭勝的,不妨跟人比比誰挑得多。但在業餘時間,可以多看看 《軟件工程》、《設計模式》、《人月神話》、《極限編程》、《UML》……
3、由外而內,勤修內功。什麼編程啦,什麼算法啦,統統都是外功。外功練好了,內功也能跟着長進。內功是什麼?很多。現階段最需要的是:靈活的頭腦、關注細節的態度以及與人爲善的處世技巧。
靈活的頭腦,使你能快速學習新東西,這是最基本的。
關注細節的態度讓你能“象福特一樣撿起地上的紙片”(如果不知道福特的故事,上Google搜去吧),工程實施現場出現的問題,多數都是由於編碼人員的疏忽;經典錯誤“空指針”和“數組越界”,你檢查了嗎?幾十年了,“緩衝區溢出”仍然是***的最愛。
與人爲善的處世技巧,使你有良好的人緣,前輩願意幫助你,晚輩願意投靠你,領導願意提拔你,哇,好處多多,實惠多多……能否進階,就靠這了。
(常雲:先做人,後做事。無論是程序員還是藝術家,這個道理都是普遍適用的,貫穿人生的各個階段——而這恰恰又是剛參加工作、涉世未深的新人們容易忽略的。所以在此提出,下文就不再贅述了。)

2.6   階段小結

適用人羣:工作三年內
    入:設計好的類、接口和算法
    責:按要求編寫類和接口的具體實現代碼
    出:具體的代碼
階段目標:我能——I can do it
技術特點:注重技巧,對具體的編程語言非常熟悉
勝任職位:軟件工程師、開發工程師
升級祕笈:多學習軟件工程、設計模式等與具體編程語言無關的知識
參考薪水:6000以下(僅供參考)
 
 
(本文共分三部分,現在打開的是《第一部分》,歡迎繼續閱讀第二部分三部
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章