我看到的高級軟件工程師所做的事情

我如何從中學習和進步

source : https://medium.com/better-programming/the-things-that-i-saw-senior-software-engineers-do-6a9f49b9e54f written from Michael Chi

Photo by Christina @ wocintechchat.com on Unsplash

我很幸運,可以開始擔任初級開發人員,並由一名高級指導者擔任指導。這意味著我有機會向走過我要走的道路的人學習,並且在這次旅行中比我有更多的經驗。

您的團隊中有一位願意教您指導的高級工程師真是太幸運了。如果您的職業目標是成為一名高級開發人員,則可以節省大量時間。

在這篇文章中,我想分享一下我的導師和其他高級開發人員的工作,以及從他們那裡學到的教訓。

他們挑戰客戶

在我們開始實施產品之前,必須與客戶確定功能。高級開發人員通常是技術負責人,並參加這些會議。

有時,客戶實際上並不知道他們需要什麼。他們可能會認為他們所想的功能才是他們所需要的,但不是。我已經看到高級開發人員挑戰了功能的可行性,並提出了另一個更好地滿足客戶真正需求的想法。

正如喬布斯曾經說過的:

人們不知道自己想要什麼,除非您向他們展示。 — 史蒂夫·喬布斯

這不一定意味著客戶一無所知,但是在很多時候,作為開發人員,您知道/應該如何構建功能,並且您可能能夠提出更適合的想法。

我的重點:

  • 始終考慮您的工作所提供的業務價值。
  • 考慮所請求功能的可行性-是否有更好的解決方案?
  • 不一定總是與客戶保持一致。不要害怕禮貌地挑戰並表達您的想法。即使他們錯了,但在一個擁有良好文化的公司中,每一個觀點都至關重要。

他們從不耗盡工作要做

在我與經理進行的1–1交流中,他向我解釋了這個概念。他說:

高級開發人員永遠不會耗盡工作量,因為它們對組織內的代碼庫產生了巨大影響。它們是創建和增強回購協議的一部分,因此他們記得累積的技術債務。他們總能找到值得改變和優化的東西。

當然,我的公司沒有Google的規模,但是對於已經在公司工作了一段時間的高級開發人員來說,他們對代碼庫的影響是巨大的。

他們可能會啟動一些回購協議,當其他開發人員遇到問題時,這使其成為“技術聯絡”。他們可能會記住由於匆忙執行某個項目而推遲的事情,但是當他們有空閒時間時,他們仍然可以改善它們。

有時只有初級開發人員會覺得自己無所事事。因為作為大三學生,我們的頭等大事是完成手頭的任務並完成此衝刺(完成這篇文章後,我將打開公關)。

我的重點:

  • 有空的時候,看看其他團隊在做什麼。如果可以的話,也許可以幫忙。這將使您對組織的其他部分具有可見性,並產生更大的影響。也許您甚至可以識別管線中可以優化的部分並開始新項目。
  • 如果您真的找不到任何東西,那麼記錄您所做的複雜項目或所使用的庫總是有幫助的。

他們對其他團隊具有可見性

這與上一點聯繫在一起。我經常注意到,我的高級導師知道其他團隊正在做什麼,並在我們做出會影響其他團隊的更改時考慮他們。

不僅如此,我們還可以根據其他團隊的發佈時間表來安排工作的優先級。

不可避免的是,您將使用其他團隊使用的共享庫,或者您可能正在使用另一團隊擁有的回購協議。通過了解每個團隊的運作方式,可以減少團隊之間的摩擦,並使工程部門的所有人受益。

當然,在像Amazon或Facebook這樣的公司中有數百個不同的團隊,這是不可能的。但是您至少應該在團隊之外具有一定的知名度,而不僅僅是對自己的工作輕描淡寫,而對周圍的事情無動於衷。

這樣一來,如果您想轉到另一個團隊就非常容易。如果您有足夠的資源並且已經在幫助其他團隊的工作,為什麼您的經理不允許您調動?

我的重點:

  • 與最後一點相同。

他們聽著,並解釋

有時我會問一些愚蠢的問題。答案通常就在我的鼻子底下。每當我的導師陷入困境後,每次為我指出解決方案時,我總是想知道自己是怎麼沒想到的。

有時候,我認為我正在研究某些東西,並與他們討論如何以某種方式實現功能。我以為我想出了一種方法,可以節省一些AWS成本,或者這是炫耀我所知的一點算法知識的好方法。

他們總是傾聽,然後冷靜地反駁我的觀點,證明我錯了。但是如果不寫大量段落來解釋原因,他們永遠不會讓我感到沮喪。

而且,如果我真的在做某事,他們也會聽我說,讓我做我想做的事。

但是,無論哪種方式,高級開發人員都會傾聽他人不得不說的內容並喜歡解釋。無論是在初級輔導班還是在解釋圖書館功能的文檔頁面中都顯示了這一點。

我的重點:

  • 即使您不需要這樣做,也願意記錄並解釋其工作方式。
  • 溝通是關鍵,如果有機會,可以以編寫文檔或解釋概念的形式進行交流。

他們不怕看源代碼

我們使用了許多JavaScript程序包,而我見過的最早的git commit是八年前的事情。隨著庫更新速度的提高,並不是所有人都希望支持八年前編寫的內容。因此,我們有很多錯誤。

StackOverflow上存在許多錯誤,但不幸的是,我們在嘗試支持具有八年曆史的Web應用程序時通常會在線上找不到這些錯誤。該庫仍然存在於GitHub上,並且源代碼在那裡。使用它們。

很多時候,我們的構建管道中存在一個錯誤,當我在Google上找不到任何東西(或者我只是沒有足夠努力地搜索)之後,我的導師在Slack中提到我們所使用的庫有了更新,並且有一個錯誤。他已經為他們開了個問題。同時,我們可以做到等等……

我敢打賭,這就是開源庫如何處理未解決問題的列表。這是因為人們實際上走進去,查看了源代碼,並發現了庫中的錯誤。不是像我這樣的開發人員那樣害怕研究React的源代碼,而只是認為開源庫總是正確的。

了解開放源代碼庫公開其代碼是有原因的。它們是在調試和充分了解技術時使用的出色工具。

我的重點:

  • 如果您正在使用的庫存在錯誤,並且Google搜索沒有返回任何有用的信息?看一下您正在使用的函數的源代碼。您也許可以找到問題,或者至少可以深入了解解決方案。
  • 閱讀源代碼時找到樂趣。源代碼是您所使用的庫的唯一真實來源。

最後的想法

通往高級開發人員的道路不僅在於提高編碼水平,還涉及許多其他事情。 如果我們想成為某一天,為什麼不向高級開發人員自己學習呢?

與具有更多經驗的人進行互動時,觀察他們的工作並進行分析。 您可以學習一些真正有價值的東西,它們可以為您指明一個明確的方向。

甚至高級開發人員也可以從其他人那裡學習,甚至可以從其他經理或職員工程師那裡學習。 如果您被經驗豐富的開發人員所包圍,那麼沒有理由不作為一名開發人員而前進。

--

--

胡家維 Hu Kenneth
胡家維 Hu Kenneth

Written by 胡家維 Hu Kenneth

撰寫任何事情,O型水瓶混魔羯,咖啡愛好者,Full stack/blockchain Web3 developer,Founder of Blockchain&Dapps meetup ,Udemy teacher。 My Linktree: https://linktr.ee/kennethhutw

No responses yet