作者:syntax_error
https://www.nowcoder.com/discuss/351805

先簡單交代一下背景吧,某不知名985的本碩,17年畢業加入滴滴,今年下半年跳槽到了頭條,一直從事后端研發相關的作業,
之前沒有實習經歷,算是兩年半的作業經驗吧,這兩年半之間完成了一次晉升,換了一家公司,有過開心滿足的時光,也有過迷茫掙扎的日子,不過還算順利地從一只職場小菜鳥轉變為了一名資深劃水員,
在這個程序中,總結出了一些還算實用的劃水經驗,有些是自己領悟到的,有些是跟別人交流學到的,在這里跟大家分享一下,
學會深入思考,總結沉淀
我想說的第一條就是要學會深入思考,總結沉淀,這是我覺得最重要也是最有意義的一件事,
?先來說深入思考,在程式員這個圈子里,常能聽到一些言論:我這個作業一點技術含量都沒有,每天就CRUD,再寫寫if-else,這TM能讓我學到什么東西?
拋開一部分調侃和戲謔的論調不談,這可能確實是一部分同學的真實想法,至少曾經的我,就這么認為過,
后來隨著作業經驗的積累,加上和一些高level的同學交流探討之后,我發現這個想法其實是非常錯誤的,之所以出現沒什么可學的這樣的看法,基本上是思維懶惰的結果,
任何一件看起來很不起眼的小事,只要進行深入思考,稍微縱向挖深或者橫向拓寬一下,都是足以讓人沉溺的知識海洋,
?舉一個例子,某次有個同學跟我說,這周有個服務OOM了,查了一周發現有個地方defer寫的有問題,改了幾行代碼上線修復了,周報都沒法寫,
可能大家也遇到過這樣的場景,還算是有一定的代表性,其實就查bug這件事來說,是一個發現問題,排查問題,解決問題的程序,包含了觸發、定位、復現、根因、修復、復盤等諸多步驟,
花了一周來做這件事,一定有不斷嘗試與糾錯的程序,這里面其實就有很多思考的空間,比如說定位,如何縮小范圍的?走了哪些彎路?用了哪些分析工具?
比如說根因,可以研究的點起碼有linux的OOM,k8s的OOM,go的記憶體管理,defer機制,函式閉包的原理等等,如果這些真的都不涉及,仍然花了一周時間做這件事,那復盤應該會有很多思考,提出來幾十個WHY沒問題吧…
?再來說下總結沉淀,這個我覺得也是大多數程式員比較欠缺的地方,只顧埋頭干活,可以把一件事做的很好,但是幾乎從來不做抽象總結,以至于作業好幾年了,所掌握的知識還是零星的幾點,不成體系,不僅容易遺忘,而且造成自己視野比較窄,看問題比較局限,
適時地做一些總結沉淀是很重要的,這是一個從術到道的程序,會讓自己看問題的角度更廣,層次更高,遇到同型別的問題,可以按照總結好的方法論,系統化、層次化地推進和解決,
?還是舉一個例子,做后臺服務,今天優化了1G記憶體,明天優化了50%的讀寫耗時,是不是可以做一下性能優化的總結?
比如說在應用層,可以管理服務對接的應用方,梳理他們訪問的合理性;在架構層,可以做快取、預處理、讀寫分離、異步、并行等等;在代碼層,可以做的事情更多了,資源池化、物件復用、無鎖化設計、大key拆分、延遲處理、編碼壓縮、gc調優還有各種語言相關的高性能實踐…
等下次再遇到需要性能優化的場景,一整套思路立馬就能套用過來了,剩下的就是工具和實操的事兒了,大家也可以關注微信公眾號:Java技術堆疊,在后臺回復:架構,可以獲取我整理的 N 篇 Java 架構教程,都是干貨,
?還有的同學說了,我就每天跟PM撕撕逼,做做需求,也不做性能優化啊,先不討論是否可以搞性能優化,單就做業務需求來講,也有可以總結的地方,比如說,如何做系統建設?系統核心能力,系統邊界,系統瓶頸,服務分層拆分,服務治理這些問題有思考過嗎?
每天跟PM討論需求,那作為技術同學該如何培養產品思維,引導產品走向,如何做到架構先行于業務,這些問題也是可以思考和總結的吧,就想一下,連接手維護別人爛代碼這種蛋疼的事情,都能讓Martin Fowler整出來一套重構理論,還顯得那么高大上,我們確實也沒啥必要對自己的作業妄自菲薄…
?所以說學習和成長是一個自驅的程序,如果覺得沒什么可學的,大概率并不是真的沒什么可學的,而是因為自己太懶了,不僅是行動上太懶了,思維上也太懶了,
?可以多寫技術文章,多分享,強迫自己去思考和總結,畢竟如果文章深度不夠,大家也不好意思公開分享,說到分享,大家可以關注微信公眾號:Java技術堆疊,在后臺回復:Java,可以獲取我寫的過的 N 篇 Java 技術教程,都是干貨,

