清远 [ 更换 ]
热门城市
北京上海广州深圳成都杭州南京武汉天津西安重庆青岛沈阳长沙大连厦门无锡福州济南宁波昆明苏州郑州长春合肥南昌哈尔滨常州烟台南宁温州石家庄太原珠海南通扬州贵阳东莞徐州大庆佛山威海洛阳淮安呼和浩特镇江潍坊桂林中山临沂咸阳包头嘉兴惠州泉州三亚赣州九江金华泰安榆林许昌新乡舟山慈溪南阳聊城海口东营淄博漳州保定沧州丹东宜兴绍兴唐山湖州揭阳江阴营口衡阳郴州鄂尔多斯泰州义乌汕头宜昌大同鞍山湘潭盐城马鞍山襄樊长治日照常熟安庆吉林乌鲁木齐兰州秦皇岛肇庆西宁介休滨州台州廊坊邢台株洲德阳绵阳双流平顶山龙岩银川芜湖晋江连云港张家港锦州岳阳长沙县济宁邯郸江门齐齐哈尔昆山柳州绍兴县运城齐河衢州太仓张家口湛江眉山常德盘锦枣庄资阳宜宾赤峰余姚清远蚌埠宁德德州宝鸡牡丹江阜阳莆田诸暨黄石吉安延安拉萨海宁通辽黄山长乐安阳增城桐乡上虞辽阳遵义韶关泸州南平滁州温岭南充景德镇抚顺乌海荆门阳江曲靖邵阳宿迁荆州焦作丹阳丽水延吉茂名梅州渭南葫芦岛娄底滕州上饶富阳内江三明淮南孝感溧阳乐山临汾攀枝花阳泉长葛汉中四平六盘水安顺新余晋城自贡三门峡本溪防城港铁岭随州广安广元天水遂宁萍乡西双版纳绥化鹤壁湘西松原阜新酒泉张家界黔西南保山昭通河池来宾玉溪梧州鹰潭钦州云浮佳木斯克拉玛依呼伦贝尔贺州通化朝阳百色毕节贵港丽江安康德宏朔州伊犁文山楚雄嘉峪关凉山雅安西藏四川广东河北山西辽宁黑龙江江苏浙江安徽福建江西山东河南湖北湖南海南贵州云南陕西甘肃青海台湾内蒙古广西宁夏香港澳门
培训资讯网 - 为兴趣爱好者提供专业的职业培训资讯知识

「韦东山」机会总是留给有准备的人 嵌入式Linux学习经验

东山 学习 机会 的人

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

机会总是留给有准备的人

「韦东山」机会总是留给有准备的人 嵌入式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火爆、Android APP火爆,很多人趁着风头做IOS、Android培训,我也迷茫,最后选择不跟风:现在这些培训很快就冷却了。

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

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

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

发烧友:

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

韦东山:

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

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

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

「韦东山」机会总是留给有准备的人 嵌入式Linux学习经验

名师引导更容易入门

发烧友

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

韦东山

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

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

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

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

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

发烧友

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

韦东山

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

所以,需要以下知识:

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

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

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

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

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

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

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

发烧友

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

韦东山

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

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

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

发烧友

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

韦东山

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关知识