译者:飞龙
自豪地采用谷歌翻译
你正在以你的方式构建个人流程,它让你以有限的阻碍快速起步。拥有良好的起步流程,以及培养一种尽管去做的能力,就是创造力的基础。创造力是一种流动性和放松的心态。如果你的起步充满阻碍和沮丧,那么很难进入这个流程。学习“点击”你的大脑,使其进入具有创造力的、松散的 Hack 模式,可以帮助你使用创造力解决问题,并提高生产力。
如果你做的是垃圾,那就没有意义了。首先,是的,显然,你所做的绝大多数都是垃圾,但你不想在你的余生中制造糟糕的软件。你需要平衡创造性的黑客心态和严谨的质量心态。我提倡人们在创造性表达和批判性思维模式之间切换。通过放松和创造力,你想出你的想法并实现它,然后通过批评自己的工作来使他们可靠和品质高。
在第二部分中,当你跟踪 45 分钟内实现的功能数,并寻找可以改进你的启动流程的地方时,实际上就做到了它。但是,由于批判性思维模式是创造力的杀手,因此你无法同时 Hack 和分析你的流程。这个建议几乎涵盖了我所知道的每一个创造性规律,并帮助你在工作时不使用自己的方式。
注
创造过程中的批评会扼杀你的想象力。没有批评的创造只会产生垃圾。你需要这两个,但不是同时。
在第三部分中,你将切换到专注于质量和开发个人流程,从而提高你的质量。为了使其变得简单,我只会将质量定义为:
低缺陷率和可理解的代码。
大多数程序员在这两个方面绝对是糟糕的。绝大多数开发人员认为,当编译完成时,他们的工作就完成了,就是这样。他们运行了测试套件,所以就完成了!我称这个“程序员风格的完成”,其中它们对自己的作品没有自我批评的评价,因为他们完全相信他们的电脑来找出所有的缺陷。他们似乎从来不在乎,别人是否可以理解他们的代码,只关注它是否运行良好来满足最低限度。如果你曾问过他们每天的缺陷率,他们会瞪着你,说这并不重要。代码覆盖?呸。他们的测试套件有 10 万行代码!它肯定测试了一切东西!
为了成为一名更好的程序员,你必须开始开始做一些残酷的事情,观察自己的质量指标和实践。我说这项工作是残酷的,因为它清晰并明确地展示出你是多么糟糕,对于那些开心地认为他们很棒的人来说,这可能是个悲剧。那些具有骗子综合症的人,会发现这种质量分析令人耳目一新,因为它会给你一个合理的想法,你的工作有多好,以及一个改进计划。
数据结构是一个简单的概念。你的计算机拥有内存和放入内存的数据。你可以随意填充它,也可以提供一种使数据更容易处理的结构。自从“计算机科学”开始以来,人们一直在分析如何为不同目的构建数据,然后这些结构有多好。由于数据结构定义好了,我们可以使用它们来研究你的质量实践。你将实现每个数据结构并进行测试,然后通过两个步骤来确定实现的质量。
你进行数据结构练习的流程如下:
这就是相关的流程,所以这部分的前两个练习(练习 13 和 14)将由我完成,现场制作,所有的缺陷都是我做的,所有的代码都是我写的。你可以在视频中看到这个流程的工作原理,并在练习中阅读我的代码,以便你了解预期的东西。我会遵循我上面所述的严格流程,尽可能接近,所以你需要仔细观看视频。
有一种正式的数学方法,用于研究算法和数据结构,但我不会设计过多背后的理论。如果你对这个微小的简介感兴趣,那么你可以阅读几本这个主题的书,并花几年研究这个计算机科学分支。在这本书中,我将向你提供练习,以便你学习如何从记忆中实现它们,并了解它们的工作原理。你不需要正式的证明,只需要简单的 Python 代码和反复尝试。
通过这些练习,我希望你遵循一种具体的方式来研究它们,以便你可以从记忆中实现它们。当我学习音乐,和尝试画出我看到的东西时,我使用这个相同的流程。它适用于任何东西,其中你需要记住一个概念,但也可以通过创造力应用于不同的情况,所以你不能只是记住它。相反,你执行我所说的“记忆,尝试,检查”:
我喜欢进行 2~15 分钟的记忆,然后进行 10~45 分钟的尝试,但你会知道你什么时候用完所有知识,需要去获得更多。我将给出一个具体的例子,解释我如何根据我的记忆来画画:
我从这个流程中画出的画,通常相当奇怪,但接近于原件,这取决于我用了多少回合,而且我多长时间练习一次。最终这帮助我变得更好,并快速捕捉到我看到的东西,因为我可以在我的记忆中将更多的视觉信息保存更长时间。
当你进行这些算法练习时,你可以使用相同的流程,来发展你在面试中根据需要回忆它们的能力。你应该首先坐下来,使用你可以使用的所有信息来实现它们,并了解它们的工作原理。记住你不明白的东西很难记住。你有一个好的实现后,你可以开始训练你的记忆。
最初的几次中,这样做会令人沮丧,但很快,你会发现它变得更加容易,而且在许多情况下,你可以冥想来使其生效。