那些年我玩過的程式語言(二)

Lee2011 發表於 2022-01-24
程式語言

(接上文)

在培訓班第 2 個月左右開始,陸續就有各種公司來這裡招聘。有的是對日方向,有的是對歐美的方向。當時跟幾個同學一起看上了一家分公司在上海的 500 強外資企業,這家給的工資待遇在上海來說並沒有什麼競爭力,主要吸引人的還是以下幾點吧:

  1. 工作城市在上海。發展機會多。

  2. 全英文辦公環境。可以鍛鍊自己的英語水平。

  3. 公司比較大,全球好多城市都有分支,有很大機會可以出國工作。

簡單的對比了幾家公司的情況以後,最終選擇參加了這家外企的筆試和麵試。筆試其實挺簡單的,像是智力測驗一樣的十幾道選擇題,只要能看得懂英文題目,基本都能做完,後來的面試也進行的比較順利,很快就跟另外三個同學一起收到了 offer。沒過多久,大家就一起買了去上海的硬座火車票和兩副撲克牌,在車上打了一路的撲克,第二天就到了上海。

這是人生第一次來到傳說中的魔都,當時自己還沒拿到畢業證,說實話對未來怎麼選擇還有點懵,很多時候就是一拍腦袋,頭腦一熱就做了決定。多年以後回過頭來看,如果再有一次機會的話,還是會讓自己做同樣的選擇。剛畢業的時候不要太在乎每個月能賺多少工資,儘量想辦法進到大廠裡去鍛鍊一下,會認識很多優秀的同事,領導,從他們身上學習到很多書本上不教的知識和經驗,會有更開闊的視野和思考能力。

到公司報導以後,大家被隨機的分配到不同的專案組裡。我所在的專案組任務是維護歐美一家大型保險公司的軟體系統。整個團隊20人左右,其中10幾個人在上海,還有6~7個人在美國客戶那邊駐場。團隊的氛圍非常好,大家相處融洽,工作上互相幫助。每個新人都會有一到兩個老人手把手的帶你快速適應,從最簡單的需求開始,逐步到你能獨立解決越來越複雜的問題。他們還會以實際經驗教你很多工作的方法和技巧,比如美國保險行業的相關知識以及如何理解客戶需求,如何寫設計文件和測試用例;比如如何寫英語郵件與同事或客戶溝通,如何在電話會議上與大家溝通;如何搜尋和利用公司的各種學習資源讓自己快速成長等等。這些很多都是書本上或者課堂上沒有的東西,但對個人的職業發展卻有更加重要的影響。

說回到技術方面,這個專案主要是維護在 HP3000 小型機和 IBM zSeries 大型機上執行著的一些程式。有 JCL + COBOL 的批處理程式,也有 CICS 這種帶介面的事務交易處理程式。JCL 有點像 shell 指令碼,控制與排程著計算機上批處理程式的執行。COBOL 是一門古老的程式導向的語言,主要應用在銀行和保險等行業,如果你用過信用卡或者ATM機,那背後的計算多半會有 COBOL 或者 CICS 的參與。這些都屬於比較小眾的語言,就業方向和未來發展的圈子都比較固定,就那麼有限的幾個行業和一些大公司會用到這方面的程式設計師。印象比較深的是專案中有一個 COBOL 程式,一個原始檔將近 3 萬行程式碼,光檔案頭部的歷史修訂記錄就有上千行,第一次上線是 1980 年。。。比我年齡都大好多。。期間不知道被多少個程式設計師打過補丁,光是看明白這些程式碼的邏輯就很讓人頭疼了,更不用說還得在這上面繼續修修補補,把新的需求給疊加進去,還不能影響原有的各種邏輯。。。

HP3000

資料庫方面,專案中主要用到的是 IBM 的 DB2。但是也有一個遺留專案用的是自己聽都沒聽過的 IMS 資料庫, 儲存結構就像一棵樹一樣,你需要一層一層的去存取想要的資料。

另外還有兩個子專案分別是:

  1. JSP 開發的子系統管理介面,maven 用來進行專案依賴管理和打包。

  2. 完全基於 Excel VBA + Access 開發的精算系統,這屬於我見過的玩 Excel 玩的最6的一個專案了。

其實工作以後你會發現,真正專案中用到的東西,很多都是之前沒有接觸過的,所以需要自己有比較強的自學能力和適應能力。剛入職的那段時間,雖然公司是彈性制度,每週打卡超過40小時就算全勤,但是自己每天晚上都會在公司待到比較晚才回家,因為公司的內網上有很多有用的參考資料可以學習。有一次還被專案經理叫過去談話,說我這段時間在公司加班時間太長了,讓我早點回家。就這樣通過一段時間的自我充電,快速讓自己成長為專案裡相關問題的 SME(Subject Matter Expert),能對實際問題提出有效的解決方案,並可以保證交付的時間和質量。

第二年年底的時候,當時在美國那邊駐場的一個印度同事要請假回家結婚。公司決定派我過去臨時替他一個月,好巧不巧,機票定在農曆的大年初一。於是乎,新年的第一天,大家都還在夢鄉的時候,我已經動身去浦東機場,踏上了前往異國他鄉的航班。沒想到人生第一次坐飛機,竟然是國際航班。

