在任何領域,無論是藝術、體育還是軟體開發,達到頂峰的最快方法就是研究那些已經處於頂峰的人……並做他們正在做而你沒有做的事情。

如果您以編寫程式碼為生,這意味著要考慮一下高級開發人員。這意味著確定他們擁有哪些你不具備的技能、習慣和特質。

在過去 3 年裡與全球頂尖軟體工程師一起工作了數千個小時之後,我發現您現在就可以實施 12 種高級開發人員特質,以快速將您的成長提升到一個新的水平。

讓我們從第一開始…

1. 專注

專注意味著對某些事情說不,這樣我們就可以做其他事情。

理想情況下,對不重要的事情說不。並對那些能帶來改變的事情說「是」。使船移動得更快的東西。

這對許多開發人員來說確實很難,因為它違背了我們的本能。這意味著接受你無法完成所有事情。並不是每個機會都是平等的。

你不可能學習所有新的框架。您無法閱讀所有時事通訊。您不可能參加所有會議。而你不必這樣做。

你的時間有限。你的能量也是如此。

成為高級開發人員意味著選擇你的戰鬥。

圖片描述

「人們認為專注意味著對你必須關注的事情說『是』。但這根本不是這個意思。這意味著對其他一百個好主意說不。” ——史蒂夫‧賈伯斯

有趣的是,你選擇的越好,你進步的速度就越快。高級開發人員每天都有 24 小時的時間。但他們做得更多。

如何?

透過少做事。

當新事物出現時,問問自己“這真的很重要嗎?”或者這只是另一個趨勢?很可能這只是另一個偽裝成機會的干擾。

圖片描述

高級開發人員說的「不」多於「是」。他們完成的專案比開始的專案還要多。他們在學習新框架之前先掌握已經使用的框架。如果你想更快進入高級,你需要培養的第一個特質就是專注。

2. 二階思維

讓「初級開發者」尖叫的一件事是「讓我們建造它,我們會找到結果」的態度。年輕人傾向於先編碼,後思考。

如果您剛開始,這可能是一個很好的態度,但是當您開發可用於生產的軟體時,您將無法更改一些技術決策。或者很容易改變。

例如,您選擇Vue作為前端框架。

然後,需求會改變。你開始認為 React 會是更好的選擇。當然,你可以切換到 React。但這既不容易,也不便宜。

資深開發人員知道,靠自己的供應很容易獲得快感。但是,如果您愛上了您最了解的框架和函式庫,您將開始做出糟糕的技術決策。

圖片描述

他們會三思而後行,考慮自己選擇的後果。這可能意味著在嘗試理解問題時詢問「五個為什麼」。

或考慮他們的解決方案可能存在的缺點。

例如,現在我們新增了 Redux,全域狀態可能更容易管理。但我們必須在 Redux 上招募新的開發人員。學習曲線很高。

而且,你猜怎麼著,我們的 JavaScript 套件會變得更大,這對效能不利。

考慮二階環境將使您成為更好的開發人員。它還將在技術面試中為您提供幫助。

🚨 PS您是否希望快速晉升為擁有優質資源、回饋和責任的高階開發人員? 點擊此處加入我們的免費社區 - 高級開發學院。 🚨

3.實用主義

當初級開發人員閱讀一本關於最佳實踐的書時,他們會跳起來並嘗試將它們應用到任何版本中的每一行程式碼。他們虔誠地追隨他們。

如果您無法自己做出技術決策,那麼遵守預先定義的規則會容易得多。但軟體開發不是一種宗教。

一個很好的例子是測試。

當初級開發人員閱讀 TDD(測試驅動開發)時,他們將開始嘗試測試所有內容。旨在實現完整的程式碼覆蓋率。事實上,完整的程式碼覆蓋率會帶來遞減的結果,並且最終會浪費時間。

每個發現 TDD 的初級開發人員

高級開發人員知道如何平衡最佳實踐和上市時間。何時走捷徑,何時不走捷徑。

快速破解會產生錯誤和技術債。當程式碼上下文發生變化時,始終遵守規則會導致錯誤的決策。

你需要一個平衡。

根據情況重新考慮您的技術選擇。

4. 沒有什麼好證明的

由於缺乏自信,初級開發人員發現自己不斷地試圖向他人證明自己。與對自己的價值和技能缺乏安全感的高級開發人員一樣。

他們的信心是建立在他人的認可之上。

這是一場失敗的遊戲。

他們會嘗試在某個技術討論、與他人交談或在深夜或週末推送程式碼時展示自己了解多少。

事實上,所有這些行為都會造成有毒的團隊環境並適得其反。在最好的情況下,他們會讓你看起來比實際情況更高級。

圖片描述

獵豹不需要在比賽中證明自己,它只是為了狩獵而奔跑。

有兩種方法可以解決這個問題。

第一個是停止在外部驗證上花費太多。因為事實是你不需要向任何人證明自己。只對你自己。

第二是與頭腦中的負面聲音和平相處。

你可以成為你最嚴厲的批評者。完美主義、對失敗的恐懼以及對「真正的」開發人員的錯誤認知正在摧毀你的自尊。這就是為什麼無論你多努力,你總是感覺功虧一簣。

