韋東山老師百度貼吧問答精彩集錦

不少人都知道前段時間韋老師在百度貼吧"嵌入式吧"開貼,與你們互動交流,集中回答你們比較關心的技術,職業選擇等問題,今天小編把貼吧中比較經典的一些問題和答案整理出來,但願對你有所助益。python

 更多幹貨關注威信baiwenkejilinux

 

1韋老師你年薪多少?android

:男人不問錢數,女人不問歲數;不過看你年輕,我就回答一下。
我2003年開始工做,已經工做了14年。
2003年剛畢業時是2000、3000;
2004年跳槽到小公司後變成6000;
2005年抱着學習的心態到中興開始作linux,也還只有6000,後面招進來的徒弟工資都比我高;
2007年寫書,2009年開始遊蕩在各家培訓公司作特聘講師,日薪1000
2011年到如今開始錄視頻,一開始是單幹,只有我一我的,20十一、2012年還能夠,年薪30萬上下吧,只是感受,沒具體計算過。
201三、2014年招了幾我的,支出增多、新錄視頻進展慢,虧本,靠淘寶信用貸款發工資;
2015年出了android稍好點:咱們的視頻訂價過低了,第二、3期一直都是280,還不斷有人盜版;
2016年、2017年,平平淡淡,
本身開公司很苦逼的,你看我如今不得不錄新的第1期,
爲啥?老的第1期門檻高啊,學不下第1期,就不會學第2期,第二、3期纔是絕對的精華

我走了創業這條路,回頭看原來跟我同時出來的中興同事,沒有他們滋潤:
有人進了創業公司,如今是CTO,有股份,我也猜不出他的薪水,不過豪宅、豪車都有了;有人進了成熟的公司,好比OPPO,有一年光是年終獎就是18萬;如今也是創業中。作底層系統的,處於一個挺好的位置,向下瞭解硬件,向上瞭解業務,最終能夠掌握整個系統;不少人最後要麼成爲大拿,要麼本身創業。

若是運氣通常,沒有進到好的創業公司、沒有進到大方的公司,估計咱們這類人做爲普通程序員的話,2萬、3萬每個月吧;再上升到管理崗、技術架構師,4萬、5萬?我也不知道。

我發現我只是一個程序員,能夠寫出好程序、錄出好視頻,可是在推銷方面很弱很弱啊。以咱們視頻的質量,早就應該一統江湖、過上美好生活了....程序員

附上部分貸款清單,以資鼓勵:編程

 

2看偉老師的視頻收穫真的很大,本身是作STM32單片機的,工做了兩年後感受單片機真的有點不夠用,公司都開始用ARM平臺,因此爲了本身之後有口飯吃買了偉老師的開發板,到手之後剛開始確實有點蒙,感受東西好多,也不知道怎麼個學習順序,可是耐下心來看視頻感受收穫真的很大,看完裸機視頻學到了好多東西,對本身原來的單片機都有很大的幫助,原來沒太深究的東西也有了答案,後來慢慢看uboot,看了第一期,寫簡單uboot,移植全新的uboot,反覆看了幾遍,慢慢的明白了一些(也許是我接收能力差),如今剛準備看內核,原本想把1期視頻看完了買2期,如今老師又從新出了1期,那我是否是應該再看一遍1期而後再看2期,效果是否是更好?ubuntu

 

第1期的學習目的有2:熟悉LINUX開發環境、掌握硬件編程原理。這是爲了後續第2期驅動學習做準備的。第2期驅動=軟件框架+硬件操做,你在第1期裏掌握了硬件操做後,在學習第2期時就能夠把精力放在軟件框架上。因此,若是你已經有了單片機基礎,而且已經在學習第2期了,就不必從新學習新的第1期視頻。網絡

 

 

