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