「我应该怎么进步处理问题的才干?虽然我把握了 JavaScript,却无法处理实践问题或了解杂乱的 JavaScript 代码。」

常常有年青的开发者朋友问我类似的问题。对开发者来说,处理问题非常重要。编写优秀的代码是一门创造性的艺术,而要成为超卓的开发者,就必须成为赋有创造力的能够处理问题的人。

我发现新手程序员犯的最大的过错是专注于学习语法,而不是学习怎么处理问题。—— V. Anton Spraul

虽然我观察到,处理问题的技能需求时刻和经验的堆集,但我深信把握它并不需求很多年;只要勇敢地直面问题,就会有所进步。我曾与许多初级开发人员一起作业,年青人们也比他们的老伙计更长于处理问题。

本文将详细解说三个技巧,让开发者能够像技能专家相同处理问题。重头戏开端之前,咱们先来看看技能专家和技能小白在处理问题方面有哪些不同。

专家思想 vs 新手思想

大多数人会逃避或胡乱处理问题。优秀的考虑者和领导者则会自动寻找问题,他们也具有能够更好地处理问题的方法。—— Michael Simmons

Robert J. Sternberg 教授依据美国心理学家 Herbert A. Simon、Robert Glaser 和 Micheline Chi 等人的研究,提醒了技能专家处理问题比技能小白更有用的隐秘。

3 个技巧,让你像技术专家一样解决编码问题

Arnaud Chevallier 在 Work forward in solving problems, not backward 一文中尖锐写道,「逆向作业法是一种从假定出发的方法。假如想要进步利润率,逆向作业法会指引你去寻找增加收入的方法,因为增加收入能够带来更高的利润率。那削减本钱呢?莫非在确认终究的处理计划之前,咱们不应该先全面地了解各种能够完成目标的方法吗?」

能够看到,技能专家通常会花很多的时刻寻找、清晰和定义问题,并且运用正向作业法处理问题,同时密切重视问题处理的进程。下面就跟大家分享,技能专家们常用的问题处理技巧。

三个专家级的问题处理技巧

01 问题十二连 The 12 What Elses

发问题听上去没什么难度,但要找到正确的、缺失的问题并准确地描述出来却不容易。Lenedra J. Carroll 介绍的「问题十二连 The 12 What Elses」能够有用帮助咱们摆脱这个苦恼。

在头脑风暴时,先提出一个问题,并生成 12 个答案;然后选取其间一个答案转化为下一个问题,再生成 12 个答案。不断重复此进程,直到获得一个清晰的处理计划。

经过接连地发问,咱们会得到一个「问题答复地图」,它对假定的测试和结构化处理杂乱问题很有帮助。

3 个技巧,让你像技术专家一样解决编码问题

发问和诘问是怎么将咱们往正确方向上引导的?下面两个例子或许会给你答案。

3 个技巧,让你像技术专家一样解决编码问题

3 个技巧,让你像技术专家一样解决编码问题

02 根本原因剖析法 Root Cause Analysis

咱们常常在多次处理失利后,才发现问题的状况跟预期有所不同,所以在开端处理问题之前,就要先了解其根本原因是什么。

只要消除过错的挑选,才干更好地定义问题并找到有用的处理计划。根本原因剖析法有助于防止在过错的方向上浪费时刻和精力。

3 个技巧,让你像技术专家一样解决编码问题

3 个技巧,让你像技术专家一样解决编码问题

当需求修正 Bug 时,开发者能够运用以下恣意方法,进行根本原因剖析:

  • 确认问题在哪个环境出现,并测验在相同和不同的环境中重现它,以把握更好的了解。
  • 假如与 Web 功能有关,能够剖析捆绑文件。
  • 进行单元测试和集成测试。
  • 进行日志文件剖析。
  • 进行交互式调试。

03 运用多元思想 Spectrum Thinking

二元思想以为事情的状况对错黑即白的,只要互相敌对的两种或许。有些时分它是正确的,但其他时分,它或许是一种过错的简化。

3 个技巧,让你像技术专家一样解决编码问题

与二元思想对应的是多元思想,也能够称作频谱思想(Spectrum Thinking)。它会考虑更多挑选、更多代替计划和或许性,比方「两者共存」「介于两者之间」「其他的或许性」或「二者皆否」等。

3 个技巧,让你像技术专家一样解决编码问题

经过培育多元思想,开发者能够有用提升创造力;你会惊奇地发现,修正 Bug、处理抵触、设计/执行客户需求的完成计划等居然会有这么多种处理计划和方法。

以展现信息概况为例,二元思想以为,信息概况要么经过弹窗展现,要么跳转到一个带回来箭头的新页面进行展现。

3 个技巧,让你像技术专家一样解决编码问题

3 个技巧,让你像技术专家一样解决编码问题

多元思想以为还有其他或许性,比方新增 Tab 页直接查看和更新信息,无需关闭当时列表页面。

3 个技巧,让你像技术专家一样解决编码问题

多元思想还或许以为,能够提供一个支撑三种布局的动态模板,让用户自主挑选要用以上哪种方法。

二元思想和多元思想各有利弊,在实践作业中能够合作运用。

写在最后

处理问题才干是一个超出软件开发范畴的话题,它高度取决于咱们的心态和态度。要想培育和进步处理(杂乱)问题的才干,首要要对问题和挑战充满好奇心,而不是感到懊丧。

就像 Tim Hicks 说的那样,「问题就像赛车道上的弯道。处理得好,便能够在接下来的直道中状况满分;假如过弯太快,很或许会引发侧翻,影响后续路程。」

(原文作者:Rakia Ben Sassi)


了解更多开发者提效、研制效能管理、前沿技能等音讯,欢迎重视 LigaAI@稀土掘金。

LigaAI 助力开发者扬帆远航,欢迎体会咱们的产品,期待与你一路同行!