`

开发工作与研发工作的差异

阅读更多
研发和开发的一个不同之处就是研发有更多的“研究”成分在里面,也就是说研发的时候会有更多“光明正大”的学习时间,这对于那些对技术本身有追求的工程师来说是很有吸引力的。有一些人做工程师是为了可以创造出好的产品,然后挣大钱或者改变世界;也有一些人做工程师是因为对技术本身有兴趣,想要好好研究。可以凭借技术名利双收变身成功人士固然很有吸引力,但不关心世事钻研一些自己喜欢的东西也自有它的乐趣在。

   如果说开发产品是“输出”,那么学习思考就是“输入”,只有输出没有输入整个人就会废掉,完全沦为一颗螺丝钉。在很多公司尤其是那种经常加班赶项目的公司,你每天都会处于很忙碌的状态,脑子里想的都是赶紧把指定的任务完成上线。因为时间紧,所以你在开发过程中遇到什么问题都是只求解决,没有心思和时间去搞明白为什么会出现那种问题,在这样的工作状态下完全没有办法积累工作经验,看上去好像工作了五年,其实是工作了一年,然后重复了四年。

   做研发一般不会直接为产品贡献代码,更多做的是一些基础架构或者实验性的产品,所以它有几个很明显的好处。首先,很少开会。其次,没有产品经理。第三,一般都会把质量放在第一位,时间不会特别紧。这是三个非常巨大的优势,这意味着你绝大部分时间都可以安心学习、思考、设计、编程,幸福指数会飙升。如果你是做基础架构,那么代码质量就会有硬性要求,你不得不写得健壮、易用、松耦合并且易于调试,要花心思和时间细细打磨,对个人的能力提高、习惯养成和经验积累都非常有帮助;如果你是做实验性的产品,那么你就有大量的机会和时间去调研最新的技术,而且最棒的是你可以在产品当中使用它们——这对于开发线上产品的工程师来说是不太可能的,因为不成熟的新技术存在太多未知的风险。

   此外,做研发对工程师的素质要求很高,需要很好的技术基础、学习能力和研究能力——我把它看作是一个优点。从个人角度来说,我宁愿一家公司招聘非常严格需要竭尽全力才可以进去,因为严格的招聘可以保证团队所有成员的质量,不用担心进去之后会“和臭棋篓子下棋”。既然选择去做研发,那么基本可以说明你是一个对技术有追求的人,也肯定希望周围是一群和你一样的人,而不是连基础知识都不够熟悉的家伙。只有这样一群“互相看得起”的人在一块研究、学习、思考、切磋才会其乐无穷,才能够产生更多创意,做出好玩的东西。

   当然,做研发也有不好的地方。只有大公司才有研发部门,这些公司一般都已经上市或者员工已经很多,你不太可能有机会一夜暴富。当你埋头做了几年研发之后,某一天去参加同学会,发现大学时候那个数据结构不及格总是求你让他拷贝编程作业的张三衣着光鲜四处敬酒。他所在的公司刚刚上市,因为进去得早,现在他变成了百万富翁而且荣升高层。于是你忽然开始怀疑自己当初的选择,连学习和编程的乐趣都变得很不真实。所以,如果你渴望建功立业,那么就不要选择做研发,或者做几年研发之后就出来闯荡。成功需要的条件很多,而编程只是你的优势之一,只有这一个优势你需要太多的运气才可以得到你想要的。

   不过,我们也可以换个角度看。“乱世放不下一张安静的书桌”,现在到处都无比浮躁,有个地方可以让你安安心心做一些自己喜欢的事情已经非常难得,多少人拼命挣钱就是为了可以和你一样做自己喜欢的事情。尽管那么多人在叫嚷“搞原子弹的不如卖茶叶蛋的”,但总有一些人愿意去追求人类最高财富——知识和艺术家般的技艺。

   本来做研发成就感会少一点,作为一个 Twitter 的开发工程师看到那么多人在用 Twitter 肯定会特别开心,相比之下某个在 Google 做基础研究的工程师的成就感可能没那么强烈。不过在国内环境比较神奇,开发工程师非但成就感不多,反而会不少挨骂,还经常会有负罪感,相信做过邮件推广和广告弹窗的工程师都深有体会。这样一来,研发工程师的“清苦”反而变成了一个优点,可以远离很多“不得不做”的违背良心的事情。

   相信很多工程师在入行之前是喜欢技术的,但是工作之后发现完全不是自己当初想象的那个样子,然后就变得失望麻木,不再对技术有热情。其实你可以把热情延续下去,只不过要去做研发,而不是做开发。大部分由于兴趣而不是生计学习编程的人,内心真正渴望的都是去做研发,只不过没有人告诉他们开发和研发的巨大差别。现在不少大公司都有自己的研发部门,有一些还成立了自己的研究院,想要一直做技术的同学不妨尝试一下。
分享到:
评论

相关推荐

    信息化项目软件开发的费用测算规范方案.pdf

    本文档规定了定制类信息化项目软件开发费用测算的方法及过程,包括软件开发费用的构成、软件规模、工作量、费用及工期测算方法及过程。本标准适用于以功能性需求为主的定制类信息化项目软件开发费用测算。 以下是从...

    信息化项目软件开发费用测算规范标准.doc

    本标准规定了信息化项目软件开发费用测算的方法与过程,包括软件开发费用的构成、软件规模、工作量、费用与工期测算方法与过程。本标准适用于以功能性需求为主的定制类信息化项目软件开发费用测算。 1. 软件开发...

    产品研发提成管理办法.pdf

    * 新产品研发项目:指在原理、结构、性能、材质和用途等某一方面或几方面与老产品有本质的不同或显著的差异。 * 适应性开发项目:指为适应市场、降低成本、提高生产效率等,而在现有成熟产品的基础上做适当变更以...

    中国软件行业软件工程定额标准(试行)

    本标准由中国软件行业协会制定,目的是规范软件工程定额估算的过程,为用户...3、用户单位在软件项目实施中、软件开发商在自主研发或无需招投标的软件开发项目中,估算项目开发过程中的规模、工作量、工期等计划数据。

    2020年全球新药研发回顾 -全球研发领域的发展趋势.pdf

    本文将从全球新药研发的角度,review 2020年的研发趋势,涵盖临床试验活动、临床开发生产力、研发管道、研发资金、新药的批准和启动等几个方面。 一、临床试验活动 2020年,全球新药研发领域中,临床试验活动保持...

    论文研究 - 研发投入与马太效应对经济增长的影响-基于广东省的实证研究

    本文利用2005年至2015年广东省21个城市的面板数据构建面板数据模型,并从空间分异和时间序列两个维度对... 相对于继续增加研发投入,后者在基础设施建设,资源环境保护,特殊产业培育和人力资源开发方面的投资更多。

    研发能力、产业结构与区域经济差距

    研发能力、产业结构与区域经济差距,孙建,,本文利用分位点回归模型研究了我国区域研发能力、产业结构在一定制度能力下对区域经济差距的影响。结果表明,在不同分位点,区域

    DevOps开发运维一体化平台建设解决方案共36页.pptx

    3. IT 项目团队侧重点差异:IT 项目团队侧重点差异、过程保障繁琐、环境以及配置一致性难以保证、发布以及回滚过程复杂、资源同步不及时等问题则是影响项目开发与交付效率的主要因素。 DevOps 是一种文化、运动或...

    新产品开发计划表.doc

    产品开发方案表是指在新产品开发过程中所需要的计划表,包括产品开发方案的暂定品名、规格描述、业务效益目标、客户群、规模目标、客户群份额、价值价 格与竞争对手的差异、竞争情况与整体战略的吻合度、预计收入、...

    浅析人种和种族因素在医疗器械设计开发中的考虑.pdf

    我们需要在医疗器械设计开发过程中重视人种和种族的差异对医疗器械的暴露和有效性造成影响的可能性,并且需要考虑到人种和种族的定义及影响因素,以及医疗器械设计开发过程中的监管法规要求,以期在一个框架下提高...

    Vue3+Vite+Vant-UI 开发双端招聘APP完结32章

    传统的App制作公司通常会有众多的专业技术的技术人员从0开始,根据客户需求,进行App规划、设计、研发、编程、测试、修改、上架等,进行一系列的工作。整个过程需要很多的专业技术人员的相互协作才能完成。由于人员...

    软件研发管理-基于JIRA+SVN的版本管理交流.zip

    转变:软件供应商独家交付咨询服务商+软件开发商协同研发 2.企业管理越来越专业化、精细化 要求:用户对软件的功能细节、可用性,用户体验的要求越来越高 3.监管法规、行业政策等促使企业管理的持续改善 要求:...

    《GIS设计与开发》实验大纲

    在GIS设计与开发过程中,由于GIS软件工程的复杂性和差异性,难以公式化地制定一套放之四海而皆准的固定方法,但采用通行的标准法则,可以形成一些针对特定问题集的一般方法,并供一般研发人员和学生作为实践的理论...

    利用OpenStack技术来构建开发测试平台实现精益研发

    精益研发和此前业界谈及的敏捷开发概念有本质的不同:.关注点不同,这是最大的差异。敏捷开发仅仅关注怎么快速地交付一些产品满足客户更快的需求。。精益研发关注的是在满足客户需求的过程中如何消除各个研发环节的...

    员工能力评价模型(技术研发类).doc

    2. 尊重个体:不分级别、不分文化等其他差异,对他人保持尊重与真诚。 3. 行为规X:遵守公司制度规定,不超越制度规定权限。不因个人情绪或其他想法而影响组织利益。 4. 社会公德:遵守法律法规和社会公德,注意个人...

    基于PhoneGap跨平台移动开发框架的研究与应用

    快速发展的移动互联网技术使得移动终端成为实现对...针对这种情况,提出采用HTML5及PhoneGap等技术,解决移动网站、App、微信端的研发差异性。最后,搭建完整地系统技术架构,并以网站购物为例验证跨平台移动建站的可行性。

    4399游戏2015校园招聘游戏开发类笔试题.pdf

    不同的排序算法具有不同的空间复杂度,了解这些差异对选择合适的排序算法非常重要。 8. 单链表的头结点:问题8考查单链表的基本概念和头结点的作用。头结点是一种特殊的结点,它可以简化链表的操作和管理。 9. ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作。 然而,由于HTML5的W3C标准规范还未制定,安卓系统中类...

Global site tag (gtag.js) - Google Analytics