00-前言
詩人問:“你見到過凌晨四點鐘的太陽嗎?”
程式設計師:“見到過啊,那時候我通常剛下班。怎麼了?”
詩人無言以對。
我做軟體開發已經15年了,從小魯到魯工,到魯經理,再到魯總監。有些公司,做著做著就沒了;有些專案,做著做著就黃了;有些團隊,做著做著就散了。社會的浪潮洶湧澎湃,我們都是浪花中的一粒水珠,隨著這個大潮起起伏伏。
01一行程式碼五萬元
2007年,我在太皓電子擔任.net工程師,公司在張江軟體園,老闆是一個留美歸國的博士。那時候我們開發了一個叫芝麻網的遠端教育系統,它無須專用的教室錄製,只需要在普通教室增加一點裝置,就能完成課件的錄製,將線下課程直接擴充到線上。
需要增加的裝置,是一個帶支架的攝像頭,一個掛在老師身上的無線話筒,一個套在筆上的發射器和一個裝在白板邊緣的接收器。當白板筆在白板上寫字的時候,發射器發出訊號,記錄下的白板筆的位置,接收器收到後,將資料傳送給應用軟體,軟體就可以將筆劃還原出來。
分為三個部分,我做的是一個.net的管理平臺,在上面可以建立網校,開通課程,上傳課件。還有一個c++的錄製工具和一個Flex的播放器,分別包給了一個自由程式設計師和一個軟體開發公司。到了約定期限,平臺和錄製工具按時完成,播放器出了延誤。於是,我每天帶著電腦,到乙方所在公司監工。
那段日子是最愜意的,什麼都不用做,就是看著別人做專案,感覺挺好。因為我每天都去,乙方礙於面子,加大了這個專案的人員投入,很快這部分也完成了。
然而在整合的時候,卻出現了問題。每個部分單獨執行都正常,放到一起就不行了。我們三方再三檢測,最後發現出在裝置上面。
裝置是老闆從美國帶回來的,老闆給廠家打了電話,廠家說派一個工程師過來看,來回的差旅費用和工程師的酬勞一共5萬元,需要我們承擔。老闆打完電話,看到我正在擺弄那些裝置,就興致勃勃地對我說:“想不想挑戰一下自己?我給你一個星期的時間,如果你能解決,咱們就不讓廠家派人了。如果解決不了,再讓廠家的人過來。”
我那時候是個軟體工程師,對於硬體裝置其實不是很懂。但仗著自己的年輕與無畏,我接下了這個任務。那一星期,我開始了通宵達旦的工作。我面前擺著一大堆英文資料,裝置的線路圖、驅動程式、通訊協議等等,我逐一閱讀。遇到不認識的技術名詞,就上網查詢。
那時候每天晚上都睡到凌晨兩點,感覺一個星期補上了硬體專業一學期的課程。臨到最後一天,終於被我發現端倪,這個裝置用錯了通訊協議,rtmp和rtsp協議雖然很類似,但也有很大的不同。於是我在驅動程式中修改了一行程式碼,將rtsp改為rtmp,然後問題就解決了。
老闆聽了我的彙報,非常高興地說:“你這一行程式碼,就值5萬塊錢!”
然而那個專案終於還是沒做起來。按照老闆的設想,它的目標客戶應該是那些開課外輔導班的老師,這些老師本來就有一定的生源,如果將他們的教室擴充套件到網上,就會額外增加一道收入。於是老闆招聘了一個營銷副總,讓副總挨家去那些輔導班做推銷。但是副總有自己的想法,他想召集一批老師,開個教學新技術研計會,採用會議營銷的方式來做推廣。但是老闆沒有同意他的想法。
後來他們去了幾個學校推銷,還沒有拿到訂單,老闆投資的50萬元便消耗殆盡。最後老闆將公司賣給了在北京發展的好友,我也隨著公司,從上海到北京。
搬家的時候,正值國慶放假,買不到上海到北京的火車票。於是老闆給我支了一招:“你先坐火車到天津,然後再坐京津城錢到北京。”也就是在從上海到天津的火車上,我完成了自己的第一部文學作品《海天之間》,發表在晉江文學城上面。
02每天都差一分錢
2008年,我在成易佳禾擔任.net工程師。那時候我住在回龍觀,而上班的地方在海淀。因為上班路遠要起得很早,我練成了在車上睡覺的本領。一到公交車上,不管是坐著,還是站著,我都能睡著。當然,在車上睡覺不算是本領,而我的特別之處是,不管睡多長時間,只要到了該下車的站,就會自動睡醒。
我在公司的電子政務專案組,承接各地省廳的政務審批專案。電子政務專案對資料許可權很敏感,一般要做三級資料許可權,每級操作員只能看到自己區域的資料。而出於效能考慮,在迭代多級樹形資料的時候,不能使用遞迴,要使用包含全路徑資訊的編號來標識節點,然後配合模糊查詢實現類似遞迴的效果。
我在公司做了很多政府專案,但是這些專案並沒有給我留下太多印象,倒是有一件事情,讓我記憶非常深刻。那時候金融專案組做了一個銀行的專案,已經完成了,但是驗收測試期間,每天對賬都會差上一分錢。一分錢並不算多,但是因為差這一分錢,就說明系統不可靠,不可靠的系統無法透過驗收。
當時做這個專案的人員已經離職了,老闆就指定讓我來修復這個錯誤。我照例還是把程式碼看了一遍,很快就找到的錯誤的原因。錯誤的原因有兩個,一個是精度不夠。眾所周知,在計算機中浮點數是近似值,像float、double這種型別都是近似的,比如你寫一個變數等於3.0,它實際儲存的可能是2.99999999. 在低精度的場景下,四捨五入到兩位數不會有什麼誤差,但是在銀行這種高精度環境下就不行了。雖然原來的程式用了decimal,精度達到了小數點後60多位,但它終究不是精確值。這個錯誤好改,將資料型別換成BigDecimal完事兒。還有一個原因,在彙總當天資料的查詢語句中,用了大於等於當天0點0分0秒,小於等於當天23點59分59秒這樣的條件,這樣的條件在資料庫中儲存的時間精確到秒時,不會有什麼問題,但如果資料庫中儲存的資料是以毫秒為單位,它就會漏算一秒的資料。這個也很好改,把小於等於23點59分59秒改成小於第二天的0點0分0秒完事兒。
這種都是新手才會犯的錯誤,有些小公司濫用新手,就是給自己挖坑。新手搞出問題來解決不了,然後撒手就走,最後公司還是得找老手來解決問題。所以別看新手工資低,但是算下來並不省錢。
08年中國發生了很多事,北京舉辦了奧運會,汶川發生了大地震,南方發生了大雪災。而我在那年結婚了,愛人是在07年初就認識的,她原來在師範學校學的中文,後來跟我去了上海。因為她也想做軟體相關的工作,於是報名參加了一個軟體測試的培訓班。剛培訓完還沒來得及找工作,就隨我去了北京。因為在北京沒找到軟體測試的工作,就去中搜線上做了網站編輯。當時中搜推出了個人門戶,招了一大批人來製作入口網站,我愛人就是其中之一。12小時兩班倒,有一半的時間要上夜班。愛人受不了這種日夜顛倒的生活,於是跟我商議之後,我們辭職回到了鄭州。
03臭名遠揚中工網
2009年,我在中軟宏大擔任.net專案經理。當時我們公司承接了總工會的中工網專案,而我帶領的專案組負責其中教育培訓、就業擇業、維權幫扶三個子系統。
中工網上線後,曾經受到了很大的非議。原因是當時有個閒著沒事的人,在看招投標網的時候,發現中工網的採購價格為670萬。而他認為這個網站也就二三十萬就能做出來,質疑相關部門在採購過程中虛報價格,假公濟私。然後就是一幫不懂裝懂的媒體跟著起鬨,要求對這個專案進行審計。
我就是中工網的開發人員之一,所以我很清楚這裡面的原委。首先,我們交付給總工會的並不是一個網站,而是一個建站系統,這個網站是用這個系統設定出來的,而總工會付的是整個建站系統的錢。而且合同中除了包括中工網這個網站,還包括下屬的十幾個子系統。就以我負責的教育培訓系統為例,需要支援全國4千萬工會同時線上授課,線上考試線上發證,單把這一部分拎出來,規模就超過了當時大部分的線上教育系統。還有就業擇業,建立了一個服務全國工人的招聘網站,單拎出來也是一個規模龐大的招聘系統。還有維權幫扶,幾乎集中了中國所有的律師事務所和司法部門。這些系統的使用者量,連當時的淘寶都是沒法比的。我們當時做的教育培訓系統,除了支援國內主流的三分屏課件,還支援國際標準的scorm課件,並且在前端中使用了虛擬桌面,總之在專案中使用了很多尖端技術,報那個價格是完全合理的。
最後審計部門介入,沒有發現採購過程中有任何違規現象,這件事最後不了了之。 我所在的公司是個國企,擁有國企固有的一些弊端。比方說我們工資很低,所以大家都想盡辦法賺一些加班費。上午的時候,大家幾乎都是不怎麼工作的,開完會分完任務,就喝杯茶看看新聞,一直磨蹭到中午。下午集中精力工作半天,然後到下班的時候一看工作沒有完成,就申請加班。晚上的加班費是工資的1.5倍,週末是2倍。而且晚上加班有餐補,還會報銷計程車費。我們經常下班後坐公交車回家,然後找計程車票報銷。餐補說是給加班的人吃晚飯用的,但事實上我們都會捱到回家再吃飯,把餐補這點錢也收入囊中。最後到月末算一下,加班費比工資還要多一些。
我在那裡一直負責到專案結束,然後有傢俬人企業找到我說想讓我去他們公司,他們打算新成立一家電商公司,讓我去當技術部經理。我猶豫再三,我那時雖然是個專案經理,但專案組卻有十幾個人,而邀請我去的那家公司,技術部總共才四五個人,工資也只多出五百元而已。我其實不想去,自己所在的好歹也是中字頭的大公司。但是那家公司找了我好幾次,我盛情難卻,就答應了。
04程式碼應該交給誰
2010年,我在中國智贏擔任技術部經理,負責開發一款電子商務系統。系統是在兩個開源軟體的基礎上改進出來的,一個是ecshop,一個是ecmall。將它們的賬號打通以後,增加了一個代理和分銷系統。
那是我第一次做php專案,以前我都是做.net 、用了php之後,才感覺php更加靈巧、輕便,於是喜歡上了這門語言。當時我們技術部門總共4名員工,辦公室是在居民樓裡,裡面有廚房,然後我們就自己買菜做飯。營銷中心在離我們不遠的一個寫字樓裡,公司的其它部門都在那裡。公司說這樣安排是因為我們技術部的工作需要保密,其實誰都知道這樣只是為了省錢而已。
公司聘請的營銷總監以前是做傳銷的,非常推崇各種傳銷制度,什麼雙軌制,五級三階制等等。然而公司的總經理和董事長都是守法的商人,不允許他把專案搞成傳銷。於是他在代理分銷系統中設計了九級提成,算是規避了傳銷的風險。
系統的精髓就在這個分潤體系,但是當時國家正在打擊傳銷,所以這個系統在推廣的時候就遮遮掩掩的,推廣人員給人宣傳,也是雲裡霧裡,用了很多酷炫的詞彙。什麼店連店店中店店鎖店,什麼萬業互動千年共贏等等,但是又講不出系統的特點。客戶經常會問:“你這個系統跟京東淘寶有什麼區別?”"我淘寶用得好好的,為什麼要換你這個系統?"
系統定位不清晰,那目標客戶也就不明確。招商的時候,什麼客戶都想抓,根本不管他是什麼行業,導致網站上什麼產品都有,根本沒有什麼特色。所以那個專案在舉辦了幾次轟轟烈烈的招商會後,走到了十字路口。
總經理和營銷總監還在向董事長描繪著專案的美好前景,忽悠董事長繼續投錢。而董事長看著只出不入的財務報表,打算結束專案及時止損。
董事長在決定關停專案之前做了一個調研,找了很多基層員工進行訪談,得到的結論是大家都不看好這個專案,於是啟動了關停專案的程式。而總經理和營銷總監總覺得這個專案大有可為,於是開始在私下裡找新的投資人準備接盤。
最後的關停方案是專案取消,公司登出,人員遣散。辦理交接的時候,總經理給了我一個硬碟,讓我把所有的程式原始碼和說明文件都給他複製一份。
這些原始碼和文件是我們技術人員開發將近一年的成果,也是公司的主要資產。我當時猶豫了一下,因為知道總經理有另找投資繼續專案的打算,那這種行為無疑算是盜竊。但想想如果不給他,這些程式碼也沒有任何價值了,況且當時公司還沒有解散,他還是總經理,我把資料給他似乎也無不妥。
後來董事長找到我,問我為什麼要把程式交給總經理?他是公司法人,也是投資人,他才是公司的實控人。我想想也很有道理,程式是他出錢僱人開發出來的,理應由他處置才對。但由於一般公司都很忌諱越級彙報,所以我能跟董事長說上話的時間其實不多,也就失了先機。
事情過去好多年了,每次想起這件事,我都會反思自己到底做得對不對,不過至今也沒有想出結果。
05同事之間有情誼
2011年,我在博騰環保擔任.net工程師,我們當時做的主要專案是天瑞的EMS專案。 天瑞的專案非常複雜,幾十家工廠用的都是不同的裝置,要把所有的能耗資料全部接入進來,有些甚至需要對廠家原來的工藝進行改造,把一些老式的模擬儀表換成可以數字遠傳的。對效能的要求也非常高,我所負責的資料採集模組,一秒種就要傳輸幾千項資料,所以這個專案一開始就是高標準嚴要求。專案人員開發測試比達到2:1 。程式設計師完成一項功能,需要找另一個程式做同行評審,再找一個測試做案例展示才能提交。而且提交的註釋都有 嚴格的要求,起初很多人因為註釋不合規範被退回。每週舉行一次程式碼審查會議,總監會把那些寫得不好的程式碼公佈於眾,讓大家討論怎樣寫才更加規範,更加高效。為了讓我們瞭解業務,公司安排專車載著我們去十幾家工廠實地察看。 而且這個公司是我工作過的所有公司中,最象家的公司,因為這個公司管中午飯。每到中午吃飯時間,都會派出幾個同事到合作餐廳把午飯帶回來,然後大家在會議室裡集中吃飯。吃飯的時間聊的話題都比較輕鬆,所以大家在一起也逐漸有了友情。
因為這家公司太好了,所以後來我愛人也應聘了進來。她是直接在人才網投遞的簡歷,我沒有給她作任何的推薦和介紹。起先一段時間,我們以同事相稱,很多同事並不知道我們是夫妻。工作上我們也一直秉公處理,不夾雜任何私人感情在裡面。比方說別的測試挑我毛病的時候,她從不插言,她工作上出現錯誤的話,我也從不偏袒。中午吃飯我們也不會湊到一塊,一般是她跟女同事一起我跟男同事一起。下班回家我們也不同時走,一般是誰先做完工作誰就先走。直到後來有一個細心的人資發現我留的緊急聯絡人電話號碼是她的,而她留的是我的,大家才知道我們這層關係。 在我以前和以後經歷的那些公司中,一旦離職同事們幾乎都不會互相來往的,但只有這家公司例外,同事們在後來的很多年裡都保持聯絡。後來離開這家公司的同事,我們建了一個小群,經常在裡面聊天,聊天時說得最多的一句話就是“我們在博騰的時候啊……”
我們知道同事不會成為朋友,所有教職場生存法則的書裡都會告訴你,不要把同事當朋友。但這家公司真的是個例外,同事不僅是朋友,更是家人。遇到困難大家一起分擔,從不計較個人得失。後來專案結束了,公司接不到新的專案,老闆仍然不降工資不減績效。但我們不願意看到公司繼續虧損下去,所以陸續的辭職走掉了,臨走時給老闆留下一句話:“你什麼時候有專案了通知我,我隨時準備回來。”
06首次被同事陷害
2012年,我在知途網路擔任.net工程師,我們當時做的是一個叫知特產的電子商城,網站幾乎是照抄淘寶網的特產中國。在這家公司遇到一些事情,才讓我知道職場的人心險惡。
我當時做的有一個功能是支付寶支付,這個功能開發測試都沒發現什麼問題,但是上線後發現無法使用,系統無法收到支付寶的回撥。我把程式反覆檢查,沒有發現任何問題,在測試系統上完全正常,只線上上系統有問題。我懷疑是線上系統配置有誤,但是系統管理員信誓旦旦地告訴我,系統配置沒有問題,因為其它功能都正常。我又再三檢查程式,確定程式沒有問題,最後在我再三要求下,系統管理員同意讓我檢查生產系統。我在生產系統打斷點除錯,發現確實收不到支付寶回撥,但是檢查支付寶的交易明細,顯示回撥已經發出。就是說支付寶正常發出了回撥,我們的程式卻沒收到,既然程式沒有問題,會不會被其它軟體攔截了呢?我多少還是有點資訊保安的知識的,於是我將伺服器上的安全軟體逐一關閉,然後除錯程式,最後發現是一個叫網站安全狗的軟體攔截了支付寶的回撥。問題找到了,然後我讓系統管理員在安全狗的攔截規則里加一條例外,程式就透過了。
本來事情解決了,但沒幾天我聽到公司流傳,說我水平太低,一個回撥除錯一個星期,最後還是在系統管理員的指導下才解決的。我聽到這個,肺都氣炸了。
後來有一天,老闆把我叫去,說你做的程式有問題。老闆在測試站點上操作,不斷的在買家中心下達訂單,然後在賣家中心檢視,然而賣家中心一條記錄也沒有。老闆很惱怒,說是你做的買家中心吧,怎麼連個下單的功能都做不好?我記得這個功能是正常的,但是有誰動了我的程式碼讓它失效了也說不定,於是我說回去檢查一下。我下個訂單,賣家中心查不到,進資料庫一看,資料完好進入了資料庫,再找到賣家中心的程式碼一看,是賣家中心的查詢條件不對,導致查不到這些記錄,並不是我下單那部分的問題。我找老闆想去解釋,但是老闆態度很冷淡,說你自己做錯了就要虛心接受,不要找別人背鍋。
我回去之後仔細想了想,那個做賣家中心的程式設計師,就是當初散佈我支付寶問題的那個人。這個人程式寫得不怎麼樣,但是拍老闆馬屁是一流,每天跟在老闆後面說好話,團隊裡面有功勞他都往自己身上攬,出了問題就往別人身上推。公司有這種人本來也沒有什麼,但問題這種人反而混得風生水起,不管他怎麼信口雌黃,老闆都會相信。
我出來工作是來賣力氣的,不是來受委屈的,別人的誤會我都能容忍,但這種明張旗鼓的陷害我不忍。然後我就辭職走掉了,讓那些愛拍馬屁的人去做事吧。
07打贏駭客攻防戰
2014年,我在天璽金融擔任技術總監。當時我們做的是網際網路金融p2p借貸專案,其實我們入局的時候,這個風口已過,市場格局已定,市場被幾家大型p2p企業瓜分。但我們的投資人堅信小企業也有自己的生存之道,所以還是在一片質疑聲中上馬了。為了節省開發時間,我們買了一套現成的網貸系統,連原始碼一塊買了回來,方便我們以後修改。程式碼是用play frameword做的,這個框架在SSH充斥的年代,顯得很小眾,但因為它的安全性非常強,所以用來做金融系統其實是蠻合適的。因為安全,始終是金融系統最重要的指標。
說到安全,在這家公司我參與了我人生中的第一次和專業駭客的攻防戰。當時我們的業務已經開展多月,有一天我們的客戶QQ上加了一個陌生人,他對我們的客服說:“告訴你們老闆,我要封你們網站。”我們客服把這事報給了老闆,老闆召集了我們幾個總監開會,最後一致認為,只有國家監管部門才可以查封我們的網站,而國家監管部門顯然不會用QQ辦案,再說我們也沒有違反任何法律法規,政府也沒有理由查封我們,最後決定不予理睬。
然而過了一個小時,客服上報說系統無法訪問了,我大吃一驚,趕緊上後臺檢視。因為我們當時用的是阿里雲的伺服器,阿里雲後臺顯示,系統遭到了DDOS攻擊,瞬間到來的巨量訪問壓垮了公司的系統,我們遭到駭客攻擊了!因為伺服器進行過加固,而且我每天都進行巡檢,幾乎不可能有系統漏洞,而且阿里雲的防火牆也非常強大。駭客找不到其他進攻方法,就選了DDOS這個最簡單也最耗錢的攻擊方法。
DDOS透過控制大量計算機向網站發出正常的訪問,依靠瞬間高併發的流量將系統壓垮。因為他們都是正常的訪問,所以很多安全軟體都會放行,所以實施起來非常簡單,但是他們控制大量的計算機訪問系統也會產生高額的流量費用。所以可以說是傷敵一千,自損八百。
意識到到遭到了攻擊,馬上向領導彙報。這時候駭客已經聯絡上了我們老闆,索要5千塊錢。老闆說不能給,如果給了以後,駭客嚐到甜頭,以後會源原不斷地發起攻擊。於是我馬上啟用阿里雲的防DDOS系統進行清洗,將無效訪問轉到黑洞裡。阿里雲的防護系統非常強大,但是代價也相當高昻,因為它是按流量收費的。我這邊抗了半個多小時,就已經耗光了我們在阿里雲預存的所有費用。這樣硬抗不是個辦法,我一邊聯絡財務往阿里雲系統繼續充錢,一邊啟用了備用系統。備用系統上線後,我們的客服馬上通知所有客戶使用備用系統進行交易。
為了讓駭客相信我們還在拯救以前的系統,免得他們注意到我們的備用系統,於是阿里雲的錢到賬後,我馬上又把系統啟動起來,駭客發現以後,又開始了新一輪的攻擊,這次我在駭客攻擊持續十五分鐘後,關閉了防護,於是系統又被壓垮。又過了兩個小時,我再次啟動系統,駭客繼續攻擊,這次持續5分鐘後,我主動下線。然後就再也不再啟動那個系統。
從駭客的角度看,他們三次攻擊我都沒有抗住,這三個回合應該都算我輸了。但在我這方面,我只是輸掉了第一回合,之後備用系統上線,後來兩次佯裝上線,只是為了吸引駭客的注意力。最終駭客沒有發現備用系統,我們業務持續進行,所以算是反敗為勝。
所以,兄弟們,備份系統是何等重要!儲存你係統的硬碟可能會壞掉,存放你伺服器的機房會發生火災,有些損壞是永遠不能恢復的。所以不要僥倖,做好異地備份計劃吧。
公司入不敷出地維持了一段時間後,國家出臺了新政策,要求所有的p2p貸款金額不能超過10萬元,這對我們來說是致命 的,因為我們主做的是房抵貸。抵押一套房子只能貸10萬塊錢,這好像不會是正常人能做的事情,然後公司就清盤出售了。
08醉臥街頭君莫笑
2015年,我在E修聯盟擔任總工程師。當時我們做的是一個修車服務平臺,試圖打通汽修產業鏈。我們設想的是,如果車主的車在路上有故障了,拿起手機用我們的APP就能找到附近的維修店,維修過程中如果需要什麼購買什麼配件,維修師傅拿起手機用我們的APP就能訂購配件。因為在當時,垂直電商的風頭正興,很多創業都都想在細分領域分一杯羹。
我負責系統的總體設計還有即時通訊功能的開發。因為當時還沒有融雲那種的SDK,所有的功能都要自己開發。我用OpenFire搭建了訊息伺服器,採用Xmpp協議傳輸資料。用FreeSwitch搭建了語音伺服器,用SIP作通訊協議 。然後用Red5作為影片伺服器,Rtmp作為傳輸協議。
那時候我們公司附近有一所大學,我們中午都混進大學食堂吃飯。那個公司離我家也很近,騎腳踏車就能回去。就這樣辛辛苦苦幹了大半年,臨近春節的時候,產品終於完成了。
慶功宴上,老闆首先表彰了我們研發中心,然後敬我三杯酒。然後其他部門人員紛紛跟隨,一人敬我三杯。我瞬間蒙了,一般在酒桌上我們技術人員基本處在可以忽略的位置,敬酒陪酒之類的跟我們沒多大關係。我們就安心吃菜,然後聽業務部門的人喝灑猜拳,發表一些豪言壯語,拍胸脯表忠心。現在倒好,敬酒的都衝我們來 了,敬完我之後,又去敬我們研發中心其他工程師,不到10分鐘,我們技術人員幾乎全趴桌上了。我一直堅持到最後,雖然沒有趴下,但起身時已是頭重輕腳,走不穩路了。
臨走老闆要我叫車回去,我虛榮心作祟,為了表示沒喝多,堅持要騎腳踏車回去。然後騎上車之後,車子歪歪扭扭,沒走幾步就摔倒了。然後勉強騎上,走幾步又摔了。這次摔在路邊的花壇裡,壓倒了花壇邊的鐵絲網,有一根鐵絲穿透了我的棉衣,直接扎進肉裡。那個位置離心臟也就一兩公分,要是再偏一點,我可能就玩完了。
在花壇裡躺了好一會兒,好幾次想爬起來,但渾身癱軟無力。索性就睡在花園裡,任寒風刺骨,雪花紛飛,我只沉沉睡去。
第二天去上班,才知道這頓酒不是那麼好喝的。老闆叫我到辦公室談話,大概意思是開發已經完成了,公司不需要這麼多技術人員了,要裁撤研發團隊,只留運維,問我有什麼想法。我能有什麼想法?
從那以後,我開始反思。因為我以前都是進的初創公司,初創公司一般有兩種結局,一種是研發出來的產品投入市場沒有反響,公司倒閉。另一種是研發完成後研發團隊解散,只留運維人員。不管是哪種結局,對於我們研發人員來說都一樣:要找另一份工作了。所以當時我決定,再找工作就進成熟期的公司,不再去初創企業了。
09最不喜歡換老闆
2016年,我在真匯網擔任技術總監。當時公司已經有一款比較成熟的B2B電子商務平臺真匯網,採用.Net+Sqlserver的架構,業務量已經做到了全國領先的水平。但是由於上線了批次釋出系統後,系統效能嚴重下降。我入職後對系統進行了升級改造,將產品資訊和評論等移入mongodb資料庫,同時將Sqlserver 資料庫做成讀寫分離叢集,用Elasticsearch引擎替代資料庫全文檢索,使系統效能有了很大提升。
真匯網是針對產品的,我們又開發了一套針對服務的交易平臺,叫真匯金街,賬戶與真匯網打通。我們除了開發自己的產品,同時也會開發一些定製專案。所以我們技術中心有兩個部門,一個叫平臺研發部,一個叫定製研發部,加起來總共有45人 。
公司的風氣很好,週一上午會開全員會,會上會進行一些集體的娛樂活動。每天上午8點半各部門開晨會,晨會安排好當天的工作後,會玩一些集體遊戲,比如狼人殺,逛三園,瘋狂猜詞,誰是臥底等等。一場遊戲玩下來,大家都很開心,然後就以這樣開開心心的狀態開始一天的工作。
不過這種狀態並沒有維持太久,因為公司上市了。公司上市後,為了滿足上市公司的要求,對企業各方面都進行了改革,從公司初創就帶領大家開拓市場的總經理被換掉了。新來的總經理為了財務報表上好看,開始嚴格控制成本。從此飲水機旁邊沒有了茶包,衛生間裡沒有了捲紙。這還不算,新老總把我們尚未贏利的專案比如真管家和真匯商城全都停掉了,同時停止了一切新產品的研發活動,開始代理其它公司的成熟產品。因為研發就要投入,投入會計入成本,卻不會在短期形成利潤,這樣把公司從一個研發型的公司轉為銷售型公司。
公司轉型為銷售公司以後,開始擴大銷售人員規模,同時壓縮技術人員人數。在一次總經理辦公會後,給我們下了裁員令,要求技術部門裁減一半人員,由我提供名單,人資負責面談。
那是我最絕望的一段日子,當了幾年的技術總監,我就是喜歡招人,不喜歡裁人。說實話,能透過面試,透過試用的都是相當不錯的員工,因為差勁的員工壓根就過不了試用,甚至連面試都過不了。就是這麼優秀的一群人,在任務繁忙的時候跟著你一起加班,在遇到難題的時候給你出謀劃策,當系統出現問題的時候,一邊抱怨一邊積極補救。你說裁誰呢?
首先運維人員得留下來,新產品的研發停了,原有的產品要保持執行。同時還要保留最低限度的程式設計師,因為系統出了問題,或者小規模升級,總得有人來寫程式。美工可以外包,產品經理就不需要了,測試人員工作排不滿,只能也裁掉,讓留下的程式設計師兼職測試工作,資料庫管理員和文件專員,也可以減掉。
然後我擬定了一個毫無私心的名單,並未曾因為哪個員工跟我關係好而有所偏袒。名單轉給人資之後,就看到我們部門的人一個個被叫進洽談室。洽淡室就在我辦公室旁邊,聽不到裡面說話的內容,但能聽到說話的語氣。被叫去的人中,有義憤填鷹地大罵的,有悲痛欲絕失聲痛哭的,有默不作聲地保持沉默的。同事們聽到風聲,早已統一了口徑,就不主動辭職,要趕我們走就讓公司辭退。但公司肯定是不給辭退的,因為辭退就要給補償。所以裁員的工作推進得很艱難,大概進行了兩個星期,然後人資總監辭職了。臨走跟我說了一句話,這個公司待不下去了,你也早做打算吧。
新來的人資總監態度強硬,總算完成了裁員的工作,但對員工的積極性打擊太大了。留下來的員工開始消極怠工,工作任務完不成,無限期推諉。只要工作發下去,就回給你一句話:這個工作我不會,只有XXX能完成,你把XXX裁掉了。所以這工作沒法做。我聽了心理很難受,好像是我把他們裁下去似的。但是大家已經不再信任我,工作沒法開展,我也只好辭職。
後來離開公司之後三個多月,遇到那個公司的同事,聊起來才知道,三個月內,其它6名總監也都相繼辭職了,很多從公司創立時就在公司的元老也都走了。當時公司離職率70%,除了上市時剛來沒多久的,原來的員工幾乎被換了一遍。換一個總經理,就意味著你要換掉所有的員工。
有時候我常常會想,要是我們那年沒上市該有多好啊。
10尋找失蹤的員工
2017年,我在偉宏科技擔任技術總監,當時我們做的是漢能的MES系統,這個系統極其複雜,要對接很多德國的裝置。為了弄清需求,我們需求分析人員進駐廠區,辛苦了三個月終於完成了上千頁的需求分析說明書。甲方派出兩個代表,逐字逐句和我們核對需求,那時候我們每天晚上忙到凌晨兩點,每人帶個摺疊床,晚上就睡在辦公室裡。當時我們團隊有個成員叫曾經,他每次出差都帶著老婆,晚上不和我們一起住,他們自己在外面開房間。
需求搞完了,大家就進入緊張的開發階段,因為我們研發中心並沒有真實的生產裝置,所以程式的除錯用的都是模擬裝置,而我負責所有模擬器的開發。因為公司的總部是在北京,而研發中心設在鄭州,所以研發中心的管理相對簡單。
有一天一個女人闖進我們研發中心,直言要找這裡的負責人,前臺就把她請進了我的辦公室。她說她是曾經的老婆,說曾經已經三天沒有回家了,她就來公司找他。我當時心裡很疑惑,曾經的老婆我出差時見過啊,不是像她這樣的。但是他說曾經三天沒回家,我頓時感覺到事情嚴重了。因為他已經三天沒上班了,沒有請假,也沒有告知任何一位同事。因為我們技術人員普遍輕視審批流程,有時候家裡有急事就先去辦,回來補假條的情況也有,我也沒有在意。但是現在,他既沒上班也沒在家,這個事情就嚴重了。
我們給曾經打電話無人接聽,發微信釘釘留言也不回,撥打他入職時填的緊急聯絡人電話,結果找到我們公司的那個女人電話響了。 我只能讓那個女人先回去,說只要曾經跟我們有聯絡馬上通知她,同時建議她如果還找不到人就去派出所報案。
處理完這事剛回到家,電話響了,打電話的人自稱是曾經的老婆,說有重要的事情問我,約我晚上見個面。我聽聲音這不是白天找我的那個人啊,然後核對了一下電話號碼,確實不是白天找我那個女人的。然後我就懵了:曾經到底有幾個老婆?
晚上見了面,才發現她就是曾經出差時帶的那個老婆。她也是來找人的,說曾經已經3天沒有跟她聯絡了。然後交談中才知道,她跟曾經是婚外戀,白天那個才是曾經的原配。她想讓曾經跟原配離婚跟她結婚,但是曾經的原配老婆不同意。她這邊一直催逼,然後曾經受不了就跑了。她現在聯絡不上曾經,因為曾經給她留過我的電話,就找我來問問。
我如實相告,說曾經已經三天沒來上班了,然後承諾如果曾經聯絡我們就馬上告訴她。送走她以後,感覺曾經這個人真是沒勁,老婆才剛生下小孩不到1年就搞婚外情,而且出了事不去面對只會逃避。
後來曾經給我回了電話,說他去深圳了,在朋友那裡。我把這個訊息告訴他兩個老婆,讓她們放心。結果曾經那個婚外戀人一聽這個訊息,馬上買了一張機票飛去深圳。
後來專案忙起來,我也沒再關注這件事。兩個多月後,曾經和他那個婚外戀人把我約出去,說了很多感謝的話,然後給了我一包喜糖,說他們要結婚了,邀請我去參加他們的婚禮。
那個婚禮我沒去,因為那不是我希望看到的結局,我不知道曾經原來的那個老婆,帶著個不到一歲的孩子該怎麼辦。但世事太抵如此,許多事情不會照著你希望的方向發展。因為漢能的專案我們鄭州的技術人員需要長期到北京出差,公司領導一合計,不如直接把研發中心遷到北京。我那時候小孩已經在鄭州上學了,不想去外地,然後只好辭職另謀工作。
11達到事業的巔鋒
2018年,我在華諾科技擔任技術專家 。這是一家外企設在中國的子公司,工作比較自由,不打卡不簽到,不固定辦公室不固定座位。基本上是隻要有網路的地方,在哪裡辦公都可以。但我們基本上還是去公司,因為公司有咖啡,有點心,有下午茶,當然最重要的是同事們交流方便。
我當時參與的是一個5G規劃專案,因為5G頻段高,所以5G碁站的覆蓋範圍要比4G小很多,為了增加覆蓋就需要部署更多的基站。我們先用無人機在城市上空飛一遍,用雙目攝像機拍攝城市的影像。拍完後影片做兩路處理,一路轉換為城市的三維模型,另一路做語義分割,識別出拍攝到的物體,然後根據不同物體對訊號的影響,自動解算出適合安裝基站的地點。然後再把這些結果輸進城市的三維模型中,由人工進行一些細微的調整。
那是我人生中最快樂的一段時光,外企中的人際關係相對比較簡單,也很少有加班的情況發生,下班後基本上不會接到任何工作電話。公司會定期舉辦各種娛樂活動,比如漢服大賞,卡拉OK比賽,程式設計師日,工程師日等等。最精彩的是老闆服務日,在老闆服務日這天,所有的領導都要為自己下屬提供服務,比如捶肩、擦電腦、買奶茶等等。具體服務什麼不重要,重要的是一種態度。因為公司部門分佈在全國各地,所以公司會定期組織各種團建活動,方便大家認識交流。
外企的規章制度比較完善。比方說出差,只要領導批准了你的出差申請,就會有人給你買好機票訂好酒店,幾乎不需要自己墊錢。
有一段時間我有幸去公司總部出差,到了之後簡直驚呆了。公司總部綠化面積很大,建築物很分散,就像建在花園裡似的。裡面不但有圖書館,體育館,影劇院,還有一個博物館。博物館裡陳列著很多歐洲古代的盔甲和刀劍,圖書館裡的藏書比我見過的大學裡還多,讓人很難想象這居然是一家商業公司。班車上午10點才截著員工到公司,下午4點就出發載員工回家。中午12點到下午2點是吃飯和午休的時間,算下來一天只工作4個小時。
雖然待遇優厚福利好,但同事們的責任心還是很強的。疫情到來,我們除了留下一些通訊保障人員以外,其餘全部居家辦公。武漢建設雷神山和火神山醫院,公司徵集人員前去建設配套的通訊基站。那時候,所有的人全都舉起了手,沒有一個人猶豫,沒有一個人退縮。身為通訊人,去災區進行通訊保障在我們的觀念裡那是理所應當的。最終我沒有得到這個機會,這個光榮的任務交給了一些年輕的同事,他們出色地完成了任務之後,又自覺地進行隔離。
美好的日子總是短暫的,在㺯國打壓中國企業的大背景下,外企在中國的生存也很艱難。我記得那年移動5G集採,我們沒有中標,後來聯通和電信聯合集採,又沒有中標。拿不到5G的業務,我們這些5G規劃人員沒有了用武之地,公司將我們疏散到其它部門,給我的安置是到福州做Java開發,但我不想離開鄭州,於是只好辭職,開始下一段征程。
12遭遇人生滑鐵盧
2020 我在中音訊谷擔任技術專家,當時我們做的是一個無紙化會議專案。無紙化會議的難點一個是檔案協同編輯,另一個是投屏。協同編輯我們整合了一個OnlyOffice開源元件,投屏就使用Nginx+ffmpeg,類似直播的技術。
公司主要是要會議系統軟硬體整合的,以前用的無紙化軟體都是從別的公司採購的,公司想自研這個軟體,但是投入又很少。技術中心有十幾個人,但大多從事硬體維修,軟體研發部門只有4個人,我用修改ffplay的方式做出了一個PC的客戶端,然後又用Android原生技術做了一個Pad的客戶端。因為在專案設想的應用場景中,主會議桌上會配置windows工控機和可升降螢幕,而後排的臨時座位使用平板電腦。
公司位於鄭州遠郊,離家很遠,交通不便。那時候北三環正在修路,開車太慢,我只好騎電動車上班,每天騎行30公里。騎電動車夏天還好,一到冬天,冷得刺骨。我即使穿上厚棉襖,給車裝上擋風被,還是冷得受不了。有一次半夜裡下雨加雪,早上起來發現車把套都淋溼透了,手放進去鑽心地疼。因為來不及買手套,只好把擦車用的毛巾裹在手上,騎上前行。後來上淘寶買了一種自發熱的鞋墊,墊在鞋裡,熱氣從腳上傳遍全身,才感覺到些許暖意。
公司的氣氛也很好,公司創辦有自己的雜誌,每個月都要在全體員工中徵文。也會舉辦各種暴走競賽,從公司徒步40公里到黃河邊上。尤其是元旦聯歡晚會,辦得是很有水平。因為那年疫情的原因,晚會改為線上舉行。各部門要把節目錄好然後線上上會議上播放,最後大家投票評比。
我們部門的節目是一個小品,兩個工程師拿著損壞了的月光寶盒,誤入非洲部落,被原始人逼迫喝了好幾桶水(水是真喝的)。我演一個維修工,負責修理損壞的月光寶盒。我們的.net工程師小呂,從寫劇本開始,仔細琢磨每一個鏡頭,反覆推演每一個橋段,簡直跟專業人士差不多。最後節目獲得了全公司第一名,然後我們得到了一個結論:能得冠軍並不在於你節目做得好不好,而在於你部門人數多不多,因為在全公司投票的時候,每個人都會把票投給自己部門的作品。
軟體按部就班地開發完成了,然而在測試的時候,效能達不到要求的指標。首先是android版本的投屏延遲在3到4秒,因為我用的是直播的技術,直播系統中這個延遲是可以接受的,因為你看不到播放源就感覺不到延遲。但是在會議現場,是有大屏的,主席臺上的大螢幕和會議桌上的PC端瞬間就收到畫面,而android平板要過幾秒才能收到,這個延遲就感覺很明顯了。還有一個問題,就是連續播放四五個小時之後,畫面就會卡住,不知道是什麼原因。
為了解決這兩個問題,我們又耗費了很長時間,反覆檢測程式,測量記憶體和頻寬的佔用,調整各種引數,但卻一直沒有取得有效突破。為此我們專門招聘了一個測試工程師,反覆驗證bug,試圖模擬出現問題的條件,尋找問題出現的原因。但也是一無所獲。就在我們徒勞無功在折騰一段時間以後,總經理終於沒有了耐心,停止了專案,這也成為我軟體開發史上唯一一個失敗的專案。
13哪怕洪水浪濤天
2021年,我在京碩科技擔任技術總監。那時候我們做的是共享列印專案,我去的時候專案已經運轉5年,公司已經投放出去3萬臺共享印表機,但系統效能開始下降,經常出現伺服器不返回結果的情況。我讓測試團隊做了一次壓力測試,測出系統容量上限是3萬6千臺,於是開始對系統進行擴容改造。
服務端用的php,資料庫是mysql,裝置端用的是c++,使用者端用的是微信小程式,還有一個python做的用於讀取檔案頁數的伺服器,通訊協議用的Websocket。我把伺服器全部改成叢集部署,將php升級到7.4, mysql升級到8.0,使用者端改為uniapp,將系統容量擴充到20萬臺。
當時公司的營銷策略,就是拿高額補貼換取市場份額。平均每一個點位一個月可以賺50元,但為了拿到這個點位,每月要補貼出去100元,所以公司一直是虧損經營。年初老闆定下的目標是今年要賺一塊錢,但到年底一算賬,這個目標並沒有實現。雖然公司年年虧損,但靠著源源不斷進來的風險投資,公司的日子過得也挺滋潤。
7月20日,所有鄭州人都不會忘記的日子。那天暴雨如注,傾盆大雨一直潑了一天。有很多公司收到預警都提前下班了,我們因為老闆不在沒人做決定,一直到下午6點正常下班才出來。
出來的時候我蒙了,路上的水已經淹到膝蓋。電動車是沒法騎了,只能趟水往回走。我順東風路往東走了一段,水越來越深,遙看花園路那邊,水已經淹到了行人的胸口。我於是折回,準備走資訊學院路回去。東風路在經過文化路的時候有一個下穿式隧道,這個路段的水流變得特別急。我站在東風路口,看著路上沒過膝蓋的水流,正在猶豫到底能不能過去。旁邊還站了幾個人,都在觀望不敢下腳。這時候有個穿中學校服的小孩走過來,前腳剛踏進水流馬上就被衝倒了,眼見著就要隨著洪水衝進隧道。我馬上右腳跨前,伸出右手直接抓住了那個孩子,因為不敢雙腳都踩進水裡,我左腳還踩在路邊石臺上。抓小孩的時候,左手本能伸開以保持平衡,但是我的左手剛伸出就被路邊的人抓住了,我頓時感覺全身充滿了力量。另一個人見狀,也採用我的姿勢抓住了小孩,我倆一點一點地把小孩拉回來。
小孩子嚇得不輕,然後大家就擠在路邊一家飯店裡,等著雨停。我擔心家裡的孩子,於是繼續往西,找到一段水流不太急的地方,像螃蟹那樣橫著走,才趟過了東風路。然後在資訊學院路上,全程都在齊膝深的水裡趟,走了幾百米腿就開始痠痛。但是不知道家裡孩子的狀況,只能咬著牙往前走。回到家才知道,孩子早在中午就提前放學,已經順利到家了。看到孩子平安,我馬上給同事打電話,詢問同事們的情況。得知家在東邊的同事看到花園路無法通行,滯留在公司了。他們已經買了食物,準備在公司待一晚上,第二天再回去。
然後我又跑到小區附近的停車場,因為公司離家近我上班並不開車,平時車就停在那個停車場裡。結果去的時候,只看到一片汪洋,裡面一輛車也看不到,水已經把車頂都淹沒了。
這次水災,鄭州死亡失蹤人數高達380人,受災最嚴重的是京廣路隧道和地鐵5號線五龍口段。京廣隧道里面很多汽車堵在那裡出不來,結果水灌了進去,連人帶車都淹了。地鐵5號線沒接到預警照常發車,結果在五龍口段遇阻,水從兩頭灌進來,一列車的人全被淹了。我損失一輛汽車,但好在家人平安。
公司的財務一直依靠投資,新的投資進來,用於給付以前投資的利息,所以欠款越來越多。最後有一筆投資沒有按時到賬,結果公司的資金鍊出現問題,先是工資發出不來,然後供應商的貨款也結不出了,公司在負債中艱難度日。為了能拿到投資,領導讓我篡改系統資料。我不想幹違法的事,再加上欠薪已達五個多月,所以我就辭職了。
14沒有硝煙的戰場
2022年,我在紅帽科技擔任技術專家。紅帽科技也是做共享列印的,不過跟京碩業務方向不同,紅帽主要投放在學校和政務大廳,所以它的機器比較高階,一般都帶有觸控式螢幕,能夠高速連續列印。而京碩主要投放在小區和學校門口的便利店裡,都是印表機直接貼個二維碼,主打一個機器便宜點位多。
我從京碩離職當天,還沒來得及去投簡歷,就接到了紅帽的邀約電話。這讓我很㤞異,怎麼京碩的事情紅帽知道得這麼詳細?莫非是有臥底?然後我就問紅帽是怎麼知道我離職的,紅帽說是一個供應商推薦的。然後我就明白了,京碩採購硬體一般都是款到發貨,但最近由於資金緊張湊不出貨款,導致有一批貨(大概5千臺控制盒)廠家已經生產出來了,但京碩沒錢發不了貨。所以供應商只好給這批貨找別的買家,於是就找到了紅帽。
紅帽其實並不想做社群這塊,因為它在校園和政務這塊已經做得很好了。但耐不住供應商一頓忽悠,再加上因為疫情很多學校封鎖,機器維護很不方便,所以就打算在社群領域試一下。
我去了之後,主導開發了紅帽列印的社群版本,同時也參與了其它版本的維護升級工作。為了避免和京碩可能存在的糾紛,我使用了和京碩完全不同的技術方案,伺服器端用Java,裝置端用Python,通訊協議採用MQTT,總之每個部分都使用的京碩完全不同的元件。
紅帽的老闆是軍人出身,對質量的要求近乎苛刻。比如我們有一款室外的機器,一到冬天列印就會重影,老闆瞭解到是因為低溫所致,後來就在所有的機箱裡增加了加熱裝備和溫控模組。還有我們的社群版,響應時間會隨著檔案大小而減慢,比如上傳50頁以上的檔案,印表機可能要等一分多鐘才能響應。雖然我們再三給老闆解釋檔案傳輸是需要時間的,但老闆不聽,堅持要求我們提高響應速度。最後我們採用檔案拆分的辦法,先傳輸第1頁,然後再傳輸2-5頁,然後再傳6-10頁,最後傳輸剩下的內容。這樣不管有多大的檔案,印表機都能在10秒鐘這內做出響應。
那天正上班,忽然聽到業務部門一陣騷亂,我們的兩個業務人員被抓去派出所了。因為我們兩個業務員出去投放機器,結果投在了京碩公司樓下。京碩的人一看,用的是他們的控制盒,馬上慌了。因為京碩並不知道供應商已經把他們的貨賣給我們了,一看到我們在投放他們的機器,馬上想到是不是我們把他們的點位給撬了,用我們的裝置換走他們的,然後又用他們的裝置投放新點位。因為京碩在撬別家公司點位的時候,也是這麼幹的。所以他們就報警了,說是我們偷了他們的裝置。
然後我們老闆出面,出示了購貨合同和給供應商轉賬的回單,兩名業務員被當場釋放。但是供應商不高興了,因為供應商當時跟京碩籤的排它協議,這種裝置是專門為京碩定製的,不能銷售給其它公司。所以供應商賣給我們裝置的事情其實是暗地裡進行的,現在這麼一鬧這件事情就暴露了。
後來供應商跟我們一起喝酒,抱怨說京碩做事太不地道了。原來並不是因為京碩付不起貨款,而是因為京碩買通了供應商的一位工程師,知道了他們代工的廠家,然後從廠家以更低的價格直接進貨,把供應商完全撇開了。供應商心裡很惱火,因為京碩暗地裡從廠家進貨的事情他們並不知道,所以還在繼續向代工廠下單生產,這才造成了貨品的積壓。
京碩和紅帽的運營模式完全不同。京碩依靠各省各市的代理商來開拓市場,維護裝置,而紅帽一直依靠自己來進行投放和維護。所以京碩能夠把機器投放到全國各地,而紅帽只能覆蓋鄭州市場。因為共享印表機這個東西,是需要經常維護的,正常情況下就需要不斷地加紙加墨,還會出現卡紙夾紙等異常情況,一旦出現了就必須馬上派人去解決。京碩的裝置主要投放在便利店裡,給店主有分成,所以加紙取紙這些事情可以讓商戶來進行。但紅帽就不同了, 他要組建一支龐大的運維團隊到各處去進行維護。後來的事實證明,這種方式不適合社群專案這種點位大量且分散的情況。而且京碩不追求贏利,一直是以賠錢佔市場的方略,而紅帽要求投放出去的機器必須儘快贏利,所以在投放一段時間後,老闆看到利潤不足以覆蓋成本,就把這個專案停掉了。
從那以後,我又開始了反思,以前一直以為動盪不安的生活是因為我入職的都是初創公司,所以後來有意識進成熟公司。但是又能怎麼樣呢?雖說公司不會倒閉,但是業務部門也是說撤就撤,同樣沒有一點保障,或許,是時候該離開這個行業了。
我不知道我轉行以後還能做什麼,但我開始嘗試寫作。我寫了一部小說《另一個世界》,如果讀者們有興趣,上晉江文學城搜作者“魯那西”就能看到我的全部作品。
15後記
2023年,我在美團擔任外賣員。IT行業就是這樣,來去自由。你來,他不勸阻,你走,他不挽留, 浪潮不會在意一滴水珠。所有的程式設計師都是從Hello world開始,又是從Goog By Code 結束。沒有什麼懊悔,也沒有什麼遺憾,有的只是無盡的懷念。
免責宣告:因為這個回憶錄記錄的都是真實事件,為免洩露他人隱私,所以文中出現的公司名稱和人名皆為化名。如有與現實中的公司重名,請勿追究並通知作者修改名稱。
附錄:月薪變動表