是時候擺脫你的頭腦了。

專注於掌握你的手藝,剩下的就會水到渠成。您將立即對自己和自己的技能更加自信。你將不再試圖向陌生人證明自己。

5. 掌握基礎知識

每當我在 LinkedIn 上看到開發人員的個人資料,並且他們將自己描述為「React」開發人員或「Angular」開發人員時,我就知道他們不是高級開發人員。他們可能是該框架中的高級人員,但總體而言不是高級人員。

框架開發人員永遠不會成為高級開發人員。

框架不會讓你成為高級,因為框架只是錦上添花。不是蛋糕本身。冰山一角與其底部。

圖片描述

我甚至推測,目前軟體開發人員中冒充者症候群盛行的背後,甚至是高階開發人員的背後,並不是缺乏天賦,也不是缺乏努力。

這是基本面薄弱。

這也是為什麼除錯或效能優化等主題對於大多數開發人員來說是一個猜謎遊戲。他們不習慣深入挖掘他們正在使用的庫和工具的表面。

要成為高級開發人員,您不僅必須了解事物背後的“什麼”,還必須了解事物背後的“原因”。

例如,高級開發人員不僅能夠建立 React 應用程式。但他們也會理解為什麼 React 是以某種方式建構的。以及它如何與編寫的語言(JavaScript/TypeScript)和執行的平台(Web 瀏覽器)融合。

好訊息是,一旦你掌握了基本原理,一切的水平都會上升。

🚨 PS您是否希望快速晉升為擁有優質資源、回饋和責任的高階開發人員? 點擊此處加入我們的免費社區 - 高級開發學院。 🚨

6. 端對端交付

公司避開初級開發人員的第一大原因是他們需要大量外部協助才能完成工作。外部幫助意味著您將打擾高級開發人員來完成您的工作。

初級開發人員被認為“昂貴”,因為他們無法獨立交付。

相反,高級開發人員可以提供端到端的服務。給他們一堆要求,他們會解決剩下的問題。這並不意味著他們是獨狼,而且他們通常非常擅長團隊合作。

這並不意味著高級開發人員快速破解事物只是為了推動它們前進。

那不是「真正的」前輩。

這並不意味著他們深入了解軟體開發生命週期的每個部分。

但是,高級開發人員了解整個軟體開發生命週期的所有主要部分。並且可以為其中的每一個(前端、後端、部署)做出貢獻。

如果您是想要升級的初級/中級開發人員,那麼端對端交付是您需要關注的特徵。

7. 心智模型

高級開發人員與初級開發人員的主要區別之一是他們可以處理的複雜性。

老年人可以理解更複雜的程式碼庫和需求。

他們可以理解二階環境。程式碼庫的變化將如何影響效能、成本甚至團隊。

他們這樣做並不是因為他們記住了每個實作細節。這是不可能的,因為人類的記憶非常有限。

他們這樣做是因為他們將程式碼的複雜度抽象化為心理模型。這些都是表示現實的簡單方法。

開發人員如何建構高品質的心理模型?

透過查看框架和庫的背後並學習它們背後的設計模式。根據您的技術堆棧,存在著許多噪音。諸如 SOLID 原則或 MVC 之類的東西...

但我認為最好的開始方法是選擇您正在使用的任何框架並嘗試超越程式碼。

圖片描述

開始問自己,為什麼框架的建立者要這樣建構它?它是建立在新概念的基礎上還是只是古老原則的實現(通常是這種情況)?

透過回答這些問題,您將建立軟體開發的思維模型,並能夠處理更多的複雜性。這是快速成長為高級開發人員的最有效方法之一。

🚨 PS您是否希望快速晉升為擁有優質資源、回饋和責任的高階開發人員? 點擊此處加入我們的免費社區 - 高級開發學院。 🚨

8. 資深開發人員控制故事

高階開發人員可以做得非常好的一件事是領導技術討論並影響周圍的其他人。無論是業務利害關係人、產品經理或其他開發人員,資深開發人員都知道如何引導他們朝著正確的方向發展。

他們結合自信、技術專長和溝通技巧來做到這一點。

高級開發人員也能夠設定嚴格的界限。

他們可以不同意而不會情緒激動。他們可以在會議期間為自己(和他人)挺身而出。他們積極協商薪資。

他們講述自己的故事。

圖片描述

高級開發人員知道如何以及何時在沙子上劃線並說“夠了”。

如果另一個開發人員在程式碼審查期間開始指責其他人,老年人知道如何阻止他們。如果高階主管試圖介入開發人員的工作並進行微觀管理,高階管理層知道如何在不破壞關係的情況下阻止他們。

沒有關於如何變得更加自信的開發人員的分步指南。

這需要重複和練習。第一步是停止一直說「是」。並開始嘗試在薪資談判中取得進展。

9. 長期思考

初級開發人員考慮“現在”。他們的想法是短期的。當他們走捷徑時,他們的程式碼也是如此。初級開發人員會擴展一段程式碼,而不考慮正確重構它,或乾脆忽略測試和效能。

但青年人也會對自己的職業生涯進行短期思考。

