高級軟體工程師每天都在做什麼?

2020-12-15 騰訊網

本文作者 Joy Ebertz 接觸過的幾乎每一家軟體公司都設有技術晉升與管理晉升兩條職業道路,這意味著如果只走技術方向,技術人員也完全可以在不出任管理職務的前提下達到相同的高階職級。但與此同時,Joy Ebertz 所參加的幾乎所有職業演講或討論小組都充斥著管理人員。現在,Joy Ebertz 終於明白從宏觀層面來看,管理者到底需要做什麼、管理的晉升通道又是怎麼一回事。

無論是在公司內還是公司外,管理晉升通道中的高層都有著更高的知名度。技術高管也是如此,但對於負責技術的中層管理人士,很多人可能就有點摸不清底細了。

在這裡,我先給大家交個實底:在第一次接觸軟體行業時,如果大家問我 10 到 15 年之後想要做什麼工作,我首先想到的答案無疑是軟體架構師。我對管理崗位沒有太大興趣,而且我知道架構師是技術道路上最資深的人群。然而,那時的我並不清楚架構師到底需要做什麼,當時想到這個答案的原因無非是野心與想證明自己的渴望。但恰巧,我後來的發展道路或多或少遵循了當初的心願,只是現在的我更清楚擔任高級技術管理者意味著什麼。

工程技術角色匯總

我現在是一名高級軟體工程師,但這究竟是幹嘛的?雖然具體的頭銜與職能劃分取決於具體的企業,但根據我們利用谷歌搜索結果進行的建模,整個行業內的定位思路大體相似。我最初是一名軟體工程師(簡稱 SWE),而後是高級軟體工程師(Sr SWE),經歷了短暫的管理適應周期後,我最終晉升為高級管理人員。在此之上,還有首席工程師與研究員等職位,不過據我所知我們公司好像還沒有真正的研究員。另外讓人有點犯迷糊的是,前兩個階段其實基本是統一的;這意味著即使工作內容相同,在高層管理者看來,不同員工之間仍然存在著巨大的差異。

根據與高級軟體工程師的交流,對於較低職級,企業當然希望員工儘可能展現自己的技能與才華。我們希望每位晉升為高級軟體工程師的員工都能在一切領域(例如技術技能、領導力、文化與價值觀等)中充分展現自己的水平,在各項指標中至少達到標準要求,同時掌握高級工程師所必需的一切技能。

值得強調的是,各個職級的工作內容略有不同。正因為如此,雖然我們希望員工能夠從高級軟體工程師開始一步步成長上來,但技術人員也完全可以在接下來的職業生涯中出任同樣的職務。如果有人就是喜歡做高級軟體工程師,而對主管工程師沒有興趣,那我們也充分尊重這樣的選擇。

在我看來,隨著時間的推移,對角色變化最簡單的描述方式就是觀察其在影響力層面的變化。具體來講,我們可以通過如下幾個角度來審視:要麼就是能夠產生更廣泛的影響,要麼就是能夠產生更深遠的影響。具體來說,我們可以影響很多團隊,或者對單一團隊產生重大影響。我們也可以用另一種方式來理解:以編寫代碼為例,我們可以編寫一部分超級重要或者超級複雜的代碼,從而影響某一特定業務區域的運作方式;也可以指導他人進行編碼最佳實踐,或者對多項設計提出意見或者影響其決策方式,從而產生更廣泛的影響。

說到這裡,我的闡述可能還是有點抽象和寬泛。下面繼續深入聊聊高級軟體工程師到底是什麼的。

高級軟體工程師的工作內容

我並不是說這是高級軟體工程師的唯一日常,我只是開誠布公地告訴大家,我是如何工作以及如何看待這份工作的。我的工作內容主要分為兩大類別:首先是實際戰術,即日常任務內容;第二類不太明顯,但同樣非常重要,即我是如何考量以及處理這些任務的。

我花了點時間思考自己每天需要處理的具體事務,並把它們整理成一份圖表。我肯定遺漏了一些內容,而且具體工作每周都會出現明顯波動(因此這只是一份粗略的圖表,僅供大家參考)。

