我畢業(yè)后的第一年
07年7月畢業(yè)了。
帶著一臉稚氣與高傲的心,我來到了北京。
在學校里,我成績中下,英語四級417分。但是跟老師做了2年的項目,所以技術上還是十分的自信。
面試的經(jīng)歷十分的漫長,大概10多家單位都給了Offer,但是我心高氣傲 ,一般都回了,因為給錢少。大多都是2000-2500,少的只有1800 。
就這樣晃來晃去,轉(zhuǎn)眼到了11月份 ,同學們都名花有主了,只有我還在不斷面試,11月下旬,一天下午接了個電話 ,對方問我是否在找工作,我說是,然后約了時間和地點,告知了公司名稱 ,后天面試。
Google了一下公司名字,呦?是個外資企業(yè)。不錯,去試試 。
第三天早上,我坐車到了公司。面試很簡單,沒有筆試題,只有一張試卷, 說24小時內(nèi)做出來,然后發(fā)到指定的郵箱里就可以。我看了下公司環(huán)境,建外Soho的民用房 ,幾張桌子,幾臺電腦。人員很簡單,只有三個人,2個中國人(一個負責技術,一個負責銷售),一個老外。 面試我的人說,老總在歐洲工作,每個月來中國工作一周。
回到家,按試卷上的要求寫了偽代碼,由于沒有做過手機程序,所以寫的一塌糊涂。 沒想到,過了2天,電話來了,告訴我通過面試了,可以和老總談談了 。
老總是典型的歐洲人,我的二把刀英語磕磕絆絆算是把口語關給過了 。老總覺得我還行,第二天就給了offer,月薪3500 。當時真的覺得很爽,一個三流學校的專接本學生,***份工作3500,我們學校的4年制本科生都沒有幾個比我掙的多的。 當即決定,去這個公司。
報道當天,發(fā)現(xiàn)公司不止我一個新人,另外還有3個人是新來的,看樣子都是剛畢業(yè) 。A是比我大一歲的河南人, B是年齡未知的東北女孩(不是吉林的就是黑龍江的,記不清了),C是北京XXXX大學的研究生,安徽人。D, 我們的領導是招我進來的人,四年的工作經(jīng)驗。算是經(jīng)理吧
工作就這樣開始了。一開始的時候,公司給了一些網(wǎng)站,都是介紹WAP入門的知識的。 雖然我一直在做Java,對 WAP有抵觸,但是還是耐下心來學了 。因為公司當時在和用友合作一個XXX的商務平臺(其實只是合作意向,就是做一個原型出來讓用友評估) ,需要一個WAP程序。一個月下來,基本沒做很多工作,學的都是在VS里寫aspx的文件 ,然后發(fā)布到IIS上,熟悉各類控件的使用。好在C#和Java很多類似的東西,別管誰抄的誰,至少還算入門快 。
磨磨蹭蹭的干到12月底。我們四個新人被分成了2組,A和C做用友的那個XXX平臺 ,B學習公司的一套產(chǎn)品的業(yè)務邏輯,我負責中興的一個某某平臺的開發(fā)的收尾工作。 工作內(nèi)容其實就是,因為我們的平臺使用了自己定義的API和庫,但是我們的庫不夠完善 ,不支持對數(shù)據(jù)庫操作的回滾,所以我要在程序里到處寫try catch,在catch里把數(shù)據(jù)從新update成原來的狀態(tài)。
轉(zhuǎn)眼就過了08年的春節(jié),我進入公司也4個月了, 對公司的同事也算是有個了解。 A是典型的河南孩子,很老實,實在,心地善良。 B屬于人精類型,技術也說的過去,人際關系混的***,領導很喜歡 。C屬于典型的目空一切型,4個月的時間已經(jīng)把我們3個人鄙視了無數(shù)遍,話里話外都是對我們的不屑 ,但是貌似技術垃圾的一塌糊涂。API不熟悉也就算了,拿到問題根本就沒有實現(xiàn)思路。 而且這人貌似一點人情都不懂,根本不管別人的感受。 比如,公司里僅有的那個老外很喜歡吃爆米花。每天都讓C帶一包來公司。 老外很開朗,拿了爆米花就分給大家。第二天,C又買了爆米花,他把爆米花給老外的同時,還說了一句蹩腳的英語 雖然蹩腳,大家也聽明白了,他說:“Don't give this to them” ,老外很開朗說:“no, I like share” 。中午休息的時候我和A在打KOF,雖然都是菜鳥,但還是很有興致。 C過來看了看說:“我什么都玩就是不玩KOF,不屑于玩”
A是個實在人,C偷偷問了他工資是多少,然后在吃午飯的時候?qū)ξ覀冋f “我現(xiàn)在這個水平,4500的工資,根本不夠花?!?公司分配了任務給C,他自己不做,因為他和A是一組的,基本上都是推給A做 A這人實在,什么也不說,悶頭就做,但是這樣還不行,C還嫌A做的慢,老是催快點快點 。有一次D發(fā)現(xiàn)了這個問題,就問C,你把工作給了他,你做什么? C反問:“這是我這種人應該干的活嗎?”(當時好像是讓C寫幾個aspx頁面)整個辦公室一片安靜 。
最搞的是,一天C接了個電話,然后問D:“你知道電訊盈科嗎?” D說知道,C說:“打電話來叫我去面試,你說我去嗎?” 全辦公室人,除了那個老外(因為他不懂中文),再次處于無語狀態(tài) 。
省點篇幅,中間略去1萬字,關于C如何如何的話題太多了,可以單開一個論壇了,不再累述。
說真的,按我上學時候的脾氣一天抽他八回都到不了天黑,想想現(xiàn)在是工作,忍了,不理他就完了 。再說C的個子比較矮小,打了他也不光彩,落個欺負人的罵名不值 。A和B也同樣受過他的氣,但是大家還算有涵養(yǎng)。也算是和諧了一把吧 。
轉(zhuǎn)眼到了4月中旬,老總四月的第3個禮拜在中國工作,我記得是周2,他突然要看看我們的工作進度。 我們一一匯報,輪到C,老總問他在做什么工作,C支支吾吾半天也沒說出話來 因為C的英語雖然是6級,但是口語基本上是白癡階段,所以A告訴他,老總要看他最近的工作進度。 這下C更沒的說了,***還是老總打開了他的VS,看了他的代碼,看完后一臉的暴雨將至表情, 臉色鐵青什么都沒說,坐到我的位置上給D發(fā)了封電子郵件。C有點沉不住氣了,過來跟我說:“你能不能幫我看看老總在郵件里說了什么”。 現(xiàn)在才知道用到別人?早就晚了。我說,“這個不好吧?再說我好像看見老總把那郵件給刪了?!?
當時就感覺C差不多了,走人是遲早的事。 但是沒想到老外辦事的速度確實是快,那個周五的下班前一小時 ,老總把我和B帶到貌似是Soho15號樓的星巴克 ,坐下來說了很多,大致意思我是明白了,就是A和C不是公司需要的人,你們兩個會被留下來繼續(xù)工作 。說真的我很吃驚,C的走是他咎由自取,但是A這個人很不錯,雖然技術不是很厲害但是人品沒問題。
很不理解公司為什么連A也一起開了。 后來才知道,用友因為對我們的原型不滿意,已經(jīng)取消合作了。 也就是說,公司不再需要這2個人了,盡管A也可以留下,但是沒有他的工作 老外是不會愿意給他開錢的。
至此C走了,算是清潔了辦公室的環(huán)境。團隊只有我和B、D還有那個不歸D管的老外。 一個經(jīng)理兩個兵,轉(zhuǎn)眼到了08年的6月。 因為我們公司的產(chǎn)品性質(zhì)決定了我們要適配很多的移動終端。
這次我們要在J2ME平臺上開發(fā)一個軟件,讓它在J2ME手機上跑起來。 所以我和B開始學習J2ME,一個禮拜的時間,從Hello World開始,到熟悉各種控件, 使用RecordStoreManage寫一個記事本。 然后就開始開發(fā)了。后來才知道不光我和B沒接觸過J2ME,D也一樣沒接觸過 。但是D有自己的一套方法,公司的這套產(chǎn)品在PDA上的平臺是一個成熟的客戶端產(chǎn)品,D把PDA上的代碼拿過來,完全仿照PDA上的代碼,做了一個架構。 基本上一點不差的搬到了j2me上。
我和B的工作就是寫控件,給控件加判斷邏輯代碼。 本來我以為可以好好工作了,但是接下來的一段時間發(fā)生了一些不愉快的事 。公司本來是沒有遲到時間點的,就是說,任務完成了,你隨便什么時候來隨便什么時候走 一般我都是早上9點45到公司,晚上6點半回家。但是8月份的時候,有一天,D過來問我早上為什么來這么晚 。很詫異,但我什么也沒說,D說下次早點吧,我們是早上9點半前到。 我說好,但是因為我和女朋友一起住在上地,公司在建外Soho,所以如果路上稍有意外,就難免遲到。
連續(xù)一個禮拜我9點20左右到公司,但是發(fā)現(xiàn)D大多數(shù)時候9點35才到,有時候9點50才到。 但人家是經(jīng)理,而且有可能晚上加班,所以我也沒話說。 一天早上我在樓下排隊買早飯,我看見B從遠處過來,因為她沒買早飯,所以先進公司了 。我比她晚了5分鐘,加上那天早上又起晚了,所以我9點45才到 ,不知道D是不是和B說了同樣的話,但是跟我說的是:“你怎么又遲到了?我們不是說了9點半前到公司嗎?” 所以我把牙一咬,每天晚上早睡一小時,第二天保證9點半前到公司。但是時間長了我發(fā)現(xiàn) ,B和D根本就不會9點半前到,一般D是9點40到,B更晚一般都是9點50左右才到。 心里不爽了,但是沒說出來。忍了。
更不爽的事情在后面,9月初的時候,我們的代碼可以運行了。有一天下午,D要求我和B做一個DEMO,就是先寫一些假數(shù)據(jù),讓程序可以跑起來
快下班了,我把DEMO測了一下。跟D說可以了。 D問效果如何, 我看了一下,告訴D,因為我們用的控件是高級API,當一個Form上控件比較多的時候 ,在模擬器上反映就已經(jīng)比較慢了,到了真機上更慢 。D沒抬頭反問我:“那怎么辦?” 我心想:“架構是你做的,設計是你出的,實現(xiàn)出來效率低下,你卻問我怎么辦?” 我沒吭氣,還是忍了。事實證明一再的忍讓絕對不是好的辦法。
到了9月底,j2me平臺上的代碼已經(jīng)完全可以運行了。但是,D把這個東西拿給我們的合作伙伴看,合作伙伴不太滿意,因為金蝶和另外一個叫什么名字我忘了的公司也提供了類似的東西,用戶認為比我們的好。 用戶不滿意的地方主要有:
1.是我們的控件都是使用了j2me的高級API,在不同機型上設置參數(shù)一致的控件顯示出了不同的效果。
2.因為我們用高級API在一個FORM上控件比較多再加上數(shù)據(jù)存儲在RSM里,運行時速度奇慢無比。
3.是高級API控件沒有Canvas畫出來的好看,競爭對手的產(chǎn)品界面更美觀。
此時, D跟我說,你看看金蝶和另外一個公司的DEMO,看看能不能實現(xiàn)人家那樣的東西? 我看了2天Canvas,然后說應該可以實現(xiàn)。 D說,好,那你就把界面部分用Canvas實現(xiàn)了吧。 我說時間上能不能多給點,因為Canvas更底層,實現(xiàn)同樣功能代碼量要更多 ,D說你盡快吧。
我們的控件里有一個控件叫find,就是用戶可以輸入文本,點擊按鈕后,控件調(diào)用相應的代碼查詢RMS里的信息,根據(jù)用戶輸入的文本進行匹配,匹配成功的返回一個列表,做成下拉列表。 在j2me高級API里,這個功能實現(xiàn)并不難。以前這個控件是B寫的,我看了一下,大概80行代碼。當時清楚的記得這個控件分給B的開發(fā)時間是一天。
但是到了低級API里就不是80行的問題了,首先Canvas沒有中文輸入,我要自己到網(wǎng)上找一個字庫,根據(jù)用戶輸入的拼音檢索字庫,如果字的個數(shù)過多要根據(jù)屏幕寬度換行,支持翻頁操作,把用戶選中的漢字顯示到控件上。而且Canvas里根本沒有控件的概念,用戶看到的控件都是一個一個像素畫上去的方框。而且低級API沒有高級API封裝的那么好,所有的用戶操作都是觸發(fā)按鈕按下事件,然后我自己做處理。還要等用戶輸入完畢后,把檢索結果用表格的形式展現(xiàn)在屏幕上,表格的每個行還都要支持單選。
我用了1天時間,控件沒寫完,下班的時候我要走,D猶豫了一下說:“那~~~~~~, 好吧”。
第二天早上,我到了公司打開郵箱,發(fā)現(xiàn)D給我發(fā)了個郵件。寫了很多,措辭很嚴厲。大致意思是說,你沒有集中精力在工作上,本來計劃是昨天讓你寫完這個控件的,現(xiàn)在整體進度要推后一天,希望你以后注意。一陣狂暈。什么也沒說,利用上午的時間把這個控件完成到80%,中午吃飯的時候,D問,“你看到我給你的郵件了嗎?”答看到了。D看著我等我接著說,我說:“頭,今天上午我又寫了一個上午,現(xiàn)在還沒寫完,還差20%的樣子,你要求1天寫完,基本不太可能,因為這個控件代碼規(guī)?,F(xiàn)在就已經(jīng)1200行以上了”D沒吭氣,過了一會跟我說:“你以后也可以看看我們整體的代碼,其實我們還是用了很多設計模式在里面的。你可以學不少東西”。
08年10月底到11月初,是我最苦惱的時間。
這個時候j2me的代碼本來已經(jīng)可以跑了,但是總是有很多這樣那樣的問題。說白了就是?。拢眨?。D找到我說,你最近沒什么事,把BUG都改一下吧。心里不情愿,但是公司就這么幾個人,改吧。這才發(fā)現(xiàn)B姑娘寫的代碼真是沒法恭維,到處都是魔術數(shù)字和魔術字符串,把人搞的暈頭轉(zhuǎn)向。比較兩個字符串的值是否相等用“==”.單例模式的類有自己的成員變量,在使用完該單例類之后,成員變量沒有恢復初始值導致下次再調(diào)用該類的方法時產(chǎn)生稀奇古怪的結果。
最可怕的是,我把BUG改完后提交到SVN,B姑娘把代碼更新下來發(fā)現(xiàn)她那邊不能跑了,根本不找原因,直接把自己的代碼Commit了,上帝保佑SVN提供了以前版本的保存功能,要不然,我再次update之后就可以去死了。
還有一次,因為我們的J2ME客戶端要與服務器通訊,所以要單開一個線程,進行網(wǎng)絡連接。D找到我說,網(wǎng)路連接連不上,要我看一下。后來發(fā)現(xiàn),D的代碼里網(wǎng)絡連接的代碼確實是單寫了一個類實現(xiàn)了runnable接口。但是,老先生在主線程里直接調(diào)用這個類的start方法,然后緊接著就進行其他操作,居然還問我,為什么程序走到這就不動了。暈死~。找到了Handler類,把API看了一下。用Handler從新調(diào)用,問題解決了。
***很搞不明白的是,B和D的關系貌似很融洽,本來,女孩子要是嘴甜點,在職場比較好混,這不奇怪。 但有一次,D要出差去深圳一段時間,居然要帶B一起去。當時我和公司里負責銷售的那哥們同時對望了一眼,因為B有沒有男朋友不知道,但肯定是未婚。D也是未婚。出差到外地多半個月,兩個未婚男女一起去貌似不太符合中國人的習慣?也許外資公司不在意這個?
兩人把計劃報給了歐洲的總部,結果歐洲那邊在意,不同意他們倆一起去,只讓D自己去。后來回憶,8月份的時候,D休了個年假,我們公司的年假是10個工作日。當時D說要去女友家,因為是***次去,有點緊張。 后來他走了一周以后突然又回到公司了,安排了我和B一下,說自己坐下午的飛機去海南旅游,問他女友呢?答說女友回家了。
到這時我才明白,原來8月份的時候D因為去女友家,女友的父母不同意,所以D自己回到了北京 但是,還有一個多星期的年假沒有休加上被人蹬了心情郁悶,所以去海南散心。 回來公司以后,準備發(fā)展B做下任女友,才要帶B去深圳的。 雖然后面這些只是猜測,但是全都合情合理,沒有破綻。想到這里不由的心里一陣陣惡心。 用老外們的說法就是: pretty disgusting。
轉(zhuǎn)眼時間到了11月底,j2me的項目算是馬上完了,D跟我說,再寫一個網(wǎng)絡連接線程就可以了。這塊工作量不大,他準備和B一起寫,讓我準備做BlackBerry上的應用開發(fā),就是把這套產(chǎn)品搬到BlackBerry上。那幾天找了很多資料,發(fā)現(xiàn)BB上的開發(fā)和j2me上的開發(fā)根本不一樣。心里很懷疑還照搬PDA上的架構是否行的通。但是一時又發(fā)現(xiàn)不了什么問題。所以就一直在往下走。
當初學j2me的時候給了一個禮拜的時間學習一下基礎的東西。 到了BB上只有我自己在做,結果D根本不給我熟悉BB的時間,寫完Hello World就要求開始寫控件直接開發(fā)。寫完BB就準備寫IPHONE的客戶端。大哥,這行嗎?你在j2me里的問題我還沒告訴你呢,你把初始化信息寫在onStart里, 用戶使用軟件的時候出現(xiàn)優(yōu)先級比較高的事件,等處理完畢再返回的時候你哭都來不及??蛻舳塑浖]有中斷向量的程序我還是***次看到呢,這也太不健壯了。還說什么趕快寫,把所有的終端代碼都寫出來。
說到這里的時候,我心里突然想起了A,兢兢業(yè)業(yè)工作的人,就因為公司沒有任務了,就順手把人開了。 很擔心自己把所有終端寫完,然后被公司一腳踢掉。
回想過去的一年,自己做的事無非就是一套邏輯,在各個機型上不斷的適配,沒有設計,沒有業(yè)務邏輯,一點技術含量都沒有,有的只是按順序拼控件,全拼完了以后,寫下一個終端。 再回想公司的嘴臉。算了,我走吧。
08年11月28日星期五, 下班的時候,按慣例發(fā)一天的工作報告,在郵件的***用英語寫道 :“I will NOT sign a new contract with company , and if .....”。
四級考試時的英語作文都沒這個寫的語法正確。
【編輯推薦】