问更好的问题,得到更聪明的答案:开发人员实用指南

2020-06-08 19:05:36

学习是一段永无止境的旅程。在你职业生涯的每一个阶段,你都会不断地学习、再学习、再学习。

找到问题答案的能力是关键,这些答案可以通过调试、谷歌搜索或提问获得。这些都是每个人都应该学习的技能。

虽然问问题很棒,但如果做得不对或效率较低,可能会导致长达数小时的无效率工作。在这篇文章中,告诉你如何提出有效的问题,成为一名更好的谷歌人,并磨练你解决问题的技能。

FreeCodeCamp为他们的学生想出了这个令人惊叹的方法,叫做阅读搜索询问方法,在尊重他人时间的同时,你可以有效地解决自己的问题。

在你提问之前,你应该按照这三个步骤顺序操作。

找到问题解决方案的第一步是了解问题本身。许多开发人员在不了解问题的情况下提出问题。记住,你想要高效地提问,同时也要尊重将要提问的人的时间。大多数情况下,错误的答案在于错误本身。如果你读了错误本身,问一些你本可以自己解决的问题是不好的。

调试错误的一个很好的方法是在控制台或终端上记录错误并读取错误。在此阶段可能会发生五件事:

-您可以确定错误的位置(可能是文件或代码段)

大多数情况下,仅仅这一步就可以帮助您解决问题,而且您练习得越多,您就越擅长调试和修复问题。有些bug可能比您的能力更复杂,您需要寻求外部帮助或资源。

让我们假设您不能从第一步就解决问题(但您至少能够发现错误);然后您需要阅读一些文档。这可能不适用于所有错误,但请确保在转到下一个步骤之前先运行您的问题。在确定您的错误之后,是时候确定原因并概述可能的修复方法了。

文档是在纸质、在线或数字或模拟介质(如录音带或CD)上提供的一组文档。例如用户指南、白皮书、在线帮助和快速参考指南。纸质或硬拷贝文档变得不那么常见了。~维基百科。

文档是特定编程语言、框架、库或技术的官方指南。要获得有关特定问题的第一手资源,最好的地方是查看该技术的官方帮助指南。

您可能配置错误、安装了错误的软件包或忘记导入某些内容,阅读导致该错误的技术人员的文档将帮助您快速找到修复程序。

最近我正在做一个Gatsby项目,在生产过程中我遇到了一些控制台错误和空白页面,而这在开发过程中是不会发生的。

太模糊了,对吧?在确定错误位置、阅读文档并尝试了几个修复后,我发现在Gatsby Google分析插件配置中,我将该数组保留为空,以避免从自定义路径发送页面浏览命中率。

