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


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


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


目录
相关文章
|
2月前
|
Go API 数据库
Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
本文介绍了 Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
130 4
|
7月前
|
SQL BI
技术心得:如何利用Framework模型生成IQD文件
技术心得:如何利用Framework模型生成IQD文件
44 0
|
8月前
|
存储 编译器 C语言
【C++基础】 --- C++在C的基础上对一些语法的增强
【C++基础】 --- C++在C的基础上对一些语法的增强
31 3
PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
|
存储 算法 NoSQL
​浅谈分布式唯一Id生成器之最佳实践
​浅谈分布式唯一Id生成器之最佳实践
336 1
|
前端开发
前端学习案例-一个简单的++ --的原生问题
前端学习案例-一个简单的++ --的原生问题
43 0
前端学习案例-一个简单的++ --的原生问题
|
前端开发
前端知识学习案例7vs code-安装扩展
前端知识学习案例7vs code-安装扩展
78 0
前端知识学习案例7vs code-安装扩展
|
前端开发 JavaScript 容器
【React高级技术】合成事件以及 Test Utilities测试框架在Facebook内部进行测试
【React高级技术】合成事件以及 Test Utilities测试框架在Facebook内部进行测试
|
机器学习/深度学习 人工智能 BI
重磅系列文章|UI2Code智能生成Flutter代码--整体设计篇
UI2CODE项目是闲鱼技术团队研发的一款通过机器视觉理解+AI人工智能将UI视觉图片转化为端侧代码的工具。
6949 0
|
Web App开发 数据库
【自然框架】——Demo(一)
  这是一个应用自然框架写的一个“配置信息管理程序”,目的就是管理配置信息的,因为自然框架最主要的就是“配置信息”也就是元数据,那么这个配置信息要怎么管理?手动修改吗?那也太麻烦了呀。我不知道Hibernate 的XML有没有一个配套的管理程序,不过我的自然框架是需要一个程序来辅助管理一下配置信息的。
822 0

热门文章

最新文章