程序員請注意!七個細(xì)節(jié)暴露了你缺乏經(jīng)驗……
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)
只要工作足夠長的時間,就會積累足夠多的經(jīng)驗,這句話在某種程度上來看是正確的。然而,在另一些情況下,工作年限不會保證獲得對應(yīng)的經(jīng)驗。我見過一些人,他們已經(jīng)工作了數(shù)年,可還像個業(yè)余者一樣。他們幾乎不學(xué)習(xí)軟件開發(fā)的基本原理。幾年過后,他們沒有進(jìn)步、停滯不前,卻又找不到問題的癥結(jié)所在。
同時,我與一些有著幾年的工作經(jīng)驗的開發(fā)者共事過,他們有著難以置信的發(fā)展?jié)摿Α⑶‘?dāng)?shù)膽B(tài)度和技巧,這能幫助他們避免做無用功。
基于某些特征,你可以容易地發(fā)現(xiàn)誰有經(jīng)驗、誰缺乏經(jīng)驗。犯錯會阻礙程序員的職業(yè)發(fā)展,為了避免這種情況,每個軟件工程師都應(yīng)該明確缺少經(jīng)驗的程序員有哪些特點(diǎn),現(xiàn)在我們來深度分析缺少經(jīng)驗的程序員具有的7個特點(diǎn)。
1.創(chuàng)造大拉請求
你收到過代碼評審請求嗎?里面改動的地方很多,多到你不想評審,是的,這就是缺少經(jīng)驗的開發(fā)者會做的事。他們會在一個拉請求中把大量的更改捆綁在一起。最重要的是,他們會希望你為他們的代碼審查設(shè)定優(yōu)先級。
我也見過許多資深的開發(fā)者,他們習(xí)慣于開發(fā)大拉請求,連續(xù)幾天做編碼,不收反饋。你為他們的代碼評估時,他們可能已經(jīng)圍繞代碼構(gòu)建了整個功能。因此,你給的任何評審都需要重大改動。
我若收到這種拉請求,第一反應(yīng)是把他返回給開發(fā)者,讓他們把代碼分成小塊,有邏輯地分解性能要求(PRs)。通常,我只評論發(fā)現(xiàn)的第一個問題,然后把它返給開發(fā)者。有時我很慷慨,會請他們建立一個調(diào)用,并現(xiàn)場檢查代碼。
你可以:
- 開發(fā)較小的拉請求,要想做好就要核對每天的工作。
- 永遠(yuǎn)不要簽入不能編譯或破壞構(gòu)建的代碼。
2.編寫意大利面條式的代碼
缺少經(jīng)驗的開發(fā)者寫不出好看的代碼。他們編寫的代碼纏在一起,散布在代碼庫的各個地方。每次讀意大利面條式的代碼,我都會感到迷惑,會忘記起始點(diǎn)、自己要找的東西以及代碼的含義。
有經(jīng)驗以后,開發(fā)者就知道了如何規(guī)劃代碼。首先把自己的理解和流程寫在紙上,具有直接的功能性除外。做一個演練,把它從頭到尾想象一下。
若不遵循以上步驟,讀代碼就會很痛苦。自己和團(tuán)隊都難以解決編寫代碼時遇到的困難和困惑。你可以:
- 實(shí)施前明確理解特點(diǎn)。想問多少問題都可以,這樣才能理解要求。
- 代碼簡潔、結(jié)構(gòu)清晰。隊員應(yīng)能看懂代碼,知道預(yù)期用途。
3.嘗試同時從事多種任務(wù)
缺少經(jīng)驗的開發(fā)者不知道從哪入手、如何繼續(xù)、何時停止。他們沒有線索,不知道怎么把大塊代碼分解成有邏輯的小塊來易于實(shí)施。
你若給他們分配任務(wù),他們會立即編碼,而不來找你核實(shí)自己不理解任務(wù),也不會和你回顧自己的進(jìn)步來確保自己步入正軌,只在完成后和你聯(lián)系。到那時,你只能祈禱要求得到了滿足。
另一種缺少經(jīng)驗的標(biāo)志是開發(fā)者同時著手多件事,他們會從不相關(guān)的特性中挑選任務(wù),自愿排除生產(chǎn)問題,并承諾幫助團(tuán)隊中的其他人。
最后,這些開發(fā)者沒有完整地完成一件任務(wù),他們的態(tài)度大多是好意的,但最后的結(jié)果對團(tuán)隊來說是場災(zāi)難。最后導(dǎo)致團(tuán)隊喪失了很多時間,必須以備戰(zhàn)狀態(tài)完成所有任務(wù)。
你可以:
- 專注于小塊。把任務(wù)分成更小的邏輯塊。把它弄清楚,然后交付盡可能小的工作功能塊。
- 一次徹底完成一個任務(wù)。按要求提交一份任務(wù)之后再做下一個任務(wù)。
4.傲慢
缺少經(jīng)驗的開發(fā)者有著顯而易見的傲慢態(tài)度。他們眼里只有自己,犯錯的時候毫無察覺。若對他們的代碼和任務(wù)給予反饋,他們會視其為對自身能力的個人評論。
許多新手開發(fā)者炫耀自己的傲慢,這多半是因為無知。他們剛剛走出校園,不知道職場完全不同于在學(xué)校學(xué)的內(nèi)容。實(shí)際上,聰明的開發(fā)者會保持安靜。
傲慢的不僅僅是新手開發(fā)者,還包括在軟件行業(yè)有著數(shù)年工作經(jīng)驗的開發(fā)者。可能因為他們有些職業(yè)成就,也可能是他們沒遇到比自己聰明、有天賦的人。
不管是哪種情況,具有傲慢行為的開發(fā)者缺少相應(yīng)的經(jīng)驗。自負(fù)妨礙了他們學(xué)習(xí)正確的職業(yè)中的方法。最終,沒人愿意與傲慢的人共事,一旦發(fā)展受限,傲慢的開發(fā)者會把失敗歸咎于他人。
你可以:
- 保持謙卑。在軟件開發(fā)領(lǐng)域,禮貌對于建立成功的職業(yè)生涯大有幫助。
- 不管別人有什么指示,都要尊敬別人。不要因為意見不合而爭論。
5.不吸取教訓(xùn)
我一直認(rèn)為反饋機(jī)制對于軟件開發(fā)者來說是最有效的方式之一。通過反饋能得知自己的缺點(diǎn)以及得知如何改進(jìn),聰明的開發(fā)者知道如何通過反饋提高自己的效率。
通過觀察開發(fā)者對富有建設(shè)性的反饋所作出的反應(yīng),很容易識別出誰是缺少經(jīng)驗的開發(fā)者。對于別人提出關(guān)于他們軟件性能的改進(jìn)意見,他們從不接受。他們甚至把代碼評審注釋當(dāng)成是針對個人的意見。
多年前,有個隊員給我寫了一封長郵件,上面告訴我如何評審代碼。我對他的性能要求給出評審建議,他對此大為憤怒。他的主要目的是讓我別擔(dān)心編碼標(biāo)準(zhǔn),因為他自己知道怎么編碼。他只想讓我評審代碼符不符合功能要求。
如果開發(fā)者因評審意見而感到受到了侮辱,這表明他們沒從經(jīng)驗中學(xué)到東西。他們年復(fù)一年地工作,卻缺少端正的態(tài)度,還想知道為什么沒人重視他們所做的貢獻(xiàn)。
你可以:
- 積極地對待每個反饋。學(xué)會取舍,在舍棄某個反饋前做出公正的評價。
- 以開放的心態(tài)從錯誤中汲取教訓(xùn),人皆有錯,利用知識改善性能要求。
6.在工作時間做私事
總有一些隊員,他們在工作時間做私事:瀏覽社交媒體、掃描購物網(wǎng)址或打游戲。我們有一個團(tuán)隊成員過去經(jīng)常在辦公時間在股票市場交易。其他團(tuán)隊成員對這種行為表示擔(dān)憂,因為為了按時完成任務(wù),他們必須加倍努力。
當(dāng)經(jīng)理警告了這個開發(fā)者后,他改正了,但幾天過后又故態(tài)復(fù)萌。最終,由于這種行為,公司不得不解雇他。這種行為既不道德,也體現(xiàn)了開發(fā)者缺少經(jīng)驗。我們通過職業(yè)謀生,盡忠職守則是最好不過的。
你可以:
- 辦公時間把私事限制到最小程度。如果不得不處理一些私事,可以向經(jīng)理請幾個小時的假。
- 利用休息時間使用社交媒體。在辦公桌上吃午飯,要是想的話,午飯時間做股票貿(mào)易。
7.追趕時髦的技術(shù)
缺少經(jīng)驗的開發(fā)者的明顯特征是追趕時髦的技術(shù)。他們總是談?wù)摷磳l(fā)生的大事。一旦市場上出現(xiàn)了新的潮流,開發(fā)商就會放棄之前的潮流,追趕最新的潮流。
沒有經(jīng)驗的開發(fā)人員也掌握了制作教程的藝術(shù)。毫無疑問,教程是非常有用的學(xué)習(xí)工具。但是僅僅遵循教程而沒有任何實(shí)際應(yīng)用是浪費(fèi)時間的。這會使人產(chǎn)生一種虛假成就感,但真正考驗知識的是如何將其用于現(xiàn)實(shí)世界。
幾乎沒有開發(fā)者使用時髦的技術(shù)或從教程獲得的知識來實(shí)施新的東西。他們這么做僅僅是為了滿足自我,許多缺少經(jīng)驗的開發(fā)者因害怕錯過時髦技術(shù)而落入陷阱。
你可以:
- 把時間和精力花在學(xué)習(xí)可以在工作場所或個人項目中實(shí)際使用的技術(shù)上。
- 利用從教程中學(xué)到的知識并進(jìn)行實(shí)際操作。親身實(shí)踐比看教程的收獲更多。
缺乏經(jīng)驗的程序員效率低下,降低了整個團(tuán)隊的生產(chǎn)力。他們對待工作的方法不正確,使他們錯過了在高回報的軟件職業(yè)中成長的機(jī)會。
聰明的做法是在職業(yè)中盡早發(fā)現(xiàn)對自己不利的態(tài)度,并避免這些態(tài)度。當(dāng)你養(yǎng)成了上述的習(xí)慣,在職業(yè)生涯中會很難擺脫。愿你避免陷阱,實(shí)現(xiàn)想要的職業(yè)發(fā)展。