0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣成為一名優(yōu)秀的嵌入式開發(fā)工程師

工程師人生 ? 來源:工程師吳畏 ? 2019-03-19 10:18 ? 次閱讀

或許這樣的標題,應該是由像Linus或Greg KH這樣的大師級的高手才有資格寫的吧。但是作為我來說,也許我更想把這個標題作為一個疑問句來使用,整理一下自己的認識,用來勉勵自己,和大家一起努力實現(xiàn)這個目標。認識膚淺的地方,還請大家見諒。

從事嵌入式開發(fā)是當下比較熱門的一個領域,做職業(yè)規(guī)劃的時候,比較清晰的是有三條路可以走:

C1、嵌入式軟件開發(fā)工程師

C2、嵌入式硬件開發(fā)工程師

C3、嵌入式驅動開發(fā)工程師。

其中

C1是計算機相關專業(yè)的同學可以選擇的,因為學習的課程相對偏軟,平時在PC上編程比較多,做軟件開發(fā)會相對輕松。

C2是學習電子電路的同學可以考慮,對模擬電路比較熟悉,可以設計出質量好的電路板。

C3的難度比較大,需要同時熟悉軟件和硬件,真正的做到軟、硬相結合,搭建軟件和硬件互通的橋梁,當然了在業(yè)界的待遇也是相對來說比較高的。

我們可以去一些招聘網(wǎng)站查看相關企業(yè)的崗位要求,這樣學習的時候就有了一個比較明確的目標。今天看到一位前輩的博文,談究竟應該如何成為優(yōu)秀的驅動開發(fā)工程師,很受鼓舞,在此與大家分享共勉。

何謂優(yōu)秀的驅動開發(fā)工程師

首先要定義,我所認為的一個優(yōu)秀的驅動開發(fā)工程師,應該具備什么樣的能力,這里列一下按照從易到難的順序,個人認為應該會有幾個方面的要求吧:

能夠獨立完成驅動的功能開發(fā)任務

能夠分析和優(yōu)化驅動的性能,針對特定硬件揚長避短

能夠充分了解模塊相關軟硬件能力、發(fā)展方向,輔助應用工程師最大化利用硬件能力

能夠輔助硬件工程師規(guī)劃硬件設計,預防問題,謀求功能模塊的最佳方案

能夠協(xié)助定義系統(tǒng)架構,合理規(guī)劃軟硬件,謀求產(chǎn)品實現(xiàn)的最佳方案

作為一個驅動工程師,很多時候不是完全從頭開發(fā)一個完整的子系統(tǒng),而是針對特定硬件和平臺移植驅動,增加功能,解決Bug等等,如果從這方面外在的表現(xiàn)來看:

解決問題的境界,大概會有這么幾個階段:

不知道哪里存在BUG

不知道如何解決BUG

知道如何解決BUG

知道如何發(fā)現(xiàn)BUG

知道如何規(guī)劃BUG

知道如何發(fā)現(xiàn)BUG(而不是撞上BUG)其實并不簡單,需要你對系統(tǒng)有足夠的了解,能夠察覺可能出問題的地方。 而規(guī)劃Bug更難,需要你能對問題的輕重緩急做出準確的判斷。沒有的完美的世界,只有適當?shù)娜∩幔?guī)避和預防。

而從解決問題過程的角度來看,我認可以分為幾個階段:

BUG發(fā)生 -》 大量跟蹤調試代碼 -》 終于發(fā)現(xiàn)并解決BUG

BUG發(fā)生 -》 理論推測可能原因 -》 迅速定位并解決BUG

閱讀代碼 -》 預測可能出現(xiàn)的BUG -》 證實并解決BUG

應該具備怎樣的素質

那么要達到上訴最佳境界,需要具備和發(fā)展哪些素質和能力呢?

一、足夠的硬件知識

能看簡單的原理圖,能夠分析硬件異常的可能原因,能夠使用常見的硬件調試工具,我想這是做為優(yōu)秀的驅動工程師,區(qū)別與其它軟件工程師,所不可避免、必須具備的專業(yè)素質。當然取決于你具體從事的工作,對這方面的要求不盡相同。

對于驅動開發(fā)者來說,不了解所開發(fā)驅動外設的硬件原理和相關背景知識,也許很多時候,也能夠完成一些移植,修補的工作任務,但這就好比無源之水,無根之木,我相信是很難走遠的。

二、多多益善的操作系統(tǒng)知識

