99%的成功軟件工程師會(huì)練習(xí)這10個(gè)習(xí)慣和技能
工程師就像雪花,沒有兩個(gè)是一樣的。
曾經(jīng)形成的每一個(gè)雪花都是由不同原子以獨(dú)特的結(jié)構(gòu)構(gòu)成的。 這與軟件工程師相似,無論學(xué)習(xí)路徑如何相似,在開發(fā)技能和能力上都不會(huì)有兩個(gè)相同。
但是,即使具有不同的才能水平,但能夠升至頂峰并被認(rèn)為是最成功的人都是為習(xí)慣和技能奠定堅(jiān)實(shí)基礎(chǔ)的人。 這使他們可以更長久地接近峰值效率,并在較長的時(shí)間內(nèi)始終獲得更高的質(zhì)量輸出。
多年來,在參加軟件工程項(xiàng)目和管理其他人員的過程中,以下特征在獲得此頭銜的最成功人士中脫穎而出。 這些是技能和習(xí)慣的集合,可以提高產(chǎn)出的效率和質(zhì)量,并可以幫助任何人達(dá)到更高的水平。
1.尋找有效管理自己時(shí)間的方法
比較好的軟件工程師既要編寫代碼,又要擔(dān)任自己時(shí)間的管理者,以保持效率。
大多數(shù)軟件工程師只能獨(dú)自完成難以完成的開發(fā)任務(wù),這些開發(fā)任務(wù)需要一些深入的思考和計(jì)劃才能取得令人滿意的結(jié)果。 這意味著分散注意力和失去注意力的可能性很高。
優(yōu)秀的工程師了解如何避免這些干擾,以及如何在產(chǎn)生最大輸出并最接近峰值效率的"區(qū)域"中最大化其時(shí)間。
2.遵守編碼標(biāo)準(zhǔn)
您應(yīng)該始終以邏輯一致的方式構(gòu)造代碼。
如果您所在的團(tuán)隊(duì)有一個(gè)共同的標(biāo)準(zhǔn)可以遵循,那就太好了。 如果沒有,那么您應(yīng)該建立自己的個(gè)人標(biāo)準(zhǔn)。 遵循標(biāo)準(zhǔn)提供了一個(gè)框架,該框架可以隨著時(shí)間的流逝提高輸出的效率和一致性。
個(gè)人標(biāo)準(zhǔn)還可以幫助您確定您過去編寫的代碼部分,并且在需要時(shí)幫助您在需要檢查,更改或重構(gòu)時(shí)重新學(xué)習(xí)該特定代碼。 這很重要,因?yàn)槟鷮⒃谧銐虻臅r(shí)間后忘記自己的代碼的復(fù)雜性。 在回顧您以前的編碼項(xiàng)目時(shí),擁有熟悉的閱讀風(fēng)格將有助于加快重新學(xué)習(xí)的速度。
3.盡早且經(jīng)常與團(tuán)隊(duì)和老板溝通狀態(tài)
世界是一個(gè)相互聯(lián)系的地方,沒有工程師在真空中工作。
在任何正在進(jìn)行的開發(fā)中,總會(huì)有其他人被視為利益相關(guān)者。 優(yōu)秀的軟件工程師會(huì)意識(shí)到這一點(diǎn),并努力確保每個(gè)利益相關(guān)者(無論相關(guān)程度如何)都能夠及時(shí)了解最新情況,并及時(shí)了解開發(fā)的最新情況。
溝通是良好團(tuán)隊(duì)合作的基礎(chǔ),而比較好的工程師始終會(huì)努力工作,以使每個(gè)人都保持最新狀態(tài)。
4.尋找其他人以學(xué)習(xí)
總會(huì)有更多的東西要學(xué)習(xí)。
不管一種語言或方法多么出色,總會(huì)有某些新事物在某個(gè)時(shí)候出現(xiàn)。 成長為軟件工程師的最佳方法之一就是跟隨聰明的人的腳步,他們?yōu)槲磥礓伷搅说缆贰?/p>
這并不總是需要成為導(dǎo)師-受訓(xùn)者類型的關(guān)系。 您團(tuán)隊(duì)中的其他人,博客作者,經(jīng)理和開源項(xiàng)目都可以為您自己的職業(yè)生涯提供知識(shí)和價(jià)值。 這里的目標(biāo)是永不停止學(xué)習(xí)。
5.盡早檢查事物
現(xiàn)代版本控制實(shí)質(zhì)上是無限的,易于使用的,并且只需很少的精力即可完成。 所以用吧!
失去工作沒有更多借口,因?yàn)樗鼪]有得到備份。 現(xiàn)有的工具足夠使這項(xiàng)工作變得微不足道-如果您將其作為日常工作流程中的優(yōu)先事項(xiàng)。
許多現(xiàn)代程序會(huì)自動(dòng)保存并不斷備份內(nèi)容。 今天,要失去比以往任何時(shí)候都大的工作更加困難,但仍有可能。 養(yǎng)成經(jīng)常儲(chǔ)蓄和經(jīng)常檢查事物的習(xí)慣對(duì)于保持持續(xù)的進(jìn)步和高效率很重要。
6.平衡工作與個(gè)人生活
工作永無止境,企業(yè)將永遠(yuǎn)能夠拿出超出您所能承受的能力。
專注于一個(gè)大項(xiàng)目太容易了。 如果您愿意的話,可能會(huì)很費(fèi)力。 但是,人的大腦除了需要電腦屏幕,鍵盤和更多的咖啡外,還需要休息和刺激,以保持很高的工作水平。
周末存在是有原因的。 花時(shí)間去散步,看戲或walk狗。 當(dāng)您回來時(shí),工作就在那里了,并且您將能夠通過均衡的工作和個(gè)人生活方法,平均獲得更高的產(chǎn)出。
7.繼續(xù)創(chuàng)建個(gè)人項(xiàng)目
任何人都不可能跟上各個(gè)方面的快速技術(shù)發(fā)展步伐。
即使您正在辦公室中從事最前沿的工作,仍然有許多您沒有探索或?qū)W習(xí)的技術(shù)前沿。
個(gè)人學(xué)習(xí)和獨(dú)立項(xiàng)目是在一般的8到5工作所不能涵蓋的領(lǐng)域中繼續(xù)教育的關(guān)鍵方面。 這樣可以使您在與其他許多技術(shù)領(lǐng)域保持同步并保持相關(guān)性,而這些方面本來是您沒有機(jī)會(huì)學(xué)習(xí)的。
8.學(xué)習(xí)準(zhǔn)確估計(jì)自己的努力
業(yè)務(wù)按日期和時(shí)間表運(yùn)行。
無論您的開發(fā)方法多么敏捷,在某個(gè)時(shí)候都會(huì)問到一個(gè)問題:"什么時(shí)候準(zhǔn)備好?"
通過了解自己的工作習(xí)慣以及實(shí)際可以完成的每單位時(shí)間多少輸出量,可以更輕松地用一個(gè)準(zhǔn)確的答案解決這個(gè)問題。 訣竅是要在正式團(tuán)隊(duì)面前就職之前達(dá)到這種理解點(diǎn)。 了解自己的能力和局限性可以使您對(duì)該問題有更加自信和準(zhǔn)確的答案。
9.記錄您的代碼
隨著時(shí)間的流逝,您以這種方式編寫該函數(shù)的原因的記憶將逐漸消失。
將來會(huì)有一天,回顧舊代碼需要花費(fèi)相同的精力來理解您還是其他人編寫了它。 對(duì)您的代碼進(jìn)行文檔記錄提供了一種使即時(shí)上下文可供所有人(包括您本人)使用的一種方式,該人將隨后審查,維護(hù)或修改該軟件。
使文檔成為一種習(xí)慣,不僅可以保留一段時(shí)間內(nèi)的意圖和意義,而且還可以比僅通過代碼來更好,更快地可視化并處理復(fù)雜的問題。
10.學(xué)習(xí)如何對(duì)自己的工作進(jìn)行質(zhì)量檢查
沒有人比編寫軟件的人更了解軟件的優(yōu)點(diǎn)和局限性。
在將新特性和功能交給他人進(jìn)行審核之前,執(zhí)行您自己的質(zhì)量檢查將是生產(chǎn)穩(wěn)定,完整的軟件的寶貴工具。
學(xué)習(xí)和練習(xí)諸如測試驅(qū)動(dòng)開發(fā)(TDD)之類的技能,以及了解如何有效地對(duì)自己的代碼進(jìn)行360度審閱以尋找邊緣案例,這將使您在輸出質(zhì)量方面首屈一指。 無論過程看起來多么無聊或耗時(shí),學(xué)習(xí)如何有效地進(jìn)行質(zhì)量檢查將使您成為一名更好的軟件工程師。
作為軟件工程師,您越早養(yǎng)成成功的習(xí)慣和技能,您的職業(yè)就會(huì)越成功。 記住要繼續(xù)閱讀和學(xué)習(xí),永不放棄! 謝謝閱讀!
最初于2020年2月19日發(fā)布在kevinwanke.com上。凱文(Kevin)的博客側(cè)重于為新工程師和工程經(jīng)理提供建議。