
最近几个月为我的职业生涯带来了许多有意义的经验。 它所承诺的全部是软件开发,它以快速的节奏和富于头脑的吸引力以及非常多的错误,哦,太激动了! 学习新技术是兴奋的一部分,也是寻找解决现实问题的乐趣。 我迫不及待地想建立解决贫困和残疾问题的解决方案。 所以我想学习:我是#juniorDev4Life。
回到我的主要主题,我从过去的几个月中分享了一个重要的教训,我认为这对我来说是成长的。 我遇到了许多程序问题。 在学习了大量新知识以实施解决方案之后,其中许多人通常在代码中都有其解决方案。 这是我选择的路径,所以不,我不是在抱怨,但是我认为应对所有解决方案和信息的方法是,问自己“什么是正确的问题?”,我不必太在意为什么这个问题是如此重要。 在科学史的过程中,这个问题导致了惊人的发现。
那么,这对我的旅程有何影响? 根据JIRA上的任务或用于项目管理的任何工具,正确的问题可能是:我是否需要为此使用库? 如果是这样,什么图书馆? 如何影响我捆绑的文件大小? 许可证是否允许我将其用于预期目的? 在实施过程中,我可能会问,我的解决方案如何扩展? 是否有更有效的算法,更适合该解决方案? 我的代码正确吗? 我的解决方案是否全面? 我需要测试什么? 为什么需要测试? 好吧,问题永无止境。 但是,关于这些问题的重点是我们是否提出了正确的问题,我们周围到处都有大量答案。
正确的问题取决于您要做什么,最重要的是,您对问题的理解。 很多时候,在简单地陈述问题,用任何合适的词汇解释问题时,我都找到了解决问题的方法。 在寻求解决方案时,我也许已经提出了正确的问题。 有时,我问的一个问题只是被告知我的问题对我要解决的问题没有正确答案,因为我的问题范围太小。 如果我以最简单的方式(例如,“我正在尝试……”)开始陈述问题,那么我将在最高层次上看到问题,而在那一点上,解决方案可能不是在一节中编写代码而是在另一部分。 也许这种高级问题陈述可能会优先选择一种算法解决方案。 因此,要提出正确的问题,我发现我需要了解我要完成的任务,预期要完成的任务以及目标是什么:以最高级的形式陈述问题。
每当我找到正确的问题时,我都会进行更多相关的搜索,随着时间的推移效率会提高,并且学到更多。 就我而言,在完成一项任务时获得的学习往往会留在记忆中。 我知道我做的更好。 我能在骨头里感觉到它!
我很高兴在这里或在Twitter @natemmartin上进一步探讨这个主题。 我们可以更好🙂