大家好,我是專注分享職業(yè)規(guī)劃/技術科普/智能生活有關原創(chuàng)文章的allen康哥。
大家都知道現在很多硬科技類公司的軟件工程師崗位是非常吃香的崗位,這些崗位涉及到硬件,也是也涉及到軟件,比如小米手機,大疆無人機,華為通信設備這種產品,那這些崗位算是嵌入式開發(fā)工程師嗎,還是怎么定義?
這是很多同學給我留言的問題,今天就根據我的理解幫大家分析下。在這些硬科技公司(如小米、大疆、華為)中,軟件工程師崗位是否屬于嵌入式開發(fā),需要根據具體業(yè)務和崗位職責來判斷。這些公司的產品通常既有嵌入式開發(fā),也有非嵌入式軟件開發(fā),但兩者的界限往往模糊,因為硬件和軟件深度協同是硬科技產品的核心特點。
以下是具體分析:
1??典型硬科技公司的軟件崗位分類
(1) 嵌入式開發(fā)崗位的定義
這些崗位直接與硬件交互,通常需要低層編程、硬件資源優(yōu)化和實時性處理,例如:
底層驅動開發(fā):小米手機中的攝像頭驅動、觸摸屏驅動、電源管理模塊開發(fā)。大疆無人機飛控系統(tǒng)的電機控制、傳感器(陀螺儀、GPS)驅動開發(fā)。華為基站設備的射頻芯片驅動、硬件加速器(如FPGA)接口開發(fā)。
實時系統(tǒng)開發(fā):無人機飛控系統(tǒng)的實時操作系統(tǒng)(如FreeRTOS、VxWorks)任務調度。工業(yè)機器人控制器的實時通信協議(如CAN總線、EtherCAT)實現。
資源受限環(huán)境開發(fā):為低功耗IoT設備(如智能手環(huán))優(yōu)化藍牙協議棧,減少內存占用。在嵌入式Linux系統(tǒng)中裁剪內核,適配華為路由器的硬件平臺。
技術特點:編程語言:C/C++、匯編(部分場景)。工具鏈:交叉編譯、JTAG調試、示波器/邏輯分析儀。核心技能:硬件寄存器操作、中斷處理、功耗優(yōu)化。
(2) 不屬于嵌入式開發(fā)的崗位
這些崗位主要面向通用計算平臺或高層應用,例如:
上層應用開發(fā):小米手機MIUI系統(tǒng)的Android應用開發(fā)(Java/Kotlin)。大疆無人機配套手機App的圖形界面和云服務功能開發(fā)。
云端與分布式系統(tǒng):華為云計算平臺的通信中間件開發(fā)(如Kubernetes網絡插件)。大疆無人機數據同步服務的后端開發(fā)(如分布式存儲、高并發(fā)通信)。
算法與數據處理:無人機視覺SLAM算法的實現(Python/C++,運行在機載高性能芯片上)。華為5G基站的信號處理算法優(yōu)化(可能基于通用服務器或DSP)。
技術特點:編程語言:Python/Java/Go等高級語言。技術棧:分布式框架(如gRPC、Kafka)、算法優(yōu)化。目標平臺:Linux服務器、手機/PC應用、云計算環(huán)境。
2??硬科技公司的特殊性:軟硬協同
硬科技公司的軟件工程師往往需要跨領域知識,即使是非嵌入式崗位,也可能涉及硬件理解,例如:
系統(tǒng)級優(yōu)化:小米手機應用開發(fā)工程師可能需要了解屏幕刷新率、電池功耗特性,以優(yōu)化用戶體驗。大疆無人機算法工程師需要結合飛控硬件特性(如傳感器延遲)調整控制邏輯。
硬件加速:華為通信設備開發(fā)中,軟件工程師可能調用硬件加速模塊(如NPU、FPGA)提升網絡吞吐量。
但這不等同于嵌入式開發(fā),核心區(qū)別在于是否直接操作硬件底層。
3??如何判斷崗位是否屬于嵌入式開發(fā)?
通過以下關鍵詞快速識別:
4??以具體公司為例
小米手機:
-
-
- 嵌入式:攝像頭驅動、電源管理、基帶芯片通信。非嵌入式:MIUI應用生態(tài)開發(fā)、云服務后端。
-
大疆無人機:
華為通信設備:
-
- 嵌入式:基站射頻模塊控制、嵌入式Linux內核裁剪。非嵌入式:5G核心網協議棧開發(fā)(運行在通用服務器)。
5??總結
屬于嵌入式開發(fā):直接操作硬件底層、資源優(yōu)化、實時性要求高的崗位。
不屬于嵌入式開發(fā):面向通用平臺、高層應用或算法的崗位。
跨界場景:硬科技公司中,許多崗位需要軟硬協同知識,但只有涉及硬件底層編程的才屬于嵌入式開發(fā)。
總結:如果你目標是嵌入式方向,可以重點關注驅動開發(fā)、RTOS、硬件接口等關鍵詞的崗位;若偏好高層軟件,則選擇應用開發(fā)、算法、分布式系統(tǒng)等領域。