<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          從初級工程師發(fā)展到高級工程師,需要跨越的鴻溝

          共 4853字,需瀏覽 10分鐘

           ·

          2020-10-10 22:56


          作者 |?Jacob Comer
          譯者 |?Malefikus
          策劃 |?Tina
          程序員是吃青春飯的嗎?等我們老了,技術(shù)過時了,公司有什么理由不裁掉我們,去雇一些既有活力、薪資要求又低的年輕人呢?這個老生常談的問題困擾著諸多漸入中年的程序員。本文告訴你如何增強自己的核心競爭力,在知識飛速更新的行業(yè)中站穩(wěn)腳跟,跨過“初級工程師”和“高級工程師”之間的鴻溝。

          我曾在 CS 職業(yè)論壇 /r/cscareerquestions 上回答了一個問題,該回答描述了我在程序員職業(yè)道路早期 必須 要涉足的幾個領(lǐng)域,并就此引申出我為什么認為高級程序員不必擔(dān)心自己的技術(shù)會過時。

          我認為社區(qū)中有很多我們不太重視的軟技能,這些軟技能都有可能成倍地增加我們工作的影響力(作為個人貢獻者和技術(shù)負責(zé)人)。這些軟技能包括:代碼審查禮節(jié)、如何優(yōu)雅地遏制范圍蔓延、如何向其他部門直觀的方式解釋高科技問題、在生產(chǎn)任務(wù)爆滿和日以繼夜的比賽中保持鎮(zhèn)定自若等。

          我的這一回答獲得了很高的熱度,論壇中也有一些讀者請求我將其中的內(nèi)容整理成可永久保存的版本以便于打印出來閱讀,因此我決定將該回答總結(jié)成 文章發(fā)到Medium 上。

          /r/cscareerquestions 論壇上的原問題:

          我喜歡編程,甚至在業(yè)余時間都喜歡學(xué)習(xí),但是我仍然覺得自己要學(xué)的東西太多了,就像在跑步機上一樣,永遠在被迫追趕,永遠學(xué)不完。我腦海里有個嘮嘮叨叨的聲音告訴我,在這樣一個瞬息萬變的行業(yè)中呆著是很糟糕的。因為等我年紀(jì)大了,自己使用的工具就舊了、過時了,年輕時候?qū)W到的經(jīng)驗就沒價值了。而且我還有其他業(yè)務(wù)上的事要忙活,學(xué)習(xí)新技術(shù)就更困難了。

          回到一個老生常談的問題上:公司有什么理由為我在舊技術(shù)方面的經(jīng)驗付錢?他們完全可以聘請更有活力的孩子。年輕人熟悉最新的技術(shù),薪水卻只用付我的 1/3(并且他們愿意工作到很晚)。我覺得我可能應(yīng)該嘗試轉(zhuǎn)型當(dāng)個業(yè)務(wù)需求分析師、產(chǎn)品經(jīng)理或者某種商業(yè)領(lǐng)域的人,因為這些類型的角色通常不會像程序員那么吃青春飯。雖然我并不想這樣,因為我喜歡寫代碼,但我覺得自己好像別無選擇。畢竟我也只是一個普通的程序員,不是什么天才大牛。

          作為一名程序員 ,編碼硬實力固然很重要。而題主如果想不明白公司為何在花點小錢就能打發(fā)剛?cè)胄械男氯说那闆r下,仍然樂于向我們這些“老年人”支付大筆工資,可以拿下面的問題問問自己:
          • 你的代碼的可維護性如何?是否有其他工程師不停地輕敲你的肩膀,讓你解釋你代碼的每一行都是如何工作的?你的變量名具有描述性嗎?你的方法是直觀、易理解的嗎?當(dāng)你發(fā)現(xiàn)自己在復(fù)制粘貼很多行代碼時,你是否能將這些代碼的功能寫入可重用的服務(wù)中?

          • 別人能夠從你在拉取請求中留下的評論中受益嗎?你的反饋意見是有 建設(shè)性,還是太過粗糙?當(dāng)你發(fā)現(xiàn)別人的知識存在缺口時,你只是告訴他們“把這條線從 ABC 更改為 XYZ”,還是有能力引導(dǎo)他們認識到自己的方法可能不是最佳方法,讓他們成長為更優(yōu)秀的開發(fā)者?畢竟,同樣是學(xué)習(xí)新東西,授人以魚不如授之以漁。

          • 如果今天有 100,000 個用戶創(chuàng)建帳戶,你的代碼是否會開始引發(fā)大量超時和 500 個錯誤?你能 保證 公關(guān)能把這事兒兜住嗎?你知道如何基準(zhǔn)化你的更改并進行證明嗎?

          • 你如何將非常技術(shù)的問題分解為公司其他部門可以理解的簡單語言?向市場解釋為什么一個功能實際上不可行時,你是否會讓大量的工程術(shù)語從嘴里溜出來?

          • 你對面向?qū)ο蟮木幊逃猩羁痰牧私鈫??你提出的系統(tǒng)架構(gòu)是不是“頂多算說得通”?

          • 你的寫作能力如何?在回復(fù)電子郵件時,你是能把自己的意思表達清楚,還是發(fā)完郵件后同事仍然需要走到你的辦公桌旁,來詢問你更多的背景信息?

          • 你是否會主動提出想法,使你的團隊效率更高?當(dāng)需要改動現(xiàn)有進程時,你是否能夠向所有參與方說明收益?你能使所有人都對這一變化感到興奮嗎?你是否可以持續(xù)跟進,并確保新流程確實有效?

          • 你尊重別人的時間嗎?當(dāng)你要求別人幫助你解決問題時,你能否準(zhǔn)確描述你遇到問題的代碼庫的確切定位(如拋出異常的行號、你 在問別人之前 已經(jīng)嘗試過的 debug 方法,免得別人再浪費時間重復(fù)你已經(jīng)做過的工作)?別人是否必須反復(fù)問你,才能從你嘴里撬出這些信息?在別人走到你辦公桌前,你已經(jīng)整理好要問的問題并在 MacBook 上打開了嗎?

          • 在與其他部門一起確定大型項目的范圍時,你對要開發(fā)的新功能的問題了解得有多深入?在開始編碼之前,你是否能夠考慮到每個邊緣情況?你是否能夠及早識別范圍蔓延并盡早制止,從而使團隊免于周六加班?

          • 你的多任務(wù)處理能力如何?你的大腦會超負荷嗎?同樣,在處理 大型 功能時,比如涉及 50 個文件的功能……你可以一次將它們?nèi)勘4嬖谀X海中嗎?你有養(yǎng)成扎實的記筆記習(xí)慣嗎?你打算如何計劃跟蹤今天下班前彈出的 500 萬件事?

          • 當(dāng)你編寫的一段代碼導(dǎo)致帳單頁面出錯,搞得團隊首席工程師不得不取消他們的晚餐計劃、熬夜幫你解決問題時,你會如何應(yīng)對?你會情緒激動嗎?你還能理性思考嗎?你是否能夠擺脫這種情緒,并提醒自己,地球上的每個開發(fā)人員每兩天就會發(fā)布錯誤代碼?

          • 你了解業(yè)務(wù)運作方式嗎?你了解為什么即使失業(yè)人數(shù)達到兩位數(shù),軟件工程師也可以要求如此瘋狂的薪水嗎?為什么編程是如此寶貴的技能?為什么客戶愿意為某些超級基本的 Web 表單向你的公司每年支付 50,000 美元?你是否覺得他們被騙了?

          • 領(lǐng)導(dǎo)可以放心地讓你去負責(zé)面試候選人嗎?你是否擅長通過有限的信息來對人員進行分類,并可視化他們和團隊的適合程度?你能識別出在什么情況下,在工程方面優(yōu)秀的候選人卻不能很好地融入公司文化嗎?這種候選人你會建議錄取嗎?同樣,即使你和候選人在 Zoom 里聊了 5 分鐘就知道他不可能被錄取,你是否還可以確保他仍然可以從你們的聊天中學(xué)到東西?畢竟,語言在網(wǎng)絡(luò)上的傳播速度是很快的。

          • 假如今天是 12 月 28 日,你被困在辦公室。你今年有點瘋狂,在 9 月中旬就把今年所有的帶薪休假糟蹋完了。此時此刻,同事們都休假出去 high 了。你還能按時上班嗎?領(lǐng)導(dǎo)不在身邊懲罰你,你是否打算半途而廢?這種情形下,是否需要領(lǐng)導(dǎo)強迫你你才能盡全力工作?

          • 機會成本是一件必須考慮的事。你在平衡技術(shù)債務(wù)和推動業(yè)務(wù)發(fā)展方面做得如何?你是否會重構(gòu)發(fā)現(xiàn)的每個微小的編碼樣式問題?畢竟大家都很難承認“這段代碼很煩人,但它確實有效,需要花費四個小時的清理時間,這段時間可以花在構(gòu)建其他功能上,而這是很多客戶都在請求的”。

          • 你知道如何向你的下屬反饋 他們 的績效嗎?你和他們有良好的工作關(guān)系嗎?你是否將他們視為敵人?你是否正在積極嘗試減輕他們的壓力,使他們的生活更輕松?你是否曾經(jīng)說過“你們那邊有什么煩人的任務(wù)我可以幫忙削減嗎”?公司雇人都是有原因的,你的下屬可能比你想象的更有經(jīng)驗和資格。

          • 你有能力撲滅生產(chǎn)大火嗎?你是否會在遇到 大麻煩 時驚慌、不知所措(比如 AWS 中斷使網(wǎng)站癱瘓、不小心搞丟了 customer_invoices 表單、某些錯誤導(dǎo)致了不同用戶帳戶之間的數(shù)據(jù)泄漏等)?你是會在壓力之下崩潰,還是會在解決問題的同時保持鎮(zhèn)靜,并與其他部門進行有效的溝通?


          雖然我說的話不能代表所有的初級工程師,但我 確實 知道自己八年前開始在該領(lǐng)域工作時,在情緒方面的處理是非常糟糕的。

          那時的我極度自信,與人溝通很糟糕,不能毫不猶豫地處理建設(shè)性批評,為無關(guān)的小事與我的老板激烈爭論,浪費無數(shù)寶貴時間來解決根本不重要的問題,總是覺得自己應(yīng)該得到大幅度的加薪(卻不付出額外的努力來賺錢)并為之苦惱和抱怨,天天花 45 分鐘打乒乓球、玩游戲(在慢悠悠吃了一個小時午餐后)……

          我為我的老板帶來價值了嗎?

          是有的。

          你能把當(dāng)時的我放心地關(guān) 30 分鐘,讓我在此期間獨立工作、不出幺蛾子、不拿頭撞墻嗎?

          絕對不可能。

          而高級開發(fā)者,就會在工作中解決問題,而非制造問題。

          他們減少壓力。他們按時完成任務(wù)。他們知道如何編寫經(jīng)得起時間考驗、可維護的代碼。他們值得更高的工資。他們對項目的方向可以有準(zhǔn)確的把控。他們可以發(fā)現(xiàn)當(dāng)前流程中的缺陷,并使每個人都接受他們的想法以進行改進。他們可以指導(dǎo)應(yīng)屆畢業(yè)生。他們處事冷靜,不會在周二與你的最大客戶的電話會議上情緒崩潰、破口大罵。

          很多人想踏實當(dāng)個技術(shù)人員,并不想一直向上升去當(dāng)領(lǐng)導(dǎo)當(dāng)主管,我認為這種想法沒什么問題。編程是目前最令人鼓舞的職業(yè)之一,許多企業(yè)愿意給經(jīng)驗豐富的“老兵”開 很多很多 工資,來保證業(yè)務(wù)進行順利。

          話雖這么說,總會有少數(shù)工程師最終決定有一天掛斷 IDE,并開始過渡到 管理 層。

          挺惡心的。

          太長不看版:反正現(xiàn)在就我來說,轉(zhuǎn)管理層這條路是可選的,但 絕對 不是適合所有人的。

          如果你具有扎實的溝通技巧,并且 確實愿意 開會開一整天(這樣你可以消除干擾、幫助隊友爭取更多時間來高效完成工作),那么你進入管理層就是非常有意義的。

          如果你由于其他任何原因轉(zhuǎn)行管理層(即使剛讀了我的博客文章,也因為受到雇主的壓力、較高的薪水、害怕技術(shù)技能過時的焦慮等等),那你的日子可能就難過了。

          回顧我的旅程,能從初級開發(fā)者過渡到高級開發(fā)者,歸功于我每周(在繁重的編碼任務(wù)之間)都試著花幾個小時專注于以下事件:

          • 改進我們進行技術(shù)面試的方式,保證我們與候選人之間的溝通信噪比更高(如改善我們的面試問題、重新考慮我們的電子郵件模板、考慮是否要給面試者布置線下筆試題、反思我們對工作的描述是否準(zhǔn)確、我們向哪里投放招聘廣告、換位思考如果我正在尋找工作會如何回復(fù)該招聘信息、如何在候選人做出決定之前使其更深入地了解我們的公司文化和發(fā)展歷程等等)

          • 與產(chǎn)品團隊合作,以更細致的方式對即將開展的工作進行分類,從而使產(chǎn)品團隊和最終要去接收 JIRA tickets 的工程師之間的溝通更加順暢,而不需要磨嘰好幾個來回

          • 組織團建活動和團隊聚餐

          • 當(dāng) CEO/CTO 為即將到來的季度制定的目標(biāo)聽起來有點過于樂觀時,向他們提出提醒和意見,以免團隊其他成員受不了過分辛苦的工作而逃離你們公司

          • 最好能每周與所有大的客戶進行一次確認電話(親自回答他們所有的技術(shù)問題,并確保雙方之間的關(guān)系保持健康)

          • 用 6 個月的時間進行積極的安全審核,不斷提醒客戶我們會認真對待他們的隱私,并在公司發(fā)展的每個檢查點努力完善我們的流程

          • 找出其他開發(fā)人員在知識上的不足之處,然后讓他們查缺補漏(使用能激發(fā)他們學(xué)習(xí)興趣的方式):如使用 vim 宏處理 CSV 文件、Linux 終端中實用的短命令、高級 SQL 命令、如何使 PR 描述更具描述性、解釋負載平衡器如何工作、討論合并和重新定基之間的區(qū)別等

          • 幫助設(shè)計團隊在花數(shù)小時將線框轉(zhuǎn)換為高保真模型 之前,先弄清楚哪些功能易于開發(fā)

          • 改進我們的流程,讓其他部門知道何時會增加新功能(編寫更好的發(fā)行說明、在每周的內(nèi)部產(chǎn)品演示中回答他們的問題、幫助他們編寫客戶能理解的外部文檔),因為沒人知道的功能不會解決任何實際問題

          上面的列表還可以一直一直往下寫,而其中大部分條目不需要用到 Visual Studio。

          幾年后,許多高級工程師走的路都是類似的。你可能在不知不覺中就變成了小領(lǐng)導(dǎo),每天有 6 個人向你匯報工作

          原文鏈接:https://medium.com/@jacobcomer/bridging-the-gap-between-junior-and-senior-engineers-571b2248fbb8

          end


          謝謝您的支持,需要任何資源,只需要在公眾號后臺回復(fù)對應(yīng)數(shù)字即可:
          01:dotnet
          02:java
          03:android
          04:C++
          05:qt
          06:react

          沒有的資源,也可以給我留言,我會去尋找的哦。
          另:大部分資源可在我的網(wǎng)站搜索哦:https://dotnet9.com


          瀏覽 49
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色婷婷做视频网站 | 天堂国产一区二区三区 | 亚洲成人无码免费观看 | 一级黄色片视频欧美 | 国产区三 |