题图

做一名开发者,我们经常会有一些 Title,比如前端/后端/大数据工程师等。但是一般自我介绍时,都会说我是程序员,而不是工程师,程序员和工程师其实大部分时间大部分人是混着用的,这两者之间没有区别吗?

在我看来,程序员和工程师是有本质的区别的:

  • 程序员更多在于实现,可以说是实施者

  • 工程师在于提出问题、需求,为一些群体提供解决方案,这是创造者

如果将 coding 技能抽象成笔,工程师会利用笔发散自己的思维,然后天马行空地进行尝试、肆意绘制,最后创作一幅画作,成功了就给人生添加色彩,留给世人慢慢欣赏;失败了无非就是在增加经验的同时多了一张草稿纸,总结一番继续尝试。

程序员则是选用合适的笔,最优且有效率地完成面前他人提供的一个手绘稿,填充细节,完善领域内的某个空白点。

都是用笔创作,这区别在哪?我认为是动力源的差别,创造者是自我思维驱动,我知道我要做什么,甚至是我要创造一个世界!实施者是我知道创造者要我做什么。

创造者在于用工具构建自己的世界,实施者专注于将事情做好。

读到这里,诸位可以想象你工作中你是什么角色?你是程序员还是工程师?或者说你是创造者还是实施者?你的工作环境中谁在做着创造者?可能是 CTO,也可能是产品经理,你和他们相处愉快吗?

怎么判断你是工程师还是程序员?很简单,你有没有为了解决某个问题用自己的技术能力产出一个解决方案甚至是产品,如果有,你就是工程师。

不愉快是怎么产生的?首先创作者从原始需求、从自己的世界观出发,实施者以实现为目的出发,一般来说是没有冲突的,如果有,那么就是三种可能:

  • 纯粹是创作者和实施者的思维差异,磨合过程中难免有磕碰,互相理解吧

  • 创造者是伪创造者,总是明显提出不合常理的需求,他是在KPI之下的可悲的实施者

  • 实施者正在向创造者转变,每个人都可以是创造者,这并不奇怪,一千个读者心中有一千个哈姆雷特,每个创造者都会有自己的世界,此时的冲突大概率是由于一些信息不对称造成,基本可以协商解决,这是好的有利于产品进化的冲突

由于当前的工作环境,卷而激进,其实很多产品经理很少认识到自己是个创造者,大部分程序员又认为自己做产品就必须先有产品经理的头衔,这就造成了创造者的岗位没有在创造,执行者的岗位又很难去创造

这种模式下诞生的产品或者说好不容易在优秀的创造者手上诞生的产品交给这样的组合后,产品还怎么继续进步?

现有产品创造过程中又有CTO,也有产品经理,这两者若都有创造者思维,两个世界的碰撞那很可能非常猛烈,有时候技术和产品的割裂与矛盾就是这么来的,除非双方都约法三章。

但我认为意义不大,CTO和产品经理为什么不能是一个人?最好的方式是创造者的产品世界构建兼顾实施者的执行思维,简单来说就是创造者懂技术——这就是工程师。

我创业的话,我认为我需要将技术和产品这两个角色做个融合,将两个角度创造者的思考方式集成为一体,减少冲突,坚定方向,杜绝后续产品和技术上的割裂,这是我专属的工程师定义。

我觉得人生的意义在于创造,深入了解某个行业,然后提出自己的想法,创造为这个行业带来正面影响的产品,是很美妙的一件事。