嵌入式軟件開發(fā)要注意這七種錯誤!
軟件行業(yè)的工作經(jīng)驗和你從事這個行業(yè)的工作年限直接相關(guān)。
這句話在某種程度上是對的,但是你從事這項工作的年限,并不一定代表你獲得了相同年限的工作經(jīng)驗,正如一句話所說:“我們以為我們是工作了十年,其實卻只有一年的工作經(jīng)驗,只不過又重復(fù)用了九年”。
有一些人雖然工作了很多年,但工作表現(xiàn)就像剛?cè)胄械男氯?。他們幾乎不學(xué)習(xí)軟件開發(fā)的基礎(chǔ)知識 。除了最初幾年有所成長,后期一直停滯不前,而且他們不明白為什么。
與此同時,我也曾與一些只有幾年工作經(jīng)驗的開發(fā)人員共事,他們表現(xiàn)出驚人的增長潛力。他們工作態(tài)度端正,并且明白如何避免不稱職的行為。
根據(jù)開發(fā)人員的某些習(xí)慣,可以非常明顯地分辨出誰更專業(yè),誰更業(yè)余。讓我們深入剖析下業(yè)余程序開發(fā)人員的 7 種表現(xiàn),每個程序開發(fā)人員都應(yīng)該引以為戒,這些錯誤會阻礙我們的職業(yè)發(fā)展。
1. 一次性提交大量代碼
回憶下,你是否碰到過一次性提交大量代碼的人,你都不想給他做代碼評審。是的,不專業(yè)的開發(fā)人員就會這樣做。他們會在一次代碼評審請求中包含多個模塊的修改,而且會催促你優(yōu)先評審他們的代碼。
是啊,能不急嗎,排到后邊,還需要解決代碼沖突的問題。這個問題在很多高級開發(fā)工程師中也存在,他們在功能開發(fā)期間不做任何提交,只有在功能徹底完工后,才會提交所有修改,于是代碼評審中的任何意見都會引起大量的修改。
當(dāng)我碰到這種代碼評審請求時,我首先做的是要求提交者按功能模塊將其拆分成多個小的請求。我只會對 issues(任務(wù)管理系統(tǒng))中的第一個功能需求評審,然后將其轉(zhuǎn)回提交者。如果我有時間,我會和提交者連線進(jìn)行代碼實時評審。
你能做什么:
進(jìn)行小的代碼提交。一個好的做法是:每個工作日都進(jìn)行代碼提交。
不要提交沒有編譯或者會導(dǎo)致構(gòu)建失敗的代碼。
2. 代碼寫的很爛
缺乏經(jīng)驗的開發(fā)人員寫不出漂亮的代碼,他們寫出的代碼會很混亂,而且分布在代碼庫的各個部分。當(dāng)你嘗試閱讀這類代碼時,會感覺自己身處一座迷宮之中。你會逐漸忘記自己是從什么地方開始的,要尋找什么以及這段代碼完成了什么功能。有經(jīng)驗的開發(fā)人員知道代碼如何設(shè)計。除非要開發(fā)的功能顯而易見,首先需要在紙上寫出你對需求的理解并畫出流程圖(簡化版的規(guī)格需求說明書),在腦海里對這段代碼進(jìn)行一個完整的構(gòu)思。除非你徹底弄清楚了如何修改,否則不要開始代碼編寫。如果你不遵守以上的規(guī)則,當(dāng)你回顧自己完成的代碼時會非常痛苦。以后如果需要修正問題或者增加功能,也會變得非常棘手。你能做什么:
編寫代碼之前,對你要實現(xiàn)的功能有個清晰的了解。為了清楚地理解需求,你需要盡量多問問題。
讓你的代碼簡潔而優(yōu)雅。其他團(tuán)隊成員可以讀懂代碼并理解它打算做什么。
3. 同時開展多項工作
缺乏經(jīng)驗的開發(fā)人員不知道什么時候開始一項任務(wù)、如何推進(jìn)、什么時候結(jié)束。他們試圖并行處理多項任務(wù)。他們不知道如何將一項大任務(wù)分解為小的模塊,從而減輕實現(xiàn)的難度。當(dāng)他們收到一項任務(wù)時,并不是第一時間和上級確認(rèn)需求,而是立刻就開始編程,而且在做任務(wù)期間,也不會和上級就任務(wù)進(jìn)度進(jìn)行溝通。只有當(dāng)任務(wù)完成時,他們才會向你反饋。到那個時候,你只能祈禱他們完成的功能就是你想要的。缺乏經(jīng)驗的開發(fā)人員的另一個表現(xiàn)是同時推進(jìn)多項任務(wù),他們會同時處理多項事情,如:實現(xiàn)多個沒有太大聯(lián)系的功能點、解決生產(chǎn)環(huán)境問題、協(xié)助其他同事工作等。最終,從他們那里得不到有效的產(chǎn)出。雖然他們的態(tài)度和出發(fā)點是好的,但對整個團(tuán)隊造成的后果是災(zāi)難性的,浪費了很多的時間,導(dǎo)致團(tuán)隊得日夜趕工。你能做什么:
專注完成小的任務(wù)。將收到的任務(wù)分解為小塊,明確需求的優(yōu)先級,一小塊一小塊地完成。
領(lǐng)取一項任務(wù),完成后再開始新的任務(wù)。
4. 性格傲慢
對于缺乏經(jīng)驗的開發(fā)人員,傲慢是非常致命的。傲慢會導(dǎo)致他們不能接受別人的批評和建議。當(dāng)你對他們的代碼或者陳述給出意見時,他們會認(rèn)為你是在質(zhì)疑他們的能力。許多新人由于無知,都會表現(xiàn)出這種傲慢。剛走出校門的他們充滿自信,并沒有意識到他們在學(xué)校學(xué)到的東西離社會要求還有很大差距。這些人中的聰明者會很快調(diào)整自己,以歸零的心態(tài),努力學(xué)習(xí)并適應(yīng)公司文化。其實不只是新人——一些有幾年工作經(jīng)驗的開發(fā)人員也會表現(xiàn)出這種傲慢,一部分原因是其滿足于個人獲得的專業(yè)成就,另一部分可能的原因是其缺乏和優(yōu)秀的人共事的機(jī)會,有點坐井觀天。此外,傲慢的行為也從另一方面證明這樣的開發(fā)人員確實缺乏經(jīng)驗。這樣的行為會對他們的職業(yè)發(fā)展造成很多阻礙,因為沒有人喜歡和一個傲慢的人共事。當(dāng)成長變慢時,他們不會從自身找原因,而是更多的歸罪于別人。你能做什么:
在前行的路上保持謙卑。禮貌地對待別人會讓你在軟件開發(fā)職業(yè)生涯中走得更遠(yuǎn)。
尊重每一個人。出現(xiàn)分歧后,在你發(fā)表意見時,不管對方是什么身份,都要尊重對方。
【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)? ?


