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