天天看點

程式員,不止幹到35歲

原文在這裡:http://news.csdn.net/a/20100311/217415.html

在中國,程式員不能超過35歲,似乎已經是不争的事實,軟體開發工作就是青春飯,頂多靠畢業這十年的時間,超過這個年齡,要不成功躍身成為管理者,要不轉行進入其他領域,好像再沒有更好的選擇,即使偶有繼續堅持作開發的,也被看成另類一族。老外卻不是這樣,40,50歲仍然作開發工作的大有人在,甚至很多牛人,包括獲得康柏最佳軟體獎的Robber,仍在埋頭作着他所喜歡的編碼工作,為何如此差異。我仔細想了一下,特别是這一年參加了太多的技術教育訓練,基本有了一些結論。

首先,國内軟體開發工作的性質決定這一切,我們所作的産品開發,真正技術含量并不高,高等院校畢業的學生,經過幾年的教育訓練和實踐,基本都能掌握這些技能,而我們現有産品開發設計水準有限,對于軟體開發的了解還僅限于編碼,完成功能這些基本的需求,産品進度是第一驅動力,特别是一些小公司,把快速開發出産品作為最高目标,軟體設計品質差,很少考慮可維護性,可擴充性這些重要的軟體品質屬性,僅僅追求功能和進度,産品以最快的速度完成設計,編碼,少有測試甚至沒有測試,就直接傳遞給客戶,在客戶那裡暴露出各種各樣的問題出來,開發人員就開始不斷得為客戶解決這樣那樣的問題,軟體做到最後,很多人都會陷入自己不斷挖掘出來的陷阱裡走不出來,步入在複雜的系統中查找BUG,解決BUG,增加功能,引入新的BUG,再解決BUG,這樣永無休止的惡性循環中,從事的都是一些低級開發工作,對于軟體開發的了解無法上升到更高的層次,每天都疲于救火和拼命打更新檔,軟體維護成本居高不小,即使最終擺脫了這樣的厄運項目結束,下一次軟體開發又是同樣過程的重複,這些無休止的低級開發和維護工作,會耗光一個人所有的激情和精力,随着年齡的增大,熱情和體力都在衰減,而這些工作,隻要畢業生經過教育訓練,同樣可以勝任,有着廉價的,并且充滿熱情的畢業生作競争,身心疲憊的老程式員必然面對更大的競争壓力,做到最後,連他們自己都會失去對軟體開發的興趣,甚至會産生厭倦的情緒,對于這樣的快速開發模式,十年開發經驗和五年開發經驗有很大差別嗎?幹嗎不使用更經濟便宜的開發人員。

另一個原因,是我們中國人一向的官本位思想,開發人員始終處于一種很尴尬的境界,聽起來從事的是進階技術工作,說起來也是以人為本,但是,有多少企業管理者真正重視和認可開發人員的,哪怕是碩士,博士,這些開發人員在大官,小官面前,都隻是普通勞動者而已。程式員是一個沒有未來的行業,哪怕資曆再深,能力在強,也還是一個勞動者而已,隻有當上上司,走上管理才是最終的出路,否則,薪水上不去,地位上不去,隻能面對被淘汰的命運。

實際不然,之是以出現這種問題,是國内對軟體開發的一種錯誤了解。如果軟體開發僅僅是代碼編寫,查找BUG,可以說,那實在是一些低級的軟體行為,做了十年的開發人員,确實不見得比作了3年的人更強多少,反正是簡單重複的工作,工作3年的一樣可以作,而且有更大的熱情和精力。但是,應該跳出這個怪圈,走向更高的領域,對軟體開發重新進行認識。要明白,軟體開發要融入工程化的思想,要有高度的設計能力,關注更多的軟體運作屬性和設計品質屬性,同樣的系統,不同的軟體人員會做出完全不同的軟體,正規,高效的開發團隊要比遊擊隊開發團隊不隻高出幾十倍。軟體開發,不僅僅關注功能,性能,更應該去研究可維護性,可擴充性等品質屬性,不僅僅隻關注代碼,而更要上升為設計,複用等。軟體開發不僅僅是寫出C語言的代碼,單元測試,同行評審,教育訓練與學習,這同樣是開發人員基本的素質,也是提高軟體品質的最基本手段。舉例來說,單元測試做好了,就可以讓開發效率大大提高,也能讓軟體的維護成本降下來。把開發人員解放出來。同行評審可以讓開發人員之間更多的交流和溝通,在設計,編碼階段嚴格控制軟體品質,教育訓練則是提高自身技術水準,從理論上提升自己的最好方法。先前這些主要的品質行為都被忽略了,而這恰恰是走出低級開發的最好途徑。同時,還有更高層次的設計開發,軟體重構,子產品化,系統構架,搭建統一軟體平台,度量軟體品質等等,有了重構,就會寫出可讀性好,可維護性好的軟體,甚至是以提高自己的軟體設計能力,減少出錯的幾率;子產品化,讓軟體最大程度的實作複用,提高軟體開發效率和開發品質。軟體構架設計,從技術層次上最早決定了軟體的命運,而這裡又有太多的技術,設計模式,軟體規劃等,讓軟體開發從編碼上升到設計的層次,搭建統一軟體平台,是大産品,系列化開發的必然之路,對于軟體品質的度量,會讓我們的軟體開發變得更加透明,清晰,讓我們更清楚的把握到軟體開發過程,從各個環節去控制軟體品質,而不是僅僅憑着感性的認識到了最後才去補救。

以上這些知識,一個人,哪怕勤奮學習一輩子,也不可能完全具備所有的技能。35歲算什麼,做到70歲都不晚。當然,你需要真正的熱愛它,并且不斷得學習和進修。是以說,軟體開發人員,要作的事情太多了,軟體實在是一個浩大的腦力工程,甚至會讓人覺得這是一個投入/産出比最低的行業,因為要學習的知識實在太多了,每時每刻都要處于不斷的學習和更新當中,呵呵,既然選擇了,既然喜歡了,就投入進去,享樂于此了。最重要的是,我們自己能并且願意去認識到這一點,跳出低級開發的怪圈,走向更高的層次

同時,要意識到,一個資深開發人員的作用絕不亞于一個管理人員,高明的企業應該給予相同的待遇,要把培養和儲備進階技術人才作為高科技企業的重點發展方向,這樣才能讓企業在人才領域得到不斷積累,資深開發人員才會帶出高效的開發團隊,進而開發出高品質,高效率的軟體,讓企業在不斷激烈的競争中取勝。要明白,不是每個人都适合或者樂于轉向管理的,很多人就是适合做開發工作,他們可以走得更深入,成為專家,應該充分發揮出他們的能力,讓整個團隊高效運作起來。

是以說,開發人員,決不隻是35歲,隻要你願意,可以作一生的開發,從中獲得更多的快樂。

繼續閱讀