共计 2003 个字符,预计需要花费 6 分钟才能阅读完成。
「我应该如何进步解决问题的能力?只管我把握了 JavaScript,却无奈解决理论问题或了解简单的 JavaScript 代码。」
常常有年老的开发者敌人问我相似的问题。对开发者来说,解决问题十分重要。编写优良的代码是一门创造性的艺术,而要成为杰出的开发者,就必须成为富裕创造力的可能解决问题的人。
我发现老手程序员犯的最大的谬误是专一于学习语法,而不是学习如何解决问题。—— V. Anton Spraul
只管我察看到,解决问题的技能须要工夫和教训的积攒,但我深信把握它并不需要很多年;只有怯懦地直面问题,就会有所提高。我曾与许多高级开发人员一起工作,年老人们也比他们的老伙计更长于解决问题。
本文将具体解说三个技巧,让开发者能够像技术专家一样解决问题。重头戏开始之前,咱们先来看看技术专家和技术小白在解决问题方面有哪些不同。
01 专家思维 vs 老手思维
大多数人会回避或胡乱解决问题。优良的思考者和领导者则会被动寻找问题,他们也领有可能更好地解决问题的办法。—— Michael Simmons
Robert J. Sternberg 传授依据美国心理学家 Herbert A. Simon、Robert Glaser 和 Micheline Chi 等人的钻研,揭示了技术专家解决问题比技术小白更无效的机密。
Arnaud Chevallier 在 Work forward in solving problems, not backward 一文中犀利写道,「逆向工作法是一种从假如登程的办法。如果想要进步利润率,逆向工作法会指引你去寻找增加收入的方法,因为增加收入能够带来更高的利润率。那缩小老本呢?难道在确定最终的解决方案之前,咱们不应该先全面地理解各种能够实现目标的方法吗?」
能够看到,技术专家通常会花大量的工夫寻找、明确和定义问题,并且应用正向工作法解决问题,同时亲密关注问题解决的过程。上面就跟大家分享,技术专家们罕用的问题解决技巧。
02 三个专家级的问题解决技巧
1. 问题十二连 The 12 What Elses
提问题听下来没什么难度,但要找到正确的、缺失的问题并精确地形容进去却不容易。Lenedra J. Carroll 介绍的「问题十二连 The 12 What Elses」能够无效帮忙咱们解脱这个苦恼。
在头脑风暴时,先提出一个问题,并生成 12 个答案;而后选取其中一个答案转化为下一个问题,再生成 12 个答案。一直反复此过程,直到取得一个明确的解决方案。
通过间断地发问,咱们会失去一个「问题答复地图」,它对假如的测试和结构化解决简单问题很有帮忙。
发问和诘问是如何将咱们往正确方向上疏导的?上面两个例子可能会给你答案。
2. 根本原因分析法 Root Cause Analysis
咱们常常在屡次解决失败后,才发现问题的状况跟预期有所不同,所以在开始解决问题之前,就要先理解其根本原因是什么。
只有打消谬误的抉择,能力更好地定义问题并找到无效的解决方案。根本原因分析法有助于防止在谬误的方向上浪费时间和精力。
当须要修复 Bug 时,开发者能够应用以下任意形式,进行根本原因剖析:
- 确定问题在哪个环境呈现,并尝试在雷同和不同的环境中重现它,以把握更好的了解。
- 如果与 Web 性能无关,能够剖析捆绑文件。
- 进行单元测试和集成测试。
- 进行日志文件剖析。
- 进行交互式调试。
3. 应用多元思维 Spectrum Thinking
二元思维认为事件的状态是非黑即白的,只有相互对抗的两种可能。有些时候它是正确的,但其余时候,它可能是一种谬误的简化。
与二元思维对应的是多元思维,也能够称作频谱思维(Spectrum Thinking)。它会思考更多抉择、更多代替计划和可能性,比方「两者共存」「介于两者之间」「其余的可能性」或「二者皆否」等。
通过造就多元思维,开发者能够无效晋升创造力;你会诧异地发现,修复 Bug、解决抵触、设计 / 执行客户需要的实现计划等竟然会有这么多种解决方案和形式。
以展现信息详情为例,二元思维认为,信息详情要么通过弹窗展现,要么跳转到一个带返回箭头的新页面进行展现。
多元思维认为还有其余可能性,比方新增 Tab 页间接查看和更新信息,无需敞开以后列表页面。
多元思维还可能认为,能够提供一个反对三种布局的动静模板,让用户自主抉择要用以上哪种形式。
二元思维和多元思维各有利弊,在理论工作中能够配合应用。
写在最初
解决问题能力是一个超出软件开发领域的话题,它高度取决于咱们的心态和态度。要想造就和进步解决(简单)问题的能力,首先要对问题和挑战充斥好奇心,而不是感到丧气。
就像 Tim Hicks 说的那样,「问题就像赛车道上的弯道。解决得好,便能够在接下来的直道中状态满分;如果过弯太快,很可能会引发侧翻,影响后续赛程。」
(原文作者:Rakia Ben Sassi)
理解更多开发者提效、研发效力治理、前沿技术等音讯,欢送关注 LigaAI@SegmentFault。
LigaAI 助力开发者扬帆远航,欢送体验咱们的产品,期待与你一路同行!