1. 程式人生 > >也談談內卷化、996和程式設計師的發展

也談談內卷化、996和程式設計師的發展

最近看到這個問題被談得很多。鋪天蓋地的35歲、內卷化、996。這裡也想談談自己的想法。

 

1)內卷化的形成

內卷為什麼會形成呢?從公司內部的角度來說,同事之間做的事情也缺少獨特性。那麼既然每個人都差不多,那麼與其招一個工作十年的人,還不如招個應屆生。雖然說從程式碼的產出和質量來說,工作十年的工程師比應屆生理論上來說應該是好很多, 但是如果工作十年的人缺少積累,缺少系統性的理解,那麼跟應屆生比較可能多了一些廣度(因為換過工作)。但是深度上來說並沒有本質上的區別。那麼這個時候就會發生內捲了,公司不停的把老員工換成新員工,老員工也不停的跳槽導致缺乏積累,長此以往公司很難得到優質的員工,員工也很難得到深入的知識和技能的積累。

如果把這個發到公司之間,那麼很多公司間的競爭也是重複性的,你做個朋友圈,那麼我就做個拼圈,如果你做個金融服務,那麼我也做一個。公司的產品決策並不完全是跟公司本身的基因和方向決定,而是因為什麼方向火而趕鴨子上架。公司在做決策的時候考慮的是最少的投資和最快的回報,而不是靠著自己的特性而做長久的、獨特的產品發展。在做這樣重複建設的時候,公司可能會在競爭對手那裡挖上那麼幾個牛人,然後其他的(包括UI)都照抄就好。長此以往,使用者、客戶很難用到更好的產品,而公司也很難積累出做出好的產品的能力。

 

2)從內捲到996

既然公司間都內捲了,公司做的產品跟別人的產品差不多,那麼拼的就是手速了。如果競爭對手和你拿的投資差不多,那麼招的人數也接近,如果競爭對手都996了,那麼你955豈不是輸在了起跑線上?同理,大一點的公司內部,團隊之間也沒有太多壁壘和界限,如果說你團隊的輸出能夠替代另一個團隊,那麼讓自己的團隊拼一拼,把地盤佔好,年底漲工資也是一個很美滋滋的事情。但是如果你這樣做,別的團隊也這樣做,長此以往就沒人不996了,最後你996也不夠,只能007了。

 

3)我如何看待996

我今年工作剛好十年。我剛畢業第一年在阿里工作,團隊的任務還是比較重,但是我一週也就兩天會在公司吃晚飯。週末和晚上我也會花時間學習感興趣的東西(當時是機器學習,還寫了不少部落格),真正晚上工作的時間不是很多。後來去了一個外企,基本上每天5點公司就沒人了,我晚上就看看開源的專案,有時間貢獻一下。過了兩年我去了美國,第一年公司IPO前還比較忙,有時候晚上要在公司吃飯加個班啥的,後面IPO後公司也沒人加班了,我週末和晚上不少時間都花在開源裡面。最近這幾年帶團隊,白天的會比較早,一週晚上也有那麼幾天有晚上的會,除了陪陪家人以外,有時間我還是會繼續弄弄開源,看看論文和書。

我對於公司、團隊級別的強制996是反對的,因為工程師做的事情應該是在更輕鬆的氛圍裡面創新,而不是被按在工位前出活。有些工作是需要很多的思考,特別是架構設計,還有職責劃分之類的。996會讓人缺少了思考的空間,對於那些資深的工程師或者架構師來講,缺少思考的空間會導致最後出來的架構不是最優的,因為好的設計應該是想出來的而不是堆出來的,如果架構設計都出問題了,後面的工程部分會跟著錯。對於管理方向的人也一樣,如果缺少了思考的空間,管理者會更難為他人著想,更難思考團隊到底需要和達到什麼的目標,怎麼做能夠讓公司受益等等。當你的時間都困在了工作中,長期來講會產生工作的倦怠(burn out),對於身心、家庭、還有公司都不是什麼好事。

但是另一方面我對於彈性的工作時間和短期的加班是可以接受的,比如說產品要釋出了,或者客戶有什麼問題了,哪怕是週末或者晚上,我覺得也應該能夠盡力幫忙,但是這樣的加班節奏不應該是長期的、持續的、強制的。公司(或者管理者)不應該告訴員工這個時候加班,我的態度是,如果員工有一段時間特別忙,加班比較多,我會讓他們去休個假,或者輕鬆一段時間。

我自己也一樣,如果忙了一段時間,也需要從工作中脫離一下。因為忙碌的時間太久想要從中恢復很累,而且加班太多,導致心情不好的時候也會讓家庭不開心,並且影響工作本身的效率。

 

4)工程師怎麼避免內卷化

第一我覺得工程師要打好基礎:不管是科班畢業還是轉行。當你做上程式設計師的時候,就一定要打好自己的基礎,基礎包括:

- 程式設計本身的技能:一定要寫一手好程式,有好的程式設計習慣。

- 寫作、溝通的技能:能夠寫好的文件,做出清晰的溝通。

- 在工作的前幾年,就要開始建立自己的社交圈,有一些值得信賴,互相學習、找工作可以互相內推的朋友,這樣可以避免走很多的彎路。

- 在自己工作的範圍內,看得比較深:因為你對於某一樣東西有深入的理解後,學習淺一些的東西會很容易。比如說你做的是網際網路的後臺開發,那麼深入理解一個或者幾個分散式的系統很重要,如果做IOS app,那麼對手機系統的內部工作應該是要很懂。

- 多閱讀,多看看系統的知識,還有好的論文(比如說Google的論文):這裡我並不推薦付費的網課,相對網課,看看那些原創的書,比如說DAIA,演算法導論之類的。會比只是教你刷刷LeetCode要好得多。當然LeetCode也是可以做做,不過不應該把它作為人生的追求。也建議看看管理、商業類的書,比如說矽谷之火,創新者的窘境之類的。

我建議這些能力在工作的3年內培養。

 

3年後,在有了這些基礎後,對於業界和行業的發展應該會看得更清楚,而不至於走錯大方向,比如說大家都在做SaaS的時候,你不應該花時間去學習太多windows 桌面的軟體開發;選擇一條發展更快的技術路線應該是避免內卷化的一個很重要的選擇,如果方向都選錯了那麼避免內卷也很難。

另外跳槽的時候應該注意積累,每次跳槽應該是能夠有更加深入的技能,而不是看