在中國,程序員不能超過35歲,似乎已經是不爭的事實,軟件開發工作就是青春飯,頂多靠畢業這十年的時間,超過這個年齡,要不成功躍身成為管理者,要不轉行進入其他領域,好像再沒有更好的選擇,即使偶有繼續堅持作開發的,也被看成另類一族。老外卻不是這樣,40,50歲仍然作開發工作的大有人在,甚至很多牛人,包括獲得康柏最佳軟件獎的Robber,仍在埋頭作著他所喜歡的編碼工作,為何如此差異。我仔細想了一下,特別是這一年參加了太多的技術培訓,基本有了一些結論。
首先,國內軟件開發工作的性質決定這一切,我們所作的產品開發,真正技術含量并不高,高等院校畢業的學生,經過幾年的培訓和實踐,基本都能掌握這些技能,而我們現有產品開發設計水平有限,對于軟件開發的理解還僅限于編碼,完成功能這些基本的需求,產品進度是第一驅動力,特別是一些小公司,把快速開發出產品作為最高目標,軟件設計質量差,很少考慮可維護性,可擴展性這些重要的軟件質量屬性,僅僅追求功能和進度,產品以最快的速度完成設計,編碼,少有測試甚至沒有測試,就直接交付給客戶,在客戶那里暴露出各種各樣的問題出來,開發人員就開始不斷得為客戶解決這樣那樣的問題,軟件做到最后,很多人都會陷入自己不斷挖掘出來的陷阱里走不出來,步入在復雜的系統中查找BUG,解決BUG,增加功能,引入新的BUG,再解決BUG,這樣永無休止的惡性循環中,從事的都是一些低級開發工作,對于軟件開發的理解無法上升到更高的層次,每天都疲于救火和拼命打補丁,軟件維護成本居高不小,即使最終擺脫了這樣的厄運項目結束,下一次軟件開發又是同樣過程的重復,這些無休止的低級開發和維護工作,會耗光一個人所有的激情和精力,隨著年齡的增大,熱情和體力都在衰減,而這些工作,只要畢業生經過培訓,同樣可以勝任,有著廉價的,并且充滿熱情的畢業生作競爭,身心疲憊的老程序員必然面對更大的競爭壓力,做到最后,連他們自己都會失去對軟件開發的興趣,甚至會產生厭倦的情緒,對于這樣的快速開發模式,十年開發經驗和五年開發經驗有很大區別嗎?干嗎不使用更經濟便宜的開發人員。
另一個原因,是我們中國人一向的官本位思想,開發人員始終處于一種很尷尬的境界,聽起來從事的是高級技術工作,說起來也是以人為本,但是,有多少企業管理者真正重視和認可開發人員的,哪怕是碩士,博士,這些開發人員在大官,小官面前,都只是普通勞動者而已。程序員是一個沒有未來的行業,哪怕資歷再深,能力在強,也還是一個勞動者而已,只有當上領導,走上管理才是最終的出路,否則,薪水上不去,地位上不去,只能面對被淘汰的命運。
實際不然,之所以出現這種問題,是國內對軟件開發的一種錯誤理解。如果軟件開發僅僅是代碼編寫,查找BUG,可以說,那實在是一些低級的軟件行為,做了十年的開發人員,確實不見得比作了3年的人更強多少,反正是簡單重復的工作,工作3年的一樣可以作,而且有更大的熱情和精力。但是,應該跳出這個怪圈,走向更高的領域,對軟件開發重新進行認識。要明白,軟件開發要融入工程化的思想,要有高度的設計能力,關注更多的軟件運行屬性和設計質量屬性,同樣的系統,不同的軟件人員會做出完全不同的軟件,正規,高效的開發團隊要比游擊隊開發團隊不只高出幾十倍。軟件開發,不僅僅關注功能,性能,更應該去研究可維護性,可擴展性等質量屬性,不僅僅只關注代碼,而更要上升為設計,復用等。軟件開發不僅僅是寫出C語言的代碼,單元測試,同行評審,培訓與學習,這同樣是開發人員基本的素質,也是提高軟件質量的最基本手段。舉例來說,單元測試做好了,就可以讓開發效率大大提高,也能讓軟件的維護成本降下來。把開發人員解放出來。同行評審可以讓開發人員之間更多的交流和溝通,在設計,編碼階段嚴格控制軟件質量,培訓則是提高自身技術水平,從理論上提升自己的最好方法。先前這些主要的質量行為都被忽略了,而這恰恰是走出低級開發的最好途徑。同時,還有更高層次的設計開發,軟件重構,模塊化,系統構架,搭建統一軟件平臺,度量軟件質量等等,有了重構,就會寫出可讀性好,可維護性好的軟件,甚至因此提高自己的軟件設計能力,減少出錯的幾率;模塊化,讓軟件最大程度的實現復用,提高軟件開發效率和開發質量。軟件構架設計,從技術層次上最早決定了軟件的命運,而這里又有太多的技術,設計模式,軟件規劃等,讓軟件開發從編碼上升到設計的層次,搭建統一軟件平臺,是大產品,系列化開發的必然之路,對于軟件質量的度量,會讓我們的軟件開發變得更加透明,清晰,讓我們更清楚的把握到軟件開發過程,從各個環節去控制軟件質量,而不是僅僅憑著感性的認識到了最后才去補救。
以上這些知識,一個人,哪怕勤奮學習一輩子,也不可能完全具備所有的技能。35歲算什么,做到70歲都不晚。當然,你需要真正的熱愛它,并且不斷得學習和進修。所以說,軟件開發人員,要作的事情太多了,軟件實在是一個浩大的腦力工程,甚至會讓人覺得這是一個投入/產出比最低的行業,因為要學習的知識實在太多了,每時每刻都要處于不斷的學習和更新當中,呵呵,既然選擇了,既然喜歡了,就投入進去,享樂于此了。最重要的是,我們自己能并且愿意去認識到這一點,跳出低級開發的怪圈,走向更高的層次
同時,要意識到,一個資深開發人員的作用絕不亞于一個管理人員,高明的企業應該給予相同的待遇,要把培養和儲備高級技術人才作為高科技企業的重點發展方向,這樣才能讓企業在人才領域得到不斷積累,資深開發人員才會帶出高效的開發團隊,從而開發出高質量,高效率的軟件,讓企業在不斷激烈的競爭中取勝。要明白,不是每個人都適合或者樂于轉向管理的,很多人就是適合做開發工作,他們可以走得更深入,成為專家,應該充分發揮出他們的能力,讓整個團隊高效運作起來。
所以說,開發人員,決不只是35歲,只要你愿意,可以作一生的開發,從中獲得更多的快樂。
-
工程師
+關注
關注
59文章
1570瀏覽量
68516 -
編碼
+關注
關注
6文章
942瀏覽量
54825
發布評論請先 登錄
相關推薦
評論