本文轉載自【微信公眾號:大飛碼字,ID:BigFly1024】經微信公眾號授權轉載,如需轉載與原文作者聯繫
那年,我進入騰訊實習。
實習了兩個月,過得挺開心。寫了一個 epoll svr,後來又寫了一個純udp 的 svr。導師當時有個項目剛好要用到 udp 通信,我幫他完成了udp 通信在我們的網絡,機器環境下的性能測評工作。
導師經常跟我溝通,不斷指引我,幫助我,一切感覺都很好。
感覺那時候的實習是真的實習,學到了很多的東西,不像現在都是把實習生當正式員工用。
之後,正式入職,開始了自己的職業程式設計師之路。
那時候,我感覺最明顯的是壓力。
這個壓力來自工作任務,來自同時期入職的同事的競爭,也來自新的人際關係。
為系統質量負責
相對於實習期,在工作任務上最明顯的變化,是要為系統的質量負責了。
在學校寫代碼,雖然也會盡力寫好,儘量保證不出bug ,但幾乎都是自娛自樂的項目,沒有實際的用戶在使用,所謂質量,也是自己臆想的。
工作後才發現,一個系統裡1000行代碼,可能有三分之一是為了系統質量而存在的。比如各種log ,監控,為了產品運營而增加的數據統計打點等。
除了在代碼上用盡各種措施保證質量,在研發流程上,也是極盡保證質量之事。
當時做設計,寫代碼會再三思考,考慮的特別全面,我的導師和技術總監都是這種風格。一個看似簡單需求的設計方案,他們能給你想出很多你沒有想到的特殊情況。現在看來,這個就是一般架構師和優秀架構師的一個重要區別了。
當時我的導師給我的一個目標是,架構設計要做到一切盡在掌握!有些極端的異常情況和應對措施,不一定要做,但心裏面一定要清楚,各種情況會產生什麼結果,可不可控,而不是等系統上線後,靠用戶的「測試」來發現。
這個理念,一直影響著我,後面我自己做設計的時候,也經常一遍又一遍地問自己,是不是把所有異常的情況都考慮全面了,是不是把依賴系統的各種情況都考慮到位了。。。。
我入職後第一個接觸的系統,是QQ的接入層---全部門質量要求最高的系統。
我們當時寫完代碼提交後,要一併提交一份測試用例,同時子項目負責人會再review 一遍代碼。周四作為統一上線日,灰度這周合入的新特性。(周五不上線,擔心周六出問題,處理不及時)。
這個流程在現今的網際網路行業來說,算是很重的流程了,可見當時對質量的重視程度。我也在那個時候被培養起了很深的質量意識。
項目的壓力
如此苛刻的質量要求,自然也帶來了不小的項目壓力。
代碼寫得很仔細,也很慢,寫完,測試完,自己還要review幾遍,才敢提交給項目負責人,因為擔心被項目負責人打回重改。
還有一個壓力,是來自於項目的值班制度。
那時候值班有兩種。
一種是白天的接口人。值班那天你需要處理外部其他團隊的諮詢,一些小bug 的處理,那天,你自己的任務幾乎就是沒有時間做的。
還有一種是夜間的報警值班。我們有一個專門的值班手機,組裡每個人輪流值班一天,24小時待命。手機有報警,就要起來觀察曲線,看看有沒有問題。這個很累人,特別是當晚有故障,處理到深夜之後,第二天還要正常去上班,就特別的累。
有一段時間,感覺壓力特別大,當時以為,後面十幾年的職業生涯都要這麼過了,曾陷入深深的痛苦中。
壓力最大的時期,也是成長最大的時期。
有一段時間特別難受,感覺要被壓跨了,幸好最後堅持了下來,自己的抗壓能力得到了一次質的提升。
現在回過頭來看,確實印證了那句:你覺得最艱難的時候,也是你收穫最大的時候!
單幹到團幹
還有一個我不太適應的事情,是開始做團體項目了。以前在學校,幾乎都是單幹,現在要開始跟其他同事合作項目了。合作的人裡面,有跟我一樣剛入職的同事,有工作了幾年的老員工。
當時對自己的定位不明確,老是想搶頭功。一個新的任務過來,按自己的能力,明明不能成為這個任務的第一負責人,自己非要去搶,結果也搞砸過不少的事情,這些也算是成長的代價了。
那時候,團隊實行的是系統負責人+項目制。
每個人都會負責幾個子系統,子模塊,這些系統,模塊的日常維護和一些日常小需求都由系統負責人,負責設計和實施。
對於一些比較大的業務性需求或系統性需求,則會為其起一個新的項目來推動。一個項目會有明確的開始時間和項目周期,會有固定的項目成員和明確的目標。
剛開始,被分配到一個三人的小項目組。我,一個同期入職的新人,一個工作了兩年的「前輩」。
任務分配下來後,很興奮,想好好幹一番,好好表現一番。除了花時間看文檔,熟悉代碼,在項目討論會議上,自己也想儘量表現。另一個新人似乎也感受了我的衝勁,於是對方也不甘落後,大家開始互相比拼。
本來這種良性的比拼和競爭對項目是好事,可惜兩人拼到後面,開始帶上情緒了,無論是私底下討論還是項目會議上的討論,都有種在槓的感覺。
好在最後,項目正常完成上線,沒有因為我們的槓而影響到任務本身。不過我們的leader 也覺察到了這個問題,後面在分配任務的時候,就特地的把我們給分開了。
現在想起來,那時候真的是 」學生氣「 太重,有啥好爭的。
一來,公司不是請你來表演自己的牛B的;二來,工作貢獻的衡量,也不是看你比多少人厲害,更重要的是看你做了什麼,產出了什麼。
之後自己也意識到了這個問題,慢慢調整了過來。後面再跟其他同事的合作的時候,也沒有再發生類似的情況。自己關注的焦點也從人轉移到了事情本身。
為自己的成長負責
自己在實習的兩個月的時間裡,是很受導師照顧的。實習的時候,導師隔三岔五的會跟我聊,聊我目前學的東西,也會關心我的生活情況,比如租住的房子舒不舒服,上班交通情況怎樣等生活上的問題,當時感覺特別好。
正式入職後,也慣性的以為會持續這種狀態。
但正式入職後,導師和我的溝通明顯的少了。當時以為是導師把我忘記了,有時候還特地挑些問題去問他,有一兩次,我明顯感覺到了他的不耐煩。
後面跟其他同事吃飯,才得知,導師那個時候接到了一個很重要的任務,難度大且時間趕,壓力大,周六日還經常過來加班。那個時候,我突然意識到,我已經是正式員工了,導師的真正身份是公司員工,作為我導師,也只是他在一個特定時期內的工作任務,而他還有他正式的工作。
從那個時候起,我也開始慢慢調整自己的心態,開始以一個正式員工的心態在工作和學習。自己在看項目文檔和代碼得時候,如果遇到問題,都會多看幾遍文檔和代碼,然後盡力地思考,到最後實在是搞不明白地時候,才會去請教其他的同事。
在請教其他同事的時候,也會選好時間,比如一起吃飯或者閒聊的時候,或者趁著大家有空的時候去問,不會隨便地打斷別人正在進行的工作。
後面自己做別人導師的時候,才真實地感受到,當項目壓力很大的時候,真的沒有太多地精力可以顧及自己所帶的新人。
所以,自己的成長還是要自己做主。
和諧的人際關係
我剛入職的時候,帶著很濃的」學生氣「。一個是不太願意主動地」搭訕「 別人,覺得主動地」搭訕「 老員工,有點」獻媚「的感覺;另一個是喜歡跟人槓,特別是在一些技術點上,喜歡跟人槓,無論是新人還是老人。
我印象深刻的一次。
當時,一個老員工在會議室裡給大家分享 linux 內核相關的知識。我因為在實習的時候,特地地看過這部分的代碼,而且還寫了不少的文檔,筆記,所以對這部分還比較熟悉。
我在聽他分享的過程中,發現了幾處錯誤的地方,於是在過程地不斷地打斷他,不斷地」指正「 出他的錯誤。那一刻自己還洋洋得意,以為自己很牛B,但分享結束後,我明顯地感覺到了那位老員工的尷尬和不爽。
人家辛辛苦苦準備得一場分享,結果你一個錯誤指正,又一個錯誤指正,搞得人家下不了臺,面子上也掛不住。
當時,我沒意識到這個問題,只是在分享結束後,感覺到氛圍不對。
後面,有幾次跟著他做項目,才明顯地感受到了他對我的不爽。他沒有明顯的要整我或怎樣,就是跟我保持了一定的距離,但單就這種距離感,已經讓我很難受了。
我不能說他心胸狹隘,確實是我的行為先讓人不爽,他後面對我保持冷漠,不給我提供幫助,也沒錯,因為幫助我也不是他的義務。但沒有了他的幫助,我工作的開展卻遇到不少的困難。
後來,我開始學會顧及別人的感受,跟其他同事保持良好的關係。
融洽的人際關係,不但使得工作,生活更加開心,別人也更加願意主動幫助自己,使自己的工作能更好的開展。
結語
第一年的正式工作,讓我真正實現了一個學生,一個業餘程式設計師到職業程式設計師的蛻變。開始懂得了為 系統的質量負責, 在實際工作中鍛鍊自己的抗壓能力,學會了團隊合作,知道了自己的成長要自己做主,也學會了,如何可以保持一份和諧融洽的人際關係。那一年的成長很大,收穫很多,也為自己後面的發展打下了堅實的基礎。