十八年開發(fā)經(jīng)歷小結
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
本來題目想寫為“十八年開發(fā)經(jīng)歷總結”,但是一想我的開發(fā)生涯還沒結束,怎么就總結了呢。再說個人的一些積累和看法也不一定正確,所以還是改為小結比較妥當,言下之意自己還需要繼續(xù)積累進步。本文主要談幾點個人的體會,這些內容有一部分可能只是我自己遇到的問題,相信還有一些其他程序員也曾遇到或者面對過。之前看到這些問題也思考過,三言兩語回復過,現(xiàn)在以小結的方式寫出來,算是對自己十八年經(jīng)歷的一個回顧。 一、如何開始寫程序的 第一次接觸電腦當然是在學校里,可以說什么都沒學到,也什么都沒學會,相反只是增加了對電腦的恐懼。第一次真正意義上讓我開始學習電腦是在1992年,我所在的部門負責銷售電腦。由于那時PC(當時叫家用電腦)的操作系統(tǒng)是DOS的,所以為了使用電腦必須學習一下基本的操作命令。我的第一次學會使用電腦就在那個時候,這為后來學習編程打下來了基礎,因為當時不會操作電腦是不可能學習編程的。 1994年7月開始在公司的人事部工作了。當時人事部有一個386的臺式機,那個時候386算是不錯了。機器里裝了WPS和Foxbase,這個可以說是標配。我的第一門編程語言就是這個Foxbase。應該說這個東西還是很容易上手的,再則當時領導不安排什么具體的工作,所以有了大把的時間學習,結果很快就掌握了。在完全趕走對電腦恐懼的同時,對編碼產(chǎn)生了濃厚的興趣。當時我完全是自學的,3個月后已具備開發(fā)一個小型管理系統(tǒng)的能力了。然后是學習C語言,我還特意買了一本書,書名是《C語言編程300例》。編譯器是Turbo C 2.0。應該說C比Foxbase要難一些,但是我比較幸運,還算是學會了。作為一個成果是用C語言寫了一些小程序,操作Foxbase的數(shù)據(jù)庫文件,實現(xiàn)Foxbase中的部分命令的功能。 這些經(jīng)歷讓我意識到自己的特長在軟件開發(fā)方面,于是開始有萌發(fā)轉型為職業(yè)程序員的念頭了。 二、職業(yè)程序員轉型之路 發(fā)現(xiàn)自己的特長是一件好事,因為可以定位自己的職業(yè)方向和規(guī)劃,但是具體的操作卻不是那么簡單的,我做了一些思考和評估。其中涉及兩個問題:第一,轉型是否值得?第二,做職業(yè)程序員我的能力是否真的足夠。 對于第一個問題,我老爸的意見是不太支持我轉的。應該說當時的人都比較相信國營單位的所謂鐵飯碗,安安逸逸過太平日子,少折騰。而且當時程序員是吃青春的觀念非常濃郁,有的公司甚至以本公司程序員年輕作為炫耀的資本。所以丟掉手上的鐵飯碗去干一個相對風險明顯要高的職業(yè),確實是一個很難下的決定。所以我面對這個問題是猶豫不決的。對于第二個問題,從我在本單位的表現(xiàn)來看,寫程序是我的特長。但是與所謂的以寫程序為職業(yè)的那些人來說,我是否有優(yōu)勢就不得而知了。從各種關系得到的反饋是很不樂觀的。主要是兩個原因:1. 我的專業(yè)不是計算機;2. 沒有實際開發(fā)經(jīng)驗。 基于上述的情況,我做了一些準備工作,首先是我給自己出了一道題目,那就是開發(fā)一個病毒程序。如果我可以獨立開發(fā)出一個符合當時公安部規(guī)定的病毒程序概念的程序,那么我就下決定轉。選這個題目是就很有講究的。首先這個方向我很感興趣,其次這個問題足夠的難。但是這個題目又不是難的完全脫離實際。因為我已經(jīng)學了很長一段時間的匯編,平時對病毒資料注意搜集,所以對實現(xiàn)病毒程序的每一個技術細節(jié)我是清楚的,只是沒有實際寫出代碼而已。在此后的4個月的時間里,反反復復經(jīng)歷了好幾次噩夢一般的起伏,最終還是成功實現(xiàn)了。整個病毒代碼大概1.4K,應該不算小了。那個病毒程序發(fā)作的癥狀是讓計算機的蜂鳴器發(fā)一次聲,感染的是當時一個非常著名的工具PC Tools。當運行PC Tools時,聽到的那Beep聲,可能是我生命中聽到的最美麗的單一的聲音了。 這個病毒的成功研發(fā)完成,讓真正看到了自己的專長,于是下決心轉行。針對學歷和經(jīng)驗的問題,我當時是計劃用職稱來彌補。所以報名去考了程序員資格與水平考試,這個考試在2000年改了,現(xiàn)在已經(jīng)不叫這個名稱了。那是1996年的事情,結果第一次考試沒有通過,那是一個非常大的打擊??荚嚨慕?jīng)歷讓我意識到自己缺了一門課程,就是數(shù)據(jù)結構,從這件事情我發(fā)現(xiàn)有專業(yè)系統(tǒng)學習的和沒有專業(yè)系統(tǒng)學習的差距是明顯的。所以一方面自學數(shù)據(jù)結構,另一方面參加了一個專升本的成人高考,專業(yè)就是計算機。此后的幾年基本上就是在積累了,一方面程序還在自己找課題寫,另一方面在學習計算機本科段的課程。三年以后我以本科學歷,高程證書,在2000年7月開始北漂,尋找我的第一份程序員工作,那年我已經(jīng)30歲了。 希望我的轉型之路可以給有同樣困惑的朋友一點借鑒?;旧衔肄D型的過程還是比較慎重的,屬于穩(wěn)扎穩(wěn)打。其實這個過程還有很多的細節(jié)是挺考驗人的,限于篇幅就不寫出來了。以后有機會寫總結的時候再來寫吧。 三、第一份程序員工作 2000年7月到了北京,然后在比較困難的情況下用互聯(lián)網(wǎng)應聘了一個公司。我非常幸運,由于該公司正好有人離職,急著需要人來補上,所以我得到了那個職位。這個職位的考驗在于需要維護一個串口通信程序,這類程序我從來沒有接觸過,并且所有的資料都是英文的,對我來說這個挑戰(zhàn)不小。征服這個苦難的方法是兩個:1. 硬著頭皮讀代碼,讀懂它;2. 硬著頭皮讀英文文檔,讀懂它。因為既然出來了,那就沒有退路了,只有拼了。讀代碼的經(jīng)歷讓我學到很多東西,基本上以后這類通信程序我可以寫的比較到位了。所以這里也建議各位同行,付出一點努力學點東西總是有益處的。 適應了這個職位后基本上就順手了,而且還主動配合部門經(jīng)理幫助其他的同事完成其他項目。此后,我就和相當一部分的程序員那樣,不斷的在跳槽,在同一個公司都沒有能簽到第二份合同。我就像一個沙粒一樣在茫茫的世界中飄蕩。 四、關于跳槽 在北京打工的幾年發(fā)現(xiàn),要想在一個公司干長是比較困難的。即便是自己主觀上有這樣的想法,但是實際發(fā)生的事情卻總會導致跳槽的結果??赡芄椭骱凸蛦T之間的雇傭關系比較松散,同時雇員有較大的擇業(yè)自由也是一個原因吧。 首先想說的是,不要只是為了工資跳槽。還有他若干因素的重要性并不比工資低。比如: 1. 工作是否穩(wěn)定 對于大部分人來說,能力是差不多的,穩(wěn)定的工作可以避免頻繁的跳槽,而導致去和比自己強的人競爭職位。我個人的觀點是,今后在中國會出現(xiàn)越來越多的所謂大齡程序員。其原因是70后和80后這一輩的程序員的年齡開始逼近所謂的大齡了。在上世紀90年代非常流行的觀點是,程序員這個職業(yè)是吃青春飯的。這里面有一個誤區(qū),那就是當時從事這個職業(yè)的確實都是年輕人,因為這個行業(yè)剛開始興起,沒有大量的老程序員。就業(yè)市場缺乏比較和選擇,所以事實上造成了這個情況。但是當市場出現(xiàn)大量的高齡程序員時,用人單位就會比較選擇了。以近幾年看到的情況來說,40歲的程序員找工作也有很快的例子。所以,一個穩(wěn)定的工作越來越會成為一個實際的目標。 其次,我個人的理解是,所謂打工成功,不是在于你的工資有多高,而是在于你在一個公司能干多久。因為絕大部分的軟件公司都是合資,獨資或者民營的,隨著工作時間的增加,雇員和公司以及雇主會有越來深的情感,這在民營企業(yè)中尤為重要。這種情感的積累是個人在公司得到好發(fā)展和高工資的最好的基礎。所以如果能在一個公司干長的話,就盡量不要跳槽。 2. 公司領導對自己是否賞識和器重 一個有緣分的或者好的上司是一筆財富,如果自己能遇到,那就請珍惜。 3. 從事的具體工作內容自己是否喜歡 開發(fā)工作包含的具體內容是非常多的,在一個職位上是否能夠得到自己喜歡的工作內容,不是一件特別容易的事情。比如有的開發(fā)者,實際從事的是修改別人代碼的工作,這種讀別人的代碼再修改的工作,相信很多人都是不愿意干的。如果公司提供的工作,允許你按照自己想法設計并寫代碼,這樣的工作體驗就大不一樣了。所以如果你當前的工作內容正是自己的喜歡的,那么就不要輕易跳槽了。 4. 與同事的關系 與同事的關系在很大程度上決定了工作環(huán)境的好壞。如果自己覺得和同事的關系不錯,合得來,相處的也很愉快,那么跳槽的時候就考慮一下,在新公司是否也能得到。我遇到的真實案例,就有人因為同事關系融洽,而不愿以跳槽的。另外,我也相信,一個公司的員工之間的關系都很融洽,那么這個公司也應該是不會太差的。 5. 其他 比如跳槽的機會成本,上班的距離等等。 五、創(chuàng)業(yè) 一直以來,看到不少打算或者已經(jīng)創(chuàng)業(yè),這里談談我的看法。我覺得創(chuàng)業(yè)不是一件今天想干明天就能行動的事情。創(chuàng)業(yè)需要等待機會,你需要一直準備著,等到機會來的時候就可以了。不要等到自己感覺打工不行了再開始創(chuàng)業(yè),這個基本上是晚了,或者成功的可能性也不高了。就我自己來說,我真正開始創(chuàng)業(yè)是2009年開始的。而產(chǎn)品的開發(fā)從2006年就開始了,之后一直斷斷續(xù)續(xù)的在持續(xù)著。這期間解決了諸如核心技術問題,產(chǎn)品的定位,發(fā)展方向,市場調研等問題。同時,公司的注冊,資金來源,辦公地點,設備配置,人員招募,公司管理事務等等,這些問題也是在這一期間逐步解決的。于是在2009年回到北京,全職開發(fā)產(chǎn)品,正式開始創(chuàng)業(yè)。所以我的體會是,以非常淡定的心態(tài),長期積累和準備是可以開始創(chuàng)業(yè)的基礎。切不可認為自己簡單搞一個東西賣錢,就可以創(chuàng)業(yè)了,這是不切實際的。當今社會總體上是公平的,沒有什么核心競爭力或者核心技術就想賺錢基本上是不現(xiàn)實的。 六、學習 記得我還沒有入行的時候,在電視中就聽到譚浩強老先生說過,計算機這行發(fā)展快,需要不斷的學習。如果說現(xiàn)在要選最重要的一句話的話,那么譚浩強老先生說的這句話對我來說,至少可以排在前三名。對于程序員來說學習是終身的事情,當然這個學習是廣義的。 很多人的看法是,隨著年齡的增長,個人的學習能力在退步。人在80歲時大腦只相當于20歲時的一半大小,所以這個說法當然不錯。當初我也是這么想的,所以一度花力氣準備考系統(tǒng)分析員資格,打算專職做設計,不用寫代碼了。但是隨著自己年齡的增加,我發(fā)現(xiàn)對于還在職場的大齡或者高齡程序員來說卻不是這樣的,至少對我來說是如此。這里面一個關鍵問題是,大齡或者高齡程序員的經(jīng)驗發(fā)揮了極為重要的作用。對于一個學生往往是空白的被動接受知識,但是對于一個大齡或者高齡程序員來說,可以帶著經(jīng)驗來學習。所以學習的速度不但沒有減緩,反而是加速的,學習知識的速度會越來越快。在知識的掌握和在編碼中的應用程度這兩點上,有經(jīng)驗的程序員的優(yōu)勢更為突出。這是年輕人無法比擬的。 所以我覺得不要對新的技術和知識有抵觸或者畏懼的心理,嘗試去接觸,了解并使用其實不是很難。技術雖然發(fā)展很快,但是畢竟也是逐步發(fā)展的,在每一步中更新的內容并不多。所以,每次都跟上,不要掉隊,維持終身學習的狀態(tài)也不是一件難事。 該文章在 2012/11/11 16:49:16 編輯過 |
關鍵字查詢
相關文章
正在查詢... |