說到 “開發工程師 “這個詞,我們一般指的是 “軟體”。而不是說,”房地產”。然而,即使是對計算機和程式碼的關注,也為描述開發工程師的型別留下了很大的餘地。
我們可以通過他們使用的程式語言對開發工程師進行分類–比如 “JavaScript開發工程師 “或”Python開發工程師”–但這並不能揭示他們正在創造的東西或他們在這個過程中的作用。此外,開發工程師懂得多種語言是很常見的。
因此,我們將使用一些被廣泛接受的(更具有描述性的)開發者型別的標籤,並看一下它們背後的任務和工具。
什麼是開發工程師?
我們已經確定,軟體是我們開發者故事的關鍵。這可以有多種形式。
微軟的SQL Server資料庫軟體背後的程式設計團隊的成員是一名開發工程師。使用結構化查詢語言來處理儲存在這種資料庫中的資訊的人也可以是一名開發工程師。
一個開發者建立了一個嵌入電路板的計算機作業系統。另一個人寫Bash指令碼,以實現多個其他軟體程式之間的自動互動。
所有這些型別的開發工程師都用程式碼建立了一些東西。
螢幕上的程式碼 (Photo by Fotis Fotopoulos on Unsplash)
開發工程師有多少種型別?
沒有一個 “官方 “的開發者工作描述清單。我們將使用一些常見的術語來看待開發工程師的工作,我們甚至將範圍廣泛的 “網路開發工程師 “類別分解為三個不同的角色。
在這裡,我們將總共羅列了最為常見的11種型別的開發工程師。
- 前端網路開發工程師
- 後端開發工程師
- 全棧網路開發工程師
- 移動應用程式開發工程師
- 桌面軟體開發工程師
- 資料科學家(大資料開發工程師)
- 人工智慧/機器學習開發工程師
- 遊戲開發工程師
- 作業系統開發工程師
- DevOps工程師
- 安全開發工程師(SecDevOps)
1. 前端網路開發工程師
前端開發工程師專注於一個網站的使用者介面。他們使用他們的HTML和CSS技能來控制一個網站的外觀和感覺,經常適應移動和桌面瀏覽器的各種螢幕尺寸。
前端開發工程師通常依靠JavaScript來為使用者建立響應式體驗。這些開發工程師通常熟悉可以加速建立動態、面向客戶的應用程式的JavaScript庫和框架。
前端開發工程師的工作是提高網站效能,優化影象、JavaScript和標記,以加快瀏覽器的載入時間。大多數前端開發員還專注於搜尋引擎優化和網站可訪問性。
所有這些都需要很多技能,而一個前端開發工程師的工資可以反映這一點。
前端開發是網頁設計師嗎?
許多前端開發者也是設計師,但這並不是 “前端 “這個頭銜的要求。同樣地,許多網頁設計師精通HTML和CSS–並可能在模擬中使用它們–但不認為自己是開發者。
對於許多組織來說,設計是品牌建設的一部分,它包含了網路以外的媒體。
無論誰創造了一個設計,前端開發者的工作是將其在網頁上實現,並將使用者體驗的願景轉化為一個正常的應用程式。
2. 後端開發工程師
後端開發工程師構建伺服器端應用程式,通常需要網路伺服器軟體、資料庫和執行的作業系統方面的專業知識。一個全開源的例子是Linux作業系統,Nginx或Apache網路伺服器,以及MariaDB或PostgreSQL資料庫。
後端和前端開發之間的界限被像PHP這樣的技術所模糊,PHP只是一種伺服器端的指令碼語言,在前端向瀏覽器傳送HTML。
PHP–它為WordPress和其他流行的內容管理系統,以及Laravel等開發框架提供動力–是網路上最常見的伺服器端指令碼語言。不過,後端開發工程師可能使用C#和微軟的.NET框架、Python、Java、Ruby on Rails或Node.js等技術。
後臺開發工程師可以期望與負責網站面向客戶方面的團隊成員合作。伺服器端開發也可以包括建立應用程式介面(API),以支援前端服務,而不需要雙方的緊密耦合。
如果所有這些聽起來都是你喜歡的工作,你可能會對典型的後端開發工程師的工資感興趣。
3. 全棧網路開發工程師
你可能已經猜到了,全棧開發者做的是前端和後端開發者的工作。(不幸的是,這並不意味著一個典型的全棧開發工程師的工資是其他人的兩倍)。
儘管如此,掌握所有級別的網路開發似乎也有其回報。StackOverflow在2022年對開發者進行的一項調查發現,當受訪者被要求描述他們的角色時,”全棧開發者 “是最高的回答(近47%)。
2022年不同型別開發者佔比 (via: StackOverflow)
WordPress開發者是全棧式開發者嗎?
在任何地方安裝的WordPress對開發者是友好的,它提供了一個龐大的自己的PHP函式/方法庫,是對一些常見的伺服器端任務的抽象層。例如,WordPress的開發者可以在關聯式資料庫中儲存和檢索記錄,而不用寫SQL。他們可以將媒體上傳至伺服器的檔案系統,而不需要知道PHP的核心功能來實現這一切。
“WordPress開發者 “本可以在此自成一類,但那樣的話,我們就不得不為使用Drupal、Joomla和DNN等CMS產品以及Laravel、.NET和Django等框架的開發者做同樣的事。
許多WordPress開發者–特別是一些構建WordPress主題和外掛的開發者- 有鼓舞人心的全棧能力。所以,對 “WordPress開發者是全棧開發者嗎?”這個問題的答案是。這取決於他所扮演的角色。
4. 移動應用程式開發工程師
術語 “應用程式 “在軟體開發中涵蓋了很多領域。從桌面到網路,應用程式是為終端使用者完成工作的工具。
當簡稱為 “app “時–如 “有一個app可以用來做這個!”- 我們往往首先想到的是執行在智慧手機、平板電腦和其他移動裝置上的應用程式。而建立移動應用程式需要一個專業型別的開發工程師。
移動應用程式開發工程師熟悉軟體開發工具包(SDK)和相關工具,用於為裝置作業系統(如蘋果的iOS或谷歌的Android)構建應用程式。
Swift是iOS的原生程式語言,而Java和Kotlin是Android最常用的語言。此外,一個龐大的應用程式構建工具生態系統,如Apache Cordova和NativeScript,可以將基於網路友好的JavaScript、HTML和CSS的程式碼變成原生移動軟體。
當我們看了應用程式開發工程師的平均工資時,我們發現那些為移動平臺開發的人比那些專注於桌面或網路的人賺得略多。
5. 桌面軟體開發工程師
桌面開發工程師建立在個人電腦和工作站上執行的軟體應用程式。
開發工程師通常為特定的作業系統構建桌面應用程式,因此這一領域的活動反映了微軟的Windows、蘋果的macOS、谷歌的Chrome OS和開源作業系統Linux等平臺的相對市場份額。
Statcounter利用從全球網站訪問中收集的資料,在2022年8月估計,Windows在桌面作業系統中佔據了74%的市場份額。
2022年8月桌面作業系統的市場份額 (via: Statcounter)
開發工程師可能會使用整合開發環境(IDE)工具進行程式設計,以快速編輯、除錯和編譯原始碼。
用於桌面應用程式程式設計的流行語言包括C#、C++、Swift和Java。
桌面軟體在本地執行,但現代應用程式可能使用網際網路連線來完成從產品更新到通過雲端儲存共享資料等任務。
6. 資料科學家(大資料開發工程師)
人類在日常生活中幫助產生了大量的資料:在雜貨店結賬、上網、開車經過交通攝像頭、使用手機–甚至投票。我們已經建立了系統來記錄來自自然現象的資料,如天氣、地震和來自太空的電磁訊號。
資料科學家是一個使用計算機的數學嚮導,他可以在所有這些資訊中發現模式。
這些開發者很有可能正在使用Python程式語言或更專業的語言,如R、Scala或Julia。
“大資料 “通常會在關係型資料庫中結束,所以資料科學家很可能在他們的程式設計工具箱中擁有SQL。
7. 人工智慧/機器學習開發工程師
人工智慧(AI)軟體開發工程師試圖模仿人類的行為,如決策。加上機器學習(ML),一個應用程式可以隨著時間的推移變得更加智慧。
人工智慧/ML應用程式通常使用複雜的演算法處理大量的資料,因此該領域的開發工程師往往是資料科學家。
市場研究公司IDC發現,2021年全球人工智慧相關的應用、硬體和服務的收入超過3830億美元,比2020年增長了近21%。
客戶關係管理軟體和企業資源管理軟體約佔人工智慧增強型應用收入的65%。
2020年與2021年全球人工智慧軟體的價值 (via: IDC)
8. 遊戲開發工程師
計算機遊戲開發者代表了廣泛的技能。
他們的軟體可能在桌上型電腦、移動裝置、遊戲機或網路瀏覽器上執行。故事情節適應不同的遊戲型別,如軍事或體育模擬,第一人稱射擊遊戲,戰略,或角色扮演。然後可能還有3D圖形、音樂和聲音效果。
在一個網際網路連線的遊戲世界裡,大型多人遊戲的開發者面臨著與最繁忙的電子商務網站一樣苛刻的後臺伺服器和資料庫要求。
遊戲開發者通常擁有3D渲染工具和其他動畫相關軟體的專業知識。
而且,專注於前沿技術,SlashData的Developer Nation最近的開發者調查顯示,剛剛超過37%的增強現實(AR)或虛擬現實(VR)應用是AR/VR遊戲。還有27.9%的專案涉及建立虛擬世界–有些用於遊戲。
使用AR/VR的開發型別 (via: SlashData’s Developer Nation)
9. 作業系統開發工程師
雖然成千上萬的開發者在最流行的作業系統上工作–為Linux做貢獻或受僱於微軟、蘋果或谷歌–但這仍然是一個獨特的群體。畢竟,SlashData說它的調查表明全世界的開發者總人數超過了2400萬。
很有可能你的冰箱有一個作業系統,但流行的計算機作業系統是需要大量開發工程師團隊的努力,他們中的大多數人在整個專案中從事較小的元件。
大多數作業系統的核心是核心,它負責管理對CPU、記憶體、檔案系統和I/O裝置的訪問。C語言是微軟Windows、蘋果macOS和Linux核心的主要編碼語言。此外,還使用了一些用匯編編寫的低階程式碼。
而安卓核心是從Linux核心演變而來的。
在核心的基礎上,作業系統有管理各種硬體裝置的驅動程式和管理系統內務的應用程式。然後是系統的圖形使用者介面。開發工程師可能使用C、C++、Objective C(macOS),甚至是Python(Linux)來開發這些元件。
10. DevOps工程師
DevOps工程師負責管理工具和工作流程,使軟體快速、可靠地從開發階段到公開發布。
“DevOps “是 “開發 “和 “運營 “兩個詞的組合,從業人員將重複的軟體開發任務自動化–從管理程式碼到測試、部署、監控、維護和故障排除。
這些工程師採用一套DevOps工具來幫助加快軟體釋出週期,管理專案程式碼庫的各個版本,並確認最終產品能按預期執行。
當用於網路開發時,DevOps過程還可以確保應用程式所需的資源是可用的,並在網路伺服器上正確配置。
DevOps需要高階技能,DevOps工程師的工資通常反映了這一點。
11. 安全開發工程師(SecDevOps)
安全開發工程師建立工具並管理測試軟體和計算機系統安全的過程。
在軟體開發中,安全往往是DevOps流程的一個組成部分。在這種環境下專注於安全的人可能被稱為SecDevOps工程師。
安全開發工程師的工作是保護軟體和計算機系統免受網路安全攻擊和威脅。他們使用各種工具,包括Python、Bash和Ruby等指令碼語言,以實現重複性任務的自動化。
一個安全開發工程師必須對他們要保護的軟體和系統有深入的瞭解。
你想成為什麼型別的開發工程師?
如果你想自己成為一名開發工程師,我們有一些資訊可以幫助你採取下一步行動。你可以閱讀關於最佳程式語言的學習,或者直接挖掘學習PHP和發現JavaScript的教程。
也許你會有興趣瞭解成為一名Laravel開發工程師所需的條件,或者專注於學習WordPress,世界上最流行的CMS。
小結
這就是對11種型別的開發工程師的簡述,他們的角色與眾不同,足以突出他們領域中的各種任務。
然而,許多開發工程師扮演著不止一個角色,而且大多數人都熟悉多種程式設計或指令碼語言。也許這就是為什麼我們永遠無法就開發者型別的 “官方 “列表達成一致。
評論留言