John Wick 为 10x 开发人员提供的 8 条建议
警告——鉴于此处评论的电影,本文中存在文字和图形暴力(来自强制性的 gif)。
警告——从下一句开始,本文充满剧透。
《疾速追杀3》的上映正是一个绝佳的机会,让我们来审视一下这位虚构的刺客,并思考他究竟有何独特之处。他与世界为敌,却依然逍遥法外。他杀了那么多人,却只造成了微乎其微的伤害。电影里叫他巴巴亚嘎,但我们开发者或许更想叫他……十倍刺客。
事实上,这部电影真正令人惊叹的地方之一,在于他们对方法论的深入研究。的确,它并非那种英雄无敌、弹匣无限的常规动作片。他面对的不是像冲锋队那样精准的敌人,而是技艺精湛的杀手。但约翰·威克却胜过他们。
约翰是一个专注、忠诚、意志坚强的人
影片讲得很清楚。他之所以与众不同,是因为他运用了刺客的SCRUM、XP和ITIL。而且他的经验教训引人入胜。
1 — 广泛了解基础知识
在三部电影中,我们看到约翰·威克操作着各种工具、武器和车辆。他能用古董枪和最新一代的霰弹枪战斗。他能驾驶汽车、骑马和骑自行车。他能使用各种刀刃。
但它之所以重要,并非你想的那样。如果你只知道如何使用锤子,那么所有问题看起来都像钉子。这在其他类型的电影中尤其如此,比如超级英雄电影,主角们只有非常有限的超能力,却能用这些能力解决所有问题。
虽然作者没有提供任何证据,但认为人类思维只能基于已有的想法构建想法似乎是合理的。如果你假设你只能通过将两个想法混合在一起来构建一个想法,那么在给定时间内你能产生的新想法的数量就是 N 个已有想法中 2 个想法的组合。
- 2 个想法可以产生 1 个新想法
- 3 个想法可以产生 3 个新想法
- 10 个想法可以产生 45 个想法
- 100 个想法可以带来 4950 个新想法
如果你遵循这种思路,你就很容易理解,如果你掌握了所有感兴趣领域的所有基础知识,那么你为任何问题所能提出的解决方案的数量将是爆炸性的。
这就是约翰·威克能用笔杀人,用普通腰带挥舞军刀的原因。他了解基本原理,所以只需要把想法拼凑起来。而且,由于他经验丰富,他可以在脑海中测试各种想法,看看是否可行。
举个例子:用笔杀人,他不会用笔刺人。相反,他会把笔抵在墙上,然后用笔头猛击笔尖。他知道笔不够锋利,不能当刀用,但也知道如果掉在尖锐的物体上很容易丧命。接下来要做的就是制造一个尖锐的物体,让对手掉在上面。
如果将其转化为编程技能,则意味着了解计算机架构、网络、不同编程语言等方面的基础知识。关于这一点,有一本值得一读的书是《现代操作系统》,它很好地涵盖了大部分基础知识。
如果您了解堆栈中的所有层,那么您将更容易找到所面临问题的有效解决方案 - 甚至首先识别问题。
2 — 准备即兴发挥
给我六个小时砍倒一棵树,我会花前四个小时磨斧头。
在电影中,我们可以看到约翰·威克是一位出色的策划者,他经常会精心准备攻击。然而,尽管他总是能比对手提前思考几步,但他并不总是有机会把所有事情都安排得恰到好处。
在第一部电影中,他追杀俄罗斯教父的儿子就体现了这一点。第一次袭击略显仓促,最终以失败告终。而第二次袭击,他收集了足够多的关于黑帮据点的情报,并策划和执行了袭击,最终达到了他最初的目标(也就是杀死教父的儿子)。
这次袭击不仅要找到有利位置狙击所有保镖,还要用炸药包围所有车辆,阻止他们撤退。简而言之,他们毫无生还的希望,而另一方面,约翰的效率却高得惊人。
规划并不意味着要盲目地遵循一个应该有效的计划。它意味着要制定一个比幼稚方法更有效的策略,因为你会找到一条避开所有陷阱的路径。
但这还不是全部。尽管约翰·威克精心策划,敌人总能找到出其不意的方法。他是个策划者,而不是预言家。正因如此,他的计划并非像《十一罗汉》那样,而是有分支、有选项的策略。基础已经打好,稳如磐石,这让他有充足的精力去思考接下来的细节。
这就像做演讲一样。如果你事先不知道该说什么,演讲就会一团糟。相反,如果你事先准备好了要讲的内容,即使演讲过程中有人问了一些意想不到的问题,演讲也能让人理解。
简而言之,如果您希望有足够的脑力来解决意外(和不可预料?)的问题,那么准备和计划是必不可少的。
3. 削减范围,而不是质量
你是否曾经因为截止日期临近而匆忙完成一个项目,担心自己会迟到?这通常意味着你写出的代码质量很差,最终会在接下来的五年里困扰你或你的继任者。
但这真的能保证按时交付吗?有很多方法可以提高代码速度,比如延长工作时间或提高专注度。但偏离最佳实践并非良策。最佳实践之所以成为最佳实践,并非因为它们速度慢、效率低,恰恰相反。
你可以猜到,这篇文章的作者特别喜欢《帕拉贝伦》里的古董枪场景。约翰被锁在一扇劣质门后,知道敌人很快就会闯进来,他必须杀了他。在房间里,他找到了古董枪,并立即选择了最精准的那把。然而,这把枪似乎配不上他想要的子弹,于是他用房间里找到的其他枪的零件组装了一把新枪,最终得到了他那把一发子弹就能打中的超精准古董枪。而另一个家伙在枪组装好的瞬间就破门而入,结果却被一颗子弹击中头部。
整个故事的重点在于,约翰·威克专注于核心功能——一把精准的枪,只为他需要的那次射击——而没有添加任何额外的东西。他只在枪里装了一颗子弹。
因此,即使在极端压力下,他仍然决定完美地完成一项任务,而不是在许多任务上草率行事。而且这种方法奏效了。
4 — 预测客户
在第二章中,我们这位杀手朋友的第一个任务是去刺杀一位黑手党老大。他受了她那嫉妒心强的哥哥的委托,顺利完成了任务。但诡计在于此:一旦任务完成,这位哥哥就会派人埋伏,把约翰也除掉。
约翰计划得非常周全,他把枪安放在所有可能被伏击的地点,以便在合适的时间拿到合适的武器。最后他逃脱了,电影继续讲述他愤怒的兄弟的故事。
但这种情况也经常发生在开发人员身上。比如,假设客户要求你制作一个表单,用于向商业团队发送电子邮件,但要求不存储邮件内容或提供任何类似服务。你完全可以肯定,几周之内,客户就会要求你保证这样或那样的事情(“发送了多少封邮件?”,“我们确定foo@bar.com没有发送邮件吗?”,“邮件功能正常吗?”等等)。
虽然这些典型的未指定的请求本身就是一整篇文章的主题,但您确实需要在编码时预测它们,因为否则您的客户会无缘无故地杀死您。
5 — 没有灵丹妙药
电影里几乎每个被杀的人都至少身中两枪。事实上,确保每个人都死无葬身之地似乎是一条核心原则。这避免了电影里那种经典的错误:以为有人死了,结果才发现对方已经拿起枪指着你。
在开发人员工作的各个层面,情况也是如此。开发一个功能时,最好使用单元测试、集成测试、手动测试等等进行测试。编写规范或文档时,最好在不同的地方以不同的方式重复同一件事。总而言之,无论做什么,都要确保没有单点故障。
对于工具、技术甚至人员来说,情况也是如此。没有任何单一的解决方案能够神奇地解决所有问题。你需要多种观点的碰撞、多种代码检查工具的相互配合,或者多种测试方法的通过,才能确保获得最佳的输出。
冗余可以减少已解决的问题再次给您带来麻烦的风险。
6. 听取专家意见
电影中,约翰多次向专家寻求帮助。无论是读地图还是选择枪支,他都尽可能地把选择权交给别人。的确,他在很多领域都是通才,在少数领域更是专家,但他总能找到在特定领域比他更优秀的人。
他毫无异议地接受了这些建议。他的视野开阔,在三部电影中,他基本上从未使用过同一种武器两次。
当然,这需要几个先决条件。首先,你需要认识一些专家来交流。大陆航空似乎出奇地公平地认可专家,而不是宣传江湖骗子或炒作。开发者社区的效率可能较低,但仍然有很多地方可以获得好的建议(你听说过 DEV.to 吗?)。
另一个是能够认识到自己的不足,并知道自己不知道什么,而这是大脑天生做不到的。你可以阅读《开发者如何停止学习:专家初学者的崛起》及其所有后续相关文章,了解更多关于这方面的内容。
最后,你必须能够不断走出自己的舒适区。习惯和停滞不前是没有立足之地的。充分利用你所掌握的知识,但要不断尝试各种技术、工具或范式。正如上文所述,如果你的基础扎实,那么你可以轻松地一点一点地突破你所掌握的知识,而不会迷失方向。
获取外部知识至关重要,而开发人员最强大的技能之一就是发现和整合这些知识的能力。
7 — 不要倦怠
电影一次又一次地展现了主角的惊人能力,即使与超级英雄相比,他也是有史以来最强悍的虚构人物之一。他几乎可以在几天之内杀死任何世界黑手党头目,并且逍遥法外。为了给他的爱犬报仇,他甚至毫不犹豫地独自一人与犯罪组织开战。
但你猜怎么着?他毫不犹豫地动用一切手段,甚至包括用“大陆领土上无事可做”的规则来为自己辩护。他还利用所有对他的承诺或协议来争取支持。
故事的基调是,他孤身一人对抗整个世界,但事实上,他时不时会陷入无法独自逃脱的境地,需要别人来拯救他。
他所做的一切都是在对他的健康、能量和火力的安全范围内进行的,即使这需要休息或寻求帮助,尤其是在关键时刻。
8 — 不要放弃,一步一步来
虽然电影讲述了一个人独自对抗整个犯罪集团的故事,但这并非一场史诗般的战斗,他需要同时面对所有犯罪集团。实际上,他同时与两人以上战斗的场景非常少。
一切都与战斗的设定有关。战斗发生在一些不允许进行大规模战斗的地方,更像是300式的策略游戏,所有敌人都会一个接一个地出现。
无论任务多么艰巨,它总是可以分解成更小的步骤。每一步都很小,而且是可以实现的。每一步都可能失败,但这只是一个尝试新策略的机会。
在第一部电影中,这一点非常明显,一名突击队员被派到他家准备刺杀他。他通过在黑暗中引诱袭击者,有条不紊地逐一击毙。最后一位袭击者在刀战中被击毙。虽然最初的刺杀没有奏效,但他像把钉子钉进木头一样用刀刺入,最终成功了。
约翰·威克每次只解决一个问题,并确保问题完全解决后再进行下一个。他一点一点地让不可能的任务变得更容易完成。
结论
《疾速追杀》系列电影的制作非常用心,每个角色的每一个动作都能得到合理的解释。影片将悬念降到最低,人物设定也比以往任何动作片都更加真实。
这使得它成为一个非常有趣的案例研究,因为虽然血腥和暴力,但主角的行为实际上与发展有关,并且它们确实可以作为当任何错误都可能意味着死亡时应采取的行为的非常具有说明性的例子。
当然,我们的工作风险通常较低,但这仍然是一个奇妙的观点。
文章来源:https://dev.to/xowap/8-tips-from-john-wick-for-10x-developers-366p