最近電子發燒友(以下稱'發燒友')採訪了韋東山老師,本文是採訪原稿,展示出來讓大家更深入了解韋老師的同時也進一步學習嵌入式發燒友:linux經驗。
機會總是留給有準備的人
為什麼要學習掌握arm裸機?arm裸機與從事嵌入式工程師職業關聯度如何?
韋東山:
我們講解的arm裸機,特殊之處在於:不使用iar/keil/mdk等軟體,而是在純粹的linux環境下從0寫**。這些好用的開發工具遮蔽了太多的技術細節,比如:位置無關碼、重定位、中斷環境的儲存與恢復、鏈結指令碼。而這些細節,在後續的bootloader學習中是需要的。
除上述細節外,arm裸機的學習目的在於:掌握如何編寫程式來控制硬體。後續的「linux驅動=軟體框架+硬體操作」,我們先在單純的裸機學習中掌握硬體操作,在後面的學習中就可以把精力放在驅動軟體框架上。
我們學習arm裸機的目的,是去學習後續的linux課程,高階為linux系統工程師。不是要讓你繼續從事微控制器開發,成為微控制器工程師。
在技術層面,linux系統工程師回頭從事微控制器開發,輕而易舉;但是現在不開始著手linux的學習,後續轉型很麻煩。2023年我們使用51微控制器從事車載**開發,所做的軟體已經算是微控制器層面頂尖水平了──我們可以在微控制器上開發自己的作業系統。
但是,我們同事紛紛感覺到了危機,微控制器能做的事情太單一了。當年流行wince,linux剛起步,我們選擇學習linux,現在wince已經沒人提及,而linux仍如日中天。中興公司也是在2023年才全面從vxwork切換到linux的,我有幸進入中興與他們一起研究linux。
就身邊事例而言,我是2023年離開中興,隨後幾年裡有幾個同科室的同事也都離開了,他們都做linux系統;現在都做得很不錯。有人在聯想做android開發,有人在做pos機,有人自己創業,他們或是團隊領導,或是有股份。
發燒友:
根據您的經歷及見聞,現在arm嵌入式工程師前途如何?含金量、薪資待遇呢?
韋東山:
理想很豐滿,現實很骨感。所有行業的從事者都是在乙個金字塔裡,工作好收入高離家近假期多的人,都只是少數。我只能說,平均而言,arm嵌入式工程師待遇較好,發展前途不受限。
說好話之前,先說醜話。
我是個宅男,只能舉身邊的例子:我在中興時從事嵌入式系統的同事,發展都很不錯。
同事a,早年從因pos機開發(用微控制器),在中興裡天天加班深研linux技術,現在在創業公司裡當技術頭頭,有股份。加班多,但是收入高。
同事c,女,跑到ibm做伺服器相關的工作去了,嵌入式linux的知識絕對是幫上大忙了。
同事d,深研linux系統知識,人稱大師,從不加班(羨慕死人了),有大bug必定請他出馬、出差。
對於嵌入式工程師,把linux知識吃透了,可以遊走於幾乎所有行業,因為這些產品基本上都要用linux。
對於暫時找不到嵌入式linux職位的同學,不用擔心,你總會發現機會的。
發燒友:
乙個合格的嵌入式工程師,需要具備哪些性格和職業特徵?一些理工科學生或剛畢業不久的工程師老說迷茫,產生迷茫的原因有哪些,為什麼?怎麼克服?
韋東山:
嵌入式工程師,必須具備的性格和職業特徵:
究根究底:作業系統層面的問題,必須徹底弄清楚原因,徹底解決,否則隱患巨大。
絕對耐心:嵌入式工程師的**量很少,多數時間是在學習新知識、協助除錯。我在中興工作時,曾經花了乙個月來捕捉、解決乙個bug,最能只增加了一條指令。bug隨機出現,我不斷地重啟系統、重啟軟體;根據新現象不斷地現學現用。
迷茫,唯一的原因就是對未來感到不確定。
我的專業是物理,在大一大二時深感迷茫,不知道畢業後能做什麼,我選擇了學習第2學位:計算機。
我剛工作時用的是51微控制器,對所用的落後技術也深感迷茫,我選擇辭職自學linux。
我在中興工作時,加班多、工資少、房價高,仍然迷茫,選擇創業。
我也算工作15年的老工程師了,也接近40歲了,仍不時覺得迷茫。但是我深信兩句話:要收穫,必須先付出;吃得苦中苦,方為人上人。
對於迷茫的工程師,我建議:
根據自己的興趣,選擇不太偏門的方向,潛心學習;選定方向後,不跟風不追熱門。
發燒友:
您是否遇到過女嵌入式工程師?在嵌入式工程師職業上女性有什麼優勢和劣勢?
韋東山:
我在中興時就帶過乙個女同事,但是在這領域女性不多。
名師引導更容易入門
發燒友:
很多新手學習arm裸機都會很迷茫,請問在學習arm裸機過程中容易遇到哪些坑?
韋東山:
很多小坑,如果自己去解決的話,估計要花上幾個小時,但是有經驗的人一眼就能看出來。
最奇葩:拿到開發板,把電源插到耳機孔去了。
大多數:粗心,很多人拼寫命令時寫錯了,結果忙上半天找原因。
儲備知識不足:開始學習時,我們只能照著文件寫命令,這些命令的作用後面才會說明;如果當場就講這命令,課程就會又臭又長。
發燒友:
成為一名具備一定開發能力的嵌入式linux開發工程師需要具備哪些知識?
韋東山:
我先說合格的標準吧:能在乙個新的板能上搭建出linux系統,能寫出需要的驅動程式。
所以,需要以下知識:
硬體知識:能看懂電路圖,看懂晶元手冊,看懂硬體協議。
英文閱讀:上述資料基本是英文的。
c語言:嵌入式工程師常用語言就是c。
作業系統原理:有助於幫助我們理解linux原始碼。
常用驅動程式框架:精通幾個驅動程式後,領悟原理後,才有能力開發新的驅動程式
紙上得來終覺淺,你學完後,必須找一塊不同的開發板,在上面把所學過的程式自己寫出來,這樣才能真正掌握──這也是我對新同事的要求。
實際上,很多公司招聘時要求有工作經驗。對於嵌入式工程師,這個經驗非常容易得到:你換乙個不同的板子練習就可以了。
發燒友:
在學習arm裸機或arm linux過程中,得到資深名師或導師的指引有哪些好處?
韋東山:
學習過程中,很多因為粗心導致的問題層出不窮,自己去解決的話很花時間;
嵌入式學習過程中,需要的知識非常廣,自己臨時去學習的話,進度很慢;能否跳過,自己也不知道。這時候如果能有人指引,效率會很高。
我在2023年學習時,市面上基本沒有資料,我學非常痛苦,在論壇上瘋狂發貼,那些問題現在回頭看非常弱智,但是當時就把我卡住了:茶飯不思,時不時想砸電腦。
發燒友:
請問韋東山老師最終為何選擇嵌入式授課教育?
韋東山:
生活與興趣推著我走上這條路,沒什麼情懷。
我2023年適職自學linux時,過程痛苦,把自己的學習所得寫了一篇文章:s3c2410完全開發流程,發布在網上;然後就去中興上班了。
此文流傳甚廣,人民郵電的編輯聯絡我,要我出書。
我答應下來,但是因為一邊上班一邊寫書進度緩慢,於是在2023年辭職專心寫書。
2023年書出版了,錢花光了,於是接受華清遠見的邀請,去做兼職講師。
我發現,我有講課的能力,可以把複雜的問題講得非常清楚,非常形象。
我希望,眾多像我當年初出校園的學生,他們有學習的渴望,我能幫他們一把。
所以,一直以來,我不吹牛,不強拉人學習,想適合學習的人不強求。
如果你要學習嵌入式系統,而我恰好經驗豐富,你願意的話我就教你。
悅已之作,方能悅人。這是我們公司的格言,如果做出來的產品你自己都不喜歡,別人怎麼會喜歡呢。
韋東山 機會總是留給有準備的人
最近電子發燒友 以下稱 發燒友 採訪了韋東山老師,本文是採訪原稿,展示出來讓大家更深入了解韋老師的同時也進一步學習嵌入式linux經驗。機會總是留給有準備的人 發燒友 為什麼要學習掌握arm裸機?arm裸機與從事嵌入式工程師職業關聯度如何?韋東山 我們講解的arm裸機,特殊之處在於 不使用iar k...
機會留給有準備的人
就業感言 機會留給有準備的人 學員姓名 苟青松 所在班級 成都1004期班 就業單位 泰立嘉 工作職位 軟體開發工程師 給大家分享下學習的經驗,作為一名剛畢業的大學生,我也曾有前途的迷茫和找工作的壓力。機會都是留給有準備的人,只要正確認識自己,發現自我,就能很快找到屬於自己的位置。在技術上,基礎知識...
機會總是給有準備的人
在這個社會上生存,每個人都挺不容易,要出人頭地,要過更好的生活,不努力肯定不行。但努力了就一定有所收穫嗎?事實證明不一定。但如果不努力,就一定沒有機會。那什麼是努力呢?努力是不是就意味著只顧低頭拉車,不想抬頭探路呢?當然,這樣難免會誤入歧途。努力也要講究方法,也要找準方向。一旦認準方向,就會堅持到底...