专访Linux嵌入式开发韦东山操作系统图书作者--转
CSDN学院讲师韦东山:悦己之作,方能悦人
【编者按】韦东山,深圳百问网科技有限公司技术创始人,毕业于中国科学技术大学,电子、软件专业双学位,擅长ARM/MIPS等架构的Linux开发,10余年嵌入式开发经验。多家知名培训机构特邀讲师,著有《嵌入式Linux应用开发完全手册》一书。同时,他还是CSDN学院知名讲师(视频),成功录制了50+嵌入式Linux教学视频,好评率100%。 用他的话说:“悦己之作,方能悦人”。
近日,韦东山老师接受了CSDN的专访,文中他分享了学习嵌入式Linux方面的技术经验,并给开发者指明了一道通向未来的灯塔。

用东山老师的话说:“悦己之作,方能悦人”。
CSDN:请先简单下自己(技术背景、工作经历、学习经历)。
韦东山:我2003年毕业于中国科技技术大学,电子和计算机双学位。毕业后在深圳一家小公司从事51单片机的软件硬件开发工作,在 工作中预料嵌入式操作系统将会兴起,于是辞职自学Linux半年;2005年8月份开始进入中兴通讯从事Linux系统开发; 2007年辞职写书,2012年开始建立百问网公司,发布Linux培训视频。
兴趣跟工作相吻合
CSDN:你是如何与Linux结缘的?是什么让你对 嵌入式Linux始终抱有热情的?
韦东山:在从事51单片机开发过程中碰到过一些技术问题,公司老板请来他的朋友做指导。他提及Win CE(Windows Embedded Compact)和Linux,那时的Win CE只能支持几款处理器,而Linux的普适性更强,于是开始学习Linux。 嵌入式Linux跟硬件紧密结合,而我又喜欢捣鼓些小玩意,这即符合技术潮流又能满足我的兴趣,所以一开始就很有激情。 激情不能长久,我很幸运在自学半年后能找到一份做Linux的工作,兴趣跟工作吻合,这太幸福了。
在工作过程中也会厌倦,但是工作的压力促使我去做更深地专研,慢慢地Linux已经成为我人生的一部分。 现在做Linux培训视频,学生们凭借所学知识找到好工作,还有些人会特意上门拜访;工程师们学习后提升了技术能力涨了工资,这让我感觉很好,这也是我不断录制视频的原因。
CSDN:在嵌入式开发方面有着近十年的开发经验,你是通过哪些方式来提升自己的 开发技能的呢?对嵌入式Linux开发方面有什么特别的喜好吗?
韦东山:碰到问题,全心去解决问题,这就是提升技能的唯一方法,它胜过看100本书,胜过看100套视频。书和视频只能带你入门,要提升技能必须碰到难题并尝试去解决它,在解决过程中你会猜想各种原因,把完全无关的技术融会贯通。 以前我只做Linux驱动,现在倾向于做完整的系统,这也是一步一步提升的过程。所谓系统就是“整套产品”,它涉及硬件,操作系统、驱动程序、 上层应用,甚至还有后台的服务器。
在做系统的同时,我还喜欢“玩”,做一些功能单一的小产品,比如座机来电闪、小孩一靠近电视就花屏的小设备,有人喜欢网络游戏有人喜欢逛街, 而这就是我的“电子游戏”。
写书难忘的经历:足不出户,边学边写
CSDN:你所编写的《嵌入式Linux应用开发完全手册》一书颇受开发者好评,在出书过程中有什么难忘的回忆吗?
韦东山:老实说,这书也只是适逢其时,它的很多内容都可以在网络上搜到,只是2008年那时还没有人把它整理出来。比如对于UBoot,你可以找到很多修改方法,但是没人告诉你修改的理由,也没有人从整体去分析它。 写书的过程很痛苦,工作时只要求你“会”——可以解决问题就行;而写书则要求你“从根源上会”,还要“会讲”。
我在脑中反复模拟讲解,写书时反复修改句子,2007年写书这一年,让我对Linux技术的理解更深了。确实很难忘这段经历:在深圳白石洲的民房里,墙上贴着章节的进度,足不出户,边学边写。
CSDN: Linux 4.1版本中宣称将引入大量汇编代码变更,很多人都说引入大量代码变更是有风险的,对此,你怎么看?
韦东山:我不会去使用最新的代码。
- 对于培训而言,Linux2.6跟Linux4.1没有本质差别,我常常这样建议学生:你可以用2.6学习,然后再自己尝试移植到高版本内核;
- 对于做产品,我也不会轻易更换内核,前期工作不能说扔就扔,并且更换有风险,需谨慎。
CSDN:曾有一段时间你是自由职业者,是什么原因让你走上创业道路的?
韦东山:想自由,不想上班,不想听闹钟起床,这就是做自由职业者的原因。后来发现这是一个坑,单身时没任何问题,但是结婚后生活压力还是会促使你早早起床干活,自由职业者反而不自由。 于是还是开公司吧,为了给小弟们树立榜样,现在的我比在中兴上班时起床更早。
CSDN:为何取名叫“百问”?这是一家什么样类型的公司?
韦东山:写书时,就想到要给学生们答疑,他们会有成百上千的问题,我希望自己都能解答。所以,起名为 百问。现在我们主要是做嵌入式Linux培训视频,致力于给学生、工程师提供培训。
- 对于学生,如果你还在玩单片机,那么可以尝试进入Linux。 我们会先把ARM板子作为单片机使用GUN工具链开发,这能让你更深刻理解单片机技术,因为IAR、KEIL等工具封装得太好了,让你看不见技术细节。
- 有志于开发智能硬件、可穿戴设备、物联网、智能家居等的人,只要这些硬件涉及比较复杂的功能,都可以从我们的视频得到帮助。
最大的感悟:累
CSDN:从一名资深的软件工程师到图书作者,再到百问科技缔造者,这期间给你最大的感悟是什么?
韦东山:以前工作很单纯,现在工作很繁杂;以前只想着技术,现在还要想着利润;以前只需要自己高兴,现在还要想想能给同事带来什么。 最大的感悟就是:累,回不到过去了,也不想回去了。
CSDN:你认为要成为一名优秀的嵌入式Linux开发工程师应该会哪些技术,具备哪些职业素养?
韦东山:我认为,优秀的工程师要具备全系统的技术能力,应了解公司业务、应用程序,底层系统,甚至还要了解下硬件;不能只满足于单点技术,如果你只会写驱动程序的话,那么,饭碗也是不牢靠的。
在素养上:要有自学能力,碰到问题时要能全心去解决它。
CSDN:你最喜爱的开发工具有哪些?在日常工作中会用到哪些?
韦东山:Souce Insight,它是我看代码、写代码必不可少的工具,也是因为它我才没有抛弃Windows;UltraEdit比记事本好用; vmware,我还在Windows下工作,所以用vmware虚拟机装Linux很必要。
CSDN:嵌入式开发一直是非常火爆的技术领域,你怎么看当前嵌入式的发展和应用?另外,当下移动互联网和云计算大行其道,你觉得嵌入式开发未来都有哪些发展机遇?
韦东山:现在兴起的硬件热潮,对于嵌入式Linux是一个很大的推动,比如智能硬件、可穿戴设备、物联网、智能家居等。比较简单的功能可以用单片机实现,但是一旦涉及WiFi、视频、图像等,就要用Linux了。 移动互联网和云计算,它们跟嵌入式并不是互相竞争的关系,因为它们总得有一个硬件来承载,而这个硬件基本上就要运行Linux。
程序员,应时刻不忘学习
CSDN:对嵌入式Linux开发领域的开发者有哪些建议?分享下心得和体会。
韦东山:在国内有一个残酷的现实问题,很多公司倾向于招更年轻的、刚毕业的人,作为一个程序员,我们必须提升自己的能力,时刻学习。
10年前很多单片机玩得很好的工程师,现在的择业范围真的开始变窄。系统!系统!!你必须掌握整个系统,业务逻辑到底层实现、从上到下的整套技术。 我们要常常想,如果我现在换个公司,能做什么?能力可以满足吗?怀着跳槽心尽早学习。
很多人会问道“是选择学习Android、 iOS还是嵌入式Linux?
”“在满足现实需求的同时,尽量凭兴趣,这是我不变地回答。”东山老师如是说。
移步CSDN学院,查看更多课程。 欢迎推荐采访人或自荐,来分享你的成长经历和相关技术,相关信息请发送邮件至:xiamz#csdn.net(#换成@)。
专访Linux嵌入式开发韦东山操作系统图书作者--转的更多相关文章
- 与一线Linux嵌入式开发project师的对话
转:与一线Linux嵌入式开发project师的对话 陈project师一直做Linux的嵌入式开发.作为在开发一线的project师.他对非常多问题的看法可能更切合实际需求,于是,通过邮件.就嵌入式 ...
- 作为一个新人,怎样学习嵌入式Linux,(韦东山)
很早以前在网上看到的韦东山老师写的文章,复制到自己的博客,方便自己以后看. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会). C语言要学到什 ...
- Linux 嵌入式 开发环境 交叉编译安装
1.安装 Ubuntu 系统 安装完毕,系统 提示 重启,这个时候 请拔掉U盘,进行重启 OK. 2.安装 NFS 服务 3.安装 openssh服务 4.开启openSSH服务 5.就可以使用 Wi ...
- Linux嵌入式开发中常用的两个工具
TFTP 全称:Trivial File Transfer Protocol(简单文件传输协议) 进行小文件传输 在ubuntu下设置TFTP服务器 $ sudo apt-get install tf ...
- 嵌入式设备上的 Linux 系统开发
转载:http://www.ibm.com/developerworks/cn/linux/embed/embdev/index.html 如果您刚接触嵌入式开发,那么大量可用的引导装载程序(bo ...
- Linux嵌入式系统与硬件平台的关系
一. Linux嵌入式系统 操作系统是一种在计算机上运行的软件,它的主要任务是管理计算机上的系统资源,为用户提供使用计算机及其外部设备的接口.它存在的目的是为了管理所有硬件资源,并且提供应用软件一个合 ...
- 嵌入式开发为什么选择C语言作为开发语言?
了解嵌入式开发的朋友们都非常的清楚其核心的开发语言为C语言,C语言在嵌入式开发的过程中占有十分重要的地位,可以说两者之间“你中有我,我中有你”.但是有很多人会想,有那么多的开发语言为什么会单单的选择C ...
- 韦东山嵌入式Linux学习笔记02--如何给开发板烧录程序
购买韦东山嵌入式开发板jz2440 v3会标配两根usb线和一根网线,OpenJtag需要单独购买, 我暂时还没买到该工具. 下面介绍usb烧录以及通过网线烧录程序. 1.usb烧录程序: 借助DNW ...
- (转)作为一个新人,怎样学习嵌入式Linux?(韦东山)
被问过太多次,特写这篇文章来回答一下. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会).C语言要学到什么程度呢?越熟当然越好,不熟的话也 ...
随机推荐
- SQLServer DBA 三十问(加强版)
距离最初发布SQLServer DBA 三十问 已有一年多了,大家对其中的某些问题讨论比较激烈,要回答出来这些问题需要比较扎实的SQLServer 基础和一定的实际操作经验,如果你试着去回答其中的问题 ...
- Apache CXF Webservice入门
1.步骤一览 关于CXF的介绍请移步官网.百科,这里仅供初次使用者入门. 2.步骤详情 2.1.环境准备 apache-cxf-3.0.0.zip下载 jdk1.7.0_51 Eclipse4.3.0 ...
- atitit.ajax 最佳实践跟框架选型 o99
atitit.ajax 最佳实践跟框架选型 1. 选型框架dwr/dwr3 跟jq 1 2. DWR方便的地方分为两个地方. 1 3. dwr 优点: 1 4. 缺点: 2 5. 根jq的区别 2 1 ...
- atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模
)----列表查询建模 1. 配置条件字段@Conditional 1 2. 配置条件字段显示类型为range----@Conditional(displayType = displayType.ra ...
- 生成读取相关连接的物理地址的lib(动态导入库)和dll(动态链接库)
一.导出相关dll库 将原先的CmdInfoToPipe.h class后加入关键字 __declspec(dllexport) #ifndef NETINFO_CMDINFOTOPIPE_H_ #d ...
- P2P的原理和常见的实现方式(为libjingle开路)
参考原文 为了项目的IM应用,最近在研究libjingle,中间看了也收集了很多资料,感慨网上很多资料要么太过于纠结协议(如STUN.ICE等)实现细节,要么中间有很多纰漏.最后去伪存真,归纳总结了一 ...
- android: 调用摄像头拍照
很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄 ...
- 微博mini for Windows Phone
下载地址: http://vdisk.weibo.com/s/KrzW5
- DotNetMQ的一个小demo
DotNetMQ是一个新的.独立的.开源的,完全基于C#和.NET Framework3.5的消息队列系统 下载源代码 - 1.28 MB 下载二进制文件 - 933 KB 下载例子 - 534 KB ...
- Eclipse 基于接口编程的时候,快速跳转到实现类的方法(图文)
Eclipse 基于接口编程的时候,要跳转到实现类很麻烦,其实Eclipse已经实现该功能. 只要按照Ctrl键,把鼠标的光标放在要跳转的方法上面,第一个是跳转到接口里面,第二个方法是跳转到实现类的位 ...