作者 | .cult
譯者 | 王德朕
審校 | Noe
軟件工程和所有職業(yè)一樣,也有等級之分,正如我們所知道的那樣,它是基于經(jīng)驗,技術(shù)和領(lǐng)導(dǎo)力進行的區(qū)分,如果你正在閱讀這篇文章,你可能還不清楚它們的界限在哪里。例如,初級開發(fā)人員和高級開發(fā)人員,或者初級開發(fā)人員和入門級開發(fā)人員,而且當(dāng)公司有自己的標準來判斷開發(fā)人員級別的時候,就更加模糊。
隨著你在事業(yè)上的進步,你會到達一個你想要跳躍到下一個階段的地步。在每個階段我們都有自己的期望,技能要求和工資要求。我將盡力根據(jù)剛才提到的標準對每個級別進行細分:入門、初級、高級和技術(shù)領(lǐng)導(dǎo)。本文不是真理,但希望它能引導(dǎo)你走上正確的方向和正確的成長道路。
讓我們開始行動吧!
1. 如何成為入門級/初級工程師
我要直接說出來,這可能會是你職業(yè)生涯中最困難的階段!對每個人(包括我在內(nèi))來說,邁出第一步并不容易。我們有著不同的教育背景,不同的國籍,這些影響了我們的工作機會。例如,從培訓(xùn)機構(gòu)出來的人和擁有大學(xué)學(xué)位去實習(xí),是不一樣的。
找工作一開始會讓人氣餒,但是別擔(dān)心,我們都經(jīng)歷過,只要有勇氣和毅力,你就能找到第一份工作,如果你正處于這個階段,正在苦苦掙扎,那就稍微降低一點你的期望值,試著去實習(xí)或創(chuàng)業(yè)---盡快把技能付諸實踐,并開始投資自己。
期待
在大多數(shù)情況下,你會非常依賴你的團隊和導(dǎo)師來指導(dǎo)你,幫助你成長。此時可能會有一點冒名頂替感,但把它放在一邊吧,你的公司和團隊并不期望你知道一切。他們可能知道,你的大部分時間將用于提問和學(xué)習(xí)。
很多入門級工程師的職責(zé)是學(xué)習(xí)他們將要工作的開發(fā)環(huán)境,學(xué)習(xí)團隊的工作流程,當(dāng)你跟上速度時,你會被要求加入代碼倉庫,去補充一些次要問題。
在你完成的功能和BUG修復(fù)的整個迭代過程中,你將學(xué)習(xí)到軟件開發(fā)的生命周期是如何運行的,以及你們的項目是如何運行的。不同公司之間的軟件開發(fā)生命周期往往非常相似。通常大多數(shù)公司的項目遵循需求->設(shè)計->業(yè)務(wù)->實施的結(jié)構(gòu)。
你可能會和其他工程師在一起,有些人比你更有經(jīng)驗,級別更高。這些工程師,通常是更資深的工程師,將負責(zé)幫助你學(xué)習(xí),并成為對團隊有貢獻的成員。把這當(dāng)作一個向他們學(xué)習(xí)技能的機會,這將幫助你在職業(yè)生涯中取得進步。
深呼吸......記住初級工程師不會被期望 "一蹴而就",一個團隊會指導(dǎo)你并幫助你成長。這句話你可能已經(jīng)聽過無數(shù)次了,但說真的,不要害怕問問題,這一點怎么強調(diào)都不為過,每個前輩曾經(jīng)都是后輩。讓自己漫無目的地在問題上掙扎,不會幫助你成長,你應(yīng)該為你的問題設(shè)定時間,當(dāng)你覺得被卡住時,就向外尋求幫助。
教育和技能
作為一名初級工程師,你可能是剛從大學(xué)畢業(yè)或培訓(xùn)機構(gòu)畢業(yè),而在當(dāng)今這個時代,學(xué)位往往不能準確衡量一個人的能力,成為一名初級工程師,取決于你的技能和實際經(jīng)驗。
入門級工程師應(yīng)該了解他們正在使用的技術(shù)的基本原理,以及它們的生態(tài)環(huán)境。深入理解是很重要的一部分,你應(yīng)該對你所使用的軟件棧中不同部分都有一點了解,這樣能讓你知道在哪里學(xué)習(xí)更多的知識和不知道的東西。
此外,你應(yīng)該了解 git版本控制軟件是如何工作的,如果你了解分支策略,還會加分。最后,如果你有 pull 請求/ merge請求的經(jīng)驗,是更好的,因為你將在團隊中大量的使用它們。
初級工程師工資
你可能已經(jīng)在 Glassdoor 或 LinkedIn 上搜索過了,它們會根據(jù)你的定位給你一個相當(dāng)準確的范圍。根據(jù)我的經(jīng)驗,你可能會選擇6.5-7.5萬美元之間的任何工作,但是,起薪將取決于教育程度、經(jīng)驗和技能。另外,美國的工資水平要高于歐洲或其他地方。這也會因你所從事的技術(shù)而有很大不同,所以一定要對你所在的地區(qū)、公司和技術(shù)做更具體的研究。
2. 如何成為一名中級工程師
中級工程師介于初級和高級開發(fā)人員之間,作為一名中級工程師,你已經(jīng)開始熟悉了一些技術(shù),你不需要太多的幫助或指導(dǎo),而且已經(jīng)擁有多個項目的經(jīng)驗。
一個中級開發(fā)人員很可能有幾年的經(jīng)驗和數(shù)小時的編碼工作,這很難用數(shù)字表示,你甚至可能換過公司,在不同的項目代碼庫中工作。
期待
中級工程師是已經(jīng)工作了幾年的工程師,或者已經(jīng)有了第二層身份,公司會期望你對軟件開發(fā)的生命周期有很好的理解,并且在大部分時間內(nèi)能夠在沒有太多的指導(dǎo)下承擔(dān)工作。并且工作上的問題完全可以澄清和解決。而且中級工程師往往不會為實現(xiàn)技術(shù)上的某個功能而糾結(jié)。
中級工程師的知識范圍,將集中圍繞他們支撐的應(yīng)用程序和應(yīng)用程序的整個流程上。這個級別的工程師能夠接受一個復(fù)雜度較高的功能,并在合理的時間內(nèi)完成它。
中級工程師還應(yīng)該能夠從零開始實現(xiàn)全新的特性,并將這些特性與代碼庫的其余部分集成在一起。此外,他們會有把某些功能拆分成組件的經(jīng)驗,以及具備如何處理技術(shù)問題的高級思想。
從初級工程師跳到中級工程師,一個很好的方法就是在一個項目上花費大量的時間,學(xué)習(xí)它是如何工作的,并且學(xué)習(xí)代碼倉庫的各個方面。投入大量的時間對代碼庫不同部分進行了解,有助于快速提高你的開發(fā)能力,編碼編碼編碼。
教育及技能
與入門級一樣,你需要了解更多你所從事的技術(shù)背后的深度知識。例如,如果工作中使用React,你應(yīng)該更多的理解React背后的高級概念,并開始理解如何將一個UI元素分解成許多不同的部分來創(chuàng)建,如果你可以使它們在其它應(yīng)用程序上復(fù)用,就可加分。
此外,你應(yīng)該在這里開始了解行業(yè)趨勢,了解新興技術(shù)的最新情況。科技行業(yè)正在不斷發(fā)展、改進,越來越多的解決方案可以解決舊問題。
中級工程師工資
在強調(diào)一遍,工資因公司和地點有所差異,例如,一個中級工程師至少有2-3年的工作經(jīng)驗,你的目標就是8-9萬美元左右,不過 Fackbook 的薪水和初創(chuàng)公司的不同,但是你可以通過股權(quán)或額外的福利找到折中方案。
3. 如何成為高級工程師
下一步,成為高級工程師!這絕對是一個非常激動人心的頭銜,你將獲得更大的自主權(quán)和市場價值(每個公司都想要一個熟練的高級開發(fā)人員,所以準備好迎接LinkedIn 私信的沖擊吧)
高級工程師展示了專業(yè)知識,并在多個項目展示了自己的才能,還可以指導(dǎo)初級和中級開發(fā)人員。在這個角色中,你需要是一個多面手,所以在日常的工作中,要隨時適應(yīng)新情況和保持思維敏捷,你將成為領(lǐng)導(dǎo)者和導(dǎo)師,負責(zé)解決復(fù)雜軟件問題,并充當(dāng)所有知識來源(不要有壓力)。
期待
作為一名高級工程師,將開始與領(lǐng)導(dǎo)/經(jīng)理一起設(shè)計新的系統(tǒng),并估計整個項目所需的工作量。高級工程師還能夠提出多種解決方案,理解每種方案的優(yōu)缺點,最后,能闡明哪種解決方案最適合團隊。高級工程師也可以適當(dāng)減少參與編程的時間,而將更多時間用于指導(dǎo)、設(shè)計和管理工作。
高級工程師往往是項目經(jīng)理、工程師和管理層之間的橋梁。通過了解應(yīng)用程序所在的架構(gòu),以及即將進行的工作的復(fù)雜性,高級工程師可以幫助保持項目的正常運行,并在需要時提供支持。
這樣導(dǎo)致高級工程師對團隊其他成員的支持作用更強,能夠在團隊需要時填補空白,并解決其他工程師的難題。此外,高級工程師擁有豐富的經(jīng)驗和遠見,能夠看到團隊成員在哪里可能遇到障礙,并主動消除它們。團隊對高級工程師的信任很重要,因為其他團隊成員會期待高級工程師解決他們解決不了的問題,并在這個過程中指導(dǎo)團隊。
在團隊之外,高級工程師也會在組織或企業(yè)內(nèi)部找到改進的機會。他們會開始編寫共享代碼庫,以便其他團隊使用這些代碼庫。他們會尋找機會消除重復(fù)的工作,去除單調(diào)乏味的工作,提高團隊的效率。也許某些團隊正在重新造輪子,從而使團隊之間有機會共享代碼,以使工作流程更加簡化,這些可能是含糊不清的高層次要求,但是一個高級工程師應(yīng)該能夠在沒有指導(dǎo)的情況下,將這些模糊的情況縮落實到解決方案中。
教育和技能
由于這個角色的具備支持特性,軟技能變得非常重要,需要知道如何與隊友溝通,有禮貌地討論具有挑戰(zhàn)性的話題,并適時打斷沖突。高級工程師需要在團隊中建立人際關(guān)系和使用軟技能,利用這些技能來幫助那些正在為某個問題苦苦掙扎的工程師。
在技術(shù)方面,高級工程師將精通項目中使用的技術(shù),以及項目的整體架構(gòu)。把設(shè)計模式、系統(tǒng)架構(gòu)和性能提升策略當(dāng)成習(xí)慣。在不了解你的專業(yè)的情況下,很難說得更具體,但我想你已經(jīng)明白了!
高級工程師工資
在開發(fā)者的階梯頂端,你將有最多的機會,并能夠獲得一個真正舒服的薪水。在美國,高級工程師的薪水應(yīng)該在10萬到11萬美元之間,同樣,這取決于你所在的城市和公司。
4. 如何成為技術(shù)領(lǐng)導(dǎo)者
成為高級工程師后,下一個步驟是進入管理層。管理顯然不適合所有人,但如果你在這個位置,讓我們看看你能期待什么。
你將從個人貢獻轉(zhuǎn)變?yōu)楣芾砣藛T和項目。這角色的編碼量要小得多,因為作為一個經(jīng)理,你將依靠團隊來建立項目所需要的東西。
期待
離開個人貢獻(IC)并不適合所有人,由于工作節(jié)奏和風(fēng)格的變化,一些高級工程師從來沒有跳槽到管理層。經(jīng)理和領(lǐng)導(dǎo)將開始更多地依賴他們的人際關(guān)系、關(guān)系、業(yè)務(wù)技能和以前的經(jīng)驗,來幫助他們在不同的項目上帶領(lǐng)團隊走向成功。
你需要領(lǐng)導(dǎo)你的團隊,同樣重要的是,你需要為你的團隊代言。你的工作是使團隊保持在項目持續(xù)交付的軌道上。這意味著你需要為團隊提供新功能所需的資源,或消除阻礙他們完成任務(wù)的障礙。
這樣意味著作為一個經(jīng)理,你需要對公司的商業(yè)模式有很好的了解,這樣才能知道當(dāng)某些問題出現(xiàn)時該找誰談。一個強大的管理者應(yīng)該知道在解決團隊的具體問題時應(yīng)該聯(lián)系和依靠誰。
除了項目方面,管理者也是一個角色,你有責(zé)任幫助團隊成員,讓他們對自己的角色感到滿意,并給予他們成長的機會。你要幫助他們實現(xiàn)他們想要的目標,指導(dǎo)他們度過團隊中的困境,甚至要處理團隊成員之間的人際沖突。這也意味著你需要處理團隊成員表現(xiàn)不佳的情況,并幫助他們回到正軌。管理崗位需要大量運用軟技能。
教育和技能
在不同的組織中,管理層可能需要管理學(xué)學(xué)位或管理經(jīng)驗。很多時候,高級工程師可以進入管理崗位,因為他們對公司了解,并且公司了解他們的成功經(jīng)驗。無論公司對管理角色的要求如何,軟技能都是極其重要的。
理解他人,與他人建立關(guān)系,在團隊沖突和困難的談話中,保持冷靜和鎮(zhèn)定是管理者的常態(tài)。對行業(yè)趨勢的持續(xù)學(xué)習(xí),對軟技能的持續(xù)練習(xí)可以幫助管理者取得成功。
技術(shù)主管薪酬
像其他的薪水范圍一樣,它也有所不同:)高級工程師和經(jīng)理之間往往有重疊,起薪大約在11萬美元到12萬美元之間。
成為一名軟件開發(fā)人員有許多不同的階段。它起始于一個非常低調(diào)的環(huán)境,通過向他人學(xué)習(xí)來發(fā)展個人的開發(fā)技能。這也導(dǎo)致團隊中大量的貢獻者角色更加獨立,在這里,他們可以被信任,并且在項目時間表內(nèi)交付不同復(fù)雜度的軟件功能。
經(jīng)驗可以引導(dǎo)開發(fā)人員指導(dǎo)其他人,找到提高效率的領(lǐng)域,并帶領(lǐng)團隊走向成功。在優(yōu)秀的團隊中,軟件開發(fā)人員以相互支撐的方式幫助彼此學(xué)習(xí)、成長、挑戰(zhàn)他人。在快節(jié)奏和不斷變化的軟件開發(fā)世界中,團隊之間相互幫助,開發(fā)出優(yōu)秀的產(chǎn)品,并不斷創(chuàng)新。
原文標題:What’s the difference between a junior, mid-level, and senior developer?
原文鏈接:https://thenextweb.com/news/difference-between-junior-mid-level-senior-developer-syndication
譯者介紹
王德朕,51CTO社區(qū)編輯,10年互聯(lián)網(wǎng)產(chǎn)研經(jīng)驗,6年IT教培行業(yè)經(jīng)驗。原K12教育上市公司產(chǎn)品經(jīng)理,技術(shù)博客專家,藍橋簽約作者,《滾雪球?qū)WPython》專欄作者,《爬蟲100例》專欄特約作者,78技術(shù)人社區(qū)發(fā)起者。