那些年犯過的錯


先講幾個個人不光彩的經歷。

一、

    應該是11年還在人人的時候,那段時間主要工作都是純考驗技術的活兒。那時候離職人多。我一個人承擔了原來4個團隊的工作。白天各路產品來找。我要利用晚上的時間將一個游戲(泡泡魚,不知道是否有同學玩過)

接入一個日本平台,並開發完成支付功能。這是一個和其他游戲公司合作的項目,代碼用python寫的。我只會java,但還是硬着頭皮用一周時間完成了開發。結果上線出問題了。線下環境運行正常的代碼線上環境跑不起來。我們運維MM搞不定了就不搞了擱着。於是我只好自己動手,最后總算找到問題原因是這個服務器上一個工具版本不兼容導致的。

    項目上線我們公司收到10w的接入費,這是第一次覺得自己給公司掙錢了。

    從此我都是做相對技術含量高的活兒。比如用一個月時間不僅搭建並維護了一個IM服務器,還自己用之前沒做過的android做了客戶端,壓測單台服務器可承受萬次並發。

    自己做了主圖片提取的算法圖片識別准確率85%,記得當時facebook好像是百分之四五十。

    但是有次領導讓我調研一個記得好像是圖像識別還是語音識別的,我沒調研出來,最后不了了之。現在想來非常懊惱。當時打怵的原因是第一那個東西是C語言寫的。我一個做java的之前只做過將C++的中間件改成java。代碼看着就頭大還需要用它來開發。語音和圖像識別太高大上,想不明白原理。現在想來,第一這種識別的東西也不是讓我搞算法,肯定是調用設備或系統的某個接口而已。找到這個地方做突破口就好了。第二,我也不需要了解所有代碼,只需要重點幾個方法了解就可以。其實工作量和那個python游戲的一樣。因為自己慫,錯過了一個技術上突破的機會。

 

二、

    在正和島有兩件事。

    第一件事是記得有天干的很晚很累了,操作數據庫的時候寫update語句沒有加where條件直接回車,將所有線上用戶的頭像更新成一個人的了。當時及時先用備份回滾,然后因為時間差造成的一百多條頭像不對是從hive里取日志的記錄,一條條手工更新回去的。還好當時是項目剛上線,就幾千個用戶,並沒有實質性損失。從此,養成了update和delete前先將where前換成select查看結果再執行的習慣。

    第二件事是接入微信支付平台,上線了也沒發現什么問題。但是我們領導有次巡查,發現數據庫里有兩列全為空。就開始訓我們產品。我一邊跟領導說這是我的錯,一邊眼淚都在眼睛里打轉了。明明是我的鍋,我們產品招誰惹誰了?!這件事的教訓下面再總結,因為好多年我都沒找到這個問題的本質。

 

三、

    18年夏天,經歷了一個”從刪庫到不跑路“的過程。那段時間找找借口就是在金融時候積壓的疲憊和壓力,到架構這邊還是破解不了壓力的源頭。整個人被壓垮了。有次操作線上在一張數據表中本着“做正確的事”的原則,給一個數據庫字段添加唯一索引。當時記得是先select group by過沒有重復的,不知道怎么看錯了,另外一點也是心存僥幸,覺得有問題操作平台會幫我check的。其實數據很多重復,這張數據表有現在做的2.0的數據,唯一索引是正確的,另外還有1.0的數據,並不是唯一的。加了索引后,重復的數據被自動刪除了。1.0的老程序瘋狂報錯。我當時精力已經不支,同事幫忙回滾更新了數據庫。我休了兩天假。這是歷史上自己最痛徹心扉的經歷。因為出了事情我不是自己善后的還休了兩天假,好像逃了一樣。實際情況是當時體力精力確實不支,當時及時處理並沒造成太大影響,但是如果我留下來處理,可能會處理出更大的亂子。為了避免對公司造成損失,我就不添亂了。

    那段時間同事見到我問我怎么添了這么多白頭發。我笑笑不吱聲。那時候心里的焦慮排解不掉。心里就一個信念,我要一直留在這個部門,起碼到做好為止。焦慮因為怕不能留在這里。不然會成為終身的遺憾:終究沒能證明自己。

 

