写点什么

工程师、程序员和产品经理

用户头像
王泰
关注
发布于: 2020 年 05 月 15 日

在北京从事开发软件工作的你,过年回到老家。看见好久不见亲戚,茶余饭后大家问,“你在北京是做什么工作啊?”,“哦,软件工程师 / 程序员。”


软件工程师和程序员有什么区别呢?



我想起我的第一份工作,这是一家日企的研发工作,这家日企的职级评定和国内有些差别。国内级别是数字的形式,P4、P5、P6… 表示程序员的能力水平。而这家公司的职级是 PG、SE 等等。其中 PG 的意思就是 Programmer(我想起以前有一本杂志,叫做程序员,副标题就是 Programmer),SE 的含义是 Software Engineer。国内的团队 可能不太清楚其中的区别(我记得因为我在日企的时候从 PG 升级到 SE,所以后来一位面试我的主管 — 老白,就问过我两个职级的区别)。


这里,只写代码人就是 PG,而可以写详细设计的人是 SE。SE 比 PG 要高级一点。


我第二份工作,在一家互联网企业。进入了互联网公司后,我们在这些称呼上就没有那么纠结了,因为这里软件工程师就是程序员。当时的互联网公司普遍提倡工程师文化,很多程序员非常有干劲(看到自己职业变成了企业文化,挂到公司的白墙上)。


「可是软件工程师就是程序员吗?程序员都是工程师吗?」


程序员,狭义就是编写程序的人。负责程序编写和维护开发软件的专业人员。


软件工程师这个职位名称中不仅包含了专业(软件)也包含了职业身份(工程师)。所以程序员其实是软件工程师的超集(只有一部分程序员可以被称为软件工程师),当然“工程师(不是软件工程师)”也不全是程序员。


工程师思维 — “程序员”与“软件工程师”最大的区别。


工程师思维包含了实践、设计和创造。科学家们创造了基础科学理论,工程师负责将基础理论贯通到实践。

还没人知道产品长成什么样时,工程师们就开始探索。他们都是理想主义者,仅凭一点点模糊的想象,在实践中一点一点的探索出产品最适合的模样。


工程师们带给人们的东西,充满了惊喜、可实现、实用。虽然没有科学家们探索的那么超前,但仍然让人们充满了惊喜、并可以解决实际问题。


实践是工程师探索的根本方法,工程师利用已有的技术去解决人们的问题,有时甚至要将多个技术进行组合探索。


工程师探索的过程是解决能不能的问题,而不是是不是的问题,是不是的问题交给科学家们解决。


软件中台为例,阿里巴巴在 2015 年 12 月提出“大中台,小前台”的概念。因为软件工程需要解决的就是软件开发效率问题,当一个公司或组织的架构越来越复杂时,其相应速度和稳定性会相应降低。软件工程从组织结构和软件架构的角度提出了“敏捷开发”和“高内聚、低耦合”等解决方案,已经解决了一部分的问题。但随着业务逻辑复杂度的进一步提高和因为新技术的出现导致许多业务对数据容错性的提高,软件工程师们发明了适应新环境的软件架构—中台。中台提高了平台响应的能力,沉淀的技术落向后抬,沉淀的业务能力集中在中台,前台独立负责业务 UI。


产品模型也是如此。互联网初期的产品(人员)除了可以感性的认识到用户需求,敏感的理解用户。这种模式不科学,因为经验不可复制,当时的产品经理想要学习晋升自己,只能去读读鸡汤,学习“人人都是产品经理”这种鬼话。当我们需要产品(人员/经理)的经验可以复制时,就需要使用工程师的思维做产品,这其中涉及到工程师思维中创新的「三个动力」

  1. 假设反常

  2. 旧功能失效

  3. 减少不确定性


我可以这么说,「如果一个程序员不具备工程师思维,那真的就是码农了。如果产品经理利用工程师思维做事,那他也是工程师。」


软件工程师要解决「三种问题」,1、产品问题,2、领域问题,3、架构问题。架构问题:利用已有的技术,解决软件扩展性。领域问题:解决业务领域下的技术解决方案,比如:中台创新,微服务创新等。产品问题:解决用户的问题。


发布于: 2020 年 05 月 15 日阅读数: 70
用户头像

王泰

关注

还未添加个人签名 2011.07.21 加入

极客神灯创始人

评论

发布
暂无评论
工程师、程序员和产品经理