我意識到,自己只花了大約一半的工作時間直接為 Scrum 團隊完成任務。其中包括所有團隊會議,我覺得這進一步突出了流程精簡的重要意義。我承認,這部分工作跟我早年間的工作內容非常相似。雖然現在採取的具體方法有所變化,但在性質上並沒有多大區別。具體包括編寫設計文檔、編寫代碼、進行代碼審查以及測試所有代碼等內容。

接下來的部分同樣佔據了相當比例的工作時間(大約 20%),這就是技術諮詢(圖表當中的綠色部分)。其中包括為各類設計方案——包括我自己的團隊與其他團隊提供諮詢建議,回答技術問題以及在 API 標準委員會任職等。其中一部分與我的直接團隊相關,但大多數是面向企業內的各個團隊。有些問題還跟我個人有關,因為我雖然已經成為高級工程師,但當初入職時做的很多項目還在發揮作用,所以有時需要回答一些相關問題。隨著所參與的項目數量不斷增加,這方面工作內容也在持續增長。另外,雖然一直在回答問題,但我對於問題的考量方式與回答,或者說我提出的設計建議,也在隨著時間推移而發生變化。

至於剩下的時間,基本上就是花在指導他人、建立更大的項目規劃、技術品牌以及其他雜事身上。在指導當中,又分為正式指導與非正式指導。非正式指導一般就是一對一當面傳授心得,正式指導自然是在眾多同事面前通過演示文稿的形式講解項目知識了,而且可能涉及一場甚至是多場會議。雖然正式指導看似有用,但我自己的感覺是它在我的指導內容當中只佔很低的比例。相反,在大多數情況下,最好的方式往往是只立足一到兩個問題圍繞同一主題進行講解。在非正式指導方面,我更傾向於稱其為同伴指導或者相互指導。這並不是單純的導師 / 學生那種關係,而是我會把我自己的問題與思路分享給同事,他們也同樣向我分享。我們都能為對方提供見解與想法,並從其他人的不同觀點當中受益。

大型項目規劃包括與其他高級工程師及經理合作,為我的團隊或者所在部門設定技術方向。其中還可能包括改善工程中的多樣性與包容性等。基本上,這些都是涵蓋多個團隊的長期戰略項目。隨著時間的推移,我先後參與了眾多不同的大型項目(包括我之前提到的那些)。有時候同事們會邀請我加入討論,但一般來說我都能早一步發現問題並主動組織討論。

接下來是技術品牌問題,我的主要工作就是幫助企業改善品牌形象。就個人而言,這主要涉及撰寫博客文章,外加接受訪談或者幫助他人編輯文章內容。其中一些屬於宣傳性信息,但也有一些更側重於學習與分享,旨在引導我們的工程師對於部門中正在研究的某些課題產生興趣。

最後,我提到的雜項包含不太好歸類的其他工作內容。其中囊括了各種各樣的事務,包括接受採訪、參加技術討論或者參加公司內的黑客馬拉松活動等。這些事情同樣重要,但在時間佔比上相對比較有限。

如果我在剛剛入職的時候就能讀到這樣一份清單,那麼我的職業規劃應該會更加明確。畢竟雖然這與初級工程師沒啥關係,但以當時自己的能力而言,我已經完全可以勝任其中的大部分內容。不過我也承認,真正變化的並不完全是技能,而是我在處理這些任務時採取的方式以及在任務當中的關注重點。這種心態層面的變化,在重要性方面甚至不遜於工作技能。畢竟從時間佔比來看,具體事務只佔工作時長的一半左右。

-END-

作者丨Joy Ebertz

譯者丨核子可樂

策劃丨趙鈺瑩

