1. 程式人生 > 其它 >作為軟體工程師,給年輕時的自己的建議(上)

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

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

如果穿越到剛從業時,我會給年輕時的自己一個建議——“為你想要實現的目標設定各種各樣的目標。只要有正確的計劃和願景,任何目標都不會太大。”


在過去的25年裡,我經歷了成功和失敗。這段旅程令人難忘,因為它讓我明白了失敗和成功的重要性。每一次成功都貼近我的內心,不斷讓我更好地理解團隊合作和成就感,但每一次失敗都為我提供了一種新的創新方式,讓我找到非凡的解決方案。

另一個幫助我走到今天的品質是敢於冒險。我從不害怕障礙,尋找具有挑戰性的任務,而不是接受我遇到的第一個專案。有意識地走出自己的舒適區,讓我比同齡人更快地學會了高階技能。

當我回顧十多年前,有幾件事,我希望我應該或不應該做。這些職業建議本可以幫助我避免錯誤的決定,並以更專注和更快的方式前進。這就是為什麼我決定寫下我給年輕時的自己的一些建議,以幫助那些剛剛開始軟體工程工作的職業旅程的人。

如果我能回到過去,這些是我作為軟體工程師會教給年輕的自己的18條建議(上篇僅展示1-9條,
下篇展示10-18條
):

一、樂於提問

作為一名專業人士提出問題可以讓你清楚自己的角色、任務,並展示出理想的領導品質。即使你認為那是愚蠢的問題、嚴重的擔憂或一個簡單的想法,總是提高你的聲量,把你的想法擺出來。需要明白的是,將你的的聲音帶到工作場所是至關重要的。

在上級眼中,提問意味著:
  • 樂於學習:提出問題有利於把辦公室等級制度轉變為教育體系,從中學到非凡的東西。
  • 渴望參與:提出問題並認真傾聽回答,表明重視同齡人的見解,並希望在最終確定任何結果之前瞭解對事情的看法。
  • 持續求知:瞭解他人的思考、工作和行為方式,為創造性的想法和解決方案開啟大門。

大多數時候,問相關的問題會激發創新,幫助及早發現風險和挑戰。

IT行業的新手,如果不積極主動,很可能不會意識到客戶或團隊遇到的問題。站在自身角度,依賴通常模式處理挑戰很容易,但是當與上司和團隊成員一起應對挑戰時,可以找到更多元的方法來解決這個問題。

二、保持好奇

好奇心是所有頂級開發人員的關鍵行為,能夠理解“為什麼”和“怎麼做”的好奇心使開發人員是團隊的巨大資產。歷史上的大多數突破性發現和發明都是好奇心的結果。

在軟體工程工作中,好奇心非常重要,因為它可以幫助領導者及其員工適應不確定的市場條件和外部壓力。始終記住,瞭解業務需求也是必不可少的。

好奇心促使我們對決策進行更深入、更理性的思考,並提出更有創造性的解決方案。

三、在軟體工程中應用極簡方法

在軟體工程中傳授極簡主義幾乎是不可能的。但下面是我簡單樸素的極簡主義清單:
  • 最快的程式碼是根本不執行的程式碼。
  • 執行更少的SQL查詢總是更好的。
  • 當功能、工具和框架更少時,複雜性的數量就會減少。
  • 過於複雜會浪費時間和金錢。
  • 不要浪費時間做無用的事。
  • 始終專注於避免複雜性和程式碼。
  • 建立高效團隊,而非依賴於工具。
  • 清晰地表達專案需求,並定期與其他團隊一起工作。
  • 工程師必須找到替代方案以避免技術債務。
  • 關注複雜細節,比如分析和維護舊程式碼或開發戰略性的方法。
  • 軟體工程師應該同時管理多個專案。

四、打造自己的品牌

根據一般經驗,軟體工程師並不會主動推銷自己,也不會專注於建立自己的個人品牌。這是因為他們大多數人認為品牌是一項不必要的任務。但是,需要意識到,如果沒有個人品牌,軟體工程師要獲得真正的認可會變得極其困難。

我相信,對年輕的自己來說,建立個人品牌是最重要的建議,因為它可以幫助任何階段的從業者:從自由開發者到企業家,再到找工作的工程師。包括軟體工程師在內的每個人都需要在競爭中脫穎而出,尤其是在就業機會稀缺的新常態下。

