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