成為嵌入式工程師是很多在校學生的夢想,怎樣才會達成這一目標?這個過程到底有多難?你需要在大學里做哪些知識儲備?我們聽Marinna講述她的工程師之路
參加工作已經三年了,可是到現在,我仍然不確定自己算不算一名合格的工程師。合格的工程師應該是什么樣子的呢?熱愛自己的職業(yè),認真負責,保持一顆包容和不停止學習的心。反觀我呢,最喜歡的狀態(tài)是,窩在家里整天整天的看電視劇和吃東西。真的很佩服那些在空閑時間還能全心搗鼓技術的,還有那些自始至終能夠保持旺盛精力的人,因為我一旦回了家,特別是回了老家或者男友家,整個狀態(tài)就松懈下來了,只想著最好閑居在村莊,看看電視養(yǎng)養(yǎng)花,聊度余生。
究其原因,可能是工作對于我來說并非全然的享受,而始終伴隨著幾乎無法消除的焦慮感。我有很強烈的意愿,去設計出非常精準美觀的電路板,去編寫出非常優(yōu)質完善的程序,而同時也明白,從經驗也從直覺,要達到這樣的目的,自己需要長時間集中精力,并且做好調試過程中艱苦攻堅的準備。雖然創(chuàng)作是快樂的,雖然專心做事情的時候很容易就忘了時間,可是它還是一項辛苦的工作,身體和思維都有鬧著要休息的時候。
從事過硬件開發(fā)的人應該都有體驗,調試電路板有的時候是很令人抓狂的,經常是好像沒有任何地方弄錯,但是電路就是不按照你設想的那樣工作。你檢查過原理設計和PCB板設計,也檢查過器件的型號和值,還仔細驗證過每一根接線的通斷,一句一句重新厘清程序的含義……但就是找不出問題在哪里。為什么?!為什么?!明明everything都沒弄錯,但就是結果不對?!時間一小時一小時的過去,你想扯住自己的頭發(fā)往墻上撞,你想把電路板砸個稀巴爛,你握緊了拳頭指關節(jié)咔咔作響,但最終你還是重重的捶了一下桌子,又拿起了萬用表或者示波器的探頭!
這可以算是每個硬件工程師必須經歷的過程,當你有能力按步就班的定位到問題所在,并且采用可行的方式驗證并修復它,恭喜你,你終于跨過了硬件工程師的第一道坎!
破繭成蝶總是痛苦的,可做個硬件工程師非得搞得跟浴火重生一樣嗎?我慶幸自己堅持了下來,成為苦逼硬件工程師大軍中的一員,但也會想,是不是有硬件工程師的系統訓練,過程就會走得沒有那么艱難。
硬件工程師的系統訓練,本來應該在大學校園里面,通過專業(yè)課來完成??筛杏X大學的課程和實際嚴重脫離,動手實踐環(huán)節(jié)太薄弱,幾乎對職業(yè)發(fā)展沒有任何直接的幫助。教材都是二十年前的絕不更新,老師教課的時候照本宣科,學生上完了課水平還是老樣子。對大學教育失望的人十之有八九,真要吐槽起來,段子一籮筐一籮筐的!以前和第一份工作的前輩工程師聊天,他說日本的大學單片機課程,是學生要使用各種各樣的器件搭出一個單片機來,不僅僅是要學習怎么使用單片機的外設,怎么使用匯編或者C語言編程,而是真正去理解單片機是怎么工作的,它的CPU寄存器是干什么用的,內存是怎么映射的,時鐘是怎么產生的……一門課程上下來,就是真的通了,學生都可以設計單片機燒寫的硬件和程序了??煞从^咱們的單片機課程,把課本上的例子燒進去,半字不改,燈亮了就算完事。還說二十年超英趕美,呵呵,不把基礎建設做好,空中樓閣再漂亮,也是千瘡百孔一推即倒。(可別在比不過人家的時候就說,這都是帝國主義的陰謀。。。)
如果有像日本課程這樣的系統訓練,設計和調試硬件應該會輕松得多,因為你能夠做到心里有數。當問題出現,比如RS232、SPI或者I2C協議不通的時候,首先你已經理解了它們的電氣特性,知道它們的電平值應該是什么樣子,哪些引腳應該是推挽輸出狀態(tài),哪些引腳應該是高阻態(tài)輸入,哪些引腳應該是開漏的;你理解它們的上拉下拉電阻和速率功耗之間的關系,懂得觀察它們的上升下降沿來修改電路的參數,懂得觀察它們的時序,使得程序設計時數據不會發(fā)生遺漏也不會造成時間的浪費;你明白外設寄存器對應的協議特征是什么樣子的,這樣設置的原因是什么,它們和系統內存映射、時鐘以及功耗的關系是什么……這些東西聽起來又簡單又繁瑣,可正是這些構建了復雜電路板穩(wěn)定工作的基礎。由簡到繁,由易到難,應該比馬上立刻要得出某種結果要輕松一些。
但是目前的大學教育也不是一無是處,它提供的高等數學訓練是工程師工作的必備技能。以我讀的測控系來說,高等數學、概率論、控制理論等等,在實際的項目中常常會用到,PID運算幾乎是每個控制類項目的標配,而傅立葉變換和香農定理幾乎是傳感器采集類項目的標配,在嵌入式操作系統比如Linux中,總能發(fā)現經典的數學原理的應用,比如哈希散列。這些數學知識需要很長時間和很多練習,而公司幾乎不會為員工提供這樣的培訓。
大學教育重理論輕實踐,就算是動手也只是走個過場,好在高校會組織各種各樣的電子類比賽。大四那一年我加入了學校的機器人隊,如果說我的本科前三年都充滿著對未來的迷茫,那大四那一年就像是看見了漆黑天空的一點點晨曦。在機器人大賽中,我才真正有機會拿起電烙鐵,參與電路板設計的全過程,課本上完全搞不明白的概念,也才一點一點得到了驗證。
準備比賽的過程,像是參加魔鬼訓練一樣。剛剛進隊的時候,真的是徹徹底底小白一只,連電容電阻長什么樣子都不知道,師兄師姐給我們上的培訓第一課,是認識電子元器件;把各種各樣的分立元件和芯片認全了,就開始學習焊接技術,還記得某年齡上的師弟資歷上的師兄說過,電路50%的問題是焊接造成的,這絕對是至理名言;等差不多焊接水平過關了就開始學習單片機的使用,包括電路的設計和程序的編寫和燒錄;后期則是各種各樣電機、傳感器和設備的使用,以及算法的調試。半年的時間,完全不夠用,技術水準還達不到能夠設計出完善的電路板和程序的地步,現在回頭看,我那時候采用的電路實現簡直一塌糊涂,程序的設計漏洞百出。雖然最終比賽的結果并不理想,但是那段經歷卻是受益終身。
經過全身心準備的比賽最終失利,心里還是會非常難受,現在偶爾還忍不住對自己搞暴力精神分析,想找出當初失敗的原因。
與非原創(chuàng),謝絕轉載!
往期回顧:
《大一新生,你慢慢來》之三:你的理想,你的大學,你玩對了嗎?
《大一新生,你慢慢來》之二:大學的專業(yè),未必是職業(yè)生涯的籌碼
《大一新生,你慢慢來》之一:大學四年,我慶幸沒有選擇安逸