3之前以爲嵌入式頗有錢途,也頗有興趣,如今發現和想的徹底不同啊。論難度說第二基本沒什麼敢說第一吧,可是和專門搞軟件的比工資徹底不夠看,並且感受地位很尷尬啊,公司就一我的搞這個,軟件組的人認爲我是搞硬件的,硬件組的人爲我是搞軟件的,真是尷尬。。。最尷尬的看到什麼都想學啊,畫板子,安卓什麼的,軟件什麼的都裝了,可是就是一直沒動力開始學。老師給個意見啊,專門看這一行的發展的話,我是多學一門安卓比價好呢,仍是畫pcb比較好啊。我本身感受應該都學,也沒那麼多精力搞這麼多,暫時只能偏重一個了。除了安卓以後全部視頻都買了,這行發展趨勢和建議我仍是很相信老師的。架構

:1.我不建議專門學習PCB:硬件工程師需求 < 底層工程師 < APP工程師
對於硬件,你只須要具有這些能力就夠了:看得懂原理圖、看得懂芯片手冊。
我本人也是從硬件入門,在學校時就作過PCI板卡,可是也就侷限於2層板,如今讓我畫4層板,我也沒那個能力。
PCB開發經驗使得我具有了分析原理圖、閱讀芯片手冊的能力,也就這2個能力對後續工做有幫助。框架

我如今作產品,簡單的原理圖本身畫,複雜的就找專業的開發板廠家作,可是對於PCB布板、畫線都是直接外包的。PCB布板、畫線外包很便宜、很便宜、很便宜!便宜到不須要你去學習。運維

 

2. 在公司裏定位尷尬,軟件組的人認爲我是搞硬件的,硬件組的人爲我是搞軟件的:
:我猜想大家公司的產品硬件相對固定,核心技術在於APP;你只是作些內核、驅動的維護工做。
在這樣的公司,即便我去,也不會獲得重用的。
我相信你的時間應該比較充裕,建議以下:若是對公司的產品感興趣,能夠去掌握一下APP、業務;若是沒興趣,能夠學一下android
最後,若是作出了這些努力,在公司裏還不能上一個臺階,就換工做吧。


3. 要不要學習python,AI, 大數據、互聯網開發?
:這是APP的範疇了
這個問題真是很是難回答,簡單來講就是學習嵌入式、仍是學習APP?
我沒法給大家建議,只能列一些經歷過的現象;
我也不能保證你學了嵌入式就發財,只能保證你能夠學會、學會了確定有工做。
a. 2009,2010年那會,Android開始興起,Android APP需求大、會的人少。
那時大學裏成天打遊戲的人、老是掛科的人,畢業後去培訓三、4個月,而後去工做,工資就上萬
如今你能夠在51CTO搜"android開發",薪資水平也就通常般。

b. 2015輪到IOS興起,一大堆作IOS,培訓IOS的公司遍地開花,如今也都紛紛倒閉了。互聯網也是相似的,如今也沒人提了。

c. 如今不多人說大數據了,轉而提及AI

雷軍的"站在風口,豬均可以起飛",從好的方面說是人要借勢,從壞的方面說就是太急功近利。
要保持長久競爭力,必須不斷付出、不斷學習。我如今都還在學習android呢
咱們須要結合現有基礎、興趣、專長、就業來選擇學習方向。
1. 若是是嵌入式相關專業的,有C語言基礎、有單片機基礎、有硬件基礎,那能夠選擇在嵌入式方面深造,
後續能夠再向上延伸到APP、整個產品的架構設計


2.對於什麼基礎都尚未的人,你就要慎重選擇,多上51CTO看看職位需求量、薪資,再考慮本身的興趣。


3. 大機率來講,有付出纔有收穫,要收穫更多必須付出更多。
不管是嵌入式,仍是大數據、互聯網,都須要咱們在行業裏深耕細做,站在塔尖的收入高的,永遠是付出了極大努力的少部分人 
另外說一句,別去學習"Linux運維",它不是嵌入式。

 

附上今天查的51CTO的職位與薪水,給你們看看,嵌入式沒那麼神話,彷佛薪水是要高點。

 

 

 

 


