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

如何成為一名合格的KaihongOS南向驅(qū)動開發(fā)工程師
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
工程師經(jīng)驗分享:社區(qū)之星 趙云 沉著穩(wěn)定才能做好技術(shù)

如何成為一名嵌入式軟件工程師?
學(xué)硬件好還是學(xué)軟件好?

一名硬件工程師的獨白:我們?yōu)楹慰傇?amp;quot;用愛發(fā)電"?
嵌入式軟件工程師就業(yè)好不好?
如何成為嵌入式開發(fā)工程師?
如何成為一名合格的南向驅(qū)動開發(fā)工程師
如何成為一名合格的北向應(yīng)用開發(fā)工程師

不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技

評論