 嵌入式學習經驗(yan) 老外(wai)Bruce Douglass專訪
							時間:2015-12-17      來源:未知
							嵌入式學習經驗(yan) 老外(wai)Bruce Douglass專訪
							時間:2015-12-17      來源:未知 
							Bruce Douglass是嵌入式與UML應用資深專家,這個(ge)擁有(you)30余年的嵌入式從業經(jing)歷,看看他的嵌入式領域經(jing)驗與嵌入式學(xue)習(xi)感悟分享內容有(you)哪些?
是什么吸引你加入嵌入式學(xue)習過程,從此開始編(bian)程的職業(ye)生涯?
表面上看,編(bian)程(cheng)就(jiu)是(shi)想(xiang)要(yao)實現(xian)什么就(jiu)寫什么代(dai)碼(ma);但事(shi)實是(shi),敲代(dai)碼(ma)只是(shi)軟件(jian)開發(fa)過程(cheng)中(zhong)很小的一部(bu)分,程(cheng)序(xu)員的工作(zuo)還包括安全分析(xi)、責任分析(xi)、產(chan)品驗證(zheng)、產(chan)品分析(xi)等。
在嵌入(ru)式從(cong)業開發過程(cheng)中(zhong),應(ying)該如(ru)何(he)來提(ti)高(gao)自己的技(ji)能?
重要(yao)的(de)是實踐,就(jiu)(jiu)像要(yao)練好標槍就(jiu)(jiu)必(bi)須(xu)勤加練習,編程(cheng)也是一(yi)樣。在(zai)我(wo)(wo)的(de)書(shu)中(zhong),我(wo)(wo)一(yi)直都(dou)嘗試加入(ru)更多(duo)的(de)實例設(she)計;從我(wo)(wo)參(can)與過許多(duo)系(xi)統的(de)開發——計算機(ji)斷層掃描、醫(yi)療(liao)(如心臟起搏器、呼吸機(ji))、無人機(ji)、自動化、航(hang)空航(hang)天、運載火箭系(xi)統等(deng)——我(wo)(wo)發現不同(tong)(tong)行業有(you)著不同(tong)(tong)的(de)應(ying)用(yong)環境,但(dan)同(tong)(tong)時也有(you)共(gong)通性,我(wo)(wo)們需要(yao)在(zai)不斷的(de)實踐中(zhong)總結知(zhi)識。經歷會帶給人財富(fu),有(you)一(yi)次(ci)我(wo)(wo)兒子問我(wo)(wo),怎樣才能成為作(zuo)家,我(wo)(wo)告訴他,首先(xian)你要(yao)開始寫(xie)作(zuo)。
在不同領域(yu)嵌(qian)入(ru)式開發的過程(cheng)當中,得到了哪些(xie)經驗總(zong)結?
一是要(yao)發(fa)散(san)思(si)(si)維克服目光短淺。我做顧問時,經常(chang)看到一些根(gen)(gen)本不可能實現的(de)(de)案例,當(dang)事(shi)人卻置身其中毫無(wu)察(cha)覺。面對問題(ti)時,我們需(xu)要(yao)走(zou)出定(ding)勢思(si)(si)維,從不同的(de)(de)角度(du)尋找解決辦(ban)法(fa),并通(tong)(tong)過思(si)(si)考(kao)尋找問題(ti)的(de)(de)底層機理所在。比(bi)如(ru),大學時我基本沒上過化學課,但能通(tong)(tong)過推測(ce)解答(da)試(shi)(shi)題(ti)的(de)(de)辦(ban)法(fa)通(tong)(tong)過了考(kao)試(shi)(shi)。我們要(yao)學會看到事(shi)情之外,退一步想想事(shi)情發(fa)生的(de)(de)根(gen)(gen)本原因,總結所做過的(de)(de)嘗試(shi)(shi)、預測(ce)以及(ji)終成功(gong)的(de)(de)方(fang)法(fa),然后在確保成功(gong)的(de)(de)前提下嘗試(shi)(shi)更(geng)多的(de)(de)解決辦(ban)法(fa).。我們需(xu)要(yao)制定(ding)相應(ying)的(de)(de)度(du)量(liang)標準,用(yong)來(lai)記(ji)錄并展示(shi)過程中的(de)(de)成與敗及(ji)總目標。
二是要(yao)(yao)建立數學思(si)維,提(ti)高準確性(xing)。一些人常常固執(zhi)己(ji)見,忽略事實(shi)(shi),即(ji)使(shi)現實(shi)(shi)已經(jing)證(zheng)明他們(men)的(de)理(li)論(lun)和想法不實(shi)(shi)際,他們(men)卻依(yi)然(ran)堅持(chi)——這是沒有意(yi)義的(de)行(xing)為。理(li)論(lun)需要(yao)(yao)實(shi)(shi)踐(jian)來驗證(zheng)對與錯(cuo)。在(zai)做開(kai)發工作時,我們(men)需要(yao)(yao)一套(tao)度(du)量標準用(yong)于評(ping)測,要(yao)(yao)以取得進步(bu)為目的(de),而不只是實(shi)(shi)現某個計(ji)劃(hua),相較于“如何(he)實(shi)(shi)現計(ji)劃(hua)”,“如何(he)實(shi)(shi)現目的(de)”則是更(geng)好的(de)度(du)量標準。
三是(shi)要學(xue)會合(he)理(li)地做計(ji)劃。通常(chang)軟件行業(ye)制(zhi)作的計(ji)劃都(dou)有(you)(you)兩(liang)種目的,一種是(shi)用于申請(qing)計(ji)劃所(suo)需時(shi)(shi)間(jian)及經費(fei);另(ling)一種則是(shi)用于激勵員工(gong)努力工(gong)作,這(zhe)種計(ji)劃本(ben)身就(jiu)存(cun)在(zai)著矛盾。合(he)理(li)的計(ji)劃一定(ding)要基(ji)(ji)于現(xian)實,并有(you)(you)相應的度(du)量標準來記錄工(gong)作進度(du)及工(gong)時(shi)(shi)。我在(zai)做項(xiang)目管理(li)時(shi)(shi)就(jiu)有(you)(you)很多這(zhe)樣的度(du)量規(gui)則,我一般只會預估完成(cheng)一半(ban)任務(wu)所(suo)需的時(shi)(shi)間(jian),這(zhe)樣前后兩(liang)部分任務(wu)可在(zai)時(shi)(shi)間(jian)上做靈活調整;對(dui)于具體某個人的進度(du),我不會做預估,因為基(ji)(ji)本(ben)都(dou)會延時(shi)(shi)。統計(ji)學(xue)中有(you)(you)一個“中心極限定(ding)理(li)”——通常(chang)我們只有(you)(you)50%的幾率能夠(gou)達成(cheng)預估時(shi)(shi)間(jian)表。
在嵌入式學習或是(shi)嵌入式軟件系統領域中,開發者(zhe)會遇到哪些常見的誤區?
首(shou)先,人們常在沒(mei)有(you)(you)實踐的(de)情(qing)況下做出判斷。比(bi)如(ru)有(you)(you)些人經常想當(dang)然的(de)認(ren)為不過是軟(ruan)件(jian)/硬件(jian),沒(mei)有(you)(you)什么難的(de)。沒(mei)有(you)(you)實踐,任何(he)事(shi)情(qing)看起來都很簡單。只有(you)(you)當(dang)你深(shen)入某個領域時,才能慢慢意識(shi)該領域的(de)復雜性。如(ru)今的(de)系統已經比(bi)幾年(nian)前(qian)復雜數(shu)百倍,相應的(de)安(an)全性及可(ke)靠性也隨之提高(gao),相關的(de)工作變(bian)得更復雜。
其(qi)次(ci)(ci),人們(men)通常認(ren)為緊湊的(de)(de)工(gong)期(qi)能(neng)夠(gou)激勵(li)員(yuan)工(gong)更努力的(de)(de)工(gong)作。事實(shi)上,這種(zhong)激勵(li)方式(shi)多只(zhi)能(neng)生效一(yi)次(ci)(ci)。第一(yi)次(ci)(ci),員(yuan)工(gong)可(ke)能(neng)會乖乖一(yi)天拼命工(gong)作20個小時以完成(cheng)任務(wu),第二次(ci)(ci)他(ta)們(men)就開始有(you)(you)些遲(chi)疑(yi),到了第三第四次(ci)(ci),他(ta)們(men)也(ye)就不(bu)以為然了。我(wo)曾經有(you)(you)個老板說“現(xian)實(shi)是友好的(de)(de)”,我(wo)卻始終(zhong)認(ren)為現(xian)實(shi)就是現(xian)實(shi),不(bu)友好但也(ye)不(bu)壞,現(xian)實(shi)不(bu)容忽(hu)視(shi),我(wo)們(men)要時刻(ke)保(bao)持理性。我(wo)發現(xian)很多組織內部都存在著各(ge)種(zhong)架構或者工(gong)期(qi)制(zhi)(zhi)定的(de)(de)問題,他(ta)們(men)從不(bu)根據事實(shi)制(zhi)(zhi)定計劃,不(bu)認(ren)真思考總結,只(zhi)通過憑空想象,然后期(qi)望能(neng)夠(gou)如(ru)期(qi)完成(cheng)。
在嵌(qian)(qian)入式(shi)(shi)學習中,與(yu)早些年相比,嵌(qian)(qian)入式(shi)(shi)軟(ruan)件開(kai)發領域大的變化是什么?
我覺(jue)得變化主要有三點(dian)。第(di)一(yi)(yi)是(shi)(shi)范(fan)圍,我開發(fa)的第(di)一(yi)(yi)個軟件,心(xin)臟起搏器(qi),是(shi)(shi)一(yi)(yi)個基于6502處理(li)器(qi)的、很小(xiao)的、實時多任務操作(zuo)系(xi)(xi)統(tong)(tong)(tong)的匯(hui)編(bian)程序,系(xi)(xi)統(tong)(tong)(tong)只有8KB。如今(jin)系(xi)(xi)統(tong)(tong)(tong)的空(kong)間和功能實現跟以前比起來,早已不在一(yi)(yi)個量級,過去的系(xi)(xi)統(tong)(tong)(tong)很小(xiao)而(er)且功能簡單,現今(jin)的系(xi)(xi)統(tong)(tong)(tong)要比以前復(fu)雜千倍。
第二是規(gui)則(ze)變化,包括一(yi)些(xie)安全可(ke)靠性服務。如今(jin)的(de)安全監管功(gong)能(neng)增加了很多(duo)對開發(fa)的(de)質量要求規(gui)則(ze)。以前如果機(ji)器壞了我們可(ke)以直接關掉(diao),如今(jin)卻不行,例如輸氧設備或者(zhe)正在駕駛的(de)飛機(ji),我們并不能(neng)直接關掉(diao)它,也就(jiu)是說如今(jin)的(de)質量需求要比以前多(duo)得多(duo)。
第三是集成(cheng)。當今(jin)世界是一個億(yi)萬臺設備相(xiang)互連接(jie)的(de)互聯空間,這(zhe)同時意味著(zhu)我們(men)正面臨著(zhu)史無(wu)前例的(de)安全(quan)隱患(huan)。在這(zhe)些普(pu)通移(yi)動設備、主(zhu)板(ban)、娛樂(le)系(xi)統(tong)、自(zi)動系(xi)統(tong)、傳感器系(xi)統(tong)設備中,他們(men)不僅可以(yi)開(kai)(kai)關機、開(kai)(kai)啟或鎖定防(fang)火墻,還(huan)可以(yi)盜(dao)取(qu)信息(xi)、重寫引擎(qing)軟件。在過去(qu)如(ru)果有(you)人想偷(tou)車,就必須先把(ba)車門撬開(kai)(kai);而如(ru)今(jin),只需(xu)要黑入汽車系(xi)統(tong)改(gai)寫軟件就能把(ba)車偷(tou)走。這(zhe)是安全(quan)級別的(de)一個巨大改(gai)變(bian),50年前還(huan)沒有(you)電力系(xi)統(tong),20年前有(you)了電力系(xi)統(tong),但是還(huan)沒有(you)軟件,如(ru)今(jin)一個病(bing)毒就可以(yi)攻(gong)擊幾(ji)萬臺設備并導致一座城市的(de)癱瘓。
對于的嵌入式開(kai)發者來講(jiang),在嵌入式學習過程中(zhong),有哪些(xie)更(geng)好(hao)地建議要分享?
在(zai)(zai)我看來(lai),開發者即革新(xin)(xin)者,而革新(xin)(xin)一(yi)定不(bu)(bu)能(neng)畏懼失(shi)敗,不(bu)(bu)能(neng)因為他人(ren)的(de)(de)(de)不(bu)(bu)認可而輕易放棄。另外,作為一(yi)名開發者,不(bu)(bu)能(neng)只關(guan)注系(xi)統(tong)的(de)(de)(de)功(gong)能(neng)實(shi)(shi)現,還(huan)要關(guan)注質(zhi)量(liang)保障,系(xi)統(tong)功(gong)能(neng)的(de)(de)(de)實(shi)(shi)現要圍繞(rao)著安全、可靠和高(gao)效進行(xing)實(shi)(shi)施。要擁有(you)(you)獨立(li)并(bing)機智地使(shi)用(yong)不(bu)(bu)同技能(neng)的(de)(de)(de)能(neng)力,勇于面對(dui)錯(cuo)誤(wu)并(bing)及時(shi)修正(zheng)。根(gen)據我的(de)(de)(de)經驗,在(zai)(zai)新(xin)(xin)事(shi)物的(de)(de)(de)應用(yong)過(guo)程中,通常會(hui)(hui)有(you)(you)25%的(de)(de)(de)錯(cuo)誤(wu)概率,如果(guo)沒(mei)(mei)有(you)(you),那你一(yi)定沒(mei)(mei)有(you)(you)努力地應用(yong)新(xin)(xin)技術。大部分人(ren)都喜歡恪守陳規,而我寧(ning)愿是個例外,這同時(shi)意味(wei)著會(hui)(hui)做出一(yi)些令人(ren)難以置信(xin)的(de)(de)(de)錯(cuo)誤(wu)決定,不(bu)(bu)過(guo)沒(mei)(mei)有(you)(you)什么大不(bu)(bu)了,下次改正(zheng)就(jiu)好了。