做驅動開發(fā),特別是純粹的外設的驅動移植工作,剛開始的時候,也許你并不需要了解很多操作系統(tǒng)本身的知識(像內存管理,進程調度,鎖,各種內核子系統(tǒng)的原理框架等等),也能順利完成手頭的一些工作。

但是,如果一但需要優(yōu)化驅動,需要完善軟件框架,或者是遇上疑難問題需要跟蹤解決,對操作系統(tǒng),內核本身的了解,就體現(xiàn)出它的價值了。

對于Linux內核驅動開發(fā)者,尤其如此,首先,代碼是完全開源的,你有條件去了解背后的運行機制,其次,Linux內核和各個組成子系統(tǒng)總是在迅速的進化發(fā)展中,不進則退,你也有必要跟上時代發(fā)展的腳步。

三、強烈的好奇心,持續(xù)的熱情

如果驅動開發(fā)不僅僅是你的愛好,更是你養(yǎng)家糊口的途徑,我想,很多時候,你大概不會有機會專注于一兩個你最有經(jīng)驗的模塊的開發(fā)和維護。隨著能力的成長,勢必會要求你接觸和掌握越來越多的各式各樣的驅動模塊的開發(fā)。

對于這件事,包括我自己,有時候大概都會有如下幾種反應:

哇,原來的工作做太久了,太乏味了,很高興能做不同的工作。

???又要做別的模塊???我手頭的工作已經(jīng)太多了!

這個模塊沒意思,我不想做。

相信多數(shù)有志青年們都是第一種表現(xiàn)了,不過,有些時候,我發(fā)覺,很多人的這種熱情其實并不持久,一個新的模塊沒做多久,就再次厭倦了,是已經(jīng)爐火純青了么,未必,或許只是修改了幾個BUG以后不甚其煩。很多時候,我面試前來求職的工程師時,發(fā)現(xiàn)簡歷上這個也做過,那個也做過,但是一旦問到解決了什么問題,所做過的驅動,框架、流程、原理之類的問題的時候,就一問三不知了。

我覺得如果自己的目標是優(yōu)秀,那么最起碼的標準應該是對具體驅動模塊相關的子系統(tǒng)的整體工作流程,框架,具備足夠的好奇心,樂于去了解和學習,而不僅僅是為了完成任務而工作,否則的話,很難積累下扎實的經(jīng)驗和技術。

四、清晰的邏輯思維能力

這一點,也許是個軟件開發(fā)人員都應該具備吧,不過,做為驅動開發(fā)工程師來說,有時候,大多數(shù)情況下,工作的硬件環(huán)境并不是完美的,遇到問題需要分析判斷錯誤的原因是硬件問題還是驅動Bug,這時候,清晰的邏輯思維能力尤其重要。

五、良好的工作習慣

大多數(shù)人都不是天才,要成為優(yōu)秀的開發(fā)工程師,其一需要持續(xù)努力,其二需要時間積累經(jīng)驗,而這過程中,很重要的一點,就是要有良好的工作習慣。譬如,注意設計文檔的維護,對工作中遇到的問題的記錄,過往經(jīng)驗的及時記錄,適當?shù)能浖_發(fā)流程等等。文檔工作,可能很多人很不愿意去做,它的確很花費時間。不過,唉。。。老啦,好記性不如爛筆頭啊 。當然,其實設計文檔更多的是為你提供思考的機會,而過往經(jīng)驗的總結,也可以起到和大家交流技術,共同進步的目的。

六、英語

這個也是必須的啦,沒有辦法,郵件列表,技術文檔,社區(qū),精通英語肯定是很大的優(yōu)勢,做開源項目尤其如此。閱讀各種Spec標準文檔之類的速度還是很重要的。閱讀無障礙是一回事,能和母語一樣一目十行,那才爽呀,唉,人生苦短,效率??!光讀文檔,就不知道要比老外多花多少時間。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5087

    文章

    19153

    瀏覽量

    306425
  • 工程師
    +關注

    關注

    59

    文章

    1571

    瀏覽量

    68574