插件:[{:`gatsby-plugin-google-analytics`,:{:';uca-xxxxxxxx-1';,:false,:true,:true,:[';';],:0,}]

经过3个小时的阅读错误、尝试识别错误和阅读Gatsby文档后,我发现Exclude[]选项中没有任何值,删除此选项解决了我的问题,因为我根本不需要排除任何页面。

这说明了您应该花一些时间进行调试的原因。这可能需要一些时间;这将是令人沮丧的,错误可能看起来很愚蠢,修复可能很简单,但它是值得的。您花在调试上的时间越多,您就会变得越好,下次修复更复杂的错误就会越快。

现在您已经阅读了您的错误和几个文档,但是您的错误正变得越来越复杂,是时候有效地在网络上搜索了。

搜索问题解决方案的最佳地方是Google,因为它已经从几个网页、开发社区和文档(如StackOverflow、Hashnode、FreeCodeCamp News、MDN、CSS Trick、Hackernoon等)中抓取了内容。

以下是一些最好的谷歌搜索提示,你可以试着更有效地获取答案:

-添加特定的域名,将您的搜索引导到特定的网站,从而节省一些时间。您可以在搜索后附加site:sitename,它将只返回该网站的结果。

-搜索特定站点中的特定标题和文本。这将允许您的结果包括与您指定的标题或文本关键字相关的资源。

-在搜索中添加特定关键字,并提取个别详细信息,如文件路径。如果您的bug与Python相关,则将其添加到搜索查询中;如果与对象相关,则也将其添加到搜索查询中。这将把结果简化到与您的bug相关的更广泛的可能资源中,因为几乎每种编程语言中都有对象。

-Google自动从您的查询中省略大多数非字母数字字符。您的搜索中不包括`!@#$%^&;*(){}[]<;>;等符号。因此,您可以将重点放在更具体的关键字上,如上所述。

-复制并粘贴您的错误(删除特定信息);有99.9%的可能性是其他人遇到了相同的错误,并且可能已经打开了某个问题或写了一篇关于此问题的文章。永远不要低估StackOverflow和GitHub问题的威力。

-在过去几年内进行搜索,因为程序在短短一段时间内发生了变化。这将确保您不会遇到多余的资源。

-重申,多次尝试不同的关键字和更通用的关键字,并打开多个选项卡,直到找到答案。一开始这可能会很尴尬,但当你坚持这样做时,你会变得更好,随着时间的推移,找到答案所需的时间和标签会更少。

现在,寻找的钻石来了。我建议,在你问任何问题之前,确保你已经完成了第一步和第二步。

这可能很难,但是你越早习惯这一点,你就会成长得越好。我让别人问我问题,当我把他们的问题复制并粘贴到Google上时,第一个结果100%回答了问题。这感觉不太好。

大多数情况下,我必须将链接发送给他们;同时,他们本可以自己做这件事,这样可以在提高他们解决问题的技能的同时为我节省一些时间。

即使你的隔壁邻居在谷歌工作,如果你的父亲是一名软件工程师,如果你的密友比你有两年的经验,那么在你投入时间自己寻找解决方案之前,尽量不要问他们问题。这将帮助您:

-建立更多的自信,因为你不需要太依赖别人。(如果有一天那位亲密的朋友不能回复你,你会怎么做?!)。

-节省你计划问问题的任何人的时间。全世界有许许多多的开发人员,你可能不是唯一一个问同一个人问题的人。通过先完成步骤1和步骤2,您还可以帮助经验比您少或问题更复杂的其他人快速获得答案。

-培养解决问题、调试、研究和搜索的技能。这些是帮助您成为更好的开发人员的基本技能。只有不断地练习,你才能掌握一项技能,所以一定要经常练习,看着自己成长并掌握这门艺术。

现在您已经完成了这两个步骤,但是您需要来自导师、高级开发人员、团队领导、当地社区、小组或朋友的外部帮助。那么你如何有效地提问呢?

-完成步骤2,这样您至少可以深入了解问题的可能原因和解决方案。

-现在进行一些研究,您要么是在[Stackoverflow](https://stackoverflow.com/)或[Hashnode](https://hashnode.com/))这样的开发社区中提问,要么是向您认为比您更有经验的人寻求帮助。

-在开发社区上回答问题的开发人员正在牺牲他们的时间来帮助您,通过问清楚而简洁的问题来帮助他们。你应该慎重而准确地选词,仔细造句以避免混淆。从第1步和第2步开始,根据以下内容正确起草问题:

-研究努力的证明(一旦开发人员看到你已经做了一些努力,他们会更乐意帮助你)。添加指向您已检查的资源和已尝试的解决方案的链接

-熟悉CodePen、CodeSandBox、GitHub Gist、Repl.it和GitHub等工具,这样您就可以轻松地提供指向代码片段、工作项目或模拟复制的链接,而不必键入太多文本。请尽量不要在聊天中粘贴超过一行的代码。

-在必要的地方截取干净清晰的屏幕截图。大多数情况下,您可以为较小的问题拍摄控制台错误的快照。确保你不会拖累正在提问的人的眼睛。拍摄与您的错误相关的具体而清晰的屏幕截图。

-确保你问的是正确的人或社区。不要向只懂Java的人问与Python相关的问题。您上一步的研究将在这方面对您有所帮助。给特定的社区、个人或团体加书签也是很棒的,你会根据他们对你的回答有多有效来定期提出问题。

-现在,不要害怕问。我也遇到过类似这样的评论:这很简单,来吧,谷歌一下吧,你应该知道这一点,你可能也知道这一点。互联网是好人和坏人的结合体,他们可能欢迎也可能不欢迎。要对自己有信心,你已经完成了第一步和第二步的任务,所以可以自由地提出问题。

你不需要什么都知道,你只需要知道,知道怎么做,在哪里可以找到更多的知识。

亲爱的10x,资深人士,这很简单,工程师,请注意,您正在伤害提出问题的开发人员。几年前,我不得不与我的自信作斗争,我花了一段时间才克服了这一点。

对于学习者来说,已经有太多的东西要与之抗争(学习、冒名顶替综合症和个人问题),请不要再增加,要欢迎,让他们觉得自己属于这里,并支持他们。

你的回答可能会有意无意地影响某人下次自由提问的决定。如果您不能或不能联系到,您可以完全不回复,也可以友好地回复反馈。

如果你没有能力照顾别人,就把他们介绍给你的朋友,给他们建设性的批评,并确保你不会在没有反馈或影响的情况下留下问题。

初学者开发人员需要支持。学习编程是很难的,特别是当你一个人在做的时候。如果你是在传统的教室里学习,一定要与其他学生建立网络关系。一起做作业。讨论这些问题。如果你是在网上学到的,你很容易灰心丧气。找出与其他旅途相似的人的聊天空间,并利用这个空间相互鼓励。推特也让你可以接触到专家(原因#49948我为什么喜欢推特)。找到专家,不管你是什么,重新学习并使用他们的内容。如果需要的话,可以问他们一些问题。关键不是单打独斗。~安吉琼斯。

这个行业每天都在增长;我们都在努力学习,在不同的水平上变得更好。许多开发人员社区都在提供支持,并将资源提供给用户使用。确保你是这场运动的一部分,使用可用的资源,为这些资源做出贡献,并尽你所能成为一个帮助者。

感谢全球所有令人惊叹的开发人员,他们创建和共享内容/项目,你们的贡献是支撑当今技术生态系统的支柱。🙏💙。

请注意,我在Hashnode采访了令人敬畏的科技女性,在那里我了解了科技行业目前的健康状况,从她们的个人和职业成长中获得了洞察力,并激励其他女性变得更好。在这里阅读所有过去的采访,相信我,这是值得你花时间的。:)。

不要把你的一生都花在等待采取行动的最佳时机、写那篇文章、做那个副业、申请那份工作或今天就问那个问题。最好的时刻永远是现在!