再結合嵌入式的工做量,單位時間收入絕對高於APP開發。
我在中興時加班是爲了學習,不是爲了工做;而其餘作APP的同事加班是爲了趕工。

 

4.剛買開發板不久,在學習嵌入式,想從機械轉嵌入式,有點編程和電子基礎,以爲以個人耐心和決心是能夠進入這一行的,只是時間問題。並且老師教的很不錯,喜歡老師的語言精簡,思路清晰。教學方式頗有原則,惟利是圖的事情作不出,感同身受
若是計劃順利的話我還會買老師的第二期第三期第四期。請教老師,我想從嵌入式軟件進發,漸漸貫穿嵌入式,該怎麼作比較好,一直沒有清晰的思路。 

答:貫穿嵌入式,這個想法很好。從兩條路出發:底層系統、APP開發。先說底層系統,你有編程和電子基礎,那麼沿着咱們的第1期、第2期學習是很好的,要注意的是看視頻時必定要本身寫代碼,學完第2期,你已經俱備了底層開發能力,這時你還缺實際經驗,須要換不同的板子來實踐,好比TI的板子,這樣才能深刻

 

五、韋老師好,我玩過5一、stm32單片機,有這些基礎,而後如今想開始學arm、linux這些,想問在之後看視頻學完後,怎樣能夠提升個人實踐應用水平呢?

:2個辦法:一是看視頻時,看完一個視頻就關掉,嘗試本身寫出代碼;二是學完後,換一個板子寫出代碼。若是換了板子還能夠把視頻中的程序寫出來,絕對能夠直接參加工做。換,好比選TI、全志的,這是爲了練手;Linux驅動=軟件框架+硬件操做;咱們的視頻已經講清楚了軟件框架,這個通用;視頻中也演示了怎麼操做2440硬件,換板子就是要練習怎麼操做其餘板子的硬件,並練習框架。

 

六、學了51了想入手嵌入式,本來想繼續學32但看了你回覆其餘人的貼,我應該怎麼走接下來的路?由於是一路踏踏實實走下來的,感受51和c學的都還過得去,

答:就我本人的經歷:
51單片機-->周立功的ARM7-->最後上手了ARM9開始LINUX學習。
如今不少人仍是用這套路線:
51單片機-->STM32-->再換一個板子學習LINUX。
這條路線不能說錯,可是今時不一樣往日,如今有更好的選擇;再用老路線效率過低。

我先說200x年左右嵌入式Linux的教程情況:
2005年左右,嵌入式Linux才興起,那時wince還佔主流;市面上嵌入式Linux的書是很缺少的,不要說好書,連相關的書都沒有。
市面上能找到的,只有周立功的ARM7書、開發板,使用IAR這些工具開發單片機程序,就跟如今的STM32同樣。
那時學習LINUX的人,只能靠論壇: http://www.linuxforum.net倒閉了,http://www.chinaunix.net轉型了;之前大家能夠在這些論壇上看到我以"dswei"爲名瘋狂發貼,如今看起來都是些弱智問題。

周公的書,再結合杜春蕾的<ARM體系結構與編程>讓我對ARM的架構有所瞭解,
而後開始自學之路:我2005年閉門自學了半年LINUX,而後纔到中興工做。
你看,那時沒有更好的教程,學習ARM7是爲了熟悉ARM架構;
如今有了更好的教程,再去學習STM32的話,效率就過低了。

理由以下:
1.WINDOWS下好的IDE封裝了不少細節,而這些細節在學習LINUX時很重要
STM32使用iar,keil, mdk等工具,你直接寫main函數、直接用C函數寫中斷。
那麼,你只學會了怎麼調用函數、只學會了怎麼看芯片手冊操做寄存器,你沒法學習這些:
① 程序從第1條命令開始怎麼執行?
② 程序如何佈局、怎麼寫連接腳本
③ 如何重定位代碼段、數據段、如何清除BSS段
④ 中斷髮生時,怎麼保護現場、怎麼調用C語言寫的中斷函數、怎麼恢復現場