軟體工程師建立個人品牌的方式:
  • 更新領英個人資料:你的LinkedIn個人資料應該包含你簡歷中的所有資訊,甚至更多。資訊的顯示方式應該告訴招聘人員你值得考慮。
  • 持續釋出:在個人社交平臺上持續釋出,保持活躍。當你定期釋出內容時,你的關注者會期待你的內容,這將帶來高參與度。
  • 展示對工作的熱情:展現熱情並不是非常優秀的候選人的最佳預測指標,但是招聘經理在他們的面試反饋中反覆提到這一特點。

五、選擇合適的組織

人們通常更關注職位而非關注公司。當申請工作時,需要確保選擇好,選擇最為合適的公司。

這很重要,因為你將為其提供服務,並與該公司建立聯絡——即願景、使命和價值觀。如果公司的價值觀和你的價值觀一致,你所做的工作會給你帶來更多的滿足感和幸福感。

公司應該投資於你的職業發展。它應該有專注於員工成長的實踐,比如小型課程或講座。

合適的組織也將擁有合適的高智商人才資源。經驗豐富的工程師將幫助閱讀清晰的程式碼並深入理解它們由資深同事組成的文化,可以幫助新人分析創新方法和技術決策背後的原因。身邊有經驗豐富的同事可以大大提高自己的學習效率。

所以,有必要儘量深入地對公司做好了解。不要被公司的網站或基礎設施分散注意力,而是要研究他們的產品、服務和客戶。對公司、公司使命、願景和文化了解得越多,也就越瞭解它將如何影響你的職業發展。

六、成為領域專家

領域專業知識對專案的成功至關重要。獲得領域知識的重要性很少被討論,尤其是與我們對提高技術技能的重視程度相比。成為專業人士對職業發展有意義,並指導你在職業生涯中做出正確的決定。

在組織中,有時只有專家才能挽救某一局面。這就是大多數公司更願意招聘領域專家而非多面手的原因。

在當前情況下,具有技術背景的領域專家比純粹的技術專家更受歡迎。領域專家擁有領域知識、相關挑戰、領域分類、生態系統和趨勢分析等優勢。他們對不同的問題或場景有更好的理解。領域專家可以幫助交付靈活、敏捷的應用程式或軟體,以幫助公司提高產品的適銷性。

七、勇於改變

如果你一直做重複性的工作、解決相同的問題,那工作將變得不那麼重要且不具有挑戰性。 在同一份工作上呆了很長時間可能會讓你的簡歷看起來停滯不前。每24-30個月更換一次角色,以促進職業發展跳槽到新公司或新職位有助於保持自己技能的更新。換工作的另一個重要原因是,你通常只在前幾年就能學到最重要的東西,換工作可以發展更廣泛的內容。

當然,這不一定意味著一定要換工作,可以是內部輪崗、調崗,這樣可以保持簡歷的更新,讓其對僱主更有吸引力,因為這意味著願意接受新的挑戰和機遇。

八、如果當前組織不適合你,那就採取下一步行動

沒有人在接受工作的時候會期望它會變成令人失望的事情。一旦得出結論——你的工作已經成為緊張的來源,事情就變得真正嚴峻起來。

當發現上級不迴應你的反饋或者經常因工作而精疲力竭時,就不要因為不稱職的僱主而痛苦,也不要害怕在事情不利的時候迅速離開。不要容忍那些不準備對你的成長做任何投入的人。

九、學會在不舒服的情況下保持舒適

“走出你的舒適區。只有當你願意在嘗試新事物時感到尷尬和不舒服,你才能成長。”——Brian Tracy

謹慎行事往往會分散你對成功的注意力,學會在不舒服的情況下保持舒適將有助於個人實現其最高潛能水平。如果不敢跨出第一步,就永遠無法成長和達到新的高度。學習新的技能和課程將幫助你度過一生。

走出舒適區的最佳方式之一是明智地冒險。它鼓勵你發展高階技能,從長遠來看會有所幫助。它還將為你的工作提供更大的主人翁意識和信心。

在接下來的18個月裡個人會學習瞭解以下領域:量子計算與Q#、分散式計算、RUST、Tensor Flow、Snowflake、Unity(用於3D建模、AR、VR、MR)、5G。

你可能會想:為什麼這些職業建議這麼重要?讓直屬上司滿意還不夠嗎?答案通常是否定的。在成功的旅途中會有一些無法解釋的挑戰,但當從一開始就朝著正確的方向前進時,就會更容易處理這些挑戰,並且比其他挑戰行動得更快。

從長遠來看,這些職業建議是值得的。