驱动还是应用? 这是一个多人提起的问题 韦东山
来源:互联网 发布:用php九九乘法表 编辑:程序博客网 时间:2024/05/29 06:53
转载:http://card.weibo.com/article/h5/s#cid=1001603908674333578687&from=1055093010&wm=3333_2001&ip=180.99.71.192
我们先说现实:
1. 底层驱动开发的职位永远少于应用开发的职位2. 做底层系统一般都要求有经验
再看看技术职位的发展:
1. 单做底层系统而不涉及应用开发、业务开发的话,永远无法成为行业专家、系统专家
2. 只做应用开发的话,在嵌入式行业里同样无法负责整个系统,无法成为系统专家
我的众多朋友,他们现在在公司里都是技术头头,都是有股份的。
无一例外:他们既懂底层系统,也懂APP业务开发。
所以,我一直建议:系统。我们要着眼于整个系统,你不仅要学习底层开发,也要掌握一些应用技能。
假设公司里有人负责底层驱动,有人负责上层APP了,那么谁来把这两部分人的代码整合在一个产品上呢?
负责人一定要上下兼通,他知道怎么去规划分区大小、知道怎么去实现系统在线升级、知道怎么避免升级时断电导致崩溃?
知道怎么把系统划分为只读部分、可读写部分;知道怎么去规划电源管理等等;系统出问题时,他能准确判断是哪一块出问题。
再比如你们公司要更换设计方案,那么CPU的性能是否足够、内存/FLASH选择什么类型的;单板上的软件与服务器软件如何配合,
等等这些都需要有一个“系统设计师”,他必须上下兼通。
所以,你不要灰心,已经学习的底层知识将成为你工作中的助力。
应用程序的开发实际上入门门槛挺低,只要你的C语言基础扎实,这就足够了:
任何一个项目都会把功能拆成很多小块,你只需要负责一小块,它们都是一些逻辑处理而已。
应用开发技能可以认为分3部分:
1. 公司的业务逻辑:应用开发的入门其实很简单,你只要会写程序,到一个公司后基本上都是花一、二个月来熟悉他们的业
务,就可以写代码了。
2. 良好的编程思想与习惯:比如面向对象的思想、代码的复用
3. 专业知识,也许你是图象处理专家、音视频专家、网络专家,这部分不在此文介绍之列。
第1部分你现在没办法去学习;第2部分是可以练习的,比如可以尝试去写写一个完整的项目、分析一下某些开源项目,
我们第3期视频的第1个项目就是一个好例子。
最后,我们再看看怎么学习APP开发。
举一个例子:开发安卓游戏愤怒的小鸟
1.游戏有界面,这由美工或画图标;由前端工程师把这些图标用起来,这个前端工程师一般就是做android app的
2. 游戏有内部逻辑,怎么实现皮筋的伸缩?小鸟的运行轨迹怎么算出来,这需要懂一些物理知识、图形算法
3. 如果能联网进行多人游戏的话,服务器程序怎么写,怎么协调众多的用户?这些应该用纯C来实现了
你现在来看看,这1、2、3里,是负责图形显示的工程师值钱,还是负责2、3的工程师值钱?
所以,学习APP要回到基础上面来:算法、数据结构、网络编程、图象处理、声音处理等等,你无法掌握所有知识,所以看兴趣来学习吧。
现在android app开发很热,是因为会的人还不多,但是android app的入门简单,如果只是单纯会操作那些图标、按钮、菜单,我认为没什么发展前途。
抛去图象处理、音视频处理等等专业技术行业,我来说说在校生怎么为嵌入式行业的工作而学习:
1. 掌握嵌入式开发套路:搭环境、在板上搭建系统、交叉编译、调试
2. 如果对底层感兴趣,那么学一下驱动开发
3. 多写一些算法题,工作中大部分代码都是用来处理业务逻辑的,但是练习算法题可以提高你的编程能力
4. 了解一些编程思想,尝试自己去写一个稍大一点的程序,把它的框架设计得容易扩展、容易维护
5. 了解一下android app开发,毕竟它很热,并且并不需要花大多时间就能初步掌握
现在很热门的智能硬件、物联网,如果能爆发,它将需要大量的底层开发人员、上下兼通的开发人员,这也许是一个机会。
重要的事说三遍:系统!整个系统!!上下兼通整个系统!!!
无论是在公司里升职,还是以后出来创业,作为工程师来说,掌握整个系统才有前途。// 注意:行业专家除外,你的某个算法都天下第一了,别人都会来配合你,你当专家就行了。
0 0
- 驱动还是应用? 这是一个多人提起的问题 韦东山
- 通过一个小小的问题提起良好习惯的养成
- .NET还是JAVA,这是一个值得思考的问题
- .NET还是JAVA,这是一个值得思考的问题
- 韦东山-wifi驱动
- J2EE还是.NET,这是一个问题
- J2EE还是.NET,这是一个问题
- 组合还是继承,这是一个问题?
- 硬件还是软件这是一个问题
- 组合还是继承,这是一个问题!!!
- 精英还是草根?这是一个问题!
- 动态还是静态,这是一个问题
- 管理还是技术,这是一个问题
- 封闭还是开放,这是一个问题
- []T 还是 []*T, 这是一个问题
- 享受还是行走,这是一个问题。
- 韦东山《嵌入式linux应用开发》 开发环境搭建过程的问题
- 韦东山USB驱动笔记
- UML 图例
- 不推荐覆写start方法
- 安卓广播学习整理
- 小马哥----高仿苹果6S A236 刷机拆机主板图与开机界面图 更新解锁界面 全网通4G 警惕
- Linux系统如何查看及修改文件读写权限
- 驱动还是应用? 这是一个多人提起的问题 韦东山
- 实现简单UITextField随键盘弹出收起的动画效果
- moko模板官方文档 中文翻译
- extjs创建grid
- 详解JavaScript中的arc的方法
- 注册服务
- 按寻路路径连续移动(方法2)相对完美
- 前台实现分页,简单明了,一看就懂
- 每次开机都要去开启samba,怎么搞