优秀的开发者凤毛麟角,他们在技术圈子里拥有明星般的光环,受到各个公司的追捧。他们为什么能成功?他们比其他开发者在哪些方面做得更好?想成为优秀的开发者,除了要有过硬的技术能力,其他方面也需要获得重视,这就是 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(领域知识)
领域知识在本质上非常简单:了解你所在行业的规则。
你应该了解流程是如何运作的,规则是如何制定的,这个领域有哪些可行的策略。
你应该对你所从事的行业有一个全面的了解。
了解领域知识有以下几个方面的好处:
- 使交流更容易。
- 有助于理解业务部门所做的决策。
- 有助于预测系统可能的规模和变化。
业务是一个大系统,开发人员所创建的所有内容都存在于这个系统中,因此会受到它的规则的影响。
如果你从来没有将业务视为一个系统,推荐你看一下《E-Myth Revisited》(中译本《创业必经的那些事》)。
🔧 Engineering(工程能力)
一般来说,工程学研究的是怎样构建效果可预测的系统,人们最终是为这些效果买单。
在我们的语境中,工程包括:
- 编码
- 系统设计
- 系统维护和运维
- 系统安全
- 系统可用性
- 等等……
大多数程序员过于关注编码(新的框架,最佳实践,面向对象编程 vs 函数式语言,等等),但其实这些话题并不重要。
如果你发现自己只关注代码,那么你没办法通过更大的视角看问题:
公司花钱雇我们并不是为了让我们写出精致的代码,而是要我们用技术解决问题。
工程能力是 DEMO 模型中最显而易见的部分。但是开发者经常会忽略那些“不相关”的部分。千万不要这样,尽量扩展你的基础知识,从而能够真正解决问题。
📢 Marketing(营销能力)
营销能力是 DEMO 模式中最容易被忽略的部分,但是市场营销是一种能使你创造的价值倍增的活动。
市场营销的目的是让那些对你的应用或服务有需求的人,能够知道这个解决方案的存在。
了解市场营销可以帮助你回答以下问题:
- 人们是如何以及为什么购买你的产品或服务的?
- 这些人是谁?
- 你怎么和他们联系?
- 为什么我们需要在规定的期限内发布一些功能?
- 为什么大多数人会关注这些特性?
如果你需要了解市场营销,可以从《Crossing the Chasm》(中译本《跨越鸿沟》)开始,这本书的副标题是颠覆性产品营销圣经。
👑 Being Outstanding(追求卓越)
如何才能出类拔萃?
有很多方法可以做到这一点,但最重要的是:
- 让你的工作成果被看见。你需要学习如何谈论你的成果,特别是要把很难量化的事情说出来。另外,教导、帮助其他人解决同样的问题也是一个很好的方法。
- 获得同事们的认可。在别人需要帮助的时候伸出援助之手,以及主动承担项目中的交叉职责。
- 让工作关系之外的其他人认可你的专业能力。理想情况下,你希望决策者(CEO/CTO/招聘经理/企业主)了解你用技术解决问题的能力。至少,你需要在专业圈子里得到大家的认可。公开演讲和人际关系网络可以在这方面提供很多帮助。
总而言之,卓越来自于沟通技巧。贝尔实验室的一项研究
(http://vlsicad.ucsd.edu/Research/Advice/star_engineer.pdf)也证明了这一点。
如何将这些知识付诸实践?
首先,做一个基本的自我评估,了解自己如何适应这个模型。回答下面这些问题:
- 我对所从事的行业了解多少?
- 我对工程学的哪些方面比较熟悉?在日常工作中,我有意识地使用到了哪些方面的知识?
- 我真的理解人们为什么会购买我们正在构建的产品/服务吗?
- 其他人知道我有这些知识吗?从我的简历上可以获得这些信息吗?
其次,制定一个进一步了解你所在领域的计划。可以从上面提到的书和文章开始,找到比你懂得多的人,向他们学习。
最后,也是最重要的——把新知识运用到实践中去!