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