這可能意味著跳槽過多或自毀前程。這可能意味著忽視。

就像不提高你的技能或推銷自己的方式一樣,因為現在你的工作很穩定。只是被解僱六個月後才後悔。

成為更高級的開發人員的一部分是開始進行長期思考。

第一個方法是改變你的心態。大多數初級開發人員的短期思維不是由懶惰引起的,而是由自我懷疑引起的。

他們內心深處仍在思考成為開發人員是否適合他們。或者他們是否選擇了正確的職業。

這些疑慮阻止他們做出長期承諾。

圖片描述

好事需要時間,資深開發人員知道這一點並相應地調整他們的想法。

現在,隨著人工智慧威脅到軟體開發的終結,這種短期思維比以往任何時候都更加頻繁。如果某件事很快就會消失,為什麼還要承諾呢?

相信我,只有當我完全致力於我作為開發人員的職業生涯時,事情才開始起飛。

我說:「就是這樣」。

我不再向外張望。我告訴自己:這是我現在的工作,也是我未來十年的工作,所以讓我把它做好吧。

我開始投資我的技能,因為現在我知道它們會得到回報。

即使你未來 20 年不打算寫程式碼,擁有長遠的心態也會為你帶來巨大的好處。高級開發人員之所以能夠達到高級水平,是因為他們致力於自己的技術。如果您渴望實現這一目標,您也應該這樣做。

🚨 PS您是否希望快速晉升為擁有優質資源、回饋和責任的高階開發人員? 點擊此處加入我們的免費社區 - 高級開發學院。 🚨

10.卓越是一種習慣

我想正是 Kent Beck 說過那句名言:「我不是一個偉大的程式設計師,只是一個有著好習慣的好程式設計師」。習慣很重要,因為它們經得起時間的考驗。

因為您擁有的任何關於 JavaScript 框架的知識遲早都會過時。技術變革。但你的習慣將永遠伴隨你。

好訊息是人類是習慣的動物。

在我們的大腦中設定新的慣例並不容易。

但一旦我們將它們內化為習慣,我們就很容易堅持下去。利用這一點的最佳方法是實現您的任何目標並將其分解為日常行動。然後透過重複將這些行為變成習慣。

例如,如果您想更好地進行測試,請每天編寫一個單元測試。

如果您想在日常會議中做好更多準備並清晰思考,請寫日記。如果你想找到一份新的開發人員工作,並且你必須發送 100 份申請,那麼每天發送 10 份申請。

養成新的習慣,你向高級水準的進步將持續且穩定。

11. 保護您最重要的資產

身為高階開發人員意味著不僅要長遠考慮您的程式碼和技術決策,還要考慮您的健康。

因為健康就是財富。

我在影片中一次又一次地談論這一點。

開發人員的工作需要久坐。您一天的大部分時間都坐在電腦前的椅子上。這對你的健康非常不利。

然後,辦公室裡到處都是垃圾食品,像是薯條、汽水和糖果。這意味著除非您有意識地努力,否則您將很難保持健康和體形。

但如果你想擁有一個長期而富有成效的軟體編寫職業,並且不想最終出現背部問題、糖尿病,甚至更糟糕的情況,那麼你需要開始照顧自己的健康。

圖片描述

欲得金蛋,勿殺鵝。如果你想提高工作效率,首先要照顧好自己。

這並不意味著您必須開始每週去健身房 5 次。

或進行一些瘋狂的節食。但每周至少2至3次運動。您可以去健身房、跑步或參加團隊運動。現在我正在做

在飲食方面,減少糖和精緻碳水化合物的攝取。肉也不要過量。

也要考慮您的心理健康。

忽略諸如「吃飯、睡覺、編碼、重複」之類的建議,在工作之外建立自己的生活。

開始一個新的嗜好。聯繫朋友。休息一下。

從短期來看,你的進步可能會慢一些。但從長遠來看,你將能夠在遊戲中停留更長時間。

🚨 PS您是否希望快速晉升為擁有優質資源、回饋和責任的高階開發人員? 點擊此處加入我們的免費社區 - 高級開發學院。 🚨

12. 閉合圓圈

最後,資深開發人員了解業力是如何運作的。他們知道,無論他們多麼努力,或者多麼聰明,在他們走向頂峰的道路上,都有數十個人的幫助。

這並沒有剝奪他們的優點,但也承認其他人。

所以他們關閉了這個圈子。

他們幫助其他開發人員。他們這樣做是沒有期望的。

不是因為它可能會讓你升職。或是地位,或是仰慕。他們這樣做是因為這是正確的事。

圖片描述

甚至科比·布萊恩也抽出時間來指導年幼的孩子並讓他們進入籃球領域。您也可以抽出時間來幫助新開發人員。

幫助剛起步的人會帶給你部分火花。初學者第一次看到事物時所感受到的熱情和好奇心是如此具有感染力。

另一件你可以變成日常習慣的事情!

好的,就是這樣。具備這 12 個特徵,您將快速成長到高級甚至更高級別。


原文出處:https://dev.to/dragosnedelcu/12-senior-developer-traits-junior-developers-need-to-master-285m


共有 0 則留言