積極學習,保持技術熱情
?最近兩年在互聯網圈里廣泛傳播的一種焦慮論叫做35歲程式員現象,大意是說程式員這個行業干到35歲就基本等著被裁員了,程式員究竟能干多少年?這篇推薦大家看下,
不可否認,互聯網行業在這一點上確實不如公務員等體制內職業,但是這個問題里35歲程式員并不是絕對生理意義上的35歲,應該是指那些作業十幾年和作業兩三年沒什么太大區別的程式員,
后面的作業基本是在吃老本,沒有主動學習與充電,35歲和25歲差不多,而且沒有了25歲時對學習成長的渴望,反而添了家庭生活的諸多瑣事,薪資要求往往也較高,在企業看來這確實是沒什么競爭力,
?而如果我們積極學習,保持技術能力、知識儲備與作業年限成正比,這到了35歲哪還有什么焦慮呢,這樣的大牛我覺得應該也是各大公司搶著要吧?但是學習這件事,其實是一個反人類的程序,這就需要我們強迫自己跳出自己的安逸區,主動學習,保持技術熱情,
在滴滴時有一句話大概是,主動跳出自己的舒適區,感到掙扎與壓力的時候,往往是黎明前的黑暗,那才是成長最快的時候,相反如果感覺自己每天都過得很安逸,作業只是在混時長,那可能真的是溫水煮青蛙了,
?剛畢業的這段時間,往往空閑時間還比較多,正是努力學習技術的好時候,借助這段時間夯實基礎,培養出良好的學習習慣,保持積極的學習態度,應該是受益終身的,至于如何高效率學習,網上有很多大牛寫這樣的帖子,到了公司后內網也能找到很多這樣的分享,我就不多談了,
?可以加入學習小組和技術社區,公司內和公司外的都可以,關注前沿技術,
?主動承擔,及時交流反饋
?前兩潭訓是從個人的角度出發來說的,希望大家可以提升個人能力,保持核心競爭力,但從公司角度來講,公司招聘員工入職,最重要的是讓員工創造出業務價值,為公司服務,
雖然對于校招生一般都會有一定的培養體系,但實際上公司確實沒有幫助我們成長的義務,而在能為公司辦成事,創造價值這一點上,我覺得最重要的兩個字就是主動,主動承擔任務,主動溝通交流,主動推動專案進展,主動協調資源,主動向上反饋,主動創造影響力等等,
我當初剛入職的時候,基本就是leader給分配什么任務就把本職作業做好,然后就干自己的事了,幾乎從來不主動去跟別人交流或者主動去思考些能幫助專案發展的點子,自以為把本職作業保質保量完成就行了,后來發現這么做其實是非常不夠的,這只是最基本的要求,
而有些同學的做法則是leader只需要同步一下最近要做什么方向,下面的一系列事情基本不需要leader操心了 ,這樣的同學我是leader我也喜歡啊,入職后經常會聽到的一個詞叫owner意識,大概就是這個意思吧,
?在這個程序中,另外很重要的一點就是及時向上溝通反饋,專案進展不順利,遇到什么問題,及時跟leader同步,技術方案拿捏不準可以跟leader探討,一些資源協調不了可以找leader幫忙,不要有太多顧忌,認為這些會太麻煩,leader其實就是干這個事的,,
如果專案進展比較順利,確實也不需要leader介入,那也需要及時把專案的進度,取得的收益及時反饋,自己有什么想法也提出來探討,問問leader對當前進展的建議,還有哪些地方需要改進,消除資訊誤差,
做這些事一方面是合理利用leader的各種資源,另一方面也可以讓leader了解到自己的作業量,對專案整體有所把控,畢竟leader也有leader,也是要匯報的,可能算是大家比較反感的向上管理吧,有內味了,這個其實我也做得不好,但是最基本的一點,不要接了一個任務悶著頭干活甚至與世隔絕了,一個月了也沒跟leader同步過,想著憋個大招之類的,那基本涼涼,
?一定要主動,可以先從強迫自己在各種公開場合發言開始,有問題或想法及時one-one

