有这样一个问题:扫大街重不重要?毫无疑问对于一个城市,这是份至关重要的工作。想想看,如果北京上海纽约东京这样的大城市一个月没有人清扫,试想想会出现什么后果。试想想会有多少瘟疫流行,又会有多少人会死于非命。遗憾的是,对于这么重要的一份工作,许多国家都没有给出一个好的报酬,城市的保洁员往往只能得到最低的薪水。
你可以说一万个“不合理”,但还是解决不了问题。你也可以争取做国会议员,建立新的法案去改变这种这种不合理,但最后你会发现自己无功而返。
“就这么多钱,你干不干;你不干,大把的人干。”简单的说:是因为保洁工作所需要的技能太容易被替代。
做工程师也一样,不仅是IT领域,其他任何领域都一样。如果咱们不具备特殊的技能,就是说,没有一技之长,那么我们怎么能够梦想得到和别人不一样的待遇呢?同样一件事,我请个月薪3000元的新毕业生就能够做,我为什么要花1W5, 2W去请一个七八年工作经验的人呢?我傻吗?我钱没地方烧吗?
有许多朋友,大学毕业六七年了,面试的时候问他的技术特长是什么,有的理直气壮,有的甚至还犹豫了半天,才说出来:“C语言”、“Java语言”!试想想,“xx语言”好的人这个世界上有多少,在北大青鸟培训个十七八个月,是不是“xx语言”会足够强,咱们和他们比有什么优势?
对于自己的优势,这些朋友表达不出来,或者不准确。说白了,就是平时在这方面思考得太少了,因此,自己给自己引导得太少了,几年的功夫,一直随波逐流了。
要搞技术,从走出大学的第一天起,甚至在大学毕业之前,就要清楚,自己的“一技之长”究竟应该建立在哪里。只有这样,才能明确奋斗和努力的方向,进而才有机会把握自己命运,主张自己的价值。
仅仅就嵌入式软件开发而言,咱们来看看怎么做这个选择。
首先,我们宏观上看看这个领域一般是怎么划分职责的。
产品经理:公司做什么样的产品、在什么时间能够赚多少钱,产品经理必须准确定位出来,否则整个公司都在瞎忙乎。产品经理的核心价值在于准确的产品定义。
项目经理:整个产品的QCT。产品定义与产品的商业计划确定以后,关键就在于产品的实现。项目经理的职责在于控制、协调、执行好产品的开发,使产品准时上市(T),同时满足公司的质量标准(Q)和成本要求(C)。
技术专家:产品需要某个功能,它属于自己负责的领域,技术专家必须给出技术方案,指导该功能的实现,保证该功能的实现满足产品的QCT。
系统构架师:负责产品整个系统的构架和实现方式。保证产品的质量和产品开发的效率。构架师往往还必须考虑开发成果的复用。
软件工程师:交付功能块的代码,保证质量、工期和效率。保证自己交付的代码有效的实现了要求的功能,bug少,容易维护。
接口工程师:协调软件部门与其他部门、以及外包单位之间的互动,保证产品开发的QCT。
开发环境工程师:保证开发工具、纠错工具等开发环境的质量,保证团队的效率。
开发流程改善专员:紧盯组织内外部的协作、保证开发流程的顺利实施、领导开发流程的改善,改善组织的开发效率。
测试工程师:负责产品的验证。开发出来的产品是否符合产品的定义,是否符合业界的标准,保证产品的质量,并且不断提高测试的效率、缩短测试周期。
质量专员:负责产品的质量和流程的质量,应对与总结产品出厂后的质量问题,并通过流程改善来杜绝同类性质问题的重复发生。
部门经理:调配部门的资源保证公司所有产品的QCT;招聘、培养员工以保证部门具备足够的能力满足公司不断变化的需求。
这里罗列了一大堆堆教科书里头写了一万遍的角色。可是,咱们自己到底想成为什么样的角色?要成为这样的角色,到底需要一些什么样的技能,或者“一技之长”,咱们仔细的研究过吗?仔细的研究了以后,针对咱们自己仔细的规划过吗?仔细的规划过了,咱们随机应变的执行过吗?
如果都没有,那么,老不给咱们涨工资,咱们有次没次的跳槽,能跳好吗?