編者按:從高校校園進(jìn)入職場(chǎng),環(huán)境的轉換通常也意味著(zhù)生存規則的改變。我們在學(xué)校里所信奉和追求的那些在職場(chǎng)環(huán)境中是否適用?工作之后,是否只要足夠努力、悶頭工作就能像在學(xué)校一樣拿到最好的成績(jì)?本文作者 Mitchell Irvin 分享了他進(jìn)入軟件工程工作兩年之后的所思所想,其中并不僅僅適用于軟件工程師,對于告別校園、初入職場(chǎng)甚至有過(guò)多年工作經(jīng)驗的“老手”都有很大的借鑒意義。
接下來(lái)你會(huì )看到我的一些個(gè)人職業(yè)經(jīng)歷,包括成為軟件工程師以及工作兩年之后學(xué)到的一些經(jīng)驗、教訓和其中存在的一些遺憾之處。
2015 年,我還是佛羅里達大學(xué)的一名學(xué)生。當時(shí),我研修了一門(mén)可能是整個(gè)學(xué)院最難的課程,當時(shí)負責授課的教授在課程展開(kāi)的那個(gè)學(xué)期內會(huì )分配給學(xué)生多個(gè)團隊項目。在每個(gè)項目結束時(shí),這名教授會(huì )單獨對每位學(xué)生的表現進(jìn)行評估。然后在分配下一個(gè)團隊項目時(shí),他會(huì )將之前項目任務(wù)中表現最優(yōu)秀的學(xué)生整合到一個(gè)組,表現最差的學(xué)生會(huì )繼續留在他們原來(lái)的組。這樣到學(xué)期結束時(shí),班里的學(xué)生要么是竭盡全力并且成功進(jìn)入了一個(gè)強大的團隊,要么是最終待在了一個(gè)表現差勁的團隊。這樣的分配與激勵方式很美妙,強者不必去忍受弱者或者是為弱者買(mǎi)單,而弱者可以選擇讓自己變得強大,否則就只能面對失敗。用“唯才是用”(meritocracy,也有譯為優(yōu)績(jì)制度,指應該根據才能、努力以及成果來(lái)評定一個(gè)人,而不是根據性別、種族、年齡或財富等其它因素)一詞來(lái)形容這一環(huán)境系統可謂最恰當不過(guò),這樣的系統獎勵的是那些最有才華的學(xué)生,而那些不努力的學(xué)生也必須自食其力,自己承擔后果和責任,我真的非常喜歡這種環(huán)境系統。
一年之后,我畢業(yè)了。當時(shí)的我干勁十足、精力滿(mǎn)滿(mǎn)、胸懷大志,十分理想主義地準備在我過(guò)去四年學(xué)習的專(zhuān)業(yè)領(lǐng)域內大干一場(chǎng)。實(shí)習結束之后,我收到了來(lái)自一家大型企業(yè)軟件工程師職位的邀請,我接受了這一職位,內心渴望自己能夠成為一名優(yōu)秀的軟件工程師。
開(kāi)始我參與了一個(gè)項目,這一項目嚴重缺乏相關(guān)支持資源。我們負責構建一個(gè) Web 應用程序,這一應用程序的功能與大多數 Web 應用程序的功能無(wú)異:公開(kāi)一些數據并且可以讓用戶(hù)操作這些數據。我和其他兩位工程師一起負責開(kāi)發(fā)工作,另有一位質(zhì)量控制工程師負責測試方面的工作。僅僅幾個(gè)月的時(shí)間我就開(kāi)始認為自己是這個(gè)團隊中拱心石般的角色,負責撐起一切。用戶(hù)需要我們去構建一個(gè)新功能嗎?沒(méi)問(wèn)題,我能搞定。需要有人去促成一下回顧會(huì )議?當然可以。很快我就發(fā)現自己所處的是一個(gè)沒(méi)有我的努力就毫無(wú)進(jìn)展的環(huán)境體系。就這樣,在我 22 歲那年,我在一家財富 25 強企業(yè)扮演起了首席工程師的角色。
但是問(wèn)題在于,盡管我在近一年的時(shí)間里一直承擔著(zhù)團隊的絕大部分工作任務(wù),我所得到的報酬仍然只是團隊里其他經(jīng)驗豐富成員的一小部分。我沒(méi)有得到“A”的學(xué)分成績(jì),他們也不是“F”,我沒(méi)有分到股票期權福利,休假時(shí)間也更少了。我不久就意識到了這些,之后很快我的挫敗感就明顯地表露了出來(lái)。當與那些不熟悉該軟件的工程師合作時(shí),我很難再對他們保持耐心,很難再展示出樂(lè )于助人的態(tài)度。我的冷漠感不斷增長(cháng),工作效率急劇下降。如果我與另外一位工程師合作負責一項工作,那我保持與他的工作步調統一(即便可能只是我原來(lái)工作效率的 5%),我也仍然算是做了我的工作,對吧?
我就是在這樣的狀態(tài)中度過(guò)了這一項目最后三個(gè)月的工時(shí)間,項目完成的并不算從容,團隊士氣低落,沒(méi)有人為過(guò)去這 14 個(gè)月的“努力”終于開(kāi)花結果而興奮。更重要的是,我知道其中一些隊友不會(huì )再為將來(lái)可能與我合作而心存期待。我這才開(kāi)始意識到我對于工作環(huán)境的態(tài)度已經(jīng)對我以及周?chē)年犛旬a(chǎn)生了不利影響。
幾個(gè)星期之后,我發(fā)起了一項調查,關(guān)于該如何讓自己成為一名更好的隊友這一問(wèn)題而尋求其他隊友的反饋。最終的調查結果有一點(diǎn)非常明確,那就是個(gè)人表現并不能決定一切。在我開(kāi)始職業(yè)生涯之后,我想當然地認為工作場(chǎng)所也是采用 “唯才是用”的分配和選拔標準,就像我在大學(xué)校園里的那門(mén)課程一樣,強者會(huì )得到應有的獎勵而弱者也會(huì )為他們自己的行為買(mǎi)單。正是這種看法影響到了我與他人合作的能力,使我不再感謝他人的貢獻和付出,喪失了謙虛學(xué)習和耐心指導他人的品質(zhì),團隊其他成員對我的印象也成為了“過(guò)于看重個(gè)人表現”。
我學(xué)到的第一課:你的技術(shù)實(shí)力(硬技能)很重要,但是你與同事的關(guān)系(人際關(guān)系/領(lǐng)導技能)與之同等重要。
要想成為一名出色的軟件工程師,你需要用多年的時(shí)間不斷磨練自己的專(zhuān)業(yè)技能。隨著(zhù)時(shí)間的推移,你會(huì )進(jìn)步、會(huì )遇到瓶頸、會(huì )上下沉浮,或許也會(huì )遭遇鄧寧-克魯格效應(Dunning-Kruger effect,能力欠缺者們沉浸在自我營(yíng)造的虛幻的優(yōu)勢之中,常常高估自己的能力水平,卻無(wú)法客觀(guān)評價(jià)他人的能力)所描述的情節。在這過(guò)程中,你會(huì )犯錯誤,會(huì )吸取他人的經(jīng)驗教訓,也會(huì )分享自己的所學(xué)所思。毫無(wú)疑問(wèn),你必須要具備強大的專(zhuān)業(yè)技術(shù)能力,但是如果這就是你唯一的專(zhuān)長(cháng),那你很快就會(huì )發(fā)現自己處于一個(gè)很不利的境地。如果你的目標是成為一名最優(yōu)秀的軟件工程師,那在通往這一目標的旅程上你必須也要讓自己成為最優(yōu)秀的隊友(也可能是領(lǐng)導者),而這首先就意味著(zhù)你要看重他人的付出。
九月的一個(gè)上午,兩名新簽約的員工加入了我們團隊。因為我們團隊一直以來(lái)都以二人配對合作編程為安排準則,于是當天我就和其中一位新加入的隊員一起開(kāi)啟了配對編程工作。在接下來(lái)的七、八個(gè)小時(shí)里,這名工程師,我們暫且稱(chēng)呼他為 Bob,不停地問(wèn)我各種問(wèn)題。在我們開(kāi)發(fā)一個(gè)新功能時(shí),Bob 問(wèn)了一些關(guān)于我們所用的語(yǔ)言和框架方面的問(wèn)題。在我們打磨具體的業(yè)務(wù)規則細節時(shí),Bob 又問(wèn)了我關(guān)于產(chǎn)品以及我們正在解決的問(wèn)題方面的信息。那一天,Bob 并沒(méi)有寫(xiě)多少代碼。說(shuō)實(shí)話(huà),到下班時(shí),我對 Bob 的表現有些失望。我本來(lái)對于他作為工程師的專(zhuān)業(yè)技能有著(zhù)很高的期望,也滿(mǎn)心歡喜地以為自己可以從他身上學(xué)到不少東西。
第二天,Bob 和我一起負責編寫(xiě)另一個(gè)產(chǎn)品功能。我寫(xiě)出了該功能的初始測試用例,并進(jìn)行試運行,當屏幕上所有的檢查標記都顯示準確無(wú)誤之后,我不禁露出了微笑。Bob 在一旁看著(zhù),面露沉思之意。在我的測試結束之后,他使用這一測試方法,并且改變了其中一兩行的代碼。我開(kāi)始表示反對,“等等!你這樣做不對?!彼c(diǎn)點(diǎn)頭表示同意,然后繼續運行我們的測試用例。這樣所有測試都以通過(guò)告終,令人驚喜!
幾周過(guò)后,Bob 和我依然在這樣配對合作。在我們工作過(guò)程中,他依然會(huì )不斷地提出問(wèn)題。在我主導工作時(shí),他會(huì )提出一些建議,在他認為合適的時(shí)候,他也會(huì )介入短暫地占據主導地位。我問(wèn)了他幾個(gè)關(guān)于我們所用框架和語(yǔ)言?xún)炔抗ぷ髂J降膯?wèn)題,除此之外,他還向我介紹了一款我并不熟悉的 OO 設計模型。他對域名和業(yè)務(wù)問(wèn)題提出的一些疑問(wèn)讓我發(fā)現了軟件中的漏洞所在,他找出了我們代碼中所存在的錯誤和缺陷,而這些本來(lái)是我根本發(fā)現不了的問(wèn)題。但現在,我也發(fā)現了這些漏洞,清晰無(wú)比的存在。日子一天天過(guò)去,Bob 和我解決了他發(fā)現的這些漏洞,對軟件設計進(jìn)行了加固和防護,大大改善了業(yè)務(wù)問(wèn)題和我們所寫(xiě)的代碼之間的關(guān)系。
在我們團隊合作的整個(gè)交流過(guò)程之中,當 Bob 認為其他人犯錯時(shí),他并沒(méi)有強行去讓他人接受自己的觀(guān)點(diǎn),也沒(méi)有偏執地想要去在與他人的辯論中占據上風(fēng)。但是他不停地提出問(wèn)題,在別人回答這些問(wèn)題的過(guò)程中,他們經(jīng)常會(huì )發(fā)現自己也存在 Bob 提出的這些疑問(wèn)。在于軟件相關(guān)的幾乎所有的決策過(guò)程中,我們幾乎都會(huì )發(fā)現 Bob 所提出的問(wèn)題的蹤影。Bob 并沒(méi)有就自己對團隊的貢獻而四處宣揚,也沒(méi)有拿自己作為工程師的專(zhuān)業(yè)水平去壓別人。他似乎并不介意自己在配對合作過(guò)程中有多久的時(shí)間是自己掌控鍵盤(pán),占據主導地位??梢哉f(shuō)他是我合作過(guò)的最優(yōu)秀的一位工程師。
我學(xué)到的第二課:你影響他人的能力取決于你能否幫助他人、引導他人靠他們自己來(lái)推導出與你所做的相同的結論。
Bob 幾乎從不說(shuō)“我們就應該這樣做,因為……”,他會(huì )就你們目前所考慮的一些想法提出幾個(gè)問(wèn)題,到你們討論的最后,你會(huì )發(fā)現絕大多數情況下,他的問(wèn)題都會(huì )引導其他人與他達成共識。Bob 并不是自己提出什么完美無(wú)暇的想法,通常情況下,他都是先提出幾個(gè)問(wèn)題,然后得到其他人的回答,其中一個(gè)問(wèn)題的答案通常會(huì )實(shí)現這樣的效果,就是讓他說(shuō)出“這是一個(gè)好點(diǎn)子,我們繼續探究一下”類(lèi)似這樣的話(huà)。但是,就是這樣的方式讓他對我們的軟件質(zhì)量產(chǎn)生了最積極的影響,因為他擁有著(zhù)影響我們團隊成員推理過(guò)程和方向的強大能力。但是,他實(shí)現這一目的并不是通過(guò)直接分享他自己的想法,更多的是通過(guò)提問(wèn)的方式來(lái)實(shí)現。
我學(xué)到的第三課:在開(kāi)始考慮一個(gè)問(wèn)題的解決方案之前,先提出許多的問(wèn)題,這是一位優(yōu)秀的問(wèn)題解決者的標志。
作為軟件工程師,我們的核心工作就是解決問(wèn)題。學(xué)習新東西是一個(gè)需要解決的問(wèn)題,編碼是一個(gè)需要解決的問(wèn)題,溝通也是一個(gè)需要解決的問(wèn)題。優(yōu)秀的軟件工程師就是優(yōu)秀的問(wèn)題解決者,而要解決問(wèn)題的一個(gè)好辦法就是通過(guò)提出問(wèn)題來(lái)理解問(wèn)題。提出問(wèn)題表明你尊重他人的想法,提出問(wèn)題可以幫助你更好的理解事物,提出問(wèn)題能夠讓你有更大的可能性得出獲得他人認知的答案。最能提出解決方案的人往往就是那些愿意花時(shí)間去理解問(wèn)題的那些人。
關(guān)于 Bob 的故事還有一點(diǎn),他在技術(shù)方面很有天賦,完全可以成為團隊主力和領(lǐng)軍人物。如果他愿意,我相信他都可以成為一名設計師,只是他沒(méi)有那個(gè)想法。Bob 喜歡寫(xiě)代碼,他喜歡做域名分析,喜歡設計業(yè)務(wù)對象,喜歡編寫(xiě)測試套件,喜歡交付高質(zhì)量的軟件。
回首我做軟件工程師的前兩年可以說(shuō)是一趟充滿(mǎn)冒險的旅程。我不停地構建軟件、破壞軟件以及修復軟件。我參加了好多無(wú)聊的會(huì )議,無(wú)聊到你真的可以趴在桌上睡著(zhù)的那種程度。我悶頭扎入工作的海洋,體會(huì )著(zhù)其中的酸甜苦辣。
回看最開(kāi)始的那兩年的軟件工程師時(shí)光,我發(fā)現自己有以下幾點(diǎn)需要改進(jìn):
我將工作放在了人之上。我們工作(產(chǎn)品)的問(wèn)題總是能夠自己解決,但是與團隊其他成員的關(guān)系要維護和修復起來(lái)顯然難度指數高很多。
我將更多地時(shí)間用來(lái)環(huán)顧四周,而不是向上看,向內看。只是一味地看別人在哪些方面可以做的更好,挑別人的問(wèn)題,并不能讓自己成為更好的隊友。只有認識到自己的弱點(diǎn)和優(yōu)勢,你才有機會(huì )變得更好。
在應該聆聽(tīng)的時(shí)候選擇了說(shuō)話(huà)。只是一味滔滔不絕的講話(huà)并不會(huì )讓自己變得更聰明,也不會(huì )喚起他人的共鳴。
在我遇到挫折感覺(jué)沮喪的時(shí)候并沒(méi)有與隊友和領(lǐng)導開(kāi)誠布公的交流和溝通。如果他人根本就不知道你的問(wèn)題所在,那他們自然也幫不上你。
如果你非??粗啬愕墓ぷ鞑⑶曳浅E?,那你可能會(huì )成為他人的絆腳石,可能會(huì )冒犯到他人,也可能會(huì )時(shí)常遭遇失敗的挫折。無(wú)論怎樣,請一定記住將人放在第一位,而不是工作。要勇于承擔責任,誠懇的道歉,不斷進(jìn)取。能否做到這些決定著(zhù)你是只能做一名普通的軟件工程師,還是成為行業(yè)的領(lǐng)導者。
在我接下來(lái)沿著(zhù)職業(yè)生涯不斷前進(jìn)的道路上,以下幾點(diǎn)需要我時(shí)刻謹記:
目標:成為最優(yōu)秀的軟件工程師,不積跬步無(wú)以至千里。
目標:成為最好的隊友。如果我不能積極地處理好團隊關(guān)系,那成為優(yōu)秀的軟件工程師這事就無(wú)從談起。團隊凝聚力第一,個(gè)人才能其次。
目標:分清主次。雖然軟件對我來(lái)說(shuō)很重要,但我的信仰、我的婚姻、我的友情以及我的身體健康比軟件還要重要。想清楚對你來(lái)說(shuō)最重要的是什么,這一點(diǎn)很重要。我不會(huì )為了讓自己工作更高效而犧牲這其中任何一樣。
原文鏈接:https://blog.usejournal.com/what-i-learned-in-my-first-two-years-as-a-software-engineer-4e374fdcf0fd
編譯組出品。
本文翻譯自 https://blog.usejournal.com/what-i-learned-in-my-first-two-years-as-a-software-engineer-4e374fdcf0fd,原文鏈接。如若轉載請注明出處。
聯(lián)系客服