舉一反三,觸類旁通 - 電子工程師十年成長路感悟
2014年11月27日 14:42 來源:互聯網 作者:馬延安 我要評論(0)
舉一反三,觸類旁通
我一直認為,作為一個工程師,尤其是電子工程師,“照貓畫虎”的類推能力是非常重要的。如果我們用舉一反三的交叉方式去思考不同的技術,就會發現很多技術是有內在關聯的。技術領域上較廣泛的涉獵給我的感觸是,很多技術是作為一個體系出現的,靠架構來組成的。而架構的存在,也使中間件的開發更有效率。下面我想分享一下,學習過程中感觸到的架構在不同技術領域中的表現。
如果你做Windows WDM Driver,會發現WDM的架構是非常棒的,只要精通某一點并開發設計成一個小小的sys文件,就可以把它掛到操作系統中去。Windows的OS會在適當的時候調用你的sys文件,跟寫應用程序的消息機制似的。我們再深入到WDM的這個sys驅動的內部看,有兩個非常顯著的特點:第一,把一系列的函數指針指向自己實現的函數,目的是把自身掛到驅動棧里去;第二,接受驅動棧上層驅動的請求,先處理,然后傳遞給驅動棧的下層驅動。正是架構的精心設計,讓模塊開發的勞動強度大大降低,于是連對PC硬件不甚熟悉的我,都有過幾次做Driver的經歷。
做嵌入式系統WinCE的工程師會注意到,WinCE的驅動架構,幾乎完全是Windows WDM的簡化版。WDM驅動的那兩個特點在這里表現得淋漓盡致。當然,因為是嵌入式系統,肯定要比Windows系統簡化很多,而且嵌入式的CPU提供的資源跟X86也是無法相比的。因為工作的緣故,我對WinCE沒有更深入的學習。
我曾有機會做Windows Media的編程開發,這是Windws XP平臺上一個視頻特別處理,當然用到了DirectShow技術。我當初就感覺DS的架構怎么這么面熟,就是一時認不出來。原來DS使用了COM技術,變得神秘了。但透過COM這個接口技術看架構,原來又是跟WDM那么的相似,只是表現形式由Device變成了Filter而已。一個內核層的架構居然在應用層也能找到它的影子。
做Windows通信程序的時候,希望收到數據時才響應,例如向主窗口發個消息。這是APP級的,怎么做呢?對了,就用FILE_FLAG_OVERLAPPED這個屬性,我們只要以這個屬性打開設備,如串口或者USB等,以后讀取設備數據的時候,這個函數會立即Return,我們隨后就可以等待事件(Read完成了或者Timeout了或者是某故障發生了)。配合多線程編程,很容易做成消息驅動型的,而不必用死循環浪費額外的CPU時間片。這里就借助了操作系統給我們提供的消息機制。
在開發嵌入式設備的時候,我們會遇到類似的問題,想節約額外的CPU時間片以達到節電的目的,甚至更迫切,這就可以用到消息機制。用戶程序一直在等待事件,只有在有消息來到的時候,處理程序才會被啟動。而底層程序,則被設計用來維護消息機制,當空閑(如按鍵、中斷等都沒有到來)時候,系統可以進入空閑狀態,甚至睡眠狀態。多數情況下,嵌入式系統的CPU 占用率是非常低的,所以消息機制的使用可以大副降低功耗。
其實,嵌入式設備即使不用Embedded OS也可以利用OS的某些特性來設計,這使得代碼的可維護性大大增強。所以做過Windows SDK開發的人,轉做消息驅動的嵌入式系統,很多概念是非常容易接受的。其實,很多嵌入式系統的設計者,也確實參考了Windows的消息機制的實現方式。所以,我面試嵌入式工程師的時候,一般都會順便問一下有沒有Windows PC編程的經驗。
整合資源,提升自我
很多人覺得整合資源,是管理上的術語。實際上,工程師也需要把已經掌握的資源進行整合,以得到最大程度的自我提升。就像我們總質疑為何某同事的技術能力不如我,卻做上了部門經理的位子。如果我們仔細觀察,就會發現是自身的某些因素導致了我們的很多能力無法得到最大機會的表現,或者,要充分整合我們已經掌握的資源,才能使得我們的能力最大程度的展示。這是更高層次的自我提升。
當工作數年之后,我發現自己認識了很多朋友,有做技術的,也有做市場的;發現自己掌握了很多零零散散的技術,能做TCPIP通信了,能獨立Layout出一塊完整的PCB了;發現自己具有一定的組織協調能力,能獨立組織一個團隊的工作,能協調團隊和外界的溝通了。如果你有跟我類似的感覺,說明你也注意到自己的潛力了。當這些潛力沒有轉化成能力之前,這只是潛在資源而已。所以,我們要學會整合這些資源。
把自己掌握的兩項獨立的技術應用于某個產品,并協調其搭配工作,這是技術上的整合。自己擅長做軟件,和做硬件的同事合作,并主導合作中的很多煩瑣事物,這是人力上的整合。自己有技術,和有市場能力的朋友,合伙創業,那更是整合。通過整合,我們表現出了單打獨斗無法表現的能力,這就是整合的力量,撬動地球的杠桿的力量。
我在工作7年之后辭職準備創業。同很多工程師都有的艱苦創業經歷一樣,單單一個角色轉化就非常令人痛苦。以前只需專注技術就足夠了,現在卻需要面對成本、工期、工廠等N多的因素,整天在工程師、業務員、售后服務之間角色轉換。另外,創業之初,各類文檔的撰寫就是個不小的門檻,包括合作意向書、NDA協議、產品規格書、報價書,都需要較好的文字表達能力。拜訪重點客戶之前,還要制作 PPT的演示投影。創業之初雖然辛苦,但可預見的勝利果實的誘惑力太大了,加班、熬夜,都是家常便飯。因為起步稍微有點基礎,所以開始就抓到了客戶,直接進入創業過程中“為他人做嫁妝”的階段。總結起來,我的創業經歷就是整合自身資源,充分提升自己的一個過程。
很多工程師都有創業的沖動。我的建議是:第一,創業前做盡可能多的準備工作;第二,盡量選擇自己最熟悉的領域。當然,工程師還有一個方面相對欠缺,就是文字表述能力。各種文檔的撰寫,都需要有好的文字功底。在以前那家公司工作的時候,因為管理一個小Team,每周都要在視頻會議上給老板做匯報,還要給幾個下屬做計劃。趕鴨子上架,在現實的壓力下,我開始重視書面表達能力。我覺得,書面文字的運用能力,對一個工程師而言,是一道門檻,應該努力跨越過去。
愿每個工程師,都有美好的人生,都能實現自己的理想,實現自己的價值。
想要了解更多有關電子工程師設計資料,請點擊電子發燒友《物聯網核心技術之ARM》專題
?
本文導航
- 第 1 頁:電子工程師十年成長路感悟
- 第 2 頁:舉一反三,觸類旁通
上周熱點文章排行榜
上周資料下載排行榜
論壇熱帖
熱評
- IR將功率半導體觸角伸往消費市場
- 多功能算術/邏輯運算單元(ALU) ,什么是多功能
- 動態ip、靜態ip、pppoe撥號的區別
- ARM與MIPS的比較
- ThunderBolt端口驅動及NET改WAP方法
- ds18b20中文資料詳解
- 滴滴人臉識別怎么破解
- 超級計算機榜單重新排名 中國天河二號已淪為世界第
- 電阻色環表_色環電阻識別方法
- iphone6概念機圖片曝光_iphone6上市時
博文
帖子
- 【書籍評測活動NO.51】具身智能機器人系統 | 了解AI的下一個浪潮! ElecFans小喇叭
- 請教關于CS1239低側采樣如何獲得使用更高的Gain? jf_94221193
- 高頻條件下的耦合線圈出現負值的原因是什么 jf_42363055
- 請問如何關閉獨立看門狗 jf_39582415
- ads1291雙電源供電時,Thermal Pad接AVSS嗎? ggfx
- 【米爾-Xilinx XC7A100T FPGA開發板試用】+03.SFP光口測試(zmj) 卿小小_9e6
- DAC7621的reference性能精度,可以使用外部輸入ref嗎? 萬物死
- 【「HarmonyOS NEXT啟程:零基礎構建純血鴻蒙應用」閱讀體驗】+1-7章有感 夜孤影
- DIY了一臺無人機,用全志T113芯片 文小二
- 電子產品結構與導熱材料解決方案 jf_86221244
用戶評論
查看全部 條評論
查看全部 條評論>>