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. 其他人知道我有这些知识吗?从我的简历上可以获得这些信息吗?


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


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


目录
相关文章
|
6天前
|
Go API 数据库
Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
本文介绍了 Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
26 4
|
6天前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
26 1
|
6天前
|
缓存 监控 前端开发
在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统
本文深入探讨了在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统。
36 1
|
4月前
|
Java 关系型数据库 测试技术
基于SpringBoot+Vue的商业辅助决策系统的设计与实现(源码+部署说明+演示视频+源码介绍)(1)
基于SpringBoot+Vue的商业辅助决策系统的设计与实现(源码+部署说明+演示视频+源码介绍)
49 1
|
4月前
|
存储 数据可视化 数据库
基于SpringBoot+Vue的商业辅助决策系统的设计与实现(源码+部署说明+演示视频+源码介绍)(2)
基于SpringBoot+Vue的商业辅助决策系统的设计与实现(源码+部署说明+演示视频+源码介绍)
49 1
|
4月前
|
负载均衡 安全 测试技术
基于SpringBoot+Vue的商业辅助决策系统的设计与实现(源码+部署说明+演示视频+源码介绍)(3)
基于SpringBoot+Vue的商业辅助决策系统的设计与实现(源码+部署说明+演示视频+源码介绍)
57 0
|
6月前
|
JavaScript Java 测试技术
基于Java的智能训练管理平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的智能训练管理平台的设计与实现(源码+lw+部署文档+讲解等)
44 0
|
6月前
|
数据可视化 数据管理 数据建模
CodeWave智能开发平台--02--目标:文档快速阅读--01快速构建一个应用
CodeWave智能开发平台--02--目标:文档快速阅读--01快速构建一个应用
PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
|
前端开发
前端学习案例-一个简单的++ --的原生问题
前端学习案例-一个简单的++ --的原生问题
38 0
前端学习案例-一个简单的++ --的原生问题
下一篇
无影云桌面