上學時,學的就是軟體工程,自認學得還不錯,那時學得最好的是C++和資料結構,每天要完成一堆老師留的各式各樣的C++題目、演算法題目,甚至是系統結構也要用c++來編程,期末還要完成一堆C++,軟體工程,資料庫的大作業、小作業。
那時做起來最有成就感的就是完成一個周圍很多人還沒完成的演算法題目,然後很得意的宣稱,我編出來了^_^。
完成得最久的就是軟體工程的大作業:用J2EE做的一個圖書管理系統,為了好看,還從網上下載了各種模板及javascript,然後一個個去試,一個同學說你們同組的和同學顯擺你們做的大作業,於是覺得美得冒泡...
完成的最快的是資料庫的大作業,2天時間分析需求,畫完E-R圖,寫好建資料、建表、建索引、建視圖、預存程序、觸發器的語句,完成文檔,然後又用一天時間用J2EE把程式編好,那叫一個得意^_^
實習時,一開始進入了一家國內最早做PLM的公司,一個博士帶我和另外一個同學,做了一些簡單的.net培訓,然後我們兩個人共同完成一個asp.net的小程式,我就被拉到PLM項目組做開發去了,同學則在幾個項目中做測試。那時還有種初生牛犢不怕虎的氣勢,凡事都喜歡爭辯,開始博士做概要和詳細設計,然後帶著我做開發,那時我總喜歡問些為什麼要這麼做?這樣不是也很好嗎?這裡不應該這樣吧,等等諸如此類的問題,然後和博士爭個面紅耳赤,可能是因為博士脾氣太好了,總是和他爭辯,雖然大多時候他都是對的,但他仍然會很耐心的和我解釋,直到我明白這樣確實更好。博士也很大度,一次爭論中,他發現他的設計確實有問題,很坦白的承認,並且找專案經理說明問題,重新做設計,也是從那時開始,他做概要設計,而詳細設計和coding都由我來做了,他是我人生中第一個職業導師,也是迄今為止,我碰到的最出色的職業導師,在他的帶領下,我完成了很多複雜的設計和coding,那種成就感至今讓人無法忘懷。而那之後的工作中,我卻再沒有和人那般爭辯過。也許是再也沒有可以爭辯的人,因為在大多工作中,領導就是領導,不容褻瀆,之後的工作中,我最常做的就是沉默。
畢業後,我順利的進入了一家公司,成為一個程式員,面試的C++,結果進去後陰錯陽差的做了JAVA,然後就一直做JAVA,做網路應用做到現在。
畢業後的第一個項目,是給日本知名汽車公司,做ERP系統,那時我們是用瀑布模型迭代做開發,每期都是從需求分析開始做起,然後概要設計,客戶確認,詳細設計,測試案例,coding,單體測試,結合測試,發布,然後又是從需求分析開始的一個輪迴,每一期都要曆經幾個月,1期甚至用了幾年的時間才發布。
我進入時,剛剛開始1.5期。我的第一個任務是做一個需求變更的詳細設計和coding,很簡單,完成後以為不會有什麼問題,結果leader review後,要我修改,於是直接跑去問改什麼,leader說“變更是很簡單,但是你在文檔中要寫得更詳細,讓開發看了,立刻就知道該在什麼地方改什麼,還要標明為什麼改,誰改的,什麼時候改的,代碼中也要標明這些”,我問為什麼加這些,leader回說“方便”,那時並不清楚這兩個字到底有什麼意義,想不通哪裡方便,然而之後的三年,讓我明白了當時leader為什麼說“方便”。
可能基於我做事認真,能力還可以,一個月後leader扔給我一頁日文紙,告訴我寫個需求,日文不太懂,連猜帶懵搞懂個大概,然後直接拿了紙跑去找leader確認需求,leader直接給我口述了一堆文檔上提及和沒有提及的需求,我就開始了第一次用英文寫需求分析的經曆,那時國內會日文的還沒幾個人,我們都寫英文設計書來和日本人確認,之後和leader及日本人確認需求分析,改了一點兒後開始做概要設計,這時日本人要求我們要用VBA來做這個模組,它脫離J2EE的ERP系統,單獨做,而我從來沒聽說過VBA,更別說用了,於是開始邊寫設計書,邊下載檔案,學習VBA,遇到問題到處搜尋,到論壇提問等等。完成詳細設計時,基本的功能我都已經試出來了,leader看到後說,VBA現在只有你懂,所以設計、coding,單體測試,結合測試和相關的伺服器都由你做吧,於是通過這個模組,我把瀑布模型的所有流程都走了一遍,最後連使用手冊,及linux和ftp伺服器搭建手冊都是我來完成的。發布後,客戶做接收測試,沒有測出bug,leader驕傲的對人說,看,我們做到了0bug。
那之後我逐漸接手越來越多的工作,成為了組裡的主程式員,只要發布就要加班,有時發布當天對應緊急任務,直接熬個通宵,對應完成,客戶確認沒問題後,我才能離開。一年多後,leader要離職,我就成為了接替leader工作的那個人,那時leader很累,來了需求要確定可行性,要review所有人的設計和開發等成果,確保所有人的設計、開發都是正確的,因為是屬於在原有系統上進行二次開發,所以每個設計都要保證不能影響到原系統,要考慮並發,考慮效率等等。那時發布後如果出了bug,我們要給bug分等級,系統中斷、系統奔潰等都屬於一級的bug,是絕對不允許出現的,幸好我在的3年中,我們從沒出過這種bug,每次出了bug,我們都需要向客戶說明,這個bug是哪個人、哪個步驟造成的,要如何避免等等,所以我們都盡量減少bug,雖然無法做到杜絕bug,也因此我們花大量的時間在設計和測試上。
那時候,經常加班,也有精力加班,然而工作幾年之後,就再沒有那麼好的體力去常加班了,現在找工作都先看看,這家公司會不會需要經常加班。
離開那裡後,我到了上海,上海的空氣比北京要好很多,剛來時,正是雨季,每天下雨淅淅瀝瀝,卻不像北京下雨時,那麼冷。在雨中各處奔走,面試,偶然去了一家培訓機構要我當講師,姐姐說,女生當個講師也不錯,於是就成了一個軟體講師。
剛進時,要我當三期講師,主要教授J2EE,ORACLE等,並帶軟體工廠,但是那時三期還沒開班,我就先帶了C語言,學員大多沒有電腦基礎,有的人甚至開機都不會,為了讓他們能學明白,我每天晚上回去都會弄課件,弄很多執行個體,備課,然後每個部分都會在課堂上直接敲代碼示範給他們看,以前最常做的是拷貝粘貼,但是為了能讓學生明白我在講什麼,我每次都是現場鍵盤敲代碼,不再拷貝粘貼。之後三期開課了,我轉而去帶三期,一期的學生升三期時,會去問我教哪個班,希望能在我的課堂上課。那時每個月,校長都會開會,講學校,講哪個銷售做的好,哪個做的最差,連續三次最差的人會被開除,一次開會,校長說要頒發最佳講師榮譽,他說,對於這個講師,他並不瞭解,但是學生對他的評價很高。。。。。。然後,我就聽到了自己的名字,拿著獎狀的那一刻,真的是讓人激動又振奮,那之後,我成了學校的金牌講師,及三期的負責人,任命書一直留在了學校,也許現在還在,呵呵。三期負責人要培訓三期講師,要培訓學生,要組織講座,要帶軟體工廠等等,晚上回家還要準備課件、備課,每天忙得前腳打後腳,有一點點時間都想要睡覺,嚴重的睡眠不足,而學校為了節省經費,也不希望僱傭更多的人。
一年多後,為了身體健康,我終於提出了離職,離開講台,離開我所熱愛的學生們。
休息一陣子後,開始重新找工作,剛好趕上經濟不景氣,1、2個月都沒什麼迴音,後來一個獵頭幫我介紹了一家外企,但是他說因為我JAVA工作不滿6年,只能推薦我低一級的職位,面試後,上崗直到如今。
在這裡,我不再是以前那個項目中的重要人物,這裡最重要的是語言,而不是技術,可惜我的語言距離優秀還有一大截。在這裡我只是個普通的碼農,但是在這裡我不再需要經常加班,在這裡,我碰到了我的老公。
也許有一天我還是會離開,畢竟每個人都希望能一展自己所長,能為人所看重,但是我希望當我離開時,我所到的地方,能是個長期發展的地方,或者我已經找到了更適合自己的路。
一個老碼農,能做的仍然是學習學習,學習所有我們需要的:語言能力,溝通能力,技術能力等等
有時回顧一下我們所走過的,回顧一下我們曾經學習的,也都會是一種收穫。