??? 說是上學,其實就是在村里的一座小廟,廟里面似乎就剩個大菩薩。擺幾張桌子椅子就是教室了。記得我剛進去時是六歲半,所以還上了半年幼兒園。結果就這半年幼兒園還整了個三好學生(沒辦法,誰叫咱自幼聰明呢,別嫉妒啊)。那時候啊,因為這個廟里只有一二年級,人少,因此比我高幾屆的學生,一年級都會上兩年,然后再去大隊的小學里上三年級。巧的是,剛等我一年級要結束,改革的春風來了,廟里的小學撤了,所有學生自動編入大隊的小學,所以我新學期自動成了二年級學生了。
??? 小學階段,我屬于聰明但不用功的學生,因此老師對我都是又愛又恨的。結果考初中的時候考砸了。我們那一屆,包括我們小學在內的幾個大隊小學,一共有120名畢業生,我只排在24名。進入初中后,分成三個班,我在一班。然后根據成績排名,分派班干部,我排名第八,所以只輪到一個歷史課代表。教歷史的老師是一個年紀大,駝背,走路兩腿不連慣的家住的很近的老頭。一到空閑時間就拽我去幫他干活。
??? 初中階段我的成績還可以,班里基本上是前兩名,年級里是前十名(我們那個班實在不怎么樣)。照說還不錯,可是大家可能不知道,農村的學校,升學率是很低的。一屆學生常有全部考不上高中和中專的,因為教育水平相對落后,而且城里的學校在錄取分數線上是向城市傾斜的,我們必須比城里的學生多考十分才能有希望(不知道現在有沒有改善)。
??? 本來升學的希望就不是很高,當中考還有一個月即將來臨時,我還得了一場重病,差點要了命。那時候都是從家里帶上飯盒,放上米和水,到學校的大鍋里蒸飯吃。那段時間我天天剩飯,每頓就吃上一兩口,回家睡覺只能朝右臥,向左臥時就不停的咳嗽。我父親帶我去鎮醫院看病,一個年輕醫生說我是消化不良,給開了消食片。結果還是沒有好轉。剛好我自己看生理衛生書(初三的教科書,因為中考不考,老師都不教,自己看),看到其中一章講肺結核的,我覺得自己的癥狀很像,因此又去醫院看,我對醫生說,我覺得自己得的可能是肺結核。結果把醫院院長找來幫我檢查,檢查完后,院長很嚴肅的對我父親說,怎么到現在才來。拍片的效果看到我的整個左胸已經不透明了,全是黑影。我得的是肺結核中的一種,叫做胸膜炎。
??? 此后我在醫院里呆了半個月。做了兩次抽水,一次抽出一痰盂水,用那種直徑大概有四公分左右的大管子,一次抽十幾管子。但我很幸運,兩次后基本上就沒有水了,住了半個月就好了。醫生都說一般半個月好不了。半個月下來,我的右胳膊比左胳膊細了一圈。因為我堅持打吊瓶用右胳膊,因為我是左撇子,還是希望左胳膊更強一些。
??? 原本希望能夠留級,來年再進行中考。可是最后沒有成功。我們那邊管的比較嚴,要留級只能在初二,初三不允許留級。而且我生病距中考只有一個月時間了,學校都已經完成報名工作了。在醫院填報志愿時,第一志愿填了師范,第二志愿是中專,第三志愿是市高中。在那個年代,對農村人來說,能夠將農村戶口改為城市戶口,那是相當榮耀的事情。因此大多選擇師范和中專,高中是無奈的選擇。
??? 對于我來說,對未來已經不抱希望。我想我也有足夠的理由來安慰自己,誰叫自己時運不濟呢。中考的時候,我感覺自己沒有任何的壓力,可以說是瀟灑的考完。然后就呆在家里看電視(很遺憾,我的近視眼就是這個期間造成的)。直到有一天,我們村里的女孩(前文提到的叫我一起去上學的兩位女孩之一)跑到我家來告訴我,我考上了高中。
??? 那一年,我們學校總共就考上了三個(指中專,師范和重點高中),而我居然是其中之一。要知道,平時我根本考不到年級前三。而且分數也不高不低,正好和市高中的錄取分數線一樣。天啊,難道注定我要走學習之路。
??? 高中是我最充實,最得意也最輝煌的一段歲月。也許到進入高中開始,我自己才對自己有了一個完全的改變,簡單來說,是自己“懂事”了。從進入高中的第一天,我就告誡自己,我是整個學校中最差的學生,因為我剛達到分數線。因此我付出了前所未有的努力,在一個學期后,我已經是班里的第二名了(全年級四個班)。從此我的高中生涯相當的順利。直至高考前獲得了保送西安交通大學的名額。
??? 在選專業的時候,共有10多個專業可選。那時,我最好的科目是數學和化學,最差的是物理。結果我發現10多個專業中,有自動化,輪機,熱能等等專業,除此之外,還有一個計算機。沒有我期望的數學和化學,再去掉我不希望的和物理相關的專業,我發現只剩下一個計算機了。至于為什么沒有把計算機專業也算在物理方面,是因為我在高中時的課外實踐課中有過一堂計算機課,當時用五筆輸入《登鸛雀樓》這首詩,結果一節課下來就輸入了第一句。因此知道計算機不是物理專業,而且“計算”這個詞怎么說和數學沾邊,因此最終選擇了這個專業。
??? 冥冥之中似有天意。也許上天注定我要做個程序員,讓我有個程序人生。因為這實在是我學習生涯中的唯一選擇。不選它,我還能選擇什么?
第二章 我的大學
??? 大學這四年,可說是我人生中最無為的一段時光,和高中可以說是截然相反的兩個階段。當然,也可以說是最輕松的一段時光,因為不像高中一樣那么有壓力,有目標。
我在大學生涯很是中庸。何以為證?第一,就是我的成績一直在班級中處于中游,即沒有得過任何獎學金,也沒有補考或者重修過任何一門課程,基本上我的成績就代表了班級的平均分;第二,直到大學畢業那年,當了我們班四年班主任的老師不知道我是誰。說明我即不是優等生,也不是劣等生,一般這兩類學生對老師都有著深刻的印象(很遺憾,我連淺淺的印象都沒有給老師留下)。
??? 大學這四年,就這么庸庸碌碌的過了。當然,這其中也有一些有意思的片斷,也許有一些也在您的身邊發生過。
?? 第一段:鍵盤上的舞蹈家
??? 大一的上半年,計算機專業有個課程,就是指法課.作為程序員,鍵盤上的舞蹈家,鍵盤輸入的指法是基本功.因此有這么一個獨立的課程.當時看到城里的同學那么輕松自如的輸入英文字母,簡直是太羨慕了,這時候我還處于滿鍵盤找字母的狀態,別說是盲打了.
??? 經過三個月的特訓,我終于學會了盲打,而且速度一點不比城里的同學差。不過由于練習的時候只練了字母,所以至今輸入數字還不是太好。不過,現在看著不少同事還在很蹩腳的敲鍵盤,覺得自己還是挺慶幸的。
?? 第二段:葉利欽和葉玉卿
??? 不太清楚計算機系和物理有多大關系。反正大學的第一年還開了物理課。這是我最頭疼的東西。物理老師是個糟老頭(之所以這么說,并不是對老師的不敬,而是確實有些不修邊幅)。記得第一節課時,老師先進行了自我介紹,說他叫葉應欽。不過這個老師好像是四川那邊的人,普通話實在是不太好。所以我們大多聽成了葉利欽或者葉玉欽。結果這個雅號就一直伴隨著這個老師一生。
??? 物理是我最不好的課程,從初中開始對物理就特恐懼。因為不知道為什么,在做應用題的時候我分析成功的概率很低。由此,在物理期中考試的時候,我的所有的應用題全部答錯,最終得了58分。這是我在大學期間唯一的一次不及格。
??? 葉老師把我訓了一頓,甚是語重心長。結果期末考試我居然神奇了一把,考了我在物理史上的最高分,92分。沒有想到物理課我居然有善終。
??? 很遺憾的是,我們的葉老師由于不修邊幅,不懂養生之道,在第二年就因病去世了。
?? 第三段:軍訓
?? 我不知道大家在大學期間的軍訓是在什么時候進行的。就我現在所在的附近的幾所大學,都是新生剛入校的9月份進行。而西安交通大學則不是。軍訓都是安排在一年級結束后的暑假進行,也就是七月份。
?? 可以想象一下場景:在古城西安,灰黃色的天空下,沒有寸草的操場上,陣陣熱風卷起灰塵,形成著小型的沙塵暴;太陽火辣辣的直射這地面。在地面溫度起碼40度的環境下,一隊可憐的學生,穿著古樸的軍裝,皮帶周圍和背部都是白花花的鹽的結晶體,排著隊伍進行著匍匐前進的訓練;臥倒了進行射擊訓練,可那槍上的把手已經被太陽曬的滾燙了……
?? 至今這個場景讓我后怕。更可恨的是,到七月份的時候,學校居然把道路兩旁那些梧桐樹的樹枝全部修剪掉了。想躲太陽都沒有地方。
?? 但是,就在這么惡劣的條件下,我還是完成了一個自己覺得比較愉快的軍訓。說愉快是因為我過的還不錯,并且還有些有意思的事情發生。
?? 我們系四個班,每個班大約5名女生,被獨立成一個女生排了。剩余的男生編成三個排,三個排合成一個連。連長和二排長是我老鄉(都是一個省的,其實在我眼里,不是我們一個縣的都不算老鄉);一排長和我一個也在西安上學的高中同學是熟人,他們的父親是戰友,并且我這個同學居然托一排長關照我;我自己在三排,排長不知何故,對我非常友好。所以總的來說,我就是比較容易混的了。
?? 好混體現在幾個方面,一是可以偷工減料。在訓練側高姿前進時,每次該輪到我時,排長總會說,先到這里吧,大家休息;二是可以開后門。每個連都要抽出一個班的人,成為連隊的軍姿班,結果我也順利入選。
?? 那時候天熱,訓練一些時間就會休息一會。一休息大家都會去小店買冰水喝,就是那種塑料袋裝糖水,然后放冰箱里凍起來的那種。我們喝了都沒有事。本來我們是也給連長他們買的,不過不知道是不是有紀律,一直不喝。直到又一次可能太渴了,就喝了一袋。結果第二天就沒有看到連長,原來是拉肚子了,挺慘。
?? 軍訓結束的時候需要進行匯演。其中有一個晚會,每個連都要有節目。我們連節目是大合唱一首紅歌(記不清名字了,好像歌詞開始時“雪皚皚”什么的),同時還要編排舞蹈,結果我又被“照顧”了。進行了人生第一次也是唯一一次的文藝演出。
?? 軍訓的最后一個科目是射擊,結果我的射擊實在是太差,就打中一槍九環,打完后發現我是第一個站起來的。后來連長沉痛的告訴我,由于我射擊實在太差,沒法照顧我成為軍訓標兵了,本來都內定的。不過好在最后把我的射擊成績從九環改成三十九環,順利的結束了軍訓生涯。
第四段:少年班
??? 當年西安交通大學還有少年班,也不清楚怎么選上來的,但肯定是那個年齡段中的佼佼者。少年班的在經過一段時間學習后,會插班到各個正常班中。在我們大二的時候,有五六個少年班的插入了我們系,年級平均要比我們小四歲的樣子。
??? 他們初進班的時候,有一次上課,聽說這些娃娃要考英語六級了。當時很是驚訝,小孩子都這么厲害啊,我那是才在上學校的二級英語課啊。而且聽說有些已經考過一次六級了,五十多分,沒過。
??? 當我大三的時候,通過六級英語考試時,發現那些小孩還在參加考試。而且聽說最后才考了三十多分。我很無語啊。考了那么多次,居然還越來越低。
??? 總覺得把一些好苗子,過早的進行強化教育,到頭來很容易拔苗助長,非常可惜。也許按照他們的正常軌跡發展,應該會有一個更好的前景。
??? 我們系那幾個小孩子,最終的結果是只有一個考上研究生,其他幾個都畢業了事。而且,從他們插入我們系開始,基本上每次考試都會好幾門大紅燈籠高高掛。
?? 第五段:老師,你沒有走錯門
?? 以前聽人講過大學里老師進了教室后,發現人多,以為走錯教室,接著就走出教室的故事。我以為在我身邊不會發生,結果還真讓我經歷了一次。
?? 大學里最無聊的課程,可說是那些政治課了。因此,經常沒有幾個人去聽,老師也心知肚明,有一個人也照常講課。我們的哲學課就是這樣,平時機會只有十幾個人去聽。到了期末考試前的倒數第二堂課時,老師說,下一節課劃重點,基本上考試范圍就在這其中。結果回去后大家都通知了那些沒有去上課的。到最后一節課的時候,教室里幾乎座無虛席啊,120多人都到齊了。
?? 上課鈴響,只見哲學老師夾著書本匆匆進門,到講臺前放下書本,抬頭一看烏壓壓一片人,驚慌之下夾起書本又朝門口走去。我們高喊老師沒有走錯。老師到門口后,抬頭又仔細的看了看門牌,確認是沒有走錯門后,又走了進來。老師說,沒有想到,今天有這么多人。
?? 第六段:游戲中毒
??? 在上大學之前,我還不知道游戲是什么東西。進入大學后,第一學期就開始接觸了游戲。那時候還是使用五寸的軟盤。計算機還是DOS系統,噼里啪啦一陣DOS指令,將軟盤中的文件復制到計算機,然后進行解壓,安裝。我的DOS指令的學習全是通過玩游戲學來的。
??? 那時候還沒有很多游戲,記得當時玩的主要是《太閣立志傳一》和《元朝秘史》。主鍵的又增加了《三國志英杰傳》。當然,主要是我自己比較喜歡玩這種風格的游戲。
??? 我的大學四年,計算機的升級速度很快,幾乎就是一年升一級,從286,386,486直到畢業設計用586。因此游戲的發展也是很迅速,五寸的軟盤很快退出了舞臺。游戲也從C&C,紅警,大富翁,魔法門英雄無敵,一直到暗黑破壞神。
??? 當時在學校內有一個游戲房,當時的游戲房還不能和現在的網吧相提并論。但對學生的吸引力那是相當大的,尤其是計算機系的學生。整個機房里,幾乎都是我們系的。當時和老板是很熟,課余時間我們去的話,如果有空閑的機器,老板是隨便我們玩的,不收錢。因為我們都是他那里的VIP用戶了。
??? 玩物喪志在這時候得到了良好的體現。我們這些人像中毒一樣。這個機房就像有無窮的吸引力。我們宿舍最要好的三個人,到后來,只能從另一條道繞一大圈去自習室,因為如果走機房旁邊的路,那么我們的終點肯定是機房。那種感覺就是不由自主。有一次一門專業課第二天就要考試,可前一天晚上我實在扛不住了,扔了書本去機房玩了幾個小時,整個人才精神起來。
??? 中毒了,這的確是中毒了。
?? 第七段:四大殺手
在我們學校的計算機系,歷來有四大殺手之稱。這個稱呼在進校時,就從高年級的老鄉那里聽到。所謂四大殺手,就是教四門專業課的老師;為什么稱之為殺手,就是有兩個特點:一是卷面分如果是59.5分,那么也是不及格,補考;二是補考通過率比正常考試還低。一般的大學考試都有一個默認原則,就是老師會根據考試的情況,酌情調整分數,保證不通過的人數就是那么幾個。因此諸如開根號乘十的公式常常會得到應用。但是在四大殺手面前,沒有這個原則。
四大殺手之下,冤魂甚多。據說有人補考了六次還沒有過,大四畢業了拿不到學位證書,因此在最后一次補考時,鋌而走險,結果因為作弊被學校開除。杯具啊。
在四大殺手的威名下,我們是謹小慎微,如履薄冰。考試前,做了充分的準備。比如我,就找到高年級的老鄉,拿到上一年的試卷,從頭到尾一字不拉的反復背誦了N遍,最終得以通過考試。我的成績是七十分。要知道,我們考試的試卷,與上一年試卷的重合率是百分之八十。回想一下,汗流浹背,如果我沒用這一招,肯定是逃不過黑手。可憐我那高年級的老鄉,由于沒有做好準備,該科目補考了兩次。順便說一下,這門課,就是《編譯原理》。
? 第八段:考前突擊隊
?????? 我想可能很多人都有考前突擊隊的經歷。我在大一的時候,還是比較用功的,也是沿襲了高中的一些習慣;到大二時,已經開始逃課了,到大三就更不用說了,能每天一課就不錯了。不只是我一個人這樣,除了學習成績好的外,大多如此。我曾經總結過,七點半就往教室走的,那肯定是一年級的;八點鐘在往教室走的,那一般是二年級的;九點在往教室走的,除了直接上第二節課的以外,那是三年級的。對不起,路上沒有四年級的,因為要么不在學校,要么還在睡覺。
?? 不上課怎么應付考試呢?那只有做考前突擊隊員了。很多課程都是考前一周才開始拿起書看的。當然,不會傻到從頭到尾看,而是會拿起兩類圣經:一是往年的試卷;二是題庫。大學的專業課,一般都有題庫的,老師也沒有這么勤奮,每年出新題。因此試卷都是從題庫中抽樣出來的。而且專業課的題庫量是相當有限的。因此如果得到題庫,那要過專業課考試,簡直易如反掌;其次就是多拿點往屆的考題,綜合下來基本上也覆蓋大半個題庫了。
?? 第九段:玩物喪志
?? 在大學里,除了游戲害人外,還有一個東西,也是誤人子弟,而且頗有風險,那就是賭博。賭博是個高風險的活動,因為一旦被抓,立馬開除。然而我們就是這么頂風作業,而且很是盛行。一來我們宿舍在頂樓,來往的人少;二來班主任和輔導員實在是見面太少,而且都是女的,到男生樓估計也不方便。
?? 開始的時候,是玩紅四,一般一把牌是一張飯票。那時候大學生還享受每個月三十元左右的補貼;學校就發飯票(當時還沒有飯卡),一張飯票價值五角。慘的時候,一小時能輸掉一本飯票,把當月的伙食費給輸光了。
?? 后來就玩起麻將,把書桌拼起來,鋪上厚厚的毛毯(不然聲音太大),賭注也更大了,一元錢一把。順的時候,一小時能贏好幾十。有一次玩的投入,連班主任來都不知道。還在沒有進我們打麻將的房間。真是驚險啊。
?? 打麻將對我的影響,更體現在大四的時候找工作。有天晚上,正在興頭時,一個同學進來告訴我們,有個惠州的單位招人,只要投簡歷就要。當時我們宿舍三個最要好的都在玩,就商量著第二天再去。結果第二天,那個單位看到人多,就開始挑剔了,由于我的成績只是班里的平均分,所以把我一個人刷下來了。此后也沒有找到像樣的工作。現在看到他們現在腰纏萬貫,真是悔啊。
?
在大學這四年,通過一些事,也有了一些人生感悟,到現在還影響著自己。
?? 動力論
??? 學習成績不好,是因為進了大學后,動力全無,感覺所有的勁在高中就全用光了。這使我對一些東西又有所感悟。比如有些人,小學的時候成績挺好的,可到初中就落下了;然后有些人初中也相當優秀,可到高中就倒下了;然后就是像我這樣,高中還不錯,大學就不行了,甚至還有畢業不了的,更慘的是淪落到作弊導致被開除的。我想,這些人在小學,初中,甚至高中都可能是佼佼者,作弊對他們來說因該是很遙遠的事情。這個規律也在我高中的其他同學身上印證,比我成績更好的同學,也就是大學畢業了事,而高中時成績中等的兩個同學,最終一個醫學博士,一個化學博士,最終都到美國發展了。
??? 這個現象的原因,在我看來歸結于動力和興趣。當面對新的環境時,如果對于外界的誘惑和干擾你無法戰勝自己,那么就會被吞噬,被俘獲。如果未來對于工作,對于人生也都是如此,那真是莫大的悲哀。也許最終你會問自己:我為什么活著?
?? 這山望著那山高
??? 進大學沒到一個月,收到我高中同學的來信,他在上海的一所大學。他說對自己的學校很失望,本以為會是一個嶄新的環境,沒想到學校破破爛爛的。還認為我們學校一定很漂亮(估計是看了高考前的招生廣告了)。可他哪里知道,西安是一個什么樣的地方。真是無風三尺灰啊。晾在窗外的衣服,一天下來能給你沾一層灰;他哪里知道,西安的房子外墻根本是不刷石灰的,更別說瓷磚了。因為即使這么做了,過不了多久,墻都會變成統一的灰色;他哪里知道,西安交通大學是一座建在墳堆上的大學,搞不好你挖地三尺就能掘出個古墓來。就我所知,我在大學的這幾年,至少挖出三個古墓。
??? 造成我的同學這種思想的原因,就在于他沒有實地的考察,只是憑一些資料圖片,就簡單的認為那個地方是好地方。從此我也明白一個道理,不要這山望著那山高.當你不親身體驗之前,不要妄自下結論。這個特別體現在程序員們對待工作上,在跳槽這個問題上,還需要自己更慎重的考慮。一個錯誤的決定可能讓你后悔莫已。
?學習英語,對許多人來說,是一件痛苦的事情,最終的結果可能還是一知半解,更多人在讀,寫,聽,說中也就能達到讀的境界。
對于大學學習來說,不少人頭痛的就是英語的國家四級考試了。四級考試過于不過,直接影響到畢業時能不能得到學位證書。因此往往壓力較大,要是第一次沒有通過,很容易越考越差。而我的四六級考試,卻又充滿了戲劇性……
第一段:初中英語
剛上初中時,成績不是很理想,作為小學里名列前茅,總是三好學生的我來說,是件丟人的事情。然而初一的英文老師是個年輕而沒有經驗的女老師。對于我們這些桀驁不訓的農村學子來說,缺乏威信。結果是每次上課,都是哭著下課,原因是學生都用紙團等垃圾砸她,只要她一回頭面向黑板板書時。整個初一就這么度過了。可想而知,全班的英語成績會怎么樣,絕大部分人紅燈高掛,我比較幸運,也只是勉強過關而已。最大的弊病是,英語音標沒學好,以至于將來的我英語發音永遠是個痛,至今不敢說英語。
初二時,學校派了一位頗具威信的女教師,大家都比較信服(也不知道為什么會這樣,只是在小學的時候聽我哥說,這個老師比較厲害。至于怎么個厲害法,就不知道了)。而這個英語老師對我非常關心,我的每一點進步她都表揚。在她的關心和幫助下,我的英語有所提高,基本上能夠保持80分左右的成績,這對我來說,已經是著實不易了(我也不知道老師為什么這么關心我,難道她看出來我以后能考上大學?反正她是我這輩子最感激的老師了)。
初三那年,臨近中考時,我不幸得了重病,這在第一章已有介紹。由于心理放松,居然中考成績考出了自己我最高水平,英文也有90分之多。這大概是我迄今為止英語的最高分了。
第二段:高中英語
高中生活雖然我比較滿意,但英語并沒有什么提高。
高一時的英文老師的英文水平相當厲害。據他自己介紹,參加全國的一個什么英文考試(忘了哪個,好像是托福之類的),得了省內第一名。確實,從教課中我們也感受到了他淵博的英文知識。板書非常漂亮。書上的任何一個英文單詞,他都能寫上幾黑板的板書,不能用舉一反三來形容了,簡直是舉一反十都不止。這樣的結果是,我們每個人每堂課都忙于記錄板書,居然他說什么都沒有記住。一個學期下來得有幾本筆記本。最后,大家的英文成績都比較差。但我這卻有考試運。對,是考試運。這個詞將貫徹我以后的學習生活。平時測驗60來分,總是被批,可每次期末考試我都是80分以上,算不算運氣呢。
高二那年,那個英文老師下海了,專門給人翻譯文章。我覺得他這么做是對了,掙的錢多不說,關鍵是適合他。教書是在是個浪費。新任的英語老師是學校的英語教研組組長。板書一塌糊涂,得仔細分辨才能搞清楚。一堂課寫不了幾個字,但大家的英語成績卻普遍有所提高。這也許是個教育界的問題,有淵博的知識,如何傳授?有是現在的我困擾的問題,如何帶好年輕人,是他迅速成長?
第三段:大學英語
我們學校規定,必須過了學校的三級考試,才能參加國家四級考試。剛入學時,進行分班考試,總分120,我考了72分。結果75分以上為A班,60分以上為B班。其他C班。A班直接從二級開始學起,其他班從一級開始學。這就意味著我差了三分,卻要晚半年才能參加四級考試。暈哪。由于不好好學習,光吃老本,所以前三級的考試成績有點成等差數列,分別是85,74,63。
四級考試我很認真,因為通不過沒有學位啊。緊張,這個感覺一直纏繞著我。導致最后連作文的時間都沒有了。考完后腦子有點空白,完了,我完了。但命運并沒有和我過不去,最后終于以62分過關。哇,好險啊!!!
最有意思的是六級考試。能夠看到這里的朋友,我非常感謝你,看完前面那么一堆垃圾。四級過關后,我心情非常好。先前A班的幾個同學參加了六級考試,結果沒有過關的,有的考了58分,唉,可憐啊。本來我不準備報考六級,因為實在水平不到。但考慮到只要17元報名費,而且他們邀我一起。因此我也報了下一期的六級考試。但直到六級考試前,我沒有看過一次六級的參考書,也沒有背過六級的單詞,更沒有聽過六級的磁帶。因為這時的我,整天呆在機房里玩游戲啊。
六級考試我吸取了四級的教訓。因為四級考試時,在聽力上花了不少時間啊,導致最后時間緊張,連作文都沒來得及。所以這次六級考試,一發下試卷,我就開始做聽力題。看到這里,眾位看官要問了,磁帶還沒放呢,怎么做聽力啊。^_^,這就是我的過人之處了(自夸一下)。考試的經驗就在這里(這個經驗不值得推廣)。我發現,聽力題目一般不會太難,四個選項一般有一個離題千里,一個稍遠,剩下兩個比較接近。這就容易了,一比較就找到這兩個接近的,然后嘛,就是二選一,接近50%的正確率。跟著感覺走吧。而對于聽力的短文來說,就更好辦了,根據三個問題的12個選擇項,基本上就能知道這個短文要說什么了。因此,我很快就將聽力做完了。我記得當時開始播放聽力時,我已經開始做單選了。
結論就是:如果你聽力不行,干脆別聽。否則有兩大壞處,一是干擾你的選擇,使你無法根據感覺走,有時候第一選擇往往是正確的;二是耽誤你做其它題的時間啊。
單選也有麻煩,因為40個選擇項,我沒幾個認識的單詞啊。不過做起來也不難。遵循兩個原則:認識的優先,剩下的則第一印象優先。所以單選也很快做完了。
關鍵的關鍵是閱讀理解啊。40%的分數在這里。我已經想不起當時怎么做的了,因為不認識的單詞太多了,根本看不明白短文要說什么。
作文還不錯。我還記得當時的作文是要寫“欲速則不達”。我就舉了個拔苗助長的例子,來證明“欲速則不達”。可惜的是,我居然想不起“苗”用英文怎么寫了。唉。最后用“草”代替了。
答完試卷后,還有很多時間,我又悠哉悠哉的復看了一遍(其實看了也是白看),記得我還提前交卷了。呵呵。考完后唯一感覺是:得100分我也不奇怪,得0分我也覺得很正常。因為我都答了,但沒有一題肯定正確的。
最終我的六級考試成績為62.5,比四級還高0.5呢。而和我一起參加考試的那些二進宮的同學還是只有50多分。我當時有一個想法,如果我能看看我的試卷多好啊。不知道到底哪道題作對了啊。
我就這樣過了英語六級。也許大家看了心里有點不平衡啊。我也是。因為這直接導致的后果是我的英語越來越差。因為我以后就更不看書了。記得有人說,60多分過關的人不如考59分沒過關的人。因為考59分的人還會繼續努力學習英語,而考60分的人,以后可能都不會再看了。我認為確實如此。因此大家不用不平衡。我的損失比你們大啊。
九八年七月,終于結束了大學生活。進入了山東濰坊的一家老牌的以排版軟件起家的一個集團上班了,正式開始了我的程序員生涯。
??? 正是由于大學末年沒有好好找工作,錯誤了最佳時期,因此只能在第二輪招聘中選擇這家似乎聽說過名號的單位了。當然,和現在的大學畢業生相比,當年的大學生找份工作還是比較容易的。可就是這個選擇,還造成了我的家人的強烈的反對,他們希望我能夠回到南方工作,只要離家近就可以。但我這人目光比較短淺,在我眼里,掙錢多的地方工作一定很累,所以我選擇小城市。
??? 九八年剛好是一個改革年。從這一年開始,不再有任何福利待遇(不包括五險),所有的收入都體現在每個月的工資中。那一年,我的初始工資是一千元,而公司里比我們早一屆的,工資單上只有四五百。
??? 濰坊雖然是個地級市,下轄近十個縣,但其實城區很小,騎自行車就可以滿城跑。單位新進的大學生有一百多人,都住在同一個宿舍樓。下班后,周末時,經常一起玩山東的撲克玩法:勾級和保皇,經常看的人比玩的人還多,熱鬧非凡,比大學的日子還火。
??? 剛走出校門的我,由于在學校里也沒有什么實踐,除了畢業設計用了Foxpro之外。所以說一切都是從零開始。我的新工作是開發新一代的雜志和報紙排版軟件,因為上一個版本還是在window3.1上開發的。項目組成員包括一個項目經理,兩個有經驗的程序員,以及我們四個剛畢業的初哥。
??? 開始時,我們幾個初哥連VC是什么都不清楚。所以第一件事,就是先做一個HELLO WORLD,熟悉工具。也是在那期間,我買了第一本VC方面的書籍,主要是關于界面開發的。其后我基本沒有再買過什么VC方面的書籍,因為我實在是不愛看書。
??? 等我們學習一段時間后,就開始正式開始排版軟件新版本的開發了。
??? 排版軟件雖說是一個產品,但它本身是不直接體現價值的,因為光有排版軟件是沒有太多意義的,更大的價值體現在用戶需要購買激光照排機。排版軟件只不過是隨機贈送的一個部件而已。而且,當時公司的產品重心在程控交換機的研發上。同一年畢業的,做程控交換機的,比我們做軟件開發的,工資待遇要高出百分之五十。所以,就IT民工來說,程序員還是其中最低級的一種。
??? 不過,對于我來說,第一份工作是開發產品軟件,我覺得是相當幸運的事情。因為產品的研發周期一般都比較長,在時間壓力上比項目開發要輕一些;更重要的是遇到了這么一個開發團隊,給予我這樣的年輕人大量的實踐機會。常看NBA的人知道,如果你新加入了一支成熟的球隊,那么新人一般很難得到很多機會,一旦你犯錯誤,那么機會將更加稀少;反之,如果到一支重建型球隊,那么年輕人將得到很多鍛煉機會,只要你能夠展示出你的天賦和潛力。我正好加入了這么一個團隊,以我們四個年輕人為主,另外還有有經驗的師傅在一旁輔助。如此的環境讓我們迅速成長起來。
??? 我在整個產品開發中的職責是圖形繪制、圖像處理和界面開發。當然,圖像處理只是皮毛,和大家常見的圖像編輯工具不是一個概念,主要是將圖片按照設定的區域進行裁剪;其他人分別負責文字排版,文字處理,PS文件打印(排版軟件特殊的打印方式,其實就是輸出成特殊文件,為后續的處理做準備)等。
??? 這段歲月對于我來說,印象是非常深刻的。我記得當時新產品軟件的名稱都是我起的,叫做易捷,取英文單詞easy的諧音。若干年后,碰到當年的項目經理(當時已是這家公司的副總),說起往事,他還告訴我,現在我的名號還挺響亮,因為我的代碼還在使用,其中很多注釋處都寫著我的名字。
??? 這段歲月對于我的另一個記憶就是勤奮。很少有人下班時間到就走人的。畢竟軟件開發和機器加工不同,機器停電了就只能休息,但軟件開發即使下班了大腦還在運轉。在手頭的工作沒有告一段落時,都不會立即下班走人。為什么我對這段有深刻記憶,是因為現在周圍的同事,絕大多數人只要一到下班時間就都走了。
項目起初的進度非常快,因為隨著每個人對工具的熟悉和對業務的深入了解,很快就構建了一個幾萬行代碼的程序,一些基礎功能也初見成效,大家都非常有信心。但畢竟是初出茅廬,對面向對象的概念,軟件的整個過程以及質量和版本管理方面都沒有深刻的體會,因此大家都不知道一場危機正向我們逼近。
沒有良好設計和管理的產品,必然會遇到困境。也許這個困境只需要簡單辦法就能夠通過,也許這個困境將使你不得不從起點重新開始。
??? 我們的排版軟件,在中期階段正是遇到了很大的困境。當前期開發很是順利,甚至已經有版本在用戶處實施,使用后,這個困境就像開快車時進入了一個死胡同,讓我有崩潰的感覺,也直接導致我產生了退卻之意。
??? 那么我到底碰到了哪些困境呢?
?? 困境一:版本和配置管理
??? 首先遇到的是版本和配置管理的困境。也許我們的項目經理也是新手,在軟件開始發布版本后,當用戶提出某個問題后,項目經理會在解決這個問題后就向用戶發布更新的程序。但是,卻沒有做任何記錄。當時并沒有使用任何配置管理工具(連VSS都是這之后才開始采用的)。要知道,排版軟件并不使用數據庫,所有用戶編輯的信息,都如同WORD一樣,是使用數據文件形式存儲的,而糟糕的是,這個數據文件形式就是VC中的序列化產生的文件。
??? 由于數據結構經常性的變動,導致數據文件的序列化函數經常性的變動,也導致了不同版本數據文件不能向下兼容,因為本身就沒有充分考慮版本問題。
??? 因此,當上海的某用戶電話告知新的程序無法讀取先前制作的排版文件,而先前的版本已經都被替換掉后,我們兩個程序員被緊急的調往上海進行解決,也促成了我第一次的飛機之旅。雖然我們連夜一直奮戰到天亮,但還是由于水平有限,沒有能夠解決這個問題(實在是形成的版本太多,根本就不知道用戶的排版文件中的數據結構了)。
??? 通過這件事,我想以后作為一個項目管理者,或者作為一個程序員,對于你負責的一個項目,或者是一段代碼,時刻要意識到版本的重要性。也許,從現在看來,有很多方法可以避免這種困境的產生。
??? 比如,產品版本發布不能隨意,每次發布都需要有唯一的版本號。
??? 比如,對于用戶,也要有版本的管理,對于一個用戶使用的版本歷史,都要可回溯;
??? 比如,對數據結構的版本管理。對應與其它系統,可能就是數據庫版本的管理。當然,不同的是,數據庫畢竟還是可以打開進行查看數據項。
??? 比如,還有很多其它更多更好的辦法。
??? 通過這個困境,對我的影響是,在以后的項目開發中,使用VSS,CVS和SVN等多種工具進行版本的管理,包括源代碼,設計文檔,安裝程序等等;另外,學會了在工程中的Readme.txt中記錄版本的變遷及What’s new;在Version中定義程序的版本號和時間;在源代碼中增加更多的代碼更新標簽;以及在安裝程序中定義安裝程序的版本信息。
?
?? 困境二:面向對象設計和編碼
??? 對于程序員來說,更關注的是自己的代碼。作為很多計算機系畢業的大學生來說,對于面向對象這個概念早已是滾瓜爛熟,甚至于《設計模式》等書都已是熟讀千遍。而實際,大多是紙上談兵,對這個詞并沒有充分的理解,往往一開始編碼時,會不知所措。
??? 這個我并不是危言聳聽。就我的經歷,曾經指導過幾個新人,初用VC時(其實都是自稱使用過VC的),我都會出幾個作業給他們做。因為我認為光看書本不練習是無法深入的。其中有個題就是畫圖形,我只要求是直線和矩形。結果所有人都是直接在視圖類的OnDraw和鼠標事件中直接進行所有的操作,根本就沒有考慮,是否要進行一定的封裝,使得代碼更加獨立和易擴展;也沒有考慮到程序運行的效率。
??? 很不幸,大學剛畢業時,我也是屬于這個群體,甚至于更差,因為我還沒有用過VC,對面向對象也沒有什么個人的理解。因此,隨之而來的代價也是不小。由于開始時比較順手,代碼模塊也不大,幾乎所有的操作都在視圖類完成,雖然也寫了一些類,但實際上,從現在看來,只是一些數據類,并沒有封裝其動作,而所有的動作都在視圖類完成了。這么做的結果,是導致視圖類無限制的膨脹。到我碰到困境時的情況是,我們四個新人,每人寫的視圖類的部分各有一個cpp文件,另外還包括一個主文件,放置鼠標事件等公共部分,整個視圖類代碼行數有三萬行左右。
??? 也許就算這樣,很多的軟件也能扛下去,但我很不幸,遇到困境了。用戶要求對所有圖形都增加旋轉功能。于是,我亂了。由于整個類結構沒有進行很好的設計,甚至于一個鼠標點擊事件都有上千行代碼,要增加一個旋轉功能簡直是工程量浩大,因為我無法確定對多少代碼有影響,很容易出現東堵西漏的局面。
??? 這個困境對我來說非常致命,導致我的心情極差,興趣降到了最低點,對自己的能力也是更加的懷疑。
??? 當然,若干年以后,這個困境對我來說卻是一筆很大的財富,使我對面向對象有了自己的理解,對于模塊開發形成了自己的一套思路。這感覺就像不會騎自行車時,覺得人能在自行車上不倒下來,真是神奇;而從不會騎自行車到會騎自行車,那其實就是一剎那的感覺,那個感覺很美妙。但為了收獲這一剎那的感覺,你可能要付出的是很多次的摔倒。區別是,有些人摔倒一次,就找到了這種感覺,而有些人,也許摔倒一次,就不再碰自行車了;也許摔倒了不計其數次,卻一直沒有找到那種感覺。
??? 我覺得面向對象這個東西,也是這樣。不是老師在課堂上講一講,你就算會的。必須親自去體驗,甚至于付出一些代價,你才能真正的駕馭它。
??? 在CSDN回復問題時,經常看到有些網友告知別人用全局變量等方法去解決問題。但其實很多都是缺乏面向對象的概念,只注重解決眼前的一個小問題,其實這些都是你實踐的好機會,但卻都被你放棄了。
?
困境三:變更管理
??? 這個困境,導致了我對整個軟件失去了信心。其實事情說起來很簡單,在排版軟件中,有個環境常量,表示數值的精度。由于先前確定的精度到后來發現不夠,因此就乘以了10。但問題正是由此而來。
??? 自從改了數值以后,軟件總是出現奇奇怪怪的錯誤,原先沒有問題的地方,都會莫名其妙的出BUG,郁悶之極,進行調試,發現問題居然出在整型溢出。原來有些算法中,用到了諸如三角形的平方和開根號等,在開根號之前的平方和出現了溢出。因為之前的環境常量使用的是整數,比如把最小精度0.01毫米計為1,那么所有整型的長度值記錄的就是0.01的倍數值。原來沒有乘10時,所有計算量都在有效范圍內(因為排版的雜志也好,報紙也好,大小都不會超出32位整型);但乘以10后,由于有些進行的是平方和,因此等于擴大了100倍,所以會出現溢出現象。
??? 數值的溢出可以說是很難通過閱讀代碼來查出的,因為很多溢出都是在算法中的一些中間變量產生的。更為擔心的是,很可能很多溢出會潛藏起來,也許一天,也許一年都不會暴露,因為它是需要一定的條件才會觸發的;而且即時出現問題,也是很難進行調試的,因為溢出大多是在算法中的中間過程產生的臨時變量,而且程序也不會出現崩潰,只是最終的運算結果不正確。因此要定位很困難。
??? 所以,在做一些變更前,一定要自己推敲會有哪些影響,或者哪些模塊會被涉及到。所有涉及到的地方都應該進行評估,以及在完成后進行必要的測試。
??? 可以說,這個困境,使我對這個軟件失去了信心。也對我第一次跳槽產生了很大影響。當然,我第一次跳槽并不是完全因為它,而是由一個更重要的原因。
???
也許,大家還有其它更多更多的方法,都可以避免困境,走出困境,但重要的是,我們不要等到困境發生時才想起這些。希望大家都能夠找到屬于自己的方法來避免困境。我也會在后續的章節中給大家介紹我的方法,也許不是最好的,但卻是我自己的。
九十年代初,我們這個公司還是相當的強盛。如果這種狀態能夠一直保持下去,那么也許我們當年那幾批大學生很多人會長期留下來。但事實總是悲劇。
由于濰坊是個窮市,很多企業入不敷出。難得有這么一個還說得過去,并且是一個上市的企業,自然不能放過,因此形成了集團。可實際只有科技這一部分是掙錢的,其它全是赤字。再加上公司的一些錯誤決策,比如跟風進行程控交換機的研發。可以說是使企業加速走向衰敗。
終于,在二十一世紀的第一道曙光來臨時,公司被轉讓給了北大青鳥。原以為新的變化能帶來新的生機,如同一個足球隊戰績不好時換了一個新主教練一樣,大家都充滿了期待。但等待我們的,卻是一場更大的悲劇。
當時公司的企業文化還是相當的好。即使發生了公司轉賣這么重大的事件,當時跳槽的員工人數反而比之前還少,也許大家都有所期待吧。北大青鳥到來后的第一條政策就是,所有員工的工資下降百分之五十,說是公司要準備新的策略,等新策略制定后,將重新確定工資待遇。因此,這期間,我沒月只有七百多元。可就算如此,跳槽的人依然很少。
隨著時間的推移,大家逐漸明白了北大青鳥的真面目。三個月時間內,沒有任何新的策略誕生,也沒有看到過任何一個新的領導看望過研發部門。原來,北大青鳥的真正目的只是為了炒股。大家的失望之情溢于言表。于是,之后的幾個月,大批的新青年們選擇了跳槽。而與之對應的是,這幾個月的工資卻開始增長。到后來,機會每個月增長一千元。但越是漲的快,人也越是走的快。因為大家看到的是一個世界的末日,如同死囚臨刑前給吃的那頓飯,雖然香,但卻意味著滅亡。到我跳槽走人時,月薪已經達到四千元,這之間總共大約是八個月。
原先熱鬧非凡的宿舍,也是日漸稀落,幾乎每天都要送走同事。原先打勾級人滿為患,逐漸的就湊不齊一桌,只能打打升級。再后來升級也不夠人數了,再后來幾乎就剩我一個了。
我原本是打算在公司長期干下去的,因為在濰坊我認識了我現在的妻子。我為她放棄了去華為工作的機會。但公司的現狀使我無法堅持,而濰坊實在沒有其它像樣的軟件企業。因此最終也只能是走人。
我的第一次跳槽和許多人是不一樣的。因為我們是集體跳槽。整個產品研發團隊,包括三個項目組:排版軟件,照排輸出和新聞采編,有一大半人,大約二十多個,一起跳槽到了大連的一家單位,從此開始了在大連的新生活。
??? 后記:公司在隨后進行了配股,北大青鳥如愿的大賺一筆。此后北大青鳥撒手不管,公司剩余的人員重新組成新的單位,繼續著原有產品的研發和銷售。若干年后回到濰坊,發現公司原來的地方已經成為商業區,當年的記憶徹底不存在了。
??? 隨后的一年時間,我們一批人一直在對網絡組版軟件進行重新的需求定義,設計規劃和編碼實現。但最終明白一個道理,行業性的軟件,水是挺深的。沒有積累,很難成功。這個行業的用戶,基本上就是用兩家公司的產品,都已經有幾十年了,一個新的軟件,很難打開這個市場,因為難以得到信任。
??? 最后,網絡組版軟件無疾而終。我們這批人,也進行了重新打亂分組,有的去干日本活了,有的去做歐美活了。我們剩下幾個留下來,繼續在國內部門。而這時,正好是我現在所在的公司合并到我們公司,合并后作為國內部的一個分部門,稱為國內二部。我這個沒有其它部門要的(慘啊),就被分到新的部門了,因此也認識了現在的公司的領導和同事。
??? 新的部門主要從事航運領域的系統研發。包括船舶管理,船隊管理,船舶跟蹤和電子海圖。由于我做過組版軟件,因此參與了電子海圖系統的開發。可以說,這是我人生的一個大轉折點,至少一直延續到現在,決定了我此后近十年的方向。
??? 當時項目經理安排我實現航線設計模塊,按他的計劃我能在兩三周完成就行。結果我用了五天就完成了功能。這讓項目經理對我刮目相看。此后電子海圖系統基本上都由我來完成,一直延續到今天。
??? 在做電子海圖系統的過程中,我終于形成了我自己的開發模式。如同我之前說的騎自行車的例子一樣,突然之間發現自己已經到了一個嶄新的高度,豁然開朗的感覺。至少到目前來說,我的這些方法還是行之有效的。但如同讓你描述突然會騎自行車是怎么個感覺時,你可能很難描述清楚原因。只有自己反復努力嘗試后才會體會到。因此,當在CSDN上看到有些人幫助解決問題,動不動就用全局變量,靜態變量等方法時,我就很不贊成。也許這些方法能解決他一時之需,但卻讓他失去了更好的實踐機會。
??? 很可惜,由于公司合并的最初目的是為了能夠上市。但隨著上市希望的渺茫,以及公司對國內二部不重視,最終在一年后,兩個公司又分解了。國內二部不存在了,但我卻未能跟著新公司離開,開始了在國內部顛沛流離的生活。
??? 由于我個人堅持使用VC,不愿意改變,而部門卻基本上沒有VC的項目,因此我再次被下放到日本部。開始了長達八個月的PG生活。但也讓我體驗了一個大連最為熱門的外包生活。對此我有以下幾點體會:
1.??? 日本人編碼不行
我們當時做的是一個日本人編寫的建筑支援系統。從VB升級到VB.NET。整個工程,出現了大量的全局變量,統計下來超過2000個。很多全局變量不知道在何處被修改的。這是這個項目最大的難點。
另外,日本人對封裝有一定的思考,但卻用不對地方,不該封裝的地方進行了封裝,該封裝的地方卻重復寫了幾十遍。
2.??? 日本人管理一流
日本人的管理,絕對是沒的說。甚至可以說到死板的程度,這也使得國內的程序員們完完全全淪為技術工人。可以說,日本人不需要他們的創造力,必須完全按照日本人的設計進行實現。
我們在開發過程中,發現程序每次運行后,主界面出來的越來越慢,最后要一分鐘左右。對開發造成了嚴重影響,因此我和從國際部調來的一個同事對這部分進行了檢查(說句實話,日本部的PG沒有能力解決這個問題),發現是由于日本人代碼中的非法封裝(我對于第一點體會中亂封裝的定義),先從一個表中讀取記錄數,然后在一個循環中,反復調用數據庫查詢語句來獲取記錄,結果當記錄數越來越大時,這個循環的效率無法用語言來表達。改造也很簡單,只需先完成聯合查詢就可以了。
修改之后,程序啟動從先前的一分鐘提高到一秒。當我們興沖沖的告知日方時,卻得到他們的抱怨,認為我們未經他們同意就進行修改。
日本人對任何一項修改,都會出式樣書,哪怕界面中某個標簽的位置,大小,顏色等等的微小變化。在國內的項目,是絕對不可能做到這樣的。
3.??? 外包項目在國內基本沒有技術含量
我不知道是否所有外包項目都是和我做過的這個項目類似。一般中國企業接外包項目,都在日本有個機構,比如當時公司在日本就有個分公司,負責項目洽談,以及一些前端的分析設計,然后到國內進行開發。
國內開發的人員,就是完全按照預定的式樣書進行開發。不需要你進行任何發揮,任何創意,必須嚴格按照要求完成,哪怕是錯誤的。因為當日本人發現確實錯誤時,他會重新發式樣書,重新完成。而與國內項目不同的是,日本人會承擔這個責任,承認這部分工作量,因此會額外給費用。
所以,做日本項目,對個人來說,根本就是個工人,隨便找個人就能短時間內把你替換掉。你的價值根本無法體現。
4.??? 外包項目很辛苦
日本項目的另一個特點,是工期要求非常的嚴格。要求哪天完成,那么你絕對不能延期,否則就會付出金錢的代價。因此往往是勞動密集型開發。我們這個項目,當時就集中了五十人,并且由于公司人手不夠,還借調幾家外公司的人員。幾乎就是沒日沒夜的干。沒有周末,平時必須到最后一班公交車到之前才能下班。
然而就算這樣,你還得不到應有的待遇。薪水比國內部和國際部低很多。每個人實際的工時居然還要打六折。也許,很多人員只有一個目的,那就是能夠有機會出國,因此一直忍耐。
我想,如果我稍微學點日語,做個外包項目的Leader或者Manager都不是問題。但我不想過這樣的生活。
??? 總之,站著程序員的角度,做外包項目實在是痛苦,對自己的未來也很難產生競爭力;站著管理者的角度,卻又有許多值得我們學習的地方。
持續寫了幾章,得到了許多網友的支持,在這里非常感謝。
??? 新的一年里,首先祝大家新年快樂,希望在新的一年里,各位學有所成,財源廣進。
??? 在這里,再次申明,所寫文章不是小說,我更愿意稱之為紀實文學。當然,個人不能保證記憶的完整,可能部分內容與歷史有些許出入。但一來并非求財,二來無意詆毀任何個人和集體,三來并非用于指導年輕人,只是記錄個人的經歷和經驗。因此,如有不實或不良影響,在此表示歉意并敬請指正。
??? 很多網友對我所寫內容給與了積極的評論,本人也很受感動和鼓勵。比如網友waxx_112233給我留言“我覺得頂的人好多啊,期待你的下文,你的文章給了很多程序員以希望,您做的是一件公益事件,前7章我已經有幾點收獲了,由衷的謝謝您”。如果我的文章真的能夠對大家有所幫助,那真是太值了。為此我將堅持寫下去,為了這些支持我的網友。
?????? 當然,文章中的部分觀點也會有網友持反對意見或者存在疑問,我想這都是很正常的。條條道路通羅馬,我的經歷并不是最佳經歷。任何一種方法,只要你能夠充分的駕馭它,那么它對你來說,就可以稱之為一種好的方法。比如指針和全局變量,再比如封裝甚至于面向對象等。有網友反駁我的“盡量避免使用全局變量”的觀點,稱“盡量避免使用全局變量”是誤人子弟的老師教出來的!我想這位網友一定是位高手,已經能夠充分將全局變量玩弄于股掌之間了。但對于大多數新人來說,是很難達到這種境界的。因此,在新人進階過程中,往往會按照一定的標準和規范進行學習,只有在充分掌握這些標準之后,再在此基礎上進行自我的擴展和發揮,這應該屬于一個比較常規的過程。
??? 當然,程序員是非常有個性的群體,不乏天才和奇才,能夠另辟捷徑,進行速成或者巧奪天工。由于本人并不屬于該群體,因此無從評價,唯存敬仰之心,如滔滔江水,連綿不絕。
??? 再次歡迎大家熱心的評論。您的評論對于我來說也是一種學習。集思廣益,大家有益。有效的爭論更能夠將問題探討深入,但還請大家務必注意風度,陳述自己的觀點即可。
雖然在新的單位里,我并沒有獲得新生,但還是接觸了幾項以前沒有接觸過的東西。績效考核就是其中之一。
??? 軟件行業有其特殊性,不像工廠生產零件那么簡單,通過計件等辦法就可以對工人的工作量進行考量。
??? 要考核績效,首先就需要評估一個項目的工作量,然后將工作量分配給具體的人員,無論這個人實際用多長時間去完成這個工作量,他在這段時間的績效就是所分配的工作量。
??? 在我進入新單位的第三年,公司開始執行績效考核。公司所有的技術人員都有內部的等級,包括SE1,SE2,SE3和PG四個等級。其中前三個等級又分成若干個更細的級別,用A,B,C等劃分,其中A最高。SE1是最高級別,主要負責需求分析,SE2主要負責概要設計,SE3主要負責詳細設計,主要是這么個概念。
??? 為了比較準確的評估工作量,公司專門組織了若干名SE1A級的技術人員以及市場人員共同進行工作量的評估。然后由項目經理負責項目的開發以及工作量的分配。每周向部門經理提交每個組員的工作量完成數據,然后每月按工作量及任務等級發放績效工資。其中需求分析25元/小時,概要設計20元/小時,詳細設計15元/小時,編碼10元/小時。
??? 看到這里,大家也許覺得如此的績效考核比較有道理。但實際執行卻是千差萬別。從我的角度來看,績效考核在國內企業中實施,有點類似于烏托邦,理想而不現實。
??? 首先在工作量的評估就存在問題。在評估一個模塊的工作量時,如何才能正確的做出需要一個小時,二個小時還是五個小時呢?它必須有參考基礎。這個基礎是技術人員的平均勞動能力。而一個公司的技術人員的平均勞動能力是多少?實在是難以計算。至少應該經過一個時間段的數據統計,才可能有一個粗略的數值。比如使用PSP等方法,積累每個技術人員完成某些模塊所需的時間。
??? 而實際上,公司根本就沒有這么做。那么,評估出來的工作量,只能是那些SE1A級人員拍腦袋想出來的數據了,或者就是根據項目的合同額,扣除一定的利潤后,轉換為工作量。然后根據軟件工程中需求分析,概要設計,詳細設計和編碼階段的百分比,將工作量分配到不同的階段。
??? 其次是項目經理分配工作量存在問題。由于項目經理可以分配工作量,而工作量就等同于績效工資,因此項目經理相當有權(有錢就有權嘛)。但很多項目經理都是技術出身,管理水平本身就不高,另外,如前面所說,由于根本不知道技術人員的平均勞動能力,因此具體將某個模塊交給哪位來完成,并且工作量計算也不可能詳細劃分到細節,因此項目經理需要將模塊再劃分后進行任務分配時,又存在分配不均的局面。由于項目經理掌握分配權,但又不能合理分配,很容易造成組員的不滿和消極。因此,導致項目經理最終的策略都是大家都好的策略,工作量都是多安排,這樣每個人都多分到錢,其樂融融。
??? 雖然似乎組員滿意了,可惡果是工作量用完了,項目還沒有完成。因為已經提前透支了。一旦沒有了工作量,那么剩余的任務組員都不愿意去干。當然了,沒有錢誰愿意去干呢?就算去干,也肯定是很差。這導致了惡性循環。我經歷的一個大項目,其中有兩個項目組最后都由于質量太差,用戶不滿意,最終不得不重新開發,代價不可謂不慘重啊。
??? 由于我現在的單位也考慮實行績效考核,因此個人相當的憂慮。沒有任何數據積累就實施績效考核,實在是很難有好的期待。也希望各位網友對績效考核提出自己的建議和經驗,當然,前提是必須考慮國內企業的實際環境,畢竟和對日和歐美的企業有所不同。
結束八個月的日本部生涯后,我又回到國內部了。我還是沒有任務可做,這個時間長達三個月。而這三個月,正好是2004年初,是我開始接觸CSDN的時候。這三個月,我幾乎天天泡在CSDN上,回復網友們的問題,根本不過問公司的事情,部門領導也從來不過來找我談話。幾乎就是我想干啥就干啥,就是拿錢少。
剛進CSDN的時候,第一個熟悉的人就是薄荷,當時他是VC/MFC版塊的大版主。我記得當時我在他的一個帖子中,對他和他的觀點進行了抨擊,甚至吵了起來,很有初生牛犢不怕虎的感覺。后來我們又互相交換MSN后私下進行了交流解決,直至成為了朋友。有點不打不相識的意思。
薄荷對我很照顧,甚至將他參加CSDN活動得到的獎品都郵寄給了我。那是一件紀念T恤,雖然大的我實在穿不了,不過我還是非常感激,一直以后成為其鐵桿。
由于公司實在是沒有工作給我干,所以我三個月中掙得了許多分數。很快就兩顆星了。現在的大部分勛章都得益于那段時間。后來申請界面版版主也是水到渠成,包括隨后轉到基礎版版主和成為大版主。當然,成為版主和大版主并不是這三個月的事情了。
??? 記得當時VC/MFC版塊的大版主是薄荷,蔣晟,朱長德和空谷清音。蔣晟是個標志性的人物。平時似乎話很少,管理帖子也都是后臺操作,從來沒有見過他發布什么公告貼,有點游離于諸位大版主之外。當然,這和他身在M國有關。
??? 朱長德是除了薄荷外,比較熟的一位了。后來申請MVP也得到了他的支持。后來來的少了,好像是因為自己下海當老板去了。不過,似乎老板當的并不順利啊。
??? 空谷清音不是很熟,交流很少。記得是和我同一批申請成功的MVP,隨后就辭去大版主,銷聲匿跡了,似乎算是功成身退吧。
??? 到現在,就剩蔣晟還在持之以恒,其他的諸位都屬于歷史人物了。
??? CSDN讓我懷念的還有《編程高手》雜志。我剛成為版主的時候,向CSDN索要了12個月的《編程高手》和部分《程序員》雜志。對我來說,《編程高手》很貼近我實際的需要,并且我從中學到了很多東西;而《程序員》雜志對普通程序員來說,實在是有些遙遠。可惜的是,《編程高手》還是停刊了,可能是其中的很多內容網絡上都能夠找到,沒有人愿意掏錢來買。很是遺憾。
??? 我在CSDN是犯過錯誤的,曾經為此辭掉了大版主。事情的經過我就不再多講了,主要是和水源區有些沖突。因為這個事情,當時作為CSDN技術區總版主的薄荷和我一起下崗了。不過后來我“悔改自新”,又恢復了崗位。
??? 很多人說,CSDN的高手不多。確實也是如此。真正的高手哪能整天閑著在CSDN上回答問題呢。我的水平很有限,自己的C++基本功簡直可以忽略不計,只不過項目做多了,自然積累了一些經驗而已。只是實際工作中混的不好,無所事事,到CSDN濫竽充數,混點分數來自我滿足一下而已。
??? 當然,真正的高手還是有的,至少CSDN版塊中后來的laiyiling和cnzdgs都屬于這樣的人物。不過和空谷清音類似,都屬于功成身退的人物。
??? 對于CSDN的記憶不是美好的,因為我在CSDN出現的越頻繁,越代表著我這些時間混的很差。也許,我得希望我在CSDN出現的時間越短越好。