經過兩次轉機,20多個小時飛行以後,終於在 EWR 機場降落。印度同事接到我的時候已經晚上10點多了。接下來的一個星期,他帶著我熟悉了駐場的辦公環境,辦好交接,認識了一些客戶那邊的經理和技術Leader,還有一些業務相關的對接人。然後他就飛回印度忙著結婚去了。

這是自己第一次在一個完全陌生的環境下開展工作,周圍全是外國人,很少看到華人面孔。工作內容和重點也跟之前在國內不一樣。之前主要是開發為主,也負責帶一下比我新的新人。但是到了客戶那邊駐場以後,主要的工作就變成每天跟客戶開會討論需求,然後整理成文件和郵件跟國內的團隊確定週期,協調兩邊團隊的進度,協調客戶這邊其他開發團隊進行系統整合和上線部署,協調業務負責人進行驗收等等。駐場這邊的經理會跟我說讓我儘量不要自己寫程式碼,把寫程式碼這些基礎的活交給國內團隊去做。自己主要負責發掘客戶需求,提供解決方案並保證順利交付。

每天的會議幾乎都是電話會議,來自不同的團隊,不同的角色大家一起在電話上進行討論。經常見面的只有幾個人,其中一個是客戶那邊的技術Leader,50多歲了還在技術崗位上。他每週到公司一兩次,其他時間大部分都是在家辦公。在公司的時候,我們經常會一起吃午飯,順便交流交流。他跟我講他已經在這家公司幹了快30年了,他最開始的時候還用打孔機寫過程式。我當時還挺驚訝的,感覺這些是在計算機歷史書上才能看到的東西,如今就在自己眼前。

最開始的一個禮拜是比較難熬的,陌生的環境,陌生的人,交流上的障礙等等對於自己都是不小的挑戰,但是堅持過來以後,就會慢慢適應這種節奏,到後來就會駕輕就熟,知道在電話會議上哪些是跟自己相關的重點,需要認真聽,哪些是無關緊要的事,可以把麥克風 mute 掉然後摸會兒魚。

一個月很快就到了,印度同事結完婚度完假回來以後,我也就回國了,但是這一個月的表現還不錯,也得到了客戶的認可。所以一段時間以後,我又被正式外派到同樣的地方,開始了長期的 onsite 生活。由於這次待的時間比較長,所以期間經歷了幾次角色的變化,自己承擔的責任越來越大,但是相應的回報也越來越多。也開始理解當時經理跟我說要儘量少寫具體程式碼的意思,算是自己思想上的一種轉變吧。

類比一下,這就好比是要蓋一個萬達廣場:

  1. 最差的工作就是工地上的搬運工,工頭讓你每天九點鐘到工地來搬磚,每個小時付給你200塊工資。這種情況下,你的收入沒有任何槓桿,你也不需要負很多的責任,因為你只要把工頭交代的事情做好就行了,並不需要為背後的客戶負責。也不存在什麼真正的專業門檻,因為你能做的事情很多人都可以做。這種情況下,你的收入不會很高,因為工頭只會付給你最基本的工資。

  2. 再往上一個層級就像是工頭,你承包了一小塊工程。比如說 10 萬塊錢負責鋪一下廣場的地板。於是你找來5個小工,你給他們每人發1000塊錢一天讓他們幹活,你負責管理和監督。這種情況下就會比工地上的工人收入高很多,因為工頭對整個地板工程的工期和質量負責。工頭的收入也有了槓桿,因為那些工人在為他幹活。工頭身上也有了一定的專業門檻,他需要懂得如何招募和管理工人團隊,如果計算工程的造價等。

  3. 再往上一個層級就好比是開發商。開發商需要懂得如何把好的地皮買來,然後僱傭一批工頭把這塊地皮轉化成更高價值的萬達廣場。開發商可能還需要貸款或者融資來做成這個事情。一旦成功了,開發商將會獲得幾百上千萬甚至更高的收益。但是相應的,開發商也會承擔更多的責任和風險。因為開發商承擔了更多的責任,更高的槓桿和風險,因此也需要有更專業的技能。他們需要懂得融資,城建規劃,房產銷售等等更加複雜的領域。

  4. 再往上一個層級就好比是一個房地產基金的管理者,他擁有巨大的資金槓桿,可以跟許多開發商同時合作。。。

總而言之,這些類比也可以對映於我們這些程式設計師出身的人,努力掌握更多特定技能(絕不單純是程式設計的能力),承擔更大的責任,你才有能力撬動更大的槓桿,獲得更多的回報。

這也是在那邊工作了將近兩年以後,自己決定回來嘗試創業的原因。不想這麼快就在舒適區裡躺平養老,也不想每天就只能做工地裡的搬運工。於是最終跟公司提出了幾乎等於是裸辭的申請,回國來開始了自己的創業生涯。

離開前的最後一天拍照留念。
離開的那一天

(未完待續)

本作品採用《CC 協議》,轉載必須註明作者和本文連結
You can’t use an old map to explore a new world.

相關文章