本帖最后由 icecut 于 2011-12-17 13:14 编辑
本文发到单片机这一板块,对未来想进入Linux行业的人更能受益....故发布于此
一.为什么是我站出来评论?
在和一朝成名的吵架中,我提到要给大家解析一下,国内驱动热不是一种误导.而是一种精神和灵魂所在.也是本文发布的原因.
在原帖中[https://bbs.21ic.com/viewthread.php?tid=95023&highlight=]大家也能看到我的回复.比较消极.是因为我是拿房价与工资来评判.在本文中,你能看到一个真正的驱动工程师和驱动行业的过去现在与未来.本文未提到之处欢迎大家继续回帖讨论.
我在c++大型软件项目,android的手机上层软件,龙芯汇编语言,Linux驱动等行业做过开发.现在任职于一家小型的国产soc厂家.未来发展方向就是搞一个网站,让更多的人在我的技术**中受益.
二.热的几个因素
1.舆论引导.
在程序员的时光中,成为一个高手,需要两个过程.这里的高手仅仅是写代码的高手.而不是系统级别的构架师.一个是读代码,另一个是写代码.是一个咿呀学话的过程.读代码的过程里,开源的Linux就成了读代码的圣经.标志着一个人的水平和发展方向.我04年就买过Linux2.4的内核书籍.我遇到到结果和大家应该一样,书籍并不是适合每一个人的.但无论如何,把Linus当成神和Linux当成圣经的舆论是不可改变的.并且,老一辈工程师又给他搞上一个门槛,说驱动难啊,没经验的根本玩不转,并且你一个人的代码问题通过操作系统传递给更多人不舒适的体验.把性能等说不清的东西,笼罩在上面,让新人难于逾越这个门槛.
在很多帖子里,我也是这么给新人解释的.可能有几个人对我的说法反感.但是到现在为止,还没有一个人拿出一个详尽的数据告诉我,这些对他都是小事一桩.我把老工程师的话传过来,就是给新人一个缓冲墙,让他们提前知道这些问题,并且在真正的工作面试等环境遇到这种问题后有一个属于自己的合理的答案.以免手足无措.
用一句话总结:如果你不懂驱动,你就不是个牛X的工程师.
2.工资水平
驱动>裸奔.年薪十万起步.看看很多招聘网站的广告,月薪xx不是梦.xx竟然是5k,我看着就想笑.十万对刚毕业的学生来说,是第一步,也是一个诱惑,这个诱惑就和驱动绑定到一起.要年薪十万,就要做驱动.所有的裸奔工程师,和承受着工资压力的工程师,都会朝着这个目标发展.于是,工资是促成因素之一.记得我从纯软件换到驱动行业的时候,我是这么一个态度.你需要的东西,我都会,但是我不会给驱动行业砸价格.要就是年薪十万.不要我继续玩我的纯软件.
用一句话总结:如果你不做驱动,你就永远是个穷人.
3.现实环境
你在门槛之外,想进来的时候,就问你:
1)对操作系统理解不?不理解拜拜.
2)对总线协议理解不?不理解拜拜.
3)对外设熟悉不?不熟悉拜拜
......
当问完所有问题通过之后,你就进了这个驱动的大门.不过也有很多幸运的孩子,没怎么问问题就进来了.然后进行了枯燥的驱动训练.有人遇到水平一般的师傅,于是只做测试,真正涉及到项目关键模块的东西,都是师傅自己写.因为他怕你写的出问题.因为你也不知道如何写就不会出问题,所有教科书上都没有说明,如何写一个稳固的程序/驱动.
有的公司,根本就没师傅,一切都靠你自己复制粘贴代码.但是幸运的是这种公司用到的驱动都有官方提供的.顶多修改个三五行.也不用重写,printk几个关键值就运行ok了.至于为什么这么写.你可以知道,也可以不知道,没人会问你,也没人说你的驱动性能不好.于是就幸运的成了资深的驱动工程师.如果你拿着年薪十万,淡定下去,那也就无所谓了,没事复制粘贴,有事printk也是一个舒服的工作.我相信好多工程师没有单步debug过驱动.也没有trace_printk调试高性能的驱动.
[对于梦想年薪50w+的人...]当你继续往前走的时候,发现驱动的后山上已经没有门.在山上玩的是另一群人.javie说过,不要老盯着驱动.app更赚钱.然后到现在如果你想从驱动跳到应用程序,并且拿*1.25的薪水,那悲剧了.因为你不懂app如何开发,面向对象,设计模式对于你又成了一道障碍.而现在的年龄,恐怕也不是适合学习的了.也没有能力跨行业竞争.而我在驱动行业的积累只用了一年多,就已经想出去了.在大型软件方面,我有2年的积累.但是依旧找不到合适的公司.从一个技术员工到一个技术领导,你就要降级到更小的公司.而对于我,就是把我所掌握的知识奉献给大家,搞一个个人网站.计划了一年时间,放下所有的东西,重新开始.这一切技术,都不学术....创业吧.如果你真的想披荆斩棘的冲向前方.要么别人死,要么你死.
用一句话总结:看到阳光,却看不到阳光背后的东西.
三.社会化思考.
1.企业
培养驱动的企业很少,有幸提前进去驱动行业的人,前两年依旧是被培训,拿不到十万年薪.而没培训能力的企业,就花十万年薪把这群培养了两年的人挖过去.前者你没有钱途但有前途.后者你没有前途但有短时间钱途.少数的企业培训不了那么多人.并且周期要两年.所以行业很缺人,但是企业宁可缺人也不乱招聘.这样就造成了一个有门槛并且很缺人的局面.
笔者评点:平台化趋势越来越明显.驱动程序员的需求不会无节制增加.高水平程序员都去了外企.
2.个人
大部分做驱动的人都发现自己做的是体力活.复制粘贴debug,就是一个测试工程师.而少部分接触到算法,又成天担心性能.国内无开发新的ip的能力.专用驱动级别没有.都是老外的芯片做兼容,然后驱动从别人那里改改就行.20w年薪短时间拿不到,如果再熬上五年,我不敢说怎样.世界变化太快.
[对于梦想50w+的人...]至于系统工程师,那就更无需求了.大公司的稳定性,老员工掌握核心产品开发的,都会重金拍死,不离职不退休,没有新需求.而app的开发方式和驱动差异太大,客户随时可变的需求让你应接不暇.但是这个时候去考虑改变职业生涯的大船,已经很难了.我相信看我帖子的人,很少能和我这样本科3年之内完成这么多技术积累的.而对于公司,都不会全部需要,所以给的工资相对低一些.希望大家有前车之鉴.至于我,还年轻,和一个应届硕士一个年龄,我会把我的技术奉献出来从头再来.隔行不取利,我还会在it行业.
3.对社会的贡献
最近国家规划把芯片行业评估为复苏.北京的ic公司如春笋.但是他们现在做的东西不是外围控制器,等他们做外围专用控制器的时候,我们庞大的Linux驱动工程师的队伍会助他们一臂之力.但是,中国的路还长,个人的生命短暂.认清形势,寻找适合自己的路.
四 总评
Linux工程师在自己职位上做出了卓越的贡献.推广了Linux及其派生系统android在国内设备上的应用.在很长的时间内,能保持岗位工资在10-25w之间.符合当今gdp的发展,企业的需求能够让工资有合适幅度的增长.虽然在学术上没有任何前途.但是为新型外设发展铺平了道路.是裸奔工程师的发展之路.Linux驱动也促进了程序员对操作系统和硬件平台架构的认识.为社会技术新需求奠定基础.笔者对Linux驱动的评级依旧是优先.
但是对于另外一群具有特殊眼光的人,建议直接进入云计算等行业.互联网工资相对比较高.ibm开源的云计算平台有更宽阔的发展空间.
号外:arm和intel在服务器市场的竞争,给arm-Linux工程师有更广阔的舞台. |