作為軟體工程師,給年輕時的自己的建議(下)

語言: CN / TW / HK

如果能夠穿越到10年前,你會給年輕的自己什麼建議?

如果穿越到剛從業時,我會給年輕時的自己一個建議——“為你想要實現的目標設定各種各樣的目標。只要有正確的計劃和願景,任何目標都不會太大。” 在過去的25年裡,我經歷了成功和失敗。這段旅程令人難忘,因為它讓我明白了失敗和成功的重要性。每一次成功都貼近我的內心,不斷讓我更好地理解團隊合作和成就感,但每一次失敗都為我提供了一種新的創新方式,讓我找到非凡的解決方案。 另一個幫助我走到今天的品質是敢於冒險。我從不害怕障礙,尋找具有挑戰性的任務,而不是接受我遇到的第一個專案。有意識地走出自己的舒適區,讓我比同齡人更快地學會了高階技能。 當我回顧十多年前,有幾件事,我希望我應該或不應該做。這些職業建議本可以幫助我避免錯誤的決定,並以更專注和更快的方式前進。這就是為什麼我決定寫下我給年輕時的自己的一些建議,以幫助那些剛剛開始軟體工程工作的職業旅程的人。 如果我能回到過去,這些是我作為軟體工程師會教給年輕的自己的18條建議(本篇展示10-18條, ​ ​上篇已展示1-9條​ ​):

十、持續學習:提高技能/重新技能的計劃

數字世界正高速向前發展,軟體工程師不僅要了解自己的技術領域,還要深入瞭解其他領域知識。為此,持續學習、提高技能/再培訓計劃是最好的方法。當一個人獲得各種技術學科的認證時,他可以更好地理解問題和客戶的要求。 ![](/img/bVcYa4Y) 持續學習和認證可以幫助工程師展示他們的能力、對專業的承諾,並在專業領域建立專業知識。此外,認證培訓和延續主題通常會定期改進,以確保在該領域執業的任何人都能跟上最新的趨勢和發展。

十一、軟體工程簡單,然而人複雜

對於軟體工程師來說,為了獲得成功,瞭解和理解他們工作的社會方面至關重要。很多時候,人類的工程師沒有意識到理解社會方面的價值,而此後這會以某種方式限制職業生涯。 其中一個最大的原因是,很多時候,我們必須與其他人或團隊合作,此時的技術技能就不那麼重要,而溝通和協作更重要。這就是為什麼不僅要關注技術技能,還要與周圍的人互動並理解他們,這一點至關重要。 建立你的社交網路“社會結構”是指圍繞你並支援你的群體或社群。它可以是你的家人、朋友、同事或鄰居。這是一個在你需要的時候為你服務的社群。每一鏈條中的綜合價值觀互動方式,決定著這是否是將人與人聯絡在一起的社會紐帶。 社會結構的質量決定了一個人如何有效地構建其組織,以實現包容性、可持續的繁榮。創造一個更強大、更有凝聚力的社會結構的關鍵不在於創造僵化、不靈活的價值觀,而是通過有意識地更新和補充支撐社會結構的有凝聚力的價值觀。

十二、尋找一位導師

正確的指導關係可以成為職業發展的有力工具——它可以帶來新工作、晉升,甚至更好地平衡工作與生活。 找到導師的最佳方式是瞭解自己的目標(包括短期和長期)。目標越明確,就越容易找到合適的導師。建立有效且易於實現的目標的原則可以參考SMART:具體、可測量、可實現、相關且有時限。 第二個最好的方法是瞭解你現有的人際網路。別人對你的工作和能力越瞭解,就越能有效地指導你。當然,要確保想找的人也有你所需的專業知識。

十三、攻讀碩士學位

計算機和資訊科技工作崗位預計將增長12%,新增54.62萬個工作崗位。碩士學位是職業發展的關鍵一步,尤其是如果你的專業經驗有限,想轉行,或者即使已經身處這個行業,但想進入下一個層次。 學位的進修可以讓人獲得系統思維、商業道德和組織戰略方面的經驗,將你的戰略思維技能提升到一個新的水平。此外,這份終身學歷證書也展示自己的專業知識和對該領域的奉獻精神,同時還可以擴大專業人脈。

十四、要JOMO而不是FOMO

“害怕錯過”(FOMO,fear of missing out)是指可能錯過了一段美好的時光,它是一種焦慮或後悔的感覺,伴隨著聽到一個事件,需要去執行以防錯過什麼。但好訊息是,可以用一種更健康、更快樂的方式來取代對錯過的恐懼:錯過的喜悅(JOMO,joy of missing out)。 錯過的喜悅教會我們正確地點和正確時間的價值。這並不意味著對每一個社會事件或機會說不,而是意味著知道什麼時候說是或不是,也即選擇的權利。 ![](/img/bVcZITD)

十五、軟體工程倫理

軟體開發人員是保護我們關鍵基礎設施不可或缺的一部分。他們的工作是編寫對人們生活產生巨大影響的演算法。學術和專業協會在為軟體工程師制定道德規範方面處於獨特的地位,但它們沒有那麼大的影響力。軟體工程師的道德準則不應該看起來像一種程式碼或注意事項列表。 它應該更像“所有軟體開發人員應該自學程式設計偏見及其潛在危害,檢查他們的計劃和後續程式碼等偏差,能夠解釋他們如何處理這些問題,願意接受他們的程式碼審查,要求負責的程式碼中發現的缺陷可能導致偏見,並解決監督委員會提出的問題。”

十六、選擇你的職業:技術管理、產品管理還是人力管理

在解決企業規模擴張的挑戰時,有很多不同的思維方式。幸運的是,軟體工程師能夠接觸到各種各樣的工作環境,從而能夠在正確的軌道上塑造自己的想法,並繼續前進。

十七、解決關於動機的迷思

為了解答工作動機的問題,軟體工程師需要能夠清楚地描繪出他的日常工作如何融入到更大的圖景中,以及他是否想知道他們所做的工作是相關的。 第一步是列出你想要實現目標的原因。這就是為什麼你需要為自己的目標紮根。此外,要為暫時的挫折或純粹的疲憊做好準備,但不要把它放在心上,並以充分的決心向前邁進。

十八、花時間於軟體工程模式

可觀察性:它是一種工具或技術實踐,使工程和運維團隊能夠勤奮地除錯他們的系統。它探索了可能沒有預先定義或確定的新模式和屬性。由於程式碼在生產環境中可能會有不同的行為,所以在生產環境中發生影響使用者的情況下,主動觀察發生了什麼是很重要的。為了執行真正的系統可觀察性,需要對程式碼進行測試,以生成有助於提出任何新問題的遙測技術。 作為程式碼進行監控:這是一種使運維團隊能夠觀察和理解其系統不同狀態的實踐,通常通過預定義的指標、實時更新的儀表板報告來完成。為這些儀表盤提供資料的基礎是組裝一組預定義的指標或日誌,這些指標或日誌很重要。 在接下來的18個月裡個人會學習瞭解以下領域:量子計算與Q#、分散式計算、RUST、Tensor Flow、Snowflake、Unity(用於3D建模、AR、VR、MR)、5G。 你可能會想:為什麼這些職業建議這麼重要?讓直屬上司滿意還不夠嗎?答案通常是否定的。在成功的旅途中會有一些無法解釋的挑戰,但當從一開始就朝著正確的方向前進時,就會更容易處理這些挑戰,並且比其他挑戰行動得更快。 從長遠來看,這些職業建議是值得的。