有一些人雖然工作了很多年,但工作表現(xiàn)就像剛?cè)胄械男氯恕K麄儙缀醪粚W(xué)習(xí)軟件開(kāi)發(fā)的基礎(chǔ)知識(shí) 。除了最初幾年有所成長(zhǎng),后期一直停滯不前,而且他們不明白為什么。 與此同時(shí),我也曾與一些只有幾年工作經(jīng)驗(yàn)的開(kāi)發(fā)人員共事,他們表現(xiàn)出驚人的增長(zhǎng)潛力。他們工作態(tài)度端正,并且明白如何避免不稱職的行為。 根據(jù)開(kāi)發(fā)人員的某些習(xí)慣,可以非常明顯地分辨出誰(shuí)更專業(yè),誰(shuí)更業(yè)余。讓我們深入剖析下業(yè)余程序開(kāi)發(fā)人員的幾種表現(xiàn),每個(gè)程序開(kāi)發(fā)人員都應(yīng)該引以為戒,這些錯(cuò)誤會(huì)阻礙我們的職業(yè)發(fā)展。 1. 一次性提交大量代碼 回憶下,你是否碰到過(guò)一次性提交大量代碼的人,你都不想給他做代碼評(píng)審。是的,不專業(yè)的開(kāi)發(fā)人員就會(huì)這樣做。他們會(huì)在一次代碼評(píng)審請(qǐng)求中包含多個(gè)模塊的修改,而且會(huì)催促你優(yōu)先評(píng)審他們的代碼。是啊,能不急嗎,排到后邊,還需要解決代碼沖突的問(wèn)題。這個(gè)問(wèn)題在很多高級(jí)開(kāi)發(fā)工程師中也存在,他們?cè)诠δ荛_(kāi)發(fā)期間不做任何提交,只有在功能徹底完工后,才會(huì)提交所有修改,于是代碼評(píng)審中的任何意見(jiàn)都會(huì)引起大量的修改。 當(dāng)我碰到這種代碼評(píng)審請(qǐng)求時(shí),我首先做的是要求提交者按功能模塊將其拆分成多個(gè)小的請(qǐng)求。我只會(huì)對(duì) issues(任務(wù)管理系統(tǒng))中的第*個(gè)功能需求評(píng)審,然后將其轉(zhuǎn)回提交者。如果我有時(shí)間,我會(huì)和提交者連線進(jìn)行代碼實(shí)時(shí)評(píng)審。
你能做什么? 進(jìn)行小的代碼提交。一個(gè)好的做法是:每個(gè)工作日都進(jìn)行代碼提交。 不要提交沒(méi)有編譯或者會(huì)導(dǎo)致構(gòu)建失敗的代碼。 2. 代碼寫的很爛 缺乏經(jīng)驗(yàn)的開(kāi)發(fā)人員寫不出漂亮的代碼,他們寫出的代碼會(huì)很混亂,而且分布在代碼庫(kù)的各個(gè)部分。 當(dāng)你嘗試閱讀這類代碼時(shí),會(huì)感覺(jué)自己身處一座迷宮之中。你會(huì)逐漸忘記自己是從什么地方開(kāi)始的,要尋找什么以及這段代碼完成了什么功能。 有經(jīng)驗(yàn)的開(kāi)發(fā)人員知道代碼如何設(shè)計(jì)。除非要開(kāi)發(fā)的功能顯而易見(jiàn),首先需要在紙上寫出你對(duì)需求的理解并畫出流程圖(簡(jiǎn)化版的規(guī)格需求說(shuō)明書),在腦海里對(duì)這段代碼進(jìn)行一個(gè)完整的構(gòu)思。除非你徹底弄清楚了如何修改,否則不要開(kāi)始代碼編寫。 如果你不遵守以上的規(guī)則,當(dāng)你回顧自己完成的代碼時(shí)會(huì)非常痛苦。以后如果需要修正問(wèn)題或者增加功能,也會(huì)變得非常棘手。 你能做什么? 編寫代碼之前,對(duì)你要實(shí)現(xiàn)的功能有個(gè)清晰的了解。為了清楚地理解需求,你需要盡量多問(wèn)問(wèn)題。 讓你的代碼簡(jiǎn)潔而優(yōu)雅。其他團(tuán)隊(duì)成員可以讀懂代碼并理解它打算做什么。 3. 同時(shí)開(kāi)展多項(xiàng)工作 缺乏經(jīng)驗(yàn)的開(kāi)發(fā)人員不知道什么時(shí)候開(kāi)始一項(xiàng)任務(wù)、如何推進(jìn)、什么時(shí)候結(jié)束。他們?cè)噲D并行處理多項(xiàng)任務(wù)。他們不知道如何將一項(xiàng)大任務(wù)分解為小的模塊,從而減輕實(shí)現(xiàn)的難度。 當(dāng)他們收到一項(xiàng)任務(wù)時(shí),并不是第一時(shí)間和上級(jí)確認(rèn)需求,而是立刻就開(kāi)始編程,而且在做任務(wù)期間,也不會(huì)和上級(jí)就任務(wù)進(jìn)度進(jìn)行溝通。只有當(dāng)任務(wù)完成時(shí),他們才會(huì)向你反饋。到那個(gè)時(shí)候,你只能祈禱他們完成的功能就是你想要的。 缺乏經(jīng)驗(yàn)的開(kāi)發(fā)人員的另一個(gè)表現(xiàn)是同時(shí)推進(jìn)多項(xiàng)任務(wù),他們會(huì)同時(shí)處理多項(xiàng)事情,如:實(shí)現(xiàn)多個(gè)沒(méi)有太大聯(lián)系的功能點(diǎn)、解決生產(chǎn)環(huán)境問(wèn)題、協(xié)助其他同事工作等。 最終,從他們那里得不到有效的產(chǎn)出。雖然他們的態(tài)度和出發(fā)點(diǎn)是好的,但對(duì)整個(gè)團(tuán)隊(duì)造成的后果是災(zāi)難性的,浪費(fèi)了很多的時(shí)間,導(dǎo)致團(tuán)隊(duì)得日夜趕工。 你能做什么? 專注完成小的任務(wù)。將收到的任務(wù)分解為小塊,明確需求的優(yōu)先級(jí),一小塊一小塊地完成。 領(lǐng)取一項(xiàng)任務(wù),完成后再開(kāi)始新的任務(wù)。
4. 性格傲慢 對(duì)于缺乏經(jīng)驗(yàn)的開(kāi)發(fā)人員,傲慢是非常致命的。傲慢會(huì)導(dǎo)致他們不能接受別人的批評(píng)和建議。當(dāng)你對(duì)他們的代碼或者陳述給出意見(jiàn)時(shí),他們會(huì)認(rèn)為你是在質(zhì)疑他們的能力。 許多新人由于無(wú)知,都會(huì)表現(xiàn)出這種傲慢。剛走出校門的他們充滿自信,并沒(méi)有意識(shí)到他們?cè)趯W(xué)校學(xué)到的東西離社會(huì)要求還有很大差距。這些人中的聰明者會(huì)很快調(diào)整自己,以歸零的心態(tài),努力學(xué)習(xí)并適應(yīng)公司文化。 其實(shí)不只是新人——一些有幾年工作經(jīng)驗(yàn)的開(kāi)發(fā)人員也會(huì)表現(xiàn)出這種傲慢,一部分原因是其滿足于個(gè)人獲得的專業(yè)成就,另一部分可能的原因是其缺乏和優(yōu)秀的人共事的機(jī)會(huì),有點(diǎn)坐井觀天。 此外,傲慢的行為也從另一方面證明這樣的開(kāi)發(fā)人員確實(shí)缺乏經(jīng)驗(yàn)。這樣的行為會(huì)對(duì)他們的職業(yè)發(fā)展造成很多阻礙,因?yàn)闆](méi)有人喜歡和一個(gè)傲慢的人共事。當(dāng)成長(zhǎng)變慢時(shí),他們不會(huì)從自身找原因,而是更多的歸罪于別人。
你能做什么 在前行的路上保持謙卑。禮貌地對(duì)待別人會(huì)讓你在軟件開(kāi)發(fā)職業(yè)生涯中走得更遠(yuǎn)。 尊重每一個(gè)人。出現(xiàn)分歧后,在你發(fā)表意見(jiàn)時(shí),不管對(duì)方是什么身份,都要尊重對(duì)方。 5. 不能從之前的錯(cuò)誤中學(xué)到經(jīng)驗(yàn) 我一直認(rèn)為,對(duì)于軟件開(kāi)發(fā)人員,反饋機(jī)制是一個(gè)很有效的工具。來(lái)自他人的反饋,會(huì)讓我們明白自己的短板是什么以及如何去改進(jìn)。一個(gè)聰明的開(kāi)發(fā)人員明白如何借助他人反饋來(lái)促進(jìn)自己的成長(zhǎng)。 根據(jù)一個(gè)開(kāi)發(fā)人員對(duì)建設(shè)性意見(jiàn)的反應(yīng),你可以判斷出他是否缺乏經(jīng)驗(yàn)。缺乏經(jīng)驗(yàn)的開(kāi)發(fā)人員不接受任何建設(shè)性的建議,甚至代碼評(píng)審中的評(píng)論,他都會(huì)認(rèn)為是對(duì)他個(gè)人的一種攻擊。 很多年前,我有一個(gè)同事給我寫了很長(zhǎng)的一封郵件,教我如何來(lái)評(píng)審代碼,他對(duì)我給他代碼的評(píng)論感到憤怒。他的主要觀點(diǎn)是我不應(yīng)該關(guān)注編碼標(biāo)準(zhǔn),因?yàn)樗廊绾尉幋a,我應(yīng)該只關(guān)注代碼能否滿足功能需求。 如果一個(gè)開(kāi)發(fā)人員因?yàn)閯e人對(duì)他代碼給出的評(píng)論,而感覺(jué)被冒犯,只能表明他不具有真正的開(kāi)發(fā)經(jīng)驗(yàn)。他抱著做一天和尚撞一天鐘的態(tài)度工作,卻感慨沒(méi)有遇到賞識(shí)自己的伯樂(lè)。 你能做什么? 對(duì)每個(gè)反饋保持積極的態(tài)度。對(duì)于每個(gè)反饋,你可以選擇是接受還是拒絕,但拒絕之前要保持心平氣和的態(tài)度。 從錯(cuò)誤中學(xué)習(xí)。沒(méi)有人能永遠(yuǎn)正確,保持終身學(xué)習(xí)才能讓自己持續(xù)強(qiáng)大。 6. 工作時(shí)間處理私人事務(wù) 日常工作中,總是發(fā)現(xiàn)團(tuán)隊(duì)里的一些成員在工作時(shí)間處理私人事務(wù),如:看社交媒體,瀏覽購(gòu)物網(wǎng)站,玩游戲。 我之前還有個(gè)團(tuán)隊(duì)成員,上班時(shí)間炒股。因?yàn)樗枰粫r(shí)地關(guān)注股票的 K 線走勢(shì),造成個(gè)人的產(chǎn)出質(zhì)量不高。其他同事對(duì)他很有意見(jiàn),因?yàn)樗麄冃枰ㄙM(fèi)更多的時(shí)間去趕工期。 當(dāng)開(kāi)發(fā)經(jīng)理和這個(gè)開(kāi)發(fā)人員談話之后,他改變了一段時(shí)間,但是很快就故態(tài)復(fù)萌。最終,公司只能把他開(kāi)除了。 工作時(shí)間處理私人事務(wù),這是違反商業(yè)道德,并且表現(xiàn)了你的不專業(yè)。我們需要對(duì)工作敬業(yè),畢竟我們要靠它謀生。 你能做什么? 工作時(shí)間盡量不要處理私人事務(wù)。當(dāng)你需要離開(kāi)幾個(gè)小時(shí)去處理個(gè)人事情時(shí),請(qǐng)向你的管理者請(qǐng)假。 使用休息時(shí)間瀏覽你的社交媒體。如果必須要點(diǎn)外賣或炒股,請(qǐng)利用午休時(shí)間。 7. 盲目追逐技術(shù)潮流 開(kāi)發(fā)人員缺乏經(jīng)驗(yàn)的另一個(gè)表現(xiàn)是面對(duì)技術(shù)潮流的態(tài)度。你會(huì)發(fā)現(xiàn)他們總是在談?wù)摷夹g(shù)潮流,當(dāng)有一個(gè)新的潮流出現(xiàn)時(shí),他們會(huì)立刻丟棄原來(lái)的潮流,投入新的懷抱。 缺乏經(jīng)驗(yàn)的開(kāi)發(fā)人員總是在學(xué)習(xí)教程。毫無(wú)疑問(wèn),教程是很有用的學(xué)習(xí)工具,但是,不進(jìn)行任何實(shí)踐而只是按照教程一步步操作無(wú)疑是浪費(fèi)時(shí)間。它會(huì)讓你虛幻地覺(jué)得自己好像都掌握了,但是知識(shí)是否掌握了,需要通過(guò)真實(shí)的項(xiàng)目進(jìn)行檢驗(yàn)。 開(kāi)發(fā)人員很少會(huì)用熱門技術(shù)或者從教程中學(xué)到的知識(shí)來(lái)實(shí)現(xiàn)新的東西,他們學(xué)習(xí)熱門技術(shù)或者教程很多是為了滿足自己的虛榮心,或者擔(dān)心自己會(huì)錯(cuò)過(guò)什么。 你能做什么: 花費(fèi)時(shí)間和精力學(xué)習(xí)那些能在工作中或者實(shí)際項(xiàng)目中真正用到的技術(shù)。 從教程中學(xué)習(xí)并及時(shí)練習(xí),相對(duì)于新手教程,自己實(shí)現(xiàn)一個(gè)功能能學(xué)到更多的東西。 缺乏經(jīng)驗(yàn)的開(kāi)發(fā)人員會(huì)因?yàn)樽约旱男实拖逻M(jìn)而降低整個(gè)團(tuán)隊(duì)的效率。他對(duì)待自己工作的錯(cuò)誤態(tài)度,會(huì)讓其在職業(yè)發(fā)展中錯(cuò)失很多機(jī)會(huì)。 了解并避免這種錯(cuò)誤的態(tài)度和工作方式,是聰明人的做法。如果你不幸染上了這些壞習(xí)慣,隨著時(shí)間的推移,你會(huì)越來(lái)越難以擺脫。