专访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语言要学到什么程度呢?越熟当然越好,不熟的话也 ...
随机推荐
- TypeScript开发手册
返回TS学习总目录 基本类型(Basic Types) 接口(Interfaces) 类(Classes) 模块(Modules) 函数(Functions) 泛型(Generics) 常见错误(Co ...
- 设计模式之美:Facade(外观)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):用抽象类定义 Facade 而使子类对应于不同的子系统. 意图 为子系统中的一组接口提供一个一致的界面,Facade 模式定义了 ...
- Nim教程【二】
第一篇教程1秒内就被管理员从首页踢掉了 管理员嫌内容太少,没有含金量,这次多写一些. 这应该是国内第一个关于Nim入门的系列教程 好,闲话休提,言归正传 Nim介绍 Nim代码会编译成C语言的代码,再 ...
- 那些年我们一起追过的Linux命令
1. cd - 作用:返回上次的目录,类似于Windows的后退功能: 2. man ascii 作用:打印出八进制.十六进制和十进制的ASCII码表:(再也不用Google ASCII表啦) 3. ...
- asp.net 生成 excel导出保存时, 解决迅雷下载aspx页面问题
网络上搜索,一大堆废话,以下为简单的导出生成Excel代码: string excelFile = Server.MapPath("~/SB/UpFile/20151104111008/Bo ...
- jenkins插件 查看job下次运行时间
文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.com/ciandcd jenkins插件next executions( ...
- Ubuntu命令--CURL用法
curl命令是个功能强大的网络工具,支持通过http.ftp等方式下载文件.上传文件.还可以用来抓取网页.网络监控等方面的开发,解决开发过程中遇到的问题. 常用参数curl命令参数很多,这里只列出我曾 ...
- CentOS挂载NTFS移动硬盘
CentOS操作系统默认无法挂在NTFS格式的移动硬盘,解决方案之一为使用ntfs-3g挂在: 1. 在其官网上下载安装包: http://www.tuxera.com/community/open- ...
- pl/sql死锁oracle
http://jingyan.baidu.com/album/3ea51489eb65b152e61bba8b.html?picindex=2
- "Cannot find one of more components. Please reinstall the application"--安装VS2013之后不能正常打开的处理办法
今天,安装完VS2013之后,不能正常启动.总提示一个让人摸不到头脑的错误: "Cannot find one of more components. Please reinstall th ...