再谈研发那些事——两项核心工作的区别与联系

简介: 导读:不久前,技术工程师zhuoqun发表了两篇博客在《开发与研发:区别很大》和《开发与研发:领会编程魅力所在》引发了技术人士的热议。在那两篇文章里,zhuoqun谈到了程序开发两大类别:开发和研发的区别以及两类工程师的职业规划。

导读:不久前,技术工程师 zhuoqun发表了两篇博客在 《开发与研发:区别很大》《开发与研发:领会编程魅力所在》引发了技术人士的热议。在那两篇文章里,zhuoqun谈到了程序开发两大类别:开发和研发的区别以及两类工程师的职业规划。在他看来,“那些真正对技术有兴趣的人,要么去做一个同时具备软件设计能力的开发人员,也就是富有创造力的Hacker;要么去做一个自得其乐的研发工程师。虽然环境恶劣,但是任何东西都挡不住真正的热爱。”

日前, Chaos 又写了一篇相关的文章《 研发的那些事——两项核心工作的关系》,就研发和开发两项核心工作的区别和联系有发表了自己的看法。他认为,“开发人员的研究,不同于专职研究人员,主要探索的是他人已知但个人未知的世界,通过不断的搜集、学习,积累个人的知识,拓展知识边界,从而能顺利完成开发工作。如果能拓展到产品、市场等领域,可以看看那儿有钉子。而有些极具科学精神和智慧的同学,触碰到了所处领域的前沿,那么可以试试专职的研究员。”

以下是文章内容:

曾经有一群人,将自己的想法变成一个个小孔,打在纸带上,他们把这纸带叫做Program——程序。将它塞入被称为Computer的机器中,然后恭敬的等待机器重新吐出一段纸带,拿着欢喜地去了。这群人被称为Programmer——伟大而光荣的程序员。

后来,两个叫斯蒂夫的人搞出了个叫Apple的小家伙,PC——个人电脑开始燃起星星之火。但是这些小东西需要被称作Software——软件 的摸不着的东东才能使用。所以,有人开始专门编写它们。其中一叫做比尔 盖茨的人,认为Software可以独立,而且有知识产权,不能随意复制,必须付美金。所以,他建立了个叫Micosoft的公司,搞来了DOS,又自产了 Windows,拉上一个叫安迪格罗夫的偏执狂,乘着蓝色巨人的东风,开创了软件工业。从此,那些编写Software的人,被称为Software Engineer——软件工程师,他们开发的软件又称为Software Product——软件产品。

然后,不断有人凭借Software,改变世界,名利双收。最近的一个叫扎克伯格——一个80后,用一个叫“脸谱”的东东,改变了人们的社交方式。

我们也免不了有这样的梦想…但是,一个软件要能挣来美金,首先要满足客户需求。要大卖,还得满足客户都没想到的需求。扎克伯格们都是市场+工 程的复合大牛,而且今天,单靠一人可以取得一时之成功,但想长久,非得依靠团队的力量,通过系统性的工作才能基业长青。所以,凡人,还是先立足当下,或可 它图。

软件工程师的日常工作通常称为研发,可用下面的简单研发模型表示:

image 实际上分为两种工作,研究和开发。

研究的哲学说法是:探索客观世界,发现其运行规律(详细的可看维基百科),被发现且被验证的规律便成为了人类的知识。研究一般分为两类:

1.基础研究:以获得新知识为目标,不关心其是否有实际应用价值。

2.应用研究:以解决实际为目标开展的探索活动。其结果一般以技术论文形式发表。

基础研究,特别是国内,都由大学、科研院所进行。大企业为保持竞争优势,则建立研究院开展应用研究。中小企业,则开发人员就是研究人员,所以统称研发。

开发人员的研究,不同于专职研究人员,主要探索的是他人已知但个人未知的世界,通过不断的搜集、学习,积累个人的知识,拓展知识边界,从而能顺利完成开发工作。如果能拓展到产品、市场等领域,可以看看那儿有钉子微笑。而有些极具科学精神和智慧的同学,触碰到了所处领域的前沿,那么可以试试专职的研究员。

