程序員大概是這世界上最單純樂觀的一類人,雖然我們自嘲"碼農",但內心卻大多無比傲嬌,我們總堅信自己在改變舊世界,創造新世界,所以我們看起來始終樂觀單純,而此文,我不聊快樂,聊聊作爲一個程序員,我意識到一些讓我痛苦和煩惱的地方。
1. 完美主義
機器不會說謊。
當程序出現 Bug 時,一定是某個地方有問題。
要麼是代碼,要麼是硬件,考慮到大多數程序員不與硬件打交道,所以當程序出現問題時,一定是邏輯不通順,或者是覆蓋度欠佳。
程序員一直習慣於這種確定性邏輯問題的定位與解決,久而久之會形成一種完美主義的習慣。
但,你可能會發現這個世界不一樣,其實這個是和你想的不一樣。
在生活中,沒有絕對的確定性,也沒有絕對的邏輯,這對程序員是不可掌控的。
比如,威風八面的程序員總是搞不定諸如上下班按時打卡考勤、按時寫日報、週報這類小事。
很多人可能說,我志向不在於此,這是一些繁文縟節,束縛了自己。
其實,本質而言,就是無法掌控的一種恐懼,程序員畢生追求確定性和完美性,而現實中太多事無標準,無邏輯。
而痛苦也來源如此。
2. 豬隊友和傻x
程序員大多善良、樸實無華。
新聞中和日常工作中,程序員卻戾氣很重。
和項目經理打架,和產品經理幹仗。
和 UI 撕逼,和測試互懟。
私下交流,領導都是傻 x 代名詞。
根本原因還是在於一個可控性。
程序員的資源、目標、信息大多是他人設定或者提供。
監督程序員的大多也是非程序員。
處處制約,有時候的感覺就是世界都與自己爲敵。
以前我也挺煩惱的,也時常抱怨。
後來做人工智能、自動駕駛後,才慢慢意識到這其實就是數學題。
大學前我們的數學都是求確定解,所以思維也偏向確定性。
工作後,其實處處都有約束條件,我們需要做的是要習慣在約束條件中尋找最優解。
更深入的講,你要權衡局部最優解和全局最優解,以及它們背後的代價。
所以呢?
還是要習慣這種處處制約的現狀,畢竟這就是人生,無論你做不做程序員。
所以,當你認爲周圍人都是傻 x 的時候,你要警惕自己的情緒和思維方式是否已經脫離正常軌道了。
3. 優雅和失態
人生不如意事十之八九。
人的一生百分之九十是痛苦的,這個可以在程序員身上反應。
實現產品功能、解決 BUG 的時候我們是快樂的,眉頭是舒展的,其他時候,不是這樣的。
上週,爲了調一個 Bug,我連續 2 天在電腦前一動不動,晚上 2 點多睡覺前還用筆在 Ipad 上手推矩陣變換公式,無數次調試後,終於成功了,狠狠吐了口氣,只爲這一瞬間。
我畢業後就一直追求要優雅的編程,先是照虎畫貓,這種內心的傲嬌和優越感一直鞭策自己要比別人更優雅和高級一點。總記得,工作後的第三年,終於有機會讓我一個人做一個 SDK,所有的東西我自己操控,我按照自己的理解,打造了一個極度面向對象、面向藉口的框架。
這在當時,僅僅只是獲得了內心愉悅。直到多年以後,早已離職的我,得知我當時的代碼被從美國回來的技術大佬做 code review 時給予了充分的肯定,我心有一絲暖意,雖然早已過去。
現在回想,我當時是過度設計了,一個複雜度很低的系統不應當如此緊密的設計,不過當時的我哪懂。
我始終堅信一個道理,你要成爲什麼樣人,先那樣表現。
即使沒有天鵝頸,每日挺胸擡頭,時間久了,氣質自然不一樣。
因爲,內心對於優雅的追求,我始終告訴自己:不要寫出屎一樣的代碼。
所以,在意識到自己寫出屎一樣的代碼或者是即將寫出屎一樣的代碼時,我會告訴自己好好幹活吧,把它弄回來。
於是,百分之一的時間我在享受着我的成果,百分之九十九的時間我焦頭爛額修復問題。
這是個週期性的動作。
就如同電影《無間道》臺詞說的,說好三年又三年。
人們都喜歡用波浪描述週期,一波接一波往返。
我更認同鐘擺的說法。
除了兩個瞬間,鐘擺經過最低點,其餘時間要麼遠離最低點,要麼迴歸最低點。
痛苦來源於此,追求也因爲此。
因爲痛苦就是常態。
最後
還是要多讀書,多看看行業先輩,他們的經驗、智慧和哲理,這有助於認清自己,也容易在迷茫時找到方向。