我大學(xué)畢業(yè)后的第一份工作就是碼農(nóng),從此走上挨踢(IT)的人生。
我并非Steve Jobs,Bill Gates那種少年輩出的電腦英雄,我這個(gè)九零后出道的老碼農(nóng)算是非常晚成,我整個(gè)青少年時(shí)代沒(méi)什么條件接觸電腦,雖然也應(yīng)該聽(tīng)說(shuō)過(guò)電腦有廣大的神通、大好的前途,可覺(jué)得這離自己很遠(yuǎn),由于無(wú)知且無(wú)感,班主任推薦我填報(bào)高考志愿的時(shí)候我居然對(duì)計(jì)算機(jī)專業(yè)還有些抵觸情緒,本科選的是中學(xué)時(shí)期向往的船舶工程,希望成為一名造船工程師。
最近在微信群看留校做教授工作的華工老同學(xué)轉(zhuǎn)發(fā)分享的華工畢業(yè)生抖音小視頻,勾起了我對(duì)華工時(shí)光的懷念,我印象最深刻是27號(hào)樓(五山校區(qū),我們?cè)谧x之年有且僅有此校區(qū)),我的計(jì)算機(jī)生涯就是從大學(xué)一年級(jí)在這里的微機(jī)房上機(jī)學(xué)Basic開(kāi)始起步的。
對(duì)于我這種非計(jì)算機(jī)專業(yè)的碼生,在電腦面前對(duì)著教材里面的程序依葫蘆畫瓢是常用的代碼學(xué)習(xí)方法,我記得我當(dāng)年在華工圖書館借了一本沙老師的《BasicA高級(jí)編程》(書名可能記得不準(zhǔn)確了),里面有畫出三維幾何圖形的程序樣例,上機(jī)的時(shí)候我看到旁邊有人在玩當(dāng)時(shí)很流行的阿帕奇直升機(jī)戰(zhàn)斗游戲,在一個(gè)三維戰(zhàn)場(chǎng)場(chǎng)景里面模擬飛行員獵殺敵方坦克,受這個(gè)啟發(fā),我在沙老師程序的基礎(chǔ)上,加上了用鍵盤按鈕可以調(diào)整觀察三維圖形的簡(jiǎn)單操作,程序跑通以后覺(jué)得很好玩,于是萌生結(jié)合本專業(yè)搞CAD(計(jì)算機(jī)輔助設(shè)計(jì))的想法,這成為我最早的種碼(Coding)體驗(yàn)。
作為一種業(yè)余愛(ài)好我開(kāi)始學(xué)得也不深入,而華工學(xué)子里有一種發(fā)燒友文化(當(dāng)時(shí)還沒(méi)有創(chuàng)客這種概念),我身邊就有一批這樣身懷各種創(chuàng)客技能的發(fā)燒友玩家,玩無(wú)線電的,玩功放音響的,玩羽毛球的,當(dāng)然也包括類似我這樣玩計(jì)算機(jī)的,年輕人聚在一起難免互相切磋炫耀,心中都向往自己的技高一籌,于是我開(kāi)始啃包括匯編語(yǔ)言在內(nèi)的技術(shù)硬骨頭,為了編寫更顯技術(shù)功力的程序,我需要解決的卡脖子問(wèn)題當(dāng)然是與日俱增,不得不說(shuō)計(jì)算機(jī)專業(yè)是一個(gè)非常開(kāi)放和慷慨的知識(shí)體系,只要愿意啃,我們學(xué)校附近的五山科技街上總能淘到各色各樣大部頭的技術(shù)秘笈幫助你,于是我宿舍疊加的計(jì)算機(jī)書山也越來(lái)越高。
可能是堆積的計(jì)算機(jī)書山過(guò)于顯眼了吧,我逐漸被傳說(shuō)為系里的計(jì)算機(jī)高手,找我來(lái)幫忙解決各種計(jì)算機(jī)問(wèn)題的人也越來(lái)越多,后來(lái)還包括我本科專業(yè)上的老師,為了不負(fù)高手之名,我又大包大攬承接了許多包括裝機(jī)在內(nèi)的技術(shù)義工活,當(dāng)時(shí)沒(méi)有經(jīng)商頭腦,也居然沒(méi)想過(guò)以此發(fā)點(diǎn)小財(cái)。
也是為了證明自己不負(fù)高手之名,從大二上學(xué)期開(kāi)始,每年我都跟著計(jì)算機(jī)系的科班生去報(bào)考各等級(jí)的國(guó)家認(rèn)證計(jì)算機(jī)軟件專業(yè)技術(shù)資格水平考試,三年時(shí)間都是以優(yōu)異的成績(jī)一路升級(jí)考過(guò)了從初級(jí)程序員到高級(jí)程序員的水平認(rèn)證,這些專業(yè)資格是與計(jì)算機(jī)系的科班生在同一起跑線的,我終于玩成了一個(gè)可以持證上崗的準(zhǔn)專業(yè)IT人,畢業(yè)的時(shí)候得以獲得某國(guó)有大行的碼農(nóng)接收函(那時(shí)還不興叫offer)。
那年正值我行把業(yè)務(wù)系統(tǒng)從微機(jī)遷移到IBM大型機(jī)的用人之際,太多活需要人干了。當(dāng)我們打開(kāi)IBM隨機(jī)器提供的整整一立方米的紙質(zhì)英文資料的時(shí)候,我才發(fā)現(xiàn)之前在大學(xué)時(shí)期碰過(guò)的計(jì)算機(jī)知識(shí)只是皮毛,當(dāng)時(shí)的IBM大型機(jī)技術(shù)架構(gòu)和個(gè)人電腦相比簡(jiǎn)直是云泥之別,IBM給我們提供的極其豐富的英文資料中,隨便找一本只要完整翻譯出來(lái),擺在當(dāng)時(shí)書店的計(jì)算機(jī)書籍里面其技術(shù)水平都是鶴立雞群。
延續(xù)華工發(fā)燒友習(xí)慣,看到這些東西不但沒(méi)讓我頭皮發(fā)麻,反而有種打了雞血的興奮感,我的任務(wù)是搞清楚IBM的銀行核心業(yè)務(wù)系統(tǒng)程序的改造辦法,并根據(jù)本行要求在上線投產(chǎn)前完成從前臺(tái)到后臺(tái)的相關(guān)代碼改造工程。
剛開(kāi)始的時(shí)候,我大學(xué)時(shí)候自學(xué)過(guò)的什么項(xiàng)目管理、什么軟件工程等方法一概沒(méi)用上,就是捋起袖子直接在系統(tǒng)里逆向工程追蹤代碼邏輯思路,這種工作方法其實(shí)是不滿足軟件工程要求的,不過(guò)當(dāng)時(shí)也能發(fā)揮作用,因?yàn)槲覀兊墓ぷ魅蝿?wù)基本上也就是在人家已成熟的軟件產(chǎn)品上做些二次開(kāi)發(fā)和適應(yīng)性的改動(dòng),有點(diǎn)類似給已經(jīng)用過(guò)的建筑樓宇改改裝修風(fēng)格,只要不要破壞人家原來(lái)設(shè)計(jì)的邏輯結(jié)構(gòu)就可以了,有文檔就根據(jù)文檔,沒(méi)文檔的時(shí)候只能靠類似摸走迷宮的方法。
雖然IBM的技術(shù)挺牛逼的,的確讓我們開(kāi)了大眼界,也學(xué)到了不少東西,可是我們當(dāng)時(shí)用的IBM大型機(jī)的技術(shù)體系是比較封閉的,在上面做二次開(kāi)發(fā)難度蠻高,如果請(qǐng)外部專家過(guò)來(lái)花費(fèi)都非常不菲,而我們的主機(jī)上做一些非核心代碼的改動(dòng)已經(jīng)很費(fèi)勁,根本不敢去動(dòng)核心代碼,IBM高大上技術(shù)很多水土不服的表現(xiàn)也慢慢呈現(xiàn)出來(lái),很多中國(guó)特色的銀行業(yè)務(wù)需求都很難滿足,比如漢字的處理就很不靈活,還有憑證、單據(jù)、報(bào)表的輸出格式和中國(guó)的銀行業(yè)務(wù)不匹配的地方也很多,我們大量的修改工作源自于此。
為了解決這個(gè)問(wèn)題,我們逐步用前置機(jī)自主開(kāi)發(fā)了不少替代性的應(yīng)用程序,通過(guò)前置機(jī)接手把一些非核心功能從IBM主機(jī)剝離出來(lái),既滿足業(yè)務(wù)的需求,也大大降低了開(kāi)發(fā)難度和成本,還為后一步更多的自主開(kāi)發(fā)應(yīng)用打下了基礎(chǔ)。
可能領(lǐng)導(dǎo)看出我是真喜歡搞計(jì)算機(jī)的,我這個(gè)初出茅廬的非科班出身的年輕人在極短的時(shí)間內(nèi)被委以重任,行里給我安排的裝備環(huán)境也很優(yōu)渥,當(dāng)年電腦價(jià)格還不菲的年代,給我一人配備了四臺(tái)不同的電腦,這種環(huán)境是很鍛煉人的,也很幫助人的成長(zhǎng),作為一門實(shí)踐性很強(qiáng)的專業(yè)技術(shù),我能有條件全面接觸這樣比較高端的技術(shù)環(huán)境,實(shí)在是一件非常幸運(yùn)的事情。
我那時(shí)參與開(kāi)發(fā)過(guò)的銀行業(yè)務(wù)系統(tǒng)還是蠻多了,后來(lái)被調(diào)動(dòng)到省行工作,省行同事說(shuō)我們?cè)缇驼J(rèn)識(shí)你了,在很多代碼里面都看到你的名字標(biāo)記,這的確是我的風(fēng)格,我愛(ài)給代碼里面自己寫過(guò)或者改過(guò)的地方標(biāo)上由我名字拼音首字母組成的注釋標(biāo)記。
后來(lái)我離開(kāi)銀行進(jìn)入乙方公司工作,繼續(xù)參與不少軟件項(xiàng)目的代碼開(kāi)發(fā)工作,到差不多三十五歲的年紀(jì),我工作上轉(zhuǎn)到了管理崗,工作要求不一樣了,就不再直接從事種代碼的工作了。國(guó)外好像有程序員工作到五六十歲,在中國(guó)卻很罕見(jiàn)了,這里折射出兩個(gè)問(wèn)題,一個(gè)是中國(guó)數(shù)字化產(chǎn)業(yè)還很年輕,需要年輕的沖力、活力和體力;二是中國(guó)的數(shù)字化產(chǎn)業(yè)還很年輕,也還很不成熟,這主要體現(xiàn)在組織管理和團(tuán)隊(duì)的不成熟上,在一種不成熟的組織環(huán)境和團(tuán)隊(duì)文化下,不可避免要用年輕的沖力、活力和體力去快速完成開(kāi)發(fā)任務(wù)和試錯(cuò),容不下慢吞吞寫代碼的老程序員。
這么多年過(guò)去了,就像我們大多數(shù)人從學(xué)校畢業(yè)后忘記了當(dāng)初怎么解數(shù)學(xué)題一樣,我當(dāng)初寫的大量代碼也談不上什么經(jīng)典之作,單位上嚴(yán)格的保密要求也不允許自己私下留存?zhèn)浞?,?dāng)年自己種出來(lái)的代碼是什么樣我今天已經(jīng)記不得了,是好是壞都已經(jīng)成為了感覺(jué)遙遠(yuǎn)的故事。
現(xiàn)實(shí)世界中的我身上有許多不足和缺點(diǎn),弱冠年輕之時(shí)我為此而自卑怯懦多年,剛參加工作在人際關(guān)系上我內(nèi)心一直都有各種不自信,和人打交道常常冒出不必要的自慚形穢,這種情結(jié)也是我極不喜歡、討厭和要逃避的,久而久之就不太熱情參與各種年輕人喜歡的流行的社交活動(dòng)了。
而代碼的世界讓我找到了一口讓自己感覺(jué)舒服自在的水井,特別是在電腦前面種碼(Coding)工作到夜深人靜的時(shí)候,全世界仿佛就剩下自己敲擊鍵盤的聲音,自己的思想、自己的心情都隨代碼敲進(jìn)了自己建構(gòu)的世界,屏幕的微光泛照在自己的臉龐,自己的臉龐若隱若現(xiàn)在屏幕上,于是忘記了自己在人世間的各種不快和不足,自己的喜怒哀樂(lè)都與外界絕緣了,像青蛙一樣全身心地泡在這口井的溫水里面自得其樂(lè)。我以前不懂,現(xiàn)在回憶起來(lái),這種沉浸和專注的感覺(jué)就是一種心流體驗(yàn)。
我的代碼我已經(jīng)忘記了,而年輕時(shí)候我的代碼帶給我的心流體驗(yàn)又怎么能夠忘記?像一位多年不見(jiàn)的老朋友,見(jiàn)面了仍然會(huì)親切溫暖如昔。
以此文紀(jì)念我參加工作二十六周年。
(2021年7月13日)