?除了以上幾點,還有一些小點我覺得也是比較重要的,列在下面:?
第一件事建立信任
?無論是校招還是社招,剛入職的第一件事是非常重要的,直接決定了leader和同事對自己的第一印象,入職后要做的第一件事一定要做好,最起碼的要順利完成而且不能出線上事故,這件事的目的就是為了建立信任,讓團隊覺得自己起碼是靠譜的,
如果這件事做得比較好,后面一路都會比較順利,如果這件事就搞雜了,可能有的leader還會給第二次機會,再搞不好,后面就很難了,這一條對于社招來說更為重要,
?而剛入職,公司技術堆疊不熟練,業務繁雜很難理清什么頭緒,壓力確實比較大,這時候一方面需要自己投入更多的精力,另一方面要多跟組內的同學交流,不懂就問,
最有效率的學習方式,我覺得不是什么看書啊學習視頻啊,而是直接去找對應的人聊,讓別人講一遍自己基本就全懂了,這效率比看檔案看代碼快多了,不僅省去了過濾無用資訊的程序,還了解到了業務的演變歷史,當然,這需要一定的溝通技巧,畢竟同事們也都很忙,
?臉皮要厚一點,多找人聊,快速融入,最忌諱有問題也不說,自己把自己孤立起來,
超出預期
?超出預期這個詞的外延范圍很廣,比如leader讓去做個值周,解答用戶群里大家的問題,結果不僅解答了大家的問題,還收集了這些問題進行分類,進而做了一個智能問答機器人解放了值周的人力,這可以算超出預期,比如leader讓給運營做一個小工具,結果建設了一系列的工具甚至發展成了一個平臺,成為了一個完整的專案,這也算超出預期,
超出預期要求我們有把事情做大的能力,也就是想到了leader沒想到的地方,并且創造了實際價值,拿到了業務收益,這個能力其實也比較重要,在作業中發現,有的人能把一個小盤子越做越大,而有的人恰好反之,那么那些有創新能力,經常超出預期的同學發展空間顯然就更大一點,
?這塊其實比較看個人能力,暫時沒想到什么太好的捷徑,多想一步吧,

