對不起,我的代碼評審毀了一個程序員!

技術使人膨脹?!

在過往的 coding 的生活中,你是否有過被技術前輩 diss 得找不著北的經歷?

對不起,我的代碼評審毀了一個程序員!

作者 | Philipp Ranzhin

譯者 | 彎月

出品 | CSDN(ID:CSDNNews)

以前,我們組裡有個非常弱的人,弱到就快要被辭退了(開發也有要被辭退的?!)。而我在代碼評審中的每條註釋都成了他棺材上的一顆釘子。每次我點“提交評審”的時候似乎都能聽到錘子落下的聲音。他為人很好,我甚至感覺他有點可憐,但我也不能因此而放過他的代碼。我有權批評他的代碼,不是嗎?我比他優秀,所以我做的沒錯。沒有人會把很差的代碼說成很好,不是嗎?最終他被辭退了,而在這之前他已經好幾個月沒有拿到獎金了。

對不起,我的代碼評審毀了一個程序員!

我告訴自己說:“我不會像他那樣。應該有更好的開發者來代替他的位置。我的所作所為都是正確的。”但當我接到另一個拉取請求的審核時,事情卻發生了戲劇性的變化。

剛開始時一切一如既往。我打開 pr,查看了它想要解決的問題,設想了一下我可能會採用的解決方案,然後開始閱讀代碼。與以前一樣,這些代碼純粹是垃圾。與我設想的解決方案差遠了。於是,我寫了一些抱怨的評語後,又開始閱讀細節。我寫下了一條又一條的問題和“疑似”問題,其中還夾雜著我攻擊性的評論。

技術上,我比這個人更強。所以 1000 行的 pr 中夾雜了我給出的 200 多條評論,似乎這個人毫無生還的希望。

當我把鼠標移到“提交評審”上時我突然想:我為什麼要這樣?我對這些代碼如此憤怒也是有原因的。作為團隊的一員,我需要對這個項目的代碼負起全部責任,畢竟以後我要照看這些代碼。這些代碼是所有業務問題的根源。這些代碼不具備可擴展性,無法正常地通過測試,充滿了各種 bug。支持這些成本會越來越高,而且不能開源,也無法吸引新的開發者。

這不就是批評人時我們常用的解釋嗎?好的開發者應該時刻考慮業務利益,要保證公司像齒輪那樣運轉下去。

但我似乎並不是這麼想。這並不是我的判斷標準。

我憤怒是因為每天晚上我都在學習 F#,甚至我女兒都開始誤管別人叫爹了。而這個人並沒有努力工作,而是回家陪孩子了。所以我想懲罰他。

我做代碼評審是為了自我認同。我對項目或代碼本身沒什麼興趣。我只是一個能夠傷害別人的瘋子,一個無法為自己行為承擔後果的精神病患者,一個拿著棍棒的雄性動物而已。

當我意識到這一點時,我感到非常羞愧。如果你問我是怎樣的人,我肯定會說我並不是那種以自我為中心的瘋子。至少在我生活的其他方面如此。但為什麼我會在工作上如此邪惡呢?

對不起,我的代碼評審毀了一個程序員!

在我學習軟件開發時,對我最有價值的信息源之一就是論壇。那時我問了問題,也遭遇了很多凌辱:他們說我的問題是垃圾,解決方案更垃圾,還說我選錯了語言,甚至不配成為“好”的程序員。

我想要變得更好,似乎只是為了把他們甩在身後。就像在體育運動中一樣,我訓練並不是為了某個神聖的目標,只是為了變得“更大、更強、更快”。就像菜鳥拳擊手想要努力擊倒電視裡的大個子一樣。

這樣很痛苦,但我一直在努力。

當我變得越來越好之後,我把我的代碼交給真正的牛人去評審。他們有比我多三倍的開發經驗。每次我都被羞辱得體無完膚,有時我甚至都想退出這個行業了。我太笨了,根本不勝任這個行業。我一個星期的努力幾分鐘就被摧毀了,我甚至都沒有任何爭辯的餘地——每條評論都那麼明顯那麼正確。很奇怪的是,每次發生這種事情,第二天我都能說服自己說用不了1-2年我就能比他們做得更好,讓他們看看誰才是真正的王者。

最後,我變成了我曾經痛恨的樣子:拿著自己的本事當拳頭到處惹事的人。我做代碼評審並不是為了業務,而只是想貶低新手。我的技術終於開始給我回報了。