相關焦點

  • 高級軟體工程師都是做什麼的
    軟體工程師作為一群高薪人群,我們對此早已不陌生,很多人都嚮往著這些高薪職位。雖說程式設計師們的工資高,但是他們要做的也不少啊。所謂能力越大,責任就越大。當然,還會伴隨著高薪。那麼,這麼高薪的工程師們都是在做什麼的呢?下面我們來看看!
  • 一位高級軟體工程師的自述:這個職位到底要做什麼工作?
    本文作者 Joy Ebertz 接觸過的幾乎每一家軟體公司都設有技術晉升與管理晉升兩條職業道路,這意味著如果只走技術方向,技術人員也完全可以在不出任管理職務的前提下達到相同的高階職級。但與此同時,Joy Ebertz 所參加的幾乎所有職業演講或討論小組都充斥著管理人員。現在,Joy Ebertz 終於明白從宏觀層面來看,管理者到底需要做什麼、管理的晉升通道又是怎麼一回事。
  • IPFS高級軟體工程師
    我們正在招聘高級軟體工程師/負責人,負責行星際文件系統(IPFS)的參考實施。IPFS是Web 3.0最具前景的項目之一。IPFS將分布式系統研究與大規模實際應用程式相結合,已為數百萬每月的活躍用戶帶來了內容尋址的點對點應用程式。
  • 高級軟體工程師如何設計職場規劃
    科技公司的高級軟體工程師通常指的是具備豐富行業經驗且知識結構比較全面的軟體開發人員,往往需要具備三方面能力,其一是具備豐富的開發經驗,能夠解決大量場景下的軟體開發問題;其二是具備解決部分關鍵問題的能力,比如性能瓶頸等;其三是具備一定的方案設計能力。
  • 什麼是軟體測試工程師呢?
    近年來,在IT行業衍生出很多新的職業,軟體測試工程師就是其中一種。那什麼是軟體測試工程師呢?軟體測試工程師是指理解產品的功能要求,並對其進行測試,檢查軟體有沒有錯誤,決定軟體是否具有穩定性,寫出相應的測試規範和測試用例的專門工作人員。簡單來說,軟體測試工程師在一家軟體企業擔任的是「質量管理」的角色,需要及時糾錯及指正,確保產品的正常運作。
  • 機器學習工程師與軟體工程師的區別是什麼?
    鑑於機器學習(尤其是深度學習)在整個行業中的普遍性,越來越多的工程師每天都在部署這些工具。使用深度學習可為公司帶來巨大利潤的工具列表實際上是無止境的:搜索推薦,語音到文本,語音助手,面部識別,廣告等等。實現這些模型與構建大型分布式軟體系統的角色有何不同?心態相似,但專業不同。
  • 軟體測試工程師是什麼?
    IT行業至今還是如火如荼,軟體測試是IT行業的一個細分類目,軟體測試工程師是軟體測試工作的執行者。最近看tester指導猿的文章,學到了。1.什麼是軟體測試軟體測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。
  • 軟體工程師除了寫代碼,還能做什麼工作?
    當我籤下第一個客戶時,還沒覺得技術寫作可以像許多職業道路一樣成為前軟體工程師的新職業,但沒過多久我就意識到了這確實是可能的。 軟體開發人員還能做什麼? 這一發現令我陷入沉思:「除了寫軟體,軟體工程師還能做什麼?」答案之多令人咋舌。
  • 高級軟體工程師需要具備的專業技能
    隨著我國信息化的不斷發展,網際網路方面人才需求量越來越大,如今很多企業需要掌握Java技術的軟體開發人員,並且只有掌握高級技術的開發程式設計師才能擁有立足之地。那麼學習Java應該掌握哪些高級技術呢?一名高級軟體工程師需要具備哪些能力?
  • 要想成長為一名高級軟體工程師需要注重哪些方面
    能否成長為一名高級軟體工程師往往與所處的行業、所從事的崗位以及自主學習有密切的關係。高級軟體工程師不僅要有較強的技術研發能力,同時也要有較強的行業認知能力,能夠針對於不同的應用場景給出針對性的解決方案,而且要能緊跟技術發展趨勢不斷完善技術方案。
  • 軟體測試工程師職業規劃
    第三階段:(高級測試工程師)程序分析員   自身條件:有3~4年經驗的測試工程師或程式設計師。具有一定的行業業務知識,儲備系統分析員的能力。  具體工作:幫助開發或維護測試或編程標準與過程,分析軟體需求,獲得測試需求。確定測試需求相應的測試方法,獲得測試策略方案。
  • 職業規劃指南:怎樣才能成為軟體工程師?
    例如,報告發現,過去一年內區塊鏈的爆炸式發展,導致具有區塊鏈技能的軟體工程師需求激增。  Glassdoor的經濟研究博客稱,大多數公司都在爭相提高競爭力,幾乎在所有行業加大了對技術的投資。隨著越來越多的公司試圖轉型為科技公司,零售、金融、製造業等行業需要越來越多的軟體工程師來構建、開發、啟動和維護軟體產品和系統。  軟體工程師是做什麼的?
  • java高級工程師的薪資高嗎?都有哪些發展方向呢?
    在這個網際網路時代,人們不論是在工作上,還是在生活上都離不開技術,技術幾乎成為了幫助我們生存的工具。據it獵頭考察,近來隨著科技的發展,java高級工程師作為技術型崗位也不斷地被各類行業所需要。為此,我們來了解一下java高級工程師的薪資行情怎麼樣?發展路徑又是怎樣的呢?
  • 解決IT企業「高端人才用工荒」 傳智播客著力培養高級軟體工程師
    中國青年網北京7月12日電(記者 崔寧寧)7月11日,IT教育機構傳智播客舉行了主題為「生而顛覆,9為就業」的2020夏季課程發布會,正式對外發布聚焦培養高級軟體工程師的課程,其課程容量和項目深度均提升50%以上,課程時長率先在行業內由原來的6個月延長至
  • 軟體測試工程師前景分析
    在軟體項目開展過程中,程序質量管理、程序的正常運營以及應用程式在開發周期中的貫穿都要軟體測試工程師來完成。   根據頂測科技相關資料統計,目前在國內軟體從業人員中,真正等擔當軟體測試職位的人員不足10%,而且人才缺口比較大並成逐年增長的趨勢,軟體測試工程師人才的極度匱乏為許多IT企業的軟體項目帶來了消極因素。
  • 微軟高級軟體工程師:如何進行自動化測試?
    圖源:Google最近,我與微軟的高級軟體工程師KlausHemstitch進行了交談。過去7年裡,Klaus Hemstitch一直在微軟的Office 365團隊工作。每天他的團隊要確保所有的網絡組件能在每個主流瀏覽器上正常工作。我很想知道在構建可擴展且有益的自動化測試時,他們如何解決那些困難的任務。· 您在微軟工作多久了?以前在哪裡工作?我從2013年開始在微軟工作,之前在奧多比(Adobe)工作了3年。· 您目前的工作職責是什麼?我們的團隊負責Office365中大部分網絡組件的功能自動化測試。
  • 高級工程師屬於什麼職稱?
    高級工程師屬於什麼職稱?對於高級職稱,有很多行業可以評定的證書,當然,能成為高級工程師的都是非常厲害的,接下來小編帶大家看看,大家可以詳細了解。對於專業職稱(職業資格)可以分為三級,大家可以詳細了解:助理工程師、工程師、高級工程師。
  • 網絡優化工程師的工作內容是做什麼的?
    很多朋友對網絡優化工程師的工作崗位具體做什麼是不明白的,所以通常都會在百度上搜索找到網絡工程師成長日記作者小編想了解網絡優化工程師具體工作內容,以及這個職業的發展是做什麼的。那麼網工記小編來給大家分析,整理和總結一下網絡優化工程師常見的一些問題。一 5g網絡優化工程師的工作內容是做什麼的?
  • 軟體工程師需要學什麼?
    物聯網、大數據、虛擬經濟、人工智慧、區塊鏈等新的事物層出不窮,毫無疑問這些現象都暗示著網際網路行業還有很大的潛力沒有被開發!如果在這個時候選擇了軟體工程師,自己需要面對的除了挑戰也有很大的機遇!軟體工程師需要做什麼?1. 指導程式設計師的工作;2. 參與軟體工程系統的設計、開發、測試等過程;3.
  • 程式設計師是軟體工程師嗎?軟體工程到底和其他工程學有什麼區別?
    內容是直接拷貝過來的,文末讚賞也保留了, 覺得文章真心不錯的同學該出手時就出手哈~~~2008 年攝於北京坦克博物館「軟體工程」是個老話題了,我以前寫過一篇文章《名不副實的「軟體工程」》,當時還引起了不小的爭議。回頭看,當時更多的思考還是在「軟體工程」本身。我們完全可以把討論的範圍擴得更大一些:「軟體工程」和「工程」有關嗎?