體系化思考,系統化建設
?這句話是晉升時候總結出來的,大意就是做系統建設要有全域視野,不要局限于某一個小點,應該有良好的規劃能力和清晰的演進藍圖,比如,今天加了一個監控,明天加一個報警,這些事不應該成為一個個孤島,而是屬于穩定性建設一期其中的一小步,
這一期穩定性建設要做的作業是報警配置和監控梳理,包括機器監控、系統監控、業務監控、資料監控等,預期能拿到XXX的收益,
這個作業還有后續的roadmap,穩定性建設二期要做容量規劃,接入壓測,三期要做降級演練,多活容災,四期要做…給人的感覺就是這個人思考非常全面,辦事有體系有規劃,
?平時積極總結沉淀,多跟別人交流,形成方法論,?
提升自己的軟素質能力
?這里的軟素質能力其實想說的就是PPT、溝通、表達、時間管理、設計、檔案等方面的能力,說實話,我覺得我當時能晉升就是因為PPT做的好了一點…可能大家平時對這些能力都不怎么關注,以前我也不重視,覺得比較簡單,用時候直接上就行了,但事實可能并不像想象得那樣簡單,
比如晉升時候PPT+演講+答辯這個作業,其實有很多細節的思考在里面,內容如何選取,排版怎么設計,怎樣引導聽眾的情緒,如何回答評委的問題等等,
晉升時候我見過很多同學PPT內容編排雜亂無章,演講程序也不流暢自然,雖然確實做了很多實際作業,但在表達上欠缺了很多,屬于會做不會說,如果再遇到不了解實際情況的外部門評委,吃虧是可以預見的,
?公司內網一般都會有一些軟素質培訓課程,可以找一些場合刻意訓練,
?以上都是這些分享還都算比較偉光正,但是社會吧也不全是那么美好的,,下面這些內容有負能量傾向,三觀特別正的同學以及觀感不適者建議跳過,
拍馬屁是真的香
?拍馬屁這東西入職前我是很反感的,我最初想加入互聯網公司的原因就是覺得互聯網公司的人情世故沒那么多,事實證明,我錯了…
入職前幾天,部門群里大leader發了一條訊息,后面幾十條帶著大拇指的訊息立馬跟上,學習了,點贊,真不錯,優秀,那場面,說是紅旗招展鑼鼓喧天鞭炮齊鳴一點也不過分,
除了驚嘆大家超強的資訊接收能力和處理速度外,更進一步我還發現,連拍馬屁都是有隊形的,一級部門leader發訊息,幾個二級部門leader跟上,后面各組長跟上,最后是大家的狂歡,讓我一度懷疑拍馬屁的速度就決定了職業生涯的發展前景(沒錯,現在我已經不懷疑了),
?坦誠地說,我到現在也沒習慣在群里拍馬屁,但也不反感了,可以說把這個事當成一樂了,倒不是說我沒有那個口才和能力(事實上也不需要什么口才,大家都簡單直接),在某些場合,為活躍氣氛的需要,我也能小嘴兒抹了蜜,甚至能把古詩文彩虹屁給leader安排上,而是我發現我的直屬leader也不怎么在群里拍馬屁,所以我表面上不公開拍馬屁其實屬于暗地里事實上迎合了leader的喜好…
?但是拍馬屁這個事只要掌握好度,整體來說還是香的,最多是沒用,至少不會有什么壞處嘛,大家能力都差不多,每一次在群里拍馬屁的機會就是一次露臉的機會,按某個同事的說法,這就叫打造個人技術影響力…
?想舔就舔,不想舔也沒必要酸別人,Respect Greatness,
?永不缺席的撕逼甩鍋實戰 ? 有人的地方,就有江湖,雖然搞技術的大多城府也不深,但撕逼甩鍋邀功搶活這些鬧心的事兒基本也不會缺席,甚至我還見到過公開群發郵件撕逼的…
這部分話題涉及到一些敏感資訊就不多說了,而且我們低職級的遇到這些事兒的機會也不會太多,只是給大家提個醒,在作業的時候遲早都會吃到這方面的瓜,到時候留個心眼,
?稍微注意一下,咱不會去欺負別人,但也不能輕易讓別人給欺負了,