收藏 人收藏

    評論

    相關推薦

    為什么嵌入式驅動開發(fā)工程師可以拿高薪?

    技術領域具有不可替代的地位。 成為一名優(yōu)秀嵌入式驅動工程師只需要深耕以下幾點: 1)堅實的技術基礎: 首先,需要有堅實的基礎,包括計算機組成原理、微處理器與微控制器架構以及電路設計
    發(fā)表于 01-07 16:56

    嵌入式工程師常用的開發(fā)工具有哪些?

    工具。 、集成開發(fā)環(huán)境(IDE) IDE是嵌入式開發(fā)的核心工具之。例如 Keil MDK,它支持多種微控制器架構,提供了強大的代碼編輯、編譯、調試功能。
    發(fā)表于 12-20 15:29

    如何使用 RISC-V 進行嵌入式開發(fā)

    RISC-V是種開源的指令集架構(ISA),它允許任何人設計、制造和銷售基于RISC-V的處理器,這為嵌入式開發(fā)提供了極大的靈活性和創(chuàng)新空間。以下是使用RISC-V進行嵌入式開發(fā)的基本步驟:
    的頭像 發(fā)表于 12-11 17:32 ?625次閱讀

    零基礎嵌入式開發(fā)學習路線

    底層崗位方向比如:嵌入式硬件工程師、驅動開發(fā)工程師等崗位投簡歷啦!當然,這只是個大致的路線,并不涵蓋所有的細節(jié)和知識點。如果你想深入學習,
    發(fā)表于 10-25 15:55

    嵌入式開發(fā)常見問題排查

    嵌入式開發(fā)問題排查很多人認為嵌入式開發(fā)很難,主要是因為在這個過程中常常會遇到各式各樣的問題。這些問題的復雜性和多樣性使得許多人感到困惑和無所適從。然而,如果將這些問題逐拆解,實際上大部分都可以
    的頭像 發(fā)表于 09-22 08:04 ?380次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>常見問題排查

    嵌入式開發(fā)前景怎么樣?

    嵌入式開發(fā)前景非常廣闊,這主要得益于物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)等技術的快速發(fā)展,以及嵌入式系統(tǒng)在各個領域的廣泛應用。以下是對嵌入式開發(fā)前景的詳細分析
    的頭像 發(fā)表于 07-10 09:00 ?2802次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>前景怎么樣?

    嵌入式開發(fā)者的未來

    嵌入式系統(tǒng)的就業(yè)方向非常廣泛,涵蓋了許多不同的行業(yè)和領域。以下是些常見的嵌入式系統(tǒng)就業(yè)方向:消費電子產(chǎn)品:這包括智能手機、平板電腦、智能電視、智能家居設備等。嵌入式系統(tǒng)
    的頭像 發(fā)表于 06-23 08:10 ?401次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>者的未來

    嵌入式軟件工程師如何提升自己?

    嵌入式軟件工程師如何提升自己? 作為一名嵌入式軟件工程師,在這個充滿機遇和挑戰(zhàn)的領域里,如何提升自己顯得非常重要,它決定了你未來的發(fā)展方向和
    發(fā)表于 06-12 11:20

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件
    發(fā)表于 05-16 11:00

    如何成為一名嵌入式C語言高手?

    如何成為一名嵌入式C語言高手? 嵌入式系統(tǒng)是當今科技領域的核心,而C語言則是嵌入式系統(tǒng)開發(fā)中最
    發(fā)表于 04-07 16:03

    如何成為一名嵌入式C語言高手?

    如何成為一名嵌入式C語言高手? 嵌入式系統(tǒng)是當今科技領域的核心,而C語言則是嵌入式系統(tǒng)開發(fā)中最
    發(fā)表于 03-25 14:12

    fpga是嵌入式開發(fā)

    FPGA(現(xiàn)場可編程門陣列)與嵌入式開發(fā)之間確實存在定的關聯(lián),但它們在本質上是兩個不同的領域。
    的頭像 發(fā)表于 03-15 14:18 ?1097次閱讀

    單片機如何通過代碼控制硬件:一名工程師的分享

    今天跟大家聊聊單片機是怎樣通過代碼來操控硬件的。作為一名單片機工程師,我們平時的工作就像是給單片機編寫“指令集”,讓它按照我們的意圖去驅動各種硬件設備。
    的頭像 發(fā)表于 03-06 14:46 ?1566次閱讀
    單片機如何通過代碼控制硬件:<b class='flag-5'>一名</b><b class='flag-5'>工程師</b>的分享

    嵌入式人工智能的就業(yè)方向有哪些?

    的發(fā)展方向有很多,門檻高低不樣。下面給大家列舉些相應崗位所需具備的技能: 嵌入式Linux,C語言開發(fā)
    發(fā)表于 02-26 10:17

    優(yōu)秀電源工程師需要哪些必備技能?

    就帶大家細數(shù)優(yōu)秀電源工程師具備的那些技能。、新手必備課程成為一名電源高手需要扎實的理論基礎
    發(fā)表于 01-29 11:29