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