不要被畫餅蒙蔽了雙眼
?說實話,我個人是比較反感灌雞湯、打雞血、談夢想、講奮斗這一類行為的,這一套***治還在大行其道,真不知道是該可笑還是可悲,當然,這些詞本身并沒有什么問題,但是這些東西應該是自驅的,而不應該成為外界的一種強push,
『我必須努力奮斗』這個句式我覺得是正常的,但是『你必須努力奮斗』這種話多少感覺有點詭異,努力奮斗所以讓公司的股東們發家致富?尤其在錢沒給夠的情況下,這些行為無異于耍流氓,
我們需要對leader的這些畫餅操作保持清醒的認知,理性分析,作出決策,比如感覺錢沒給夠(或者職級太低,同理)的時候,可能有以下幾種情況:
?leader并沒有注意到你薪資較低這一事實
?leader知道這個事實,但是不知道你有多強烈的漲薪需求
?leader知道你有漲薪的需求,但他覺得你能力還不夠
?eader知道你有漲薪的需求,能力也夠,但是他不想給你漲
?leader想給你漲,也向上反饋和爭取了,但是沒有資源
?這時候我們需要做的是向上反饋,跟leader溝通確認,如果是1和2,那么通過溝通可以消除資訊誤差,如果是3,需要分情況討論,如果是4和5,已經可以考慮撤退了,
對于這些事兒,也沒必要抱怨,抱怨解決不了任何問題,我們要做的就是努力提升好個人能力,保持個人競爭力,等一個合適的時機,跳槽就完事了,
?時刻準備著,技術在手就沒什么可怕的,哪天干得不爽了直接跳槽,?
學會包裝
?這一條說白了就是,要會吹,忘了從哪兒看到的了,能說、會寫、善做是對職場人的三大要求,能說是很重要的,能說才能要來專案,拉來資源,招來人,
同樣一件事,不同的人能說出來完全不一樣的效果,比如我做了個小工具上線了,我就只能說出來基本事實,而讓leader描述一下,這就成了,打造了XXX的工具抓手,改進了XXX的完整生態,形成了XXX的業務倍訓,老哥,我服了,硬幣全給你還不行嘛,
據我的觀察,每個互聯網公司都有這么幾個詞,抓手、生態、倍訓、拉齊、梳理、迭代、owner意識等等等等,我們需要做的就是熟讀并背誦全文,啊不,是牢記并熟練使用,
?這是對事情的包裝,對人的包裝也是一樣的,尤其是在晉升和面試這樣的應試型場合,特點是流程短一錘子買賣,包裝顯得尤為重要,
晉升和面試這里就不展開說了,這里面的道和術太多了,,關注微信公眾號:Java技術堆疊,在后臺回復:面試,可以獲取我整理的 N 篇 Java 面試題干貨,
下面的場景提煉自面試程序中和某公司面試官的談話,大家可以感受一下:
我們背后是一個四五百億美金的市場…
我負責過每天千億級別訪問量的系統…
作業兩年能達到這個程度挺不錯的…
貴司技術氛圍挺好的,業務發展前景也很廣闊…
啊,彼此彼此…
嗯,久仰久仰…
人生如戲,全靠演技,
?可以多看leader的PPT,多聽老板的向上匯報和宣講會,
選擇和努力哪個更重要?
?這還用問么,當然是選擇,在完美的選擇面前,努力顯得一文不值,我有個多年沒聯系的高中同學今年已經在時代廣場敲鐘了…
但是這樣的案例太少了,做出完美選擇的隨機成本太高,不確定性太大,對于大多數剛畢業的同學,對行業的判斷力還不夠成熟,對自身能力和創業難度把握得也不夠精準,此時拉幾個人去創業,顯得風險太高,
我覺得更為穩妥的一條路是,先加入規模稍大一點的公司,找一個好leader,抱好大腿,提升自己的個人能力,好平臺加上大腿,再加上個人努力,這個起飛速度已經可以了,等后面積累了一定人脈和資金,深刻理解了市場和需求,對自己有信心了,可以再去考慮創業的事,
本來還想分享一些生活方面的故事,發現已經這么長了,那就先這樣叭,上面寫的一些總結和建議我自己做的也不是很好,還需要繼續加油,和大家共勉,
另外,其中某些觀點,由于個人視角的局限性也不保證是普適和正確的,可能再作業幾年這些觀點也會發生改變,歡迎大家跟我交流~(甩鍋成功)
最后祝大家都能找到心儀的作業,快樂作業,幸福生活,廣闊天地,大有作為,
推薦去我的博客閱讀更多:
1.Java JVM、集合、多執行緒、新特性系列教程
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
4.Java、后端、架構、阿里巴巴等大廠最新面試題
覺得不錯,別忘了點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/179620.html
標籤:Java