开发的目的是生产产品、工具解决实际问题,满足大众的需要,丰富大众的精神和物质生活。像Web2.0理念 下的各种产品,极大的丰富了我们的生活。开发任务由需求驱动,工程师接到一系列需求(文档记载,详略不一,甚至有口述的),联系已经学到的知识,开始设 计,实现。期间很可能发觉缺乏某些知识,如对某个技术不熟悉甚至不掌握,必须要先通过研究,习得新知识,才能继续开发活动。如何运用已有知识,写出合格的 程序,就看各人的智慧了,有赖于99%的汗水+1%的灵感,当然1%灵感是决定性的!而灵感来自于,通过坚持不懈的研究对客观世界的观察得来感悟。机会只 垂青有准备的人,没有锤子,即使看到钉子也只能扎手。练得千斤力,方能开顽石。

作为研发人员,能不断的创建、创造,享受带给他人改变第一重的幸福。同时研发人员又是悲哀的,因为你得学习、学习再学习,不断的研究,积累知识,历练智慧,才有可能享受哪种幸福。否则……

目录
相关文章
|
11月前
|
数据安全/隐私保护
如何把DDD应用到实际项目中来,例子中需要包含具体的领域模型设计,这么做的理由,以及一位这个设计而引进的坑
如何把DDD应用到实际项目中来,例子中需要包含具体的领域模型设计,这么做的理由,以及一位这个设计而引进的坑
146 4
|
4月前
|
运维 监控 安全
软件研发核心问题之用在需求拆解时明确监控范围与形式的问题如何解决
软件研发核心问题之用在需求拆解时明确监控范围与形式的问题如何解决
|
4月前
|
存储 调度 数据库
软件研发核心问题之数据从哪里来,主要包括哪些类型的数据的问题如何解决
软件研发核心问题之数据从哪里来,主要包括哪些类型的数据的问题如何解决
|
算法 Oracle Java
聊聊能独立或带领团队Java工程师成员完成服务端代码的研发工作能力
聊聊能独立或带领团队Java工程师成员完成服务端代码的研发工作能力
|
安全 物联网 5G
6G之路:标准尚未制订,核心基础研究却已展开
6G之路:标准尚未制订,核心基础研究却已展开
452 0
6G之路:标准尚未制订,核心基础研究却已展开
|
存储 分布式计算 监控
为什么工作三年的程序员还不懂APM与调用链技术?
服务调用链技术 服务调用链技术是微服务架构中对服务进行监控的重要环节,它可以帮助我们清晰地了解当前系统的运行情况,同时帮助我们定位问题,解决分布式网络下服务交互追踪的问题
|
存储 安全 搜索推荐
详解软件开发的标准过程(生命周期):跟着标准搞,设计没烦恼
详解软件开发的标准过程(生命周期):跟着标准搞,设计没烦恼
|
负载均衡 NoSQL Java
任务调度系统就该这么设计(万能通用),稳的一批! 上
任务调度系统就该这么设计(万能通用),稳的一批!上
|
消息中间件 资源调度 分布式计算
任务调度系统就该这么设计(万能通用),稳的一批! 下
任务调度系统就该这么设计(万能通用),稳的一批! 下
|
测试技术
谈谈我理解的测试的核心价值
测试人员的核心价值      随着公司组织架构的调整,战略调整,产品的实现技术不断变化,现在的测试人员可以说是什么都可以干。       有些人做产品,有些人做平台,有些人做工具......     有些人有点象专职开发,有些人有点象专职运营......      Facebook,google的一些敏捷测试理念中,测试人员应该致力于提出测试解决方案,研究各种测试工具为主,具体的测试执行工作,由coding的开发同学去做。
1338 0
下一篇
无影云桌面