以上是事件,下面是總結。

    1.自信心激發上限。

    2.Check機制保證底線。

 

    上面事件提實際上提到3家公司。靜兒就職過的實際上有5家公司。還有兩個公司,工作過程其實特別順。總結來看,和語言沾邊兒的就特別順。上高中的時候,語文每次考第一。英語經常考第一。其他的就比較一般了。有次數學考了滿分,但那次考滿分的好幾個。關鍵是我覺得自己也沒做啥,就是語言類的考試不知道怎么就比別人考的好。而理科的東西,我需要加倍的努力才能和別人差不多。而我就是那種什么做不好就偏要做什么的人,竟然報考了計算機。

    為什么和語言沾邊兒就會特別順呢?現在來看主要是自信心會讓精力高度集中,大腦沒有其他負擔。能夠發揮到一個上限。

 

    天賦到底是個什么東西。天賦是我老媽本身會日語和俄語。她的經歷遺傳了給我,讓我從出生起就有了十年的功力沉淀。在工作中很羡慕一些人,他們似乎天生就知道從各方面check、天生謹慎、及時了解經濟、市場,懂得調研。這些應該和從小的經歷和習慣有關系。我本身對這些東西都不感興趣,造成了我是自己見過天賦最差的程序員。

    我用了十幾年時間看別人怎么做,慢慢對這些技術不再抵觸、不再厭煩。給自己積攢十年的功力。當別人已經步步高升了,我才剛起步。這又有什么關系呢。因為如果我打算干到60歲,別人50歲退休了。那最終我們能達到的終點都一樣。

 

    作為程序員最重要的是要保證自己產出的正確性。如果沒有天賦,就要勤能補拙。要有一個checklist,包括通用的和業務特殊的。通用的包括:

  1. 存儲數據正確性校驗

  2. 日志正確性校驗

  3. debug過程符合預期

  4. 結果邏輯性校驗(比如:一個人數為負數肯定是不符合邏輯的)

  5. 開發中實時記錄上線步驟,保證上線無步驟遺漏並且都驗證通過

  6. 新邏輯是否有開關設計(上線有問題可以一鍵切換舊版本)

  7. 灰度設計方案保證遇到問題影響可控

 

    上面是靜兒自己工作過程中認為最重要的check項。自己的check項都做到了是用了保證底線的。自己的能力和自己的狀態才是激發上限的。

    底線在工作中可以預防出錯,生活中也可以預防做出錯誤的決定。比如我的底線是我可以向你走99步,前提是你要邁出第1步。理由很簡單。如果和一個不肯對我付出的人在一起,結局一定是疲倦和絕望。與其懊惱終生,我寧可自己心里痛苦個三年五年。總比幾年過后,我終於鼓起全身的能量要擺脫眼前這個給我帶來不幸的這個人。他還很氣憤和不解對我說:為什么、為什么,我們過得那么好。

    

    錯了不是以后做好就行了,而是要實實在在需要長期反省與反思的。這不是好事,卻是一筆寶貴的財富。積累下來就是天賦。我此生對白首之人只做過一次選擇,足夠了。我知道和別人在一起是什么樣子,和他一起是什么樣子。這是一種天賦。而遇到事情可以感同身受的預見到后果,在此之前做出正確的判斷也是需要修煉的天賦。

 

    曾經開玩笑說自己換工作的就是要把公司周圍的好吃的都吃遍了,然后換個地方吃。這十幾年工作經歷是在積累天賦的過程。如今我可以踏踏實實的在崗位上做自己想做的事。不會被外面的世界所誘惑,因為我可以感同身受的想象到。偶爾有上面的壓力,提及我需要帶團隊。

    我是這么考慮的,目前我處於一個自己很理想的環境。每一步走的都很夯實。我希望可以盡量長一點這樣走下去。因為這些經歷可以讓我以后更能對別人的處境感同身受,並且形成自己方法和能力體系。但是我會服從組織的安排,並在這之前多多怎么勝任而思考。因為工作最重要的是要發揮價值。

 

    最后對於選擇工作補充一點。一個好的團隊是感覺自己身上的缺點和想提高的地方,在這里可以找到答案。如果自己是一個很容易受別人影響的人。那最好經常在團隊里發言,並且說法分量重的人不要有明顯的自身缺陷。這種缺陷比如自負、負能量高、說話方式讓人不舒服。

    

    焦るな。欲張るな。あきらめるな。みんな一歩ずつ歩いているんだから。

     不着急。不貪心。不放棄。路是一步一步走出來的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM