关于程序人生:3-个技巧让你像技术专家一样解决编码问题

2次阅读

共计 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 助力开发者扬帆远航,欢送体验咱们的产品,期待与你一路同行!

正文完
 0