2. 學習STM32時,你沒法接觸到LINUX;咱們後續學習LINUX時,須要用到UBUNTU這些PC LINUX開發環境,在UBUNTU下寫程序跟使用IDE寫程序有很大不一樣。
在ubuntu下開發單片機程序,你能夠:
① 編譯器的各種選項由你控制
② 源文件的管理由你寫的Makefile控制
③ 你在WINDOWS下編程,再上傳到ubuntu來編譯,這套流程跟工做時是同樣的


3. 最重要的一點:
STM32沒法運行LINUX,你學習LINUX時須要再換一套板子。
STM32的知識對學習LINUX有一丁點幫助,
可是我直接使用能運行LINUX的板子來學習LINUX裸機開發,再回頭看STM32那簡直是小菜一碟。
學習LINUX裸機/單片機開發的所得,遠超 STM32單片機開發

 

 

以上回復基於這個假設:嵌入式Linux是目前嵌入式發展的大方向。若是你以爲單片機能夠打天下,那當我沒說。
就技術來講,會嵌入式LINUX的人,確定會單片機。Linux中用到的u-boot,就是單片機程序的集大成者。而單片機再牛的人,入門LINUX還至少須要半年,不少概念、觀念徹底不一樣。

我在2005年已經用單片機本身寫了操做系統,大家能夠在百度上搜mmuos ,應該能夠看到這句話:mmuos 這是一個不到2000行的操做系統,巧妙地利用ARM9 CPU的內存管理單元(MMU)實現進程的切換。
那時我對單片機已經很熟很熟很熟了,仍是要閉關學習半年LINUX。

我開發產品時,會基於性價比選擇方案,該用單片機就不會用LINUX,該用LINUX就不會用單片機。
小米智能插座用的就是單片機,若是強上LINUX只能虧本;
智能網關只能用LINUX,用單片機你永遠作不出來,在網絡方面單片機永遠是閹割版。大疆無人機就是單片機+LINUX的組合。

我不但願51單片機、STM32的從業者來攻擊我,就單片機領域,重點在於豐富的實際經驗,怎麼更快、更穩定、更精確、成本更低地解決問題,一個經驗豐富的單片機工程師工資也不會低。實時性單片機的強項,是LINUX的弱點,兩都都懂,飯碗才牢靠。好比:一個機器手臂中有一大堆單片機,LINUX可能只是主控。

技術歸技術,市場歸市場,
就技術來講,嵌入式Linux包含了單片機。

工做時,
若是要用單片機,我會選擇IAR、MDK這些工具,選擇合適的芯片,調用廠家實現的庫;
若是要用LINUX,我會選擇全志、瑞芯微這些國產芯片,不在意它們芯片手冊是否開放,最好他們已經作好全部驅動。
工做時,成本第1、效率第一。可是學習時,我要追根究底,學得更多。

 

7,學您的三期大約須要多長時間呀?按照一天三個小時的話,在看您的裸機視頻,前面的還好,特別是後面,也要重複的看,才能明白。我是先看一遍,而後再邊看你的視頻,而後再敲代碼,以後再離開視頻,從新來一遍,可能急功近利吧,有時候操做完了,真得就不想寫了,我之前的同窗們,用32,感受他們就是移植代碼,網上去找一個就行了。而後把幾個程序拼在一塊兒。我也想學的踏實點,可是感受學的太慢。是否是花在上面的時間不夠呀?

答:新的第1期用時1到2個月;第2期至少3個月;第3期也要二、3個月。 整個LINUX的入門須要6個月以上,全天學習。 我是辭職半年閉門自學的,固然那時資料沒如今豐富,你也許能夠加快一、2個月吧。

 

 

8我只是個普通的專科生,在嵌入式就業這方面會不會有點困難,根據您的經驗,要是我在沒有任何開發經驗,只是學完了您的課程,在深圳,成都,這兩個地方就業怎麼樣啊?

:實際上,個人視頻實戰性很強,由於是現場寫代碼、現場調試。可是紙上得來終覺淺,你得實踐。咱們很差找到實習崗位,可是能夠換一個板子來把視頻中的程序寫出來。這樣,你簡歷就有底氣寫上經驗了。嵌入式大本營非廣東莫屬,成都近來發展也不錯,最好直接上招聘網站看看哪一個城市需求多。

  

9學嵌入式怎麼選擇開發板?

答:1.不要追趕新的芯片、不用在意CPU架構
2.主要看芯片手冊開放程度、學習資料是否豐富
先說第1點,看圖說話:

 

一個芯片的結構如上,除了CPU,芯片裏還有不少設備(UART、I2C、USB等),芯片外還能夠接不少設備(網卡、GPS等)。
有一個錯誤的概念:
S3C2440過期了、ARM9過期了,如今4核都出來了,ARM9沒用了!
一款芯片,上面有CPU,還有衆多的片上設備、片外設備
寫程序時並不涉及CPU,只是去操做這些設備。
因此:
差異在於片上設備,在於外接的設備, 不在於CPU核;
差異在於芯片上寄存器操做不同, 不在於CPU核;
寫程序並不涉及CPU的核心,只是操做CPU以外的設備,
只是讀寫這些設備的寄存器。
寫程序, 不管CPU是ARM九、ARM十一、A8仍是A9,對咱們來講是沒有差異的。

如今咱們知道了,CPU架構不該該是選擇開發板進行學習時的參考條件
即便你如今選擇了最早進了芯片,到你工做時,還會有更先進的芯片面市,追趕不及的。
我使用S3C2440入門,在工做中用過TI的達芬奇、君正的JZ477五、全志的H3,甚至還用過MIPS架構的芯片(型號忘記了),
原理相通!我在S3C2440上學習到的知識均可以用在這些芯片上。

 

再來講第2點,如今哪款芯片的LINUX學習資料最豐富?
先否決國產芯片,由於資料不開放。
我曾經去拜訪全志公司,想用它們的芯片寫書,可是連NAND控制器的操做都不開放啊。
作產品時用國產芯片,學習時仍是選擇資料開放的芯片吧。
國外芯片有三家開放程序比較高:三星、TI、Freescale。
誰的資料最豐富?仍是看圖說話,說話要有證據:

S3C2440的CPU頻率高於S3C2410,除了CPU頻率有所不一樣,其餘操做幾乎同樣。
國內學習LINUX的人,從200x年開始都是用s3c2410/s3c2440入門的,
因此它們的學習資料最豐富!
三星系列芯片有個特色,短命!
S3C2410/S3C2440停產了,
S3C6410也停產了,
S5PV210也停產了,
exynos4412也停產了!
可是,擋不住市場存貨大啊,s3c2440還一直有貨,做爲學習徹底沒問題;
作產品的話仍是選擇國產芯片吧。
s3c64十、s5pv210這些就算了,你們都是停產的命,資料遠沒有s3c2440多。

爲何不選擇TI?
TI之前資料並不開放,最近幾年纔開放的,因此在網上它的學習資料比不了s3c2440。
之後我也許會選擇TI吧,可是教程的系統化、教程的完善至少還須要2年,有這2年你都學會了。
如今建議你仍是用S3C2440,S3C2440資料最成系統,有書有視頻,遇到問題一百度就解決了。

爲何不選Freescale?
i.mx6性能強大,可是貴!複雜!!資料更缺少!!!算了吧

終點結論: 1.學習:用s3c2440,由於資料最系統、最豐富 2.實踐:換TI的am3358或am437x,把教程中s3c2440的驅動在TI的板子上寫出來, 換板子後,你會碰到各種問題,你會把各種教程中講到的、你不曾深刻的知識再思考一次,最終掌握。 換板子後,你能把那些驅動寫出來,你的簡歷必定言之有物了!這就是你的工做經驗,你再也不是小白,絕對能夠找到工做了。

相關文章
相關標籤/搜索