零聲白金VIP體驗卡(含基礎(chǔ)架構(gòu)/高性能存儲/golang/QT/音視頻/Linux內(nèi)核)課程:?

5. 不能從之前的錯誤中學(xué)到經(jīng)驗
我一直認(rèn)為,對于軟件開發(fā)人員,反饋機(jī)制是一個很有效的工具。來自他人的反饋,會讓我們明白自己的短板是什么以及如何去改進(jìn)。一個聰明的開發(fā)人員明白如何借助他人反饋來促進(jìn)自己的成長。根據(jù)一個開發(fā)人員對建設(shè)性意見的反應(yīng),你可以判斷出他是否缺乏經(jīng)驗。缺乏經(jīng)驗的開發(fā)人員不接受任何建設(shè)性的建議,甚至代碼評審中的評論,他都會認(rèn)為是對他個人的一種攻擊。很多年前,我有一個同事給我寫了很長的一封郵件,教我如何來評審代碼,他對我給他代碼的評論感到憤怒。他的主要觀點是我不應(yīng)該關(guān)注編碼標(biāo)準(zhǔn),因為他知道如何編碼,我應(yīng)該只關(guān)注代碼能否滿足功能需求。如果一個開發(fā)人員因為別人對他代碼給出的評論,而感覺被冒犯,只能表明他不具有真正的開發(fā)經(jīng)驗。他抱著做一天和尚撞一天鐘的態(tài)度工作,卻感慨沒有遇到賞識自己的伯樂。你能做什么:
對每個反饋保持積極的態(tài)度。對于每個反饋,你可以選擇是接受還是拒絕,但拒絕之前要保持心平氣和的態(tài)度。
從錯誤中學(xué)習(xí)。沒有人能永遠(yuǎn)正確,保持終身學(xué)習(xí)才能讓自己持續(xù)強(qiáng)大。
6. 工作時間處理私人事務(wù)
日常工作中,總是發(fā)現(xiàn)團(tuán)隊里的一些成員在工作時間處理私人事務(wù),如:看社交媒體,瀏覽購物網(wǎng)站,玩游戲。我之前還有個團(tuán)隊成員,上班時間炒股。因為他需要不時地關(guān)注股票的 K 線走勢,造成個人的產(chǎn)出質(zhì)量不高。其他同事對他很有意見,因為他們需要花費更多的時間去趕工期。當(dāng)開發(fā)經(jīng)理和這個開發(fā)人員談話之后,他改變了一段時間,但是很快就故態(tài)復(fù)萌。最終,公司只能把他開除了。工作時間處理私人事務(wù),這是違反商業(yè)道德,并且表現(xiàn)了你的不專業(yè)。我們需要對工作敬業(yè),畢竟我們要靠它謀生。你能做什么:
工作時間盡量不要處理私人事務(wù)。當(dāng)你需要離開幾個小時去處理個人事情時,請向你的管理者請假。
使用休息時間瀏覽你的社交媒體。如果必須要點外賣或炒股,請利用午休時間。
7. 盲目追逐技術(shù)潮流
開發(fā)人員缺乏經(jīng)驗的另一個表現(xiàn)是面對技術(shù)潮流的態(tài)度。你會發(fā)現(xiàn)他們總是在談?wù)摷夹g(shù)潮流,當(dāng)有一個新的潮流出現(xiàn)時,他們會立刻丟棄原來的潮流,投入新的懷抱。缺乏經(jīng)驗的開發(fā)人員總是在學(xué)習(xí)教程。毫無疑問,教程是很有用的學(xué)習(xí)工具,但是,不進(jìn)行任何實踐而只是按照教程一步步操作無疑是浪費時間。它會讓你虛幻地覺得自己好像都掌握了,但是知識是否掌握了,需要通過真實的項目進(jìn)行檢驗。開發(fā)人員很少會用熱門技術(shù)或者從教程中學(xué)到的知識來實現(xiàn)新的東西,他們學(xué)習(xí)熱門技術(shù)或者教程很多是為了滿足自己的虛榮心,或者擔(dān)心自己會錯過什么。你能做什么:
花費時間和精力學(xué)習(xí)那些能在工作中或者實際項目中真正用到的技術(shù)。
從教程中學(xué)習(xí)并及時練習(xí),相對于新手教程,自己實現(xiàn)一個功能能學(xué)到更多的東西。??
缺乏經(jīng)驗的開發(fā)人員會因為自己的效率低下進(jìn)而降低整個團(tuán)隊的效率。他對待自己工作的錯誤態(tài)度,會讓其在職業(yè)發(fā)展中錯失很多機(jī)會。了解并避免這種錯誤的態(tài)度和工作方式,是聰明人的做法。如果你不幸染上了這些壞習(xí)慣,隨著時間的推移,你會越來越難以擺脫。謝謝你閱讀這篇文章。希望你能避開這些陷阱,早日獲得職業(yè)上的成功
原文作者:InfoQ
