写点什么

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

用户头像
俞凡
关注
发布于: 4 小时前
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. 其他人知道我有这些知识吗?从我的简历上可以获得这些信息吗?


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


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


发布于: 4 小时前阅读数: 8
用户头像

俞凡

关注

还未添加个人签名 2017.10.18 加入

俞凡,在上海、达拉斯生活的技术人,关注高可用架构、高性能服务、5G、人工智能、区块链、DevOps、Agile等。公众号:DeepNoMind

评论

发布
暂无评论
DEMO模型--成为更好的开发者