DEMO 模型 -- 成为更好的开发者

简介: DEMO 模型 -- 成为更好的开发者

优秀的开发者凤毛麟角,他们在技术圈子里拥有明星般的光环,受到各个公司的追捧。他们为什么能成功?他们比其他开发者在哪些方面做得更好?想成为优秀的开发者,除了要有过硬的技术能力,其他方面也需要获得重视,这就是 DEMO 模型想要告诉我们的。原文链接:DEMO Model: a Surprising Way to be a Better Software Developer


你可能在网上看到过一些薪水统计数据,甚至你自己可能就认识一些这样的人,这些人跟你做差不多的工作,但薪水却是你的 2、3 倍。


面对这种情况,你是否曾经问过自己:“他们做的事情和我有什么不同?”或者“为什么会有人雇那么贵的 Javascript (Java/Go/PHP)工程师!?”


实际上他们并没有做过什么与众不同的疯狂的事。


最有可能的是,他们的代码能力和你差不多!但是他们拥有一些随着代码能力的提升而获得的其他有用的能力,这也是他们获得其他人认可的原因。


那么,我们能从这些人身上学到什么?我们该如何开始升级自己的能力呢?


DEMO 模型


DEMO 模型是一组高级技能的缩写:


  • 💼 Domain Knowledge(领域知识)
  • 🔧 Engineering(工程能力)
  • 📢 Marketing(营销能力)
  • 👑 being Outstanding(追求卓越)


💼 Domain Knowledge(领域知识)


领域知识在本质上非常简单:了解你所在行业的规则。


你应该了解流程是如何运作的,规则是如何制定的,这个领域有哪些可行的策略。


你应该对你所从事的行业有一个全面的了解。


了解领域知识有以下几个方面的好处:


  1. 使交流更容易。
  2. 有助于理解业务部门所做的决策。
  3. 有助于预测系统可能的规模和变化。


业务是一个大系统,开发人员所创建的所有内容都存在于这个系统中,因此会受到它的规则的影响。

如果你从来没有将业务视为一个系统,推荐你看一下《E-Myth Revisited》(中译本《创业必经的那些事》)


🔧 Engineering(工程能力)


一般来说,工程学研究的是怎样构建效果可预测的系统,人们最终是为这些效果买单。


在我们的语境中,工程包括:


  1. 编码
  2. 系统设计
  3. 系统维护和运维
  4. 系统安全
  5. 系统可用性
  6. 等等……


大多数程序员过于关注编码(新的框架,最佳实践,面向对象编程 vs 函数式语言,等等),但其实这些话题并不重要。


如果你发现自己只关注代码,那么你没办法通过更大的视角看问题:


公司花钱雇我们并不是为了让我们写出精致的代码,而是要我们用技术解决问题。


工程能力是 DEMO 模型中最显而易见的部分。但是开发者经常会忽略那些“不相关”的部分。千万不要这样,尽量扩展你的基础知识,从而能够真正解决问题。

📢 Marketing(营销能力)

营销能力是 DEMO 模式中最容易被忽略的部分,但是市场营销是一种能使你创造的价值倍增的活动。


市场营销的目的是让那些对你的应用或服务有需求的人,能够知道这个解决方案的存在。


了解市场营销可以帮助你回答以下问题:

  1. 人们是如何以及为什么购买你的产品或服务的?
  2. 这些人是谁?
  3. 你怎么和他们联系?
  4. 为什么我们需要在规定的期限内发布一些功能?
  5. 为什么大多数人会关注这些特性?


如果你需要了解市场营销,可以从《Crossing the Chasm》(中译本《跨越鸿沟》)开始,这本书的副标题是颠覆性产品营销圣经。

👑 Being Outstanding(追求卓越)


如何才能出类拔萃?


有很多方法可以做到这一点,但最重要的是:


  1. 让你的工作成果被看见。你需要学习如何谈论你的成果,特别是要把很难量化的事情说出来。另外,教导、帮助其他人解决同样的问题也是一个很好的方法。
  2. 获得同事们的认可。在别人需要帮助的时候伸出援助之手,以及主动承担项目中的交叉职责。
  3. 让工作关系之外的其他人认可你的专业能力。理想情况下,你希望决策者(CEO/CTO/招聘经理/企业主)了解你用技术解决问题的能力。至少,你需要在专业圈子里得到大家的认可。公开演讲和人际关系网络可以在这方面提供很多帮助。


总而言之,卓越来自于沟通技巧。贝尔实验室的一项研究


http://vlsicad.ucsd.edu/Research/Advice/star_engineer.pdf)也证明了这一点。


如何将这些知识付诸实践?


首先,做一个基本的自我评估,了解自己如何适应这个模型。回答下面这些问题:


  1. 我对所从事的行业了解多少?
  2. 我对工程学的哪些方面比较熟悉?在日常工作中,我有意识地使用到了哪些方面的知识?
  3. 我真的理解人们为什么会购买我们正在构建的产品/服务吗?
  4. 其他人知道我有这些知识吗?从我的简历上可以获得这些信息吗?


其次,制定一个进一步了解你所在领域的计划。可以从上面提到的书和文章开始,找到比你懂得多的人,向他们学习。


最后,也是最重要的——把新知识运用到实践中去!


目录
相关文章
|
1月前
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
1月前
|
设计模式 Dart
生成器(构建器)模式-原理到实战应用(Dart版)
生成器(构建器)模式-原理到实战应用(Dart版)
40 0
|
3天前
|
人工智能 自然语言处理
如何使用 Co-STAR 模型来设计提示词
如何使用 Co-STAR 模型来设计提示词
13 0
|
1月前
|
JSON 人工智能 数据库
【AI大模型应用开发】【LangChain系列】1. 全面学习LangChain输入输出I/O模块:理论介绍+实战示例+细节注释
【AI大模型应用开发】【LangChain系列】1. 全面学习LangChain输入输出I/O模块:理论介绍+实战示例+细节注释
94 0
【AI大模型应用开发】【LangChain系列】1. 全面学习LangChain输入输出I/O模块:理论介绍+实战示例+细节注释
|
1月前
|
JavaScript Java 测试技术
基于Java的智能训练管理平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的智能训练管理平台的设计与实现(源码+lw+部署文档+讲解等)
28 0
|
7月前
|
开发者
PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
|
9月前
|
前端开发 JavaScript 程序员
使用 ViroReact 开发增强实现应用的一个具体例子
使用 ViroReact 开发增强实现应用的一个具体例子
|
前端开发
前端学习案例-一个简单的++ --的原生问题
前端学习案例-一个简单的++ --的原生问题
34 0
前端学习案例-一个简单的++ --的原生问题
|
前端开发
前端知识学习案例7vs code-安装扩展
前端知识学习案例7vs code-安装扩展
49 0
前端知识学习案例7vs code-安装扩展
|
安全 Java 开发者
案例之简化模式测试|学习笔记
快速学习案例之简化模式测试
56 0
案例之简化模式测试|学习笔记