悅己之作,方能悅?cè)?/h1>

摘要:
從一名資深的嵌入式Linux工程師到圖書(shū)作者,再到百問(wèn)科技締創(chuàng)始人,韋東山一路走來(lái),也有自己的辛酸感悟;但不論何時(shí),他從未忘記初心,用他的話說(shuō):“悅己之作,方能悅?cè)恕薄?/h1>
【編者按】韋東山,深圳百問(wèn)網(wǎng)科技有限公司創(chuàng)始人,畢業(yè)于中國(guó)科學(xué)技術(shù)大學(xué)電子、軟件專(zhuān)業(yè)雙學(xué)位,擅長(zhǎng)ARM/MIPS等架構(gòu)的Linux開(kāi)發(fā),10余年嵌入式開(kāi)發(fā)經(jīng)驗(yàn)。多家知名培訓(xùn)機(jī)構(gòu)特邀講師,著有《嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)》。同時(shí),他還是CSDN學(xué)院知名講師,成功錄制了1234期教學(xué)視頻,好評(píng)率100%。
近日,韋東山老師接受了CSDN的專(zhuān)訪,文中他分享了關(guān)于嵌入式Linux方面的技術(shù)經(jīng)驗(yàn)。
CSDN:請(qǐng)先簡(jiǎn)單下自己(技術(shù)背景、工作經(jīng)歷、學(xué)習(xí)經(jīng)歷)。
韋東山:我2003年畢業(yè)于中國(guó)科技技術(shù)大學(xué),電子和計(jì)算機(jī)雙學(xué)位。畢業(yè)后在深圳一家小公司從事51單片機(jī)的軟件硬件開(kāi)發(fā)工作,在工作中預(yù)料嵌入式操作系統(tǒng)將會(huì)興起,于是辭職自學(xué)Linux半年;2005年8月份開(kāi)始進(jìn)入中興通訊從事Linux系統(tǒng)開(kāi)發(fā); 2007年辭職寫(xiě)書(shū),2012年開(kāi)始建立百問(wèn)網(wǎng)公司,發(fā)布Linux培訓(xùn)視頻。
興趣跟工作相吻合
CSDN:你是如何與Linux結(jié)緣的?是什么讓你對(duì) 嵌入式Linux始終抱有熱情的?
韋東山:在從事51單片機(jī)開(kāi)發(fā)過(guò)程中碰到過(guò)一些技術(shù)問(wèn)題,公司老板請(qǐng)來(lái)他的朋友做指導(dǎo)。他提及Win CE(Windows Embedded Compact)和Linux,那時(shí)的Win CE只能支持幾款處理器,而Linux的普適性更強(qiáng),于是開(kāi)始學(xué)習(xí)Linux。 嵌入式Linux跟硬件緊密結(jié)合,而我又喜歡搗鼓些小玩意,這即符合技術(shù)潮流又能滿(mǎn)足我的興趣,所以一開(kāi)始就很有激情。 激情不能長(zhǎng)久,我很幸運(yùn)在自學(xué)半年后能找到一份做Linux的工作,興趣跟工作吻合,這太幸福了。
在工作過(guò)程中也會(huì)厭倦,但是工作的壓力促使我去做更深地專(zhuān)研,慢慢地Linux已經(jīng)成為我人生的一部分。 現(xiàn)在做Linux培訓(xùn)視頻,學(xué)生們憑借所學(xué)知識(shí)找到好工作,還有些人會(huì)特意上門(mén)拜訪;工程師們學(xué)習(xí)后提升了技術(shù)能力漲了工資,這讓我感覺(jué)很好,這也是我不斷錄制視頻的原因。
CSDN:在嵌入式開(kāi)發(fā)方面有著近十年的開(kāi)發(fā)經(jīng)驗(yàn),你是通過(guò)哪些方式來(lái)提升自己的開(kāi)發(fā)技能的呢?對(duì)嵌入式Linux開(kāi)發(fā)方面有什么特別的喜好嗎?
韋東山:碰到問(wèn)題,全心去解決問(wèn)題,這就是提升技能的唯一方法,它勝過(guò)看100本書(shū),勝過(guò)看100套視頻。書(shū)和視頻只能帶你入門(mén),要提升技能必須碰到難題并嘗試去解決它,在解決過(guò)程中你會(huì)猜想各種原因,把完全無(wú)關(guān)的技術(shù)融會(huì)貫通。 以前我只做Linux驅(qū)動(dòng),現(xiàn)在傾向于做完整的系統(tǒng),這也是一步一步提升的過(guò)程。所謂系統(tǒng)就是“整套產(chǎn)品”,它涉及硬件,操作系統(tǒng)、驅(qū)動(dòng)程序、 上層應(yīng)用,甚至還有后臺(tái)的服務(wù)器。
在做系統(tǒng)的同時(shí),我還喜歡“玩”,做一些功能單一的小產(chǎn)品,比如座機(jī)來(lái)電閃、小孩一靠近電視就花屏的小設(shè)備,有人喜歡網(wǎng)絡(luò)游戲有人喜歡逛街, 而這就是我的“電子游戲”。
寫(xiě)書(shū)難忘的經(jīng)歷:足不出戶(hù),邊學(xué)邊寫(xiě)
CSDN:你所編寫(xiě)的《嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)》一書(shū)頗受開(kāi)發(fā)者好評(píng),在出書(shū)過(guò)程中有什么難忘的回憶嗎?
韋東山:老實(shí)說(shuō),這書(shū)也只是適逢其時(shí),它的很多內(nèi)容都可以在網(wǎng)絡(luò)上搜到,只是2008年那時(shí)還沒(méi)有人把它整理出來(lái)。比如對(duì)于UBoot,你可以找到很多修改方法,但是沒(méi)人告訴你修改的理由,也沒(méi)有人從整體去分析它。 寫(xiě)書(shū)的過(guò)程很痛苦,工作時(shí)只要求你“會(huì)”——可以解決問(wèn)題就行;而寫(xiě)書(shū)則要求你“從根源上會(huì)”,還要“會(huì)講”。
我在腦中反復(fù)模擬講解,寫(xiě)書(shū)時(shí)反復(fù)修改句子,2007年寫(xiě)書(shū)這一年,讓我對(duì)Linux技術(shù)的理解更深了。確實(shí)很難忘這段經(jīng)歷:在深圳白石洲的民房里,墻上貼著章節(jié)的進(jìn)度,足不出戶(hù),邊學(xué)邊寫(xiě)。
CSDN: Linux4.1版本中宣稱(chēng)將引入大量匯編代碼變更,很多人都說(shuō)引入大量代碼變更是有風(fēng)險(xiǎn)的,對(duì)此,你怎么看?
韋東山:我不會(huì)去使用最新的代碼。
對(duì)于培訓(xùn)而言,Linux2.6跟Linux4.1沒(méi)有本質(zhì)差別,我常常這樣建議學(xué)生:你可以用2.6學(xué)習(xí),然后再自己嘗試移植到高版本內(nèi)核;
對(duì)于做產(chǎn)品,我也不會(huì)輕易更換內(nèi)核,前期工作不能說(shuō)扔就扔,并且更換有風(fēng)險(xiǎn),需謹(jǐn)慎。
CSDN:曾有一段時(shí)間你是自由職業(yè)者,是什么原因讓你走上創(chuàng)業(yè)道路的?
韋東山:想自由,不想上班,不想聽(tīng)鬧鐘起床,這就是做自由職業(yè)者的原因。后來(lái)發(fā)現(xiàn)這是一個(gè)坑,單身時(shí)沒(méi)任何問(wèn)題,但是結(jié)婚后生活壓力還是會(huì)促使你早早起床干活,自由職業(yè)者反而不自由。 于是還是開(kāi)公司吧,為了給小弟們樹(shù)立榜樣,現(xiàn)在的我比在中興上班時(shí)起床更早。
CSDN:為何取名叫“百問(wèn)”?這是一家什么樣類(lèi)型的公司?
韋東山:寫(xiě)書(shū)時(shí),就想到要給學(xué)生們答疑,他們會(huì)有成百上千的問(wèn)題,我希望自己都能解答。所以,起名為 百問(wèn)?,F(xiàn)在我們主要是做嵌入式Linux/Android培訓(xùn)視頻,致力于給學(xué)生、工程師提供培訓(xùn)。
對(duì)于學(xué)生,如果你還在玩單片機(jī),那么可以嘗試進(jìn)入Linux。 我們會(huì)先把ARM板子作為單片機(jī)使用GUN工具鏈開(kāi)發(fā),這能讓你更深刻理解單片機(jī)技術(shù),因?yàn)镮AR、KEIL等工具封裝得太好了,讓你看不見(jiàn)技術(shù)細(xì)節(jié)。
有志于開(kāi)發(fā)智能硬件、可穿戴設(shè)備、物聯(lián)網(wǎng)、智能家居等的人,只要這些硬件涉及比較復(fù)雜的功能,都可以從我們的視頻得到幫助。
最大的感悟:累
CSDN:從一名資深的軟件工程師到圖書(shū)作者,再到百問(wèn)科技締造者,這期間給你最大的感悟是什么?
韋東山:以前工作很單純,現(xiàn)在工作很繁雜;以前只想著技術(shù),現(xiàn)在還要想著利潤(rùn);以前只需要自己高興,現(xiàn)在還要想想能給同事帶來(lái)什么。 最大的感悟就是:累,回不到過(guò)去了,也不想回去了。
CSDN:你認(rèn)為要成為一名優(yōu)秀的嵌入式Linux開(kāi)發(fā)工程師應(yīng)該會(huì)哪些技術(shù),具備哪些職業(yè)素養(yǎng)?
韋東山:我認(rèn)為,優(yōu)秀的工程師要具備全系統(tǒng)的技術(shù)能力,應(yīng)了解公司業(yè)務(wù)、應(yīng)用程序,底層系統(tǒng),甚至還要了解下硬件;不能只滿(mǎn)足于單點(diǎn)技術(shù),如果你只會(huì)寫(xiě)驅(qū)動(dòng)程序的話,那么,飯碗也是不牢靠的。
在素養(yǎng)上:要有自學(xué)能力,碰到問(wèn)題時(shí)要能全心去解決它。
CSDN:你最喜愛(ài)的開(kāi)發(fā)工具有哪些?在日常工作中會(huì)用到哪些?
韋東山:Souce Insight,它是我看代碼、寫(xiě)代碼必不可少的工具,也是因?yàn)樗也艣](méi)有拋棄Windows;UltraEdit比記事本好用; vmware,我還在Windows下工作,所以用vmware虛擬機(jī)裝Linux很必要。
CSDN:嵌入式開(kāi)發(fā)一直是非?;鸨募夹g(shù)領(lǐng)域,你怎么看當(dāng)前嵌入式的發(fā)展和應(yīng)用?另外,當(dāng)下移動(dòng)互聯(lián)網(wǎng)和云計(jì)算大行其道,你覺(jué)得嵌入式開(kāi)發(fā)未來(lái)都有哪些發(fā)展機(jī)遇?
韋東山:現(xiàn)在興起的硬件熱潮,對(duì)于嵌入式Linux是一個(gè)很大的推動(dòng),比如智能硬件、可穿戴設(shè)備、物聯(lián)網(wǎng)、智能家居等。比較簡(jiǎn)單的功能可以用單片機(jī)實(shí)現(xiàn),但是一旦涉及WiFi、視頻、圖像等,就要用Linux了。 移動(dòng)互聯(lián)網(wǎng)和云計(jì)算,它們跟嵌入式并不是互相競(jìng)爭(zhēng)的關(guān)系,因?yàn)樗鼈兛偟糜幸粋€(gè)硬件來(lái)承載,而這個(gè)硬件基本上就要運(yùn)行Linux。
程序員,應(yīng)時(shí)刻不忘學(xué)習(xí)
CSDN:對(duì)嵌入式Linux開(kāi)發(fā)領(lǐng)域的開(kāi)發(fā)者有哪些建議?分享下心得和體會(huì)。
韋東山:在國(guó)內(nèi)有一個(gè)殘酷的現(xiàn)實(shí)問(wèn)題,很多公司傾向于招更年輕的、剛畢業(yè)的人,作為一個(gè)程序員,我們必須提升自己的能力,時(shí)刻學(xué)習(xí)。
10年前很多單片機(jī)玩得很好的工程師,現(xiàn)在的擇業(yè)范圍真的開(kāi)始變窄。系統(tǒng)!系統(tǒng)??!你必須掌握整個(gè)系統(tǒng),業(yè)務(wù)邏輯到底層實(shí)現(xiàn)、從上到下的整套技術(shù)。 我們要常常想,如果我現(xiàn)在換個(gè)公司,能做什么?能力可以滿(mǎn)足嗎?懷著跳槽心盡早學(xué)習(xí)。
很多人會(huì)問(wèn)道“是選擇學(xué)習(xí)Android、 iOS還是嵌入式Linux?
”“在滿(mǎn)足現(xiàn)實(shí)需求的同時(shí),盡量憑興趣,這是我不變地回答?!睎|山老師如是說(shuō)