逆流成河:五年軟件開發(fā)生涯
下周就要去新公司報道了,換城市(離開北京)+換職業(yè)(不做開發(fā)),這個決定下得其實還是蠻艱難的。最近一直在反思自己畢業(yè)后的這五年工作,自感慚愧,找個地方記錄下(主要是這里誰都不認識我),也算是自己的一種反醒以及給過來人提點建議,少走點彎路吧。
08年頂著名校碩士的光環(huán)加入了一家非常有名的非軟件公司做軟件開發(fā),剛開始一切其實都很美好。大外企的各種好在頭一年給自己帶來了很多光環(huán),當然自己也學到了很多(主要是非技術的東西)??墒菑牡诙觊_始,當自己被各種郵件,開會和扯皮的事包圍后,技術能力急轉直下。然而自己當時還沒意識到這個問題,感覺錢還行,也不忙,再加上本來就很迷茫,就得過且過了。直到去年,很多清華北大同事的離職,日復一日的簡單重復工作,明顯的天花板,不漲的工資,以及家庭原因的集中爆發(fā)才讓自己后知后覺,才開始反醒,才開始下決心做轉變。
然而轉變是痛苦的,這五年技術上主要是在windows平臺上做一些企業(yè)內部業(yè)務的處理和展示,主要用一點c++/c#,還有 MFC,Winform,WPF,WCF。技術基本上是做的皮毛,一般問題用MSDN,google和stackoverflow就能基本解決。用不到數(shù)據(jù)庫,也用不到什么數(shù)據(jù)結構,用到一點點網絡知識,主要精力都在業(yè)務展現(xiàn)上。這一切在我看來招個應屆生用一年也能有和我一樣的開發(fā)能力,唯一懂的多的業(yè)務,也長進不多,都是繁雜的重復。所以在自己開始面試和找工作時被bs了很多次,頂著光環(huán)人家一般都給你面試機會,但是一旦聊到技術細節(jié),自己很多都答不上來,也曾經一度非常沮喪。慶幸最后找了個技術相關的職位,能夠兼顧到家庭和自己后面發(fā)展的想法,還算可以,這是后話,暫不討論。
總結這五年不成功的開發(fā)經驗,現(xiàn)在想想主要問題如下:
1.目標不明確,由于學的專業(yè)不是純軟件,自己誤打誤撞的進來做軟件開發(fā),自己一直沒想清楚自己的目標,結果導致自己渾渾噩噩的做了5年開發(fā)還停留在原地。
2.缺乏堅持,沒能堅持一件事情做到底,自己其實在這五年也自學了一些東西,包括HTML,JavaScript,CSS,Python,Java......也看了不少技術的東西。可都很膚淺,一樣也沒有深入堅持下去,什么都懂一點皮毛,結果就是什么都不懂。
3.不夠勤奮,我從小成績優(yōu)秀,學習能力很強,缺乏需要非常勤奮投入才能做成事情的鍛煉,所以養(yǎng)成勤奮的習慣,到了工作中才發(fā)現(xiàn)要取得成功無不需要加倍的努力才行。
此外從一個非科班出生搞軟件的角度,談談自己對軟件開發(fā)的了解:
1.做上層開發(fā)學了這么多所謂的語言,框架,技術,其實現(xiàn)在想想萬變不離的卻是底層的數(shù)據(jù)結構,操作系統(tǒng),網絡通訊和一些其他的基礎的東西。自己也算半路出家,以前總是不屑基礎的東西,總認為我懂了 WPF,能畫出很炫的界面什么就很好了。其實卻是認識太膚淺,只有掌握了不變的東西才能應付好上層的技術,否則只會被微軟牽著鼻子走。所以對新人來說,打好基礎是多么重要,可惜我后知后覺了。
2.除了基礎的東西,我認為其次重要的是軟件架構,好的架構可以讓事情事半功倍,讓下面實現(xiàn)具體代碼的感覺很輕松。說得過分點,一個好的架構師可以帶一群實習生的干活都能出好東西。軟件開發(fā)越來越不需要我們懂底層的東西,很多現(xiàn)成的輪子可以用,但是要知道怎么搭積木就需要好的架構師了。所以我覺得平常要多看好的開源架構,多學習框框的東西,當然輪子和積木知道哪里能拿到。最怕的是像我一樣,只會google找積木搭,這就是所謂的純碼農了:(
3.其次是業(yè)務,開發(fā)很多時候要懂業(yè)務,很多開發(fā)的很不屑業(yè)務,認為技術才最重要。其實很多時候業(yè)務才是王道,軟件開發(fā)在我看來大部分時間都是給業(yè)務做服務的,做支持的,公司都是靠業(yè)務才能賺錢的。所以開發(fā)人員也要懂業(yè)務,特別對那種不是很想一直做開發(fā)的來說,懂業(yè)務又懂技術也許會給你更多的機會。
4.最后是軟件開發(fā)的職業(yè)發(fā)展,個人的看法是碼農能爬上去做架構師和經理的其實很少,基本一個蘿卜一個坑,我見到開發(fā)能一直做到退休的都是老外,人家基本沒有title的,這樣的我觀察無非兩種人。一種是對業(yè)務很精通,同時對技術系統(tǒng)又很懂的,公司少不了他。一種是對技術很熱情很鉆研,能力很強,又不想去要什么title的,基本可以挑大梁。我想國內的情況雖然不太一樣,不過基本可以借鑒下老外。當然不做開發(fā)還有很多可以做,我想說的是開發(fā)是可以做一輩子的,就看個人的想法了。這個問題我自己也一直在想,目前只有一條模糊的路,也得摸石頭過。
以上是作為一個經驗尚淺的碼農對工作五年的反思,基本是想到什么就寫什么,思路有點亂,敬請諒解。
補:早上過來看到居然上首頁了,也看到好多同行的點評,謝謝大家的鼓勵,我會加油的!