準備重新拾起一些程序員的技能了,在這樣一個職業(yè)空窗期。
我從來不是一個好的程序員,也沒有做過全職的Programming工作。但在人們面前,我總是說自己是搞IT的。但如果不寫程序又算什么IT從業(yè)者呢?好吧,這時我就會解釋做過哪些IT相關(guān)的工作。
大概十年前剛畢業(yè)那陣,在一家世界五百強的通信企業(yè)做過幾年系統(tǒng)測試,沒怎么寫代碼因為產(chǎn)品研發(fā)都在歐洲,國內(nèi)只需要開拓好市場,保證產(chǎn)品能滿足運營商的要求。這些要求很細致,不僅包括功能上和性能上,還有一些異常環(huán)境下的系統(tǒng)的應(yīng)對和處理等等。通信產(chǎn)品嘛更多問題都在網(wǎng)絡(luò)環(huán)境,有線無線的各種接口。所以呢,雖然不用研究代碼也會有一堆事情需要人去做。做到第三年,整個產(chǎn)品的亞太區(qū)接口人就是我了,這個時候更不需要代碼級的知識,只需要針對問題的類型、級別,找到相應(yīng)的人或組織去解決就好了。當(dāng)然每個軟件產(chǎn)品都有生命周期,通信行業(yè)更是以周期快而著稱,很快產(chǎn)品phase out我也準備換行。
因為學(xué)歷比較好,又在大公司干過,很容易就找到一所軟件職業(yè)學(xué)院,開始教師生涯。自己沒怎么寫過程序當(dāng)然不太好意思手把手地教學(xué)生寫程序了。但是后來發(fā)現(xiàn),一個系里面程序?qū)懙孟駱幼幽苣贸鍪值囊簿湍敲磧扇齻€老師。雖然我主動承擔(dān)的都是以經(jīng)驗見長的課程,例如《軟件工程》《軟件測試》《UML建模》,但帶學(xué)生畢業(yè)設(shè)計時還得真刀真槍地弄一兩個項目,現(xiàn)在想起來,比我讀本科時老師投入的精力還是要多一些的。指導(dǎo)學(xué)生怎么干,自己總得知道一個方向吧。但我仍然不是一個好的程序員。我理解怎樣才是一個好程序員呢?要從寫程序中找到樂趣,不僅是能復(fù)制代碼,還要enjoy調(diào)試代碼的過程,特別是要享受解決問題的過程,這點沒多少人能做到。
后來離開學(xué)校再進公司,就是項目經(jīng)理的角色。和產(chǎn)品和客戶打交道,要做好也不比寫代碼輕松,但自己有的是經(jīng)驗,碰到某類問題就去找相應(yīng)的解決方案。系統(tǒng)產(chǎn)品層面的問題基本上不用和代碼打交道。印象中三年時間里只有一次,用戶反饋的一個無法重現(xiàn)的問題;我無解,轉(zhuǎn)發(fā)給德國開發(fā)部也沒任何進展;我跟進,給出一些前提條件,希望開發(fā)組做白盒測試;后來可能是重現(xiàn)出了問題,德國回信還比較客氣。但這只是個案。基本上軟件公司很多職位沒有任何編碼技能的人是完全可以勝任的,更多的是要有一些基本的邏輯思維和customer focus,這點可以給HR作參考。
確實,程序員這個行業(yè)變化的確太快了。我讀碩士那陣,.net Java什么的都是新出來的技術(shù),過幾年是Web,現(xiàn)在又是Andriod, iOS. 試想一個程序員要想跟上技術(shù)的發(fā)展,如果不是因為自身職業(yè)興趣,怎么可能?但另一面,程序設(shè)計這一行都是問題驅(qū)動的,想要做一個產(chǎn)品才會去考慮一項技術(shù),搭好框架后再逐步實現(xiàn)。現(xiàn)階段我又回歸到技術(shù)維了,因為要去遠方,能帶走的東西有限,整理行李的時候發(fā)現(xiàn)自己還是有一部分基因可以成為一個業(yè)余程序員的。未來還有豐富的可能性,而這幾個月則需要做一些鋪墊。