如果別人給我的代碼中有錯誤,我就會覺得自己很聰明,從而感受到莫名的喜悅。然後條件反射地給自己找一個合理的解釋,就像那些道德敗壞的政治家一樣。我會告訴自己我的所作所為都很正確,我是為了公司而守護代碼庫。但這種藉口並不意味著就是實情。

如果你告訴我你從未有過這種感覺,那你一定是在撒謊。如果你告訴我你有更崇高的目標,例如訓練新手以及其他云云,那麼我敢確定你也有這種感覺。如果你告訴我你已經學會控制這種感覺(然而這種感覺還是會出現),那麼我一定是很稀有的那個。

但這就是我的想法。一方面,我在別人的取笑中學會了準確地編程。人們喚醒了我的憤怒,而這種憤怒幫助我提升自己。上蒼通過這種方式成全了我,所以我也可以喚醒其他年輕和沒有經驗的程序員的憤怒,這樣他們才能成為更好的程序員,然後再對其他人做同樣的事情,以此類推。

我們對成功的渴望以犧牲他人為代價,但這只是物競天擇的一種簡單的手段。而且我會欣然接受這種方式,因為這不是重大的問題。

對不起,我的代碼評審毀了一個程序員!

當你開始複製其他人的成功做法,卻發現他們也很平庸時,你可以說“我也可以這樣做。”從此你開始成為真正的編程天才,一切都開始走上正軌。你可以用一切瞭然於胸的口氣講話,他們就會相信你。

我自以為是,不是因為我有能力,而是因為我是一個自大狂。我認識的所有自我為中心的人都比其他謙虛的人更加成功。他們的代碼寫得更好,他們參加了更好的項目,他們賺的錢也更多。經理和總監認為他們更有價值,同事更尊重他們。

事實證明,你不必成為一名優秀的程序員,而只需要說服別人你是一個好的程序員。這種行為會造成一種惡性循環,不利於培養專業人員,而是有害的問題。

如果你想爬得更高,那麼你會無時無刻不擔心這種偽裝會被識穿。所以這導致了另一個邏輯謬論:你設法說服自己和他人外在的權力展示是權力的真正含義。

作為開發人員,你總是避免不了爭論。作為一個團隊,只有經過反覆的爭論才能得出解決方案,儘管我們稱之為“討論”。然而,在爭論中“獲勝”更為重要,因為這樣你會感到自己很強大並更有自信。

這讓我想起一段往事。我曾經相信同性戀者是壞人。我沒有想太多,我記得很久以前我父親是這樣告訴我的。有一次我和一群自由主義者在酒吧裡,大家突然談論起了這個話題。我立即宣佈了我在這個問題上的立場,而他們則覺得“你胡說八道些什麼?”於是,我們開始爭論。我沒有認真考慮過這個問題,也沒有任何正當的論點,但是我仍然沒有停止爭論。我只是想贏得爭論並挽回面子。至今我也不知道為什麼。

從某種程度上來說,我喜歡這種爭論。贏得爭論、永遠堅持正確、完美地完成所有事情,對我來說這些非常重要。誰的想法更好並不重要,重要的是最後實現的必須是我的想法。

感覺有點大事不妙。我從未想過這些!

對不起,我的代碼評審毀了一個程序員!

本文開頭提到的那次評審?最後我沒提交。相反,我給了那個傢伙一些評論並禮貌地要求他改正一些問題。其實沒什麼大不了,如果他的代碼寫不好,必要時我可以自己改。但是如果那個傢伙的心理因為幾十個嚴厲的評論而受傷,我就無法彌補了。

我現在的性情不是我自己的病,而是整個行業的一種疾病,至少在俄羅斯是如此。我們的心態基於對權力和優越性的崇拜。這就是我們需要解決的問題:我們必須停止這種做法。實際上,這做起來也很容易。

即便我們在年輕時被嘲笑,那並不意味著日後你必須以牙還牙。惡性循環很容易被打破。如果你能夠承認另一個開發人員比你更有才華,那麼可能你會輸掉爭論,但你的生活也會更加幸福。

這有點像日本合氣道的做法。我說服自己內心的狂妄,告訴自己接受自己的弱點很偉大,然後開始為自己的所作所為感到驕傲。如果能讓我自我感覺良好,那麼在這個過程中打破禁忌也沒關係。

原文:https://habr.com/en/post/440736/

本文為 CSDN 翻譯,如需轉載,請註明來源出處。


分享到:


相關文章: