最近电子发烧友(以下称'发烧友')采访了韦东山老师,本文是采访原稿,展示出来让大家更深入了解韦老师的同时也进一步
学习嵌入式Linux经验。机会总是留给有准备的人

发烧友:
为什么要学习掌握ARM裸机?ARM裸机与从事嵌入式工程师职业关联度如何?

韦东山:

我们讲解的ARM裸机,特殊之处在于:不使用IAR/KEIL/MDK等软件,而是在纯粹的linux环境下从0写代码。这些好用的开发工具屏蔽了太多的技术细节,比如:位置无关码、重定位、中断环境的保存与恢复、链接脚本。而这些细节,在后续的bootloader学习中是需要的。

除上述细节外,ARM裸机的学习目的在于:掌握如何编写程序来控制硬件。后续的“Linux驱动=软件框架+硬件操作”,我们先在单纯的裸机学习中掌握硬件操作,在后面的学习中就可以把精力放在驱动软件框架上。

我们学习ARM裸机的目的,是去学习后续的Linux课程,进阶为Linux系统工程师。不是要让你继续从事单片机开发,成为单片机工程师。

在技术层面,Linux系统工程师回头从事单片机开发,轻而易举;但是现在不开始着手Linux的学习,后续转型很麻烦。2004年我们使用51单片机从事车载电话开发,所做的软件已经算是单片机层面顶尖水平了──我们可以在单片机上开发自己的操作系统。

但是,我们同事纷纷感觉到了危机,单片机能做的事情太单一了。当年流行wince,Linux刚起步,我们选择学习Linux,现在wince已经没人提及,而Linux仍如日中天。中兴公司也是在2005年才全面从vxwork切换到Linux的,我有幸进入中兴与他们一起研究Linux。

在收入方面,大家尽可以去51job等招聘网站搜“单片机”、“Linux”,后者一般是前者2倍以上。

在发展方面,有了Linux知识,几乎通吃所有产品。我从事过网络会议系统、监控摄像头、楼宇对讲系统、安防、广告机方面的开发,我只是开发底层系统,不是开发APP,这些产品通通使用Linux。现在兴起的机器人、人工智能,它们要落地的话,运行Linux系统的硬件是必选项。

就身边事例而言,我是2008年离开中兴,随后几年里有几个同科室的同事也都离开了,他们都做Linux系统;现在都做得很不错。有人在联想做Android开发,有人在做POS机,有人自己创业,他们或是团队领导,或是有股份。

发烧友:
根据您的经历及见闻,现在ARM嵌入式工程师前途如何?含金量、薪资待遇呢?

韦东山:

理想很丰满,现实很骨感。所有行业的从事者都是在一个金字塔里,工作好收入高离家近假期多的人,都只是少数。我只能说,平均而言,ARM嵌入式工程师待遇较好,发展前途不受限。

说好话之前,先说丑话。

ARM嵌入式工程师入门门槛高,职位需求相对APP来说是少的,很多职位需要你有经验。

所以,有一部分同学最终只能转行:转而做单片机或APP开发。

但是,ARM嵌入式工程师所处位置非常好,向下跟硬件工程师打交道,向上跟APP工程师打交道,可以参与整个系统的开发,前途不受限。

我是个宅男,只能举身边的例子:我在中兴时从事嵌入式系统的同事,发展都很不错。

我的科长,拥有专业的Linux底层知识的同时,极具大局观,他向上研究APP的相关知识、相关协议,上下兼通,是中兴的产品经理、总工了。

同事A,早年从因POS机开发(用单片机),在中兴里天天加班深研Linux技术,现在在创业公司里当技术头头,有股份。加班多,但是收入高。

同事B,在中兴里是做APP开发,后跳槽到OPPO后,深研底层开发,早几年单是年终将就是我的年薪,现在自己创业。

同事C,女,跑到IBM做服务器相关的工作去了,嵌入式Linux的知识绝对是帮上大忙了。

同事D,深研Linux系统知识,人称大师,从不加班(羡慕死人了),有大BUG必定请他出马、出差。

对于嵌入式工程师,把Linux知识吃透了,可以游走于几乎所有行业,因为这些产品基本上都要用Linux。

想当领导的话,向上学习一下APP、业务知识,你就可以掌握整个产品的开发全流程了。

想创业的话,向下你知道需要什么样的硬件,向上你知道需要请哪方面的APP工程师。

对于暂时找不到嵌入式LINUX职位的同学,不用担心,你总会发现机会的。

做单片机产品的公司,产品升级的话必定要用Linux,到时你就是公司掌握先机的人;做APP的话,如果跟硬件相关,你的嵌入式LINUX知识会提供很多帮忙。

发烧友:
一个合格的嵌入式工程师,需要具备哪些性格和职业特征?一些理工科学生或刚毕业不久的工程师老说迷茫,产生迷茫的原因有哪些,为什么?怎么克服?

韦东山:

嵌入式工程师,必须具备的性格和职业特征:

究根究底:操作系统层面的问题,必须彻底弄清楚原因,彻底解决,否则隐患巨大。

绝对耐心:嵌入式工程师的代码量很少,多数时间是在学习新知识、协助调试。我在中兴工作时,曾经花了一个月来捕捉、解决一个BUG,最能只增加了一条指令。BUG随机出现,我不断地重启系统、重启软件;根据新现象不断地现学现用。

大局观:你写的每一个驱动,功能上要实现,性能上也要实现。需要结合产品的实际需要,根据APP的特点,调整你的程序。调试BUG时,从APP到驱动再到硬件,各种可能的问题都要考虑。

迷茫,唯一的原因就是对未来感到不确定。

我的专业是物理,在大一大二时深感迷茫,不知道毕业后能做什么,我选择了学习第2学位:计算机。

我刚工作时用的是51单片机,对所用的落后技术也深感迷茫,我选择辞职自学Linux。

我在中兴工作时,加班多、工资少、房价高,仍然迷茫,选择创业。

创业过程中,我录制Linux视频,期间iOS火曝、androidAPP火曝,很多人趁着风头做ios、Android培训,我也迷茫,最后选择不跟风:现在这些培训很快就冷却了。

我也算工作15年的老工程师了,也接近40岁了,仍不时觉得迷茫。但是我深信两句话:要收获,必须先付出;吃得苦中苦,方为人上人。

对于迷茫的工程师,我建议:

根据自己的兴趣,选择不太偏门的方向,潜心学习;选定方向后,不跟风不追热门。

发烧友:
您是否遇到过女嵌入式工程师?在嵌入式工程师职业上女性有什么优势和劣势?

韦东山:

我在中兴时就带过一个女同事,但是在这领域女性不多。

我认为嵌入式工程师特别适合女性,相对于APP开发,嵌入式工程师工作中的需求交化不大,代码量也不大,不需要天天加班。

劣势在于,嵌入式工程师入门门槛高,需要硬件知识、良好的英文阅读能力、多层面的软件知识(操作系统、驱动程序、APP开发),学习强度是挺大的。前期需要付出挺多。

名师引导更容易入门

发烧友:
很多新手学习ARM裸机都会很迷茫,请问在学习ARM裸机过程中容易遇到哪些坑?

韦东山:

很多小坑,如果自己去解决的话,估计要花上几个小时,但是有经验的人一眼就能看出来。

最奇葩:拿到开发板,把电源插到耳机孔去了。

大多数:粗心,很多人拼写命令时写错了,结果忙上半天找原因。

储备知识不足:开始学习时,我们只能照着文档写命令,这些命令的作用后面才会说明;如果当场就讲这命令,课程就会又臭又长。

所以,我们都会建议:按着视频学习,不懂的、没讲到的,先放着;后面学完你就全懂了。

发烧友:
成为一名具备一定开发能力的嵌入式Linux开发工程师需要具备哪些知识?

韦东山:

我先说合格的标准吧:能在一个新的板能上搭建出Linux系统,能写出需要的驱动程序。

所以,需要以下知识:

硬件知识:能看懂电路图,看懂芯片手册,看懂硬件协议。

英文阅读:上述资料基本是英文的。

C语言:嵌入式工程师常用语言就是C。

操作系统原理:有助于帮助我们理解Linux源码。

常用驱动程序框架:精通几个驱动程序后,领悟原理后,才有能力开发新的驱动程序

纸上得来终觉浅,你学完后,必须找一块不同的开发板,在上面把所学过的程序自己写出来,这样才能真正掌握──这也是我对新同事的要求。

实际上,很多公司招聘时要求有工作经验。对于嵌入式工程师,这个经验非常容易得到:你换一个不同的板子练习就可以了。

发烧友:
在学习ARM裸机或ARM Linux过程中,得到资深名师或导师的指引有哪些好处?

韦东山:

学习过程中,很多因为粗心导致的问题层出不穷,自己去解决的话很花时间;

嵌入式学习过程中,需要的知识非常广,自己临时去学习的话,进度很慢;能否跳过,自己也不知道。这时候如果能有人指引,效率会很高。

我在2005年学习时,市面上基本没有资料,我学非常痛苦,在论坛上疯狂发贴,那些问题现在回头看非常弱智,但是当时就把我卡住了:茶饭不思,时不时想砸电脑。

发烧友:
请问韦东山老师最终为何选择嵌入式授课教育?

韦东山:

生活与兴趣推着我走上这条路,没什么情怀。

我2005年适职自学Linux时,过程痛苦,把自己的学习所得写了一篇文章:S3C2410完全开发流程,发布在网上;然后就去中兴上班了。

此文流传甚广,人民邮电的编辑联系我,要我出书。

我答应下来,但是因为一边上班一边写书进度缓慢,于是在2007年辞职专心写书。

2008年书出版了,钱花光了,于是接受华清远见的邀请,去做兼职讲师。

讲课过程中,我采用完全不同的风格:从0写代码,边讲边写,大受欢迎,效果超好;慢慢有了名气后,游走于多家培训机构,天天讲课,天天现场写代码。

这样天天做同一件事,天天写同样的代码,实在是烦死人,决定自己录视频算了。

于是2011年底,发布第1套视频,承蒙学生们、工程师们厚爱,他们帮我一起打击盗版,口口传播,于是也就一直坚持到现在。

我发现,我有讲课的能力,可以把复杂的问题讲得非常清楚,非常形象。

我希望,众多像我当年初出校园的学生,他们有学习的渴望,我能帮他们一把。

所以,一直以来,我不吹牛,不强拉人学习,想适合学习的人不强求。

如果你要学习嵌入式系统,而我恰好经验丰富,你愿意的话我就教你。

悦已之作,方能悦人。这是我们公司的格言,如果做出来的产品你自己都不喜欢,别人怎么会喜欢呢。

在工作中,我就经常回头去重看视频(我也会忘记),从未感到脸红,因为我都是用心录制的。

机会总是留给有准备的人--韦东山【转】相关推荐

  1. 韦东山:机会总是留给有准备的人

    最近电子发烧友(以下称'发烧友')采访了韦东山老师,本文是采访原稿,展示出来让大家更深入了解韦老师的同时也进一步学习嵌入式Linux经验. 机会总是留给有准备的人 发烧友: 为什么要学习掌握ARM裸机 ...

  2. 韦东山:机会总是留给有准备的人(转)

    最近电子发烧友(以下称'发烧友')采访了韦东山老师,本文是采访原稿,展示出来让大家更深入了解韦老师的同时也进一步学习嵌入式Linux经验. 机会总是留给有准备的人 发烧友: 为什么要学习掌握ARM裸机 ...

  3. 从技术岗位走向管理岗位:机会是留给有准备的人

    摘要:机会总是留给有准备的人.在被从技术岗位提拔到管理岗位之前,技术人员就要具备管理岗位所需要的基本素质和能力,将功课做在前面,提拔只是最后一步.作者结合自己十年的工作经验谈了自己的看法. 机会总是留 ...

  4. 机会只留给有准备的人

    先前我写了一篇博文,叫"经验重要吗",想告诉大家:一个人的直接经验在其个人和职业发展过程中所起的作用非常有限,更为重要的是主动学习的意识和能力.但是很多人都在评论说很难懂,那么希望 ...

  5. 机会是留给有准备的人的

    机会是留给有准备的人,犹豫给不了你任何的好处. 一次又一次的财富机遇,您有没有发现一个定律,越是犹豫的人越是贫穷, 这是铁的定律,无人能够改变. 在当下咱们创业市场上有很多的风口创业,大多数的风口都不 ...

  6. 榜样访谈| 陈婧:机会是留给有准备的人

    CSDN 高校俱乐部是由 CSDN 于 2009 年发起,大学生自发加入的 IT 技术学习型组织.俱乐部已在全国 100 多所高校建立技术社团.在这些年里,一些优秀的榜样脱颖而出,我们有幸邀请到他们接 ...

  7. 机会永远留给有准备的人

    今天回校办离校手续,我们学校就要赶人啦!东跑西跑的累了一整天,回到住处觉得该休息下了:我要玩网游去了...不知道为什么老觉得心里不踏实. 说实话N久没玩了..也就是个消遣,记得昨天我玩网游的时候,一个 ...

  8. 如何从技术岗位走向管理岗位:机会是留给有准备的人

    机会总是留给有准备的人.在被从技术岗位提拔到管理岗位之前,技术人员就要具备管理岗位所需要的基本素质和能力,将功课做在前面,提拔只是最后一步.然而,从技术岗位走向管理岗位需要具备哪些素质呢?我结合自己十 ...

  9. 保研经验分享 ——机会总是留给有准备的人

    保研经验分享 --机会总是留给有准备的人 从对保研有着无尽的期待到对一个又一个的面试的忐忑不安,再到做出最终决定时的遗憾与喜悦的交织,保研之路就像是一次破茧成蝶的过程,会收获很多,包括经验,包括对自己 ...

最新文章

  1. 为选择屏幕的字段设置F4帮助
  2. mysql anyvalue报错_Mysql 的ANY_VALUE()函数和 ONLY_FULL_GROUP_BY 模式
  3. matlab三角定位分析程序,Matlab chi2gof 分布分析程序求教
  4. 关于expres模板引擎,Function,with
  5. boost::intrusive_ref_counter相关的测试程序
  6. Dockerfile里的VOLUMES关键字
  7. zeromq php server,zeromq   php 轻量级队列
  8. 企业3级推广报单分销源码下载会员注册管理系统
  9. 扑捉和捕捉的区别照相_扑捉和捕捉的区别照相
  10. TCP通信之获取本机IPV4地址
  11. push_back模式工作
  12. 模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)
  13. 复习HTTP状态码+301和302
  14. python爬虫笔记_python简单爬虫笔记
  15. 关于政务版本中的公文签名及签章
  16. android开发实现微博正文效果、顶部悬浮、ScrollView嵌套ListView
  17. 7-1 对象数组 (100 分)
  18. virt-manager 键盘错位解决
  19. 将土豆或者youku 的视频放到自己的网站上面.
  20. 2022按键精灵内存逆向新教程:乐玩篇:1-10课更新试看

热门文章

  1. Python 信号分析——小波变换
  2. php高级部署,php部署【设置流程】
  3. 导体电阻夹具对导体长度要求
  4. 为什么人人都想进大厂?都是被逼的!
  5. neogeo模拟街机游戏
  6. 插画和原画有哪些区别?
  7. 【进阶篇】全流程学习《20天掌握Pytorch实战》纪实 | Day10 | 高阶API示范
  8. 爱情就像是火星上的水,孤独就像是地球上的水
  9. [蓝桥杯历届题目] 正六面体染色 ; 取字母组成串
  10. 使用TreeView控件时订制树形收起、展开的个性图标