文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

作为一个开发者,我们经常倾向于“试试”东西去看它是否有效,并在其不能符合我们对它的期望时扔掉这个结果。

无论你是在创造这种不错的通用功能去让你的应用里面的东西更加可重复利用,还是在实现另一个框架,或者是在写一篇描述你刚克服的最新问题的技术博客文章,亦或是为你的Swift 1-0-1 Pluralsight (一个在线编程教育网站)课程创造一个在线集,开发者们都通常会不停地想出新的想法并把时间和精力都花费在创造新东西上面。

在所有给定的例子中,这基本上都可以归类为努力去创造出你想使用的东西或者是想与其他开发者共享的某样东西。

第 1 段(可获 1.44 积分)

虽然一种 “尝试并出错” 的方法可能是有益的,但是我发现,如果它不能被专注地执行,则将可能占用大量的时间和精力。模糊地“尝试东西”倾向于产生负面的影响,所以我们将一起来看看你怎样才能从这种负面的氛围中走出来,并建立一种更加积极有效的思维方式。

毕竟,即使是对于一个人来说,对于一个开发者来说更是如此,你需要时间,这种至关重要的资源,去将你的产品开发出来推向顾客。

尝试是邪恶的

现在这几年,我已经逐渐意识到“尝试”事实上并不是一种积极的东西。当在词典网站查找这个词的定义的时候,你将会在第一词义找到这个:

第 2 段(可获 1.56 积分)

动词(和一个对象搭配使用),过去态tried,现在态trying。

1. 试图去做或完成(某事)

这听起来并不太自信,也不太追求结果,不是吗?尝试让这些单元测试全部运行通过,听起来比描述“你将要让这些单元测试全部运行通过”要远没有自信。

如果你想要尽可能优化地使用你的宝贵的时间,并得到努力的最后回报,你不会只想要“试图”让这个网页及时完成,对吗?

如果你是一个自由职业者,你花费的每个小时都有它的价值,时间等于金钱,push代码也应该尽可能地最优地执行。

通过尽可能多地移除进程中的摩擦和阻碍,从概念形成到成为Sprint的终端产品,敏捷团队努力地去使测试进程。源代码管理以及部署产品变得自动化,并尽可能快地完成工作。

这给团队更多时间去真正地实现这个产品的所有功能。将时间花费在“尝试”完成这些东西难道不会是一件羞愧的事吗?

我并没有说尝试做出某些东西的冲动不是有价值的。这清楚地表明,有必要进行改变。这可能也预示着前进的道路不清晰,而你想要拨开迷雾看看外面有什么。

第 4 段(可获 1.55 积分)

采取行动的信号实际上是非常好的,应该被重视。

问题是:作为一个开发者,你打算怎样处理这种冲动,避免浪费宝贵的时间?在你的项目上尝试这种或那种路线仅仅只是不打断它。你还能比这个做得更好。

让我们看看你能怎样将“尝试”的思维方式转化为更有成效的东西,这样你就能更精准地专注于一点,并用一种更有意义的方式提供更好的软件。

打破尝试的习惯

当你看着它的时候,你可以通过完成三件事去打破“尝试”的习惯:

第 5 段(可获 1.34 积分)

1. 就是干

尤达长老说他回来那天:“别试,做还是不做。”这是赤裸裸的真相。如果你想从你的努力得到想要的结果,你需要停止“尝试”去得到它。你需要去做。

通过计划你想要研究的东西来做准备,设置你觉得适合实现你的目标的步骤,并执行它们。

你想要开发一个手机应用或者一个SaaS产品作为副项目或者你的下一个商业机遇?将你全部的主要任务分成碎片式任务并将其放在某个你可以看到的地方,并在你的手提电脑,平板电脑或者智能手机上进行编辑。

第 6 段(可获 1.51 积分)

无论你是想用看板方法(www.kanbanflow.com) 还是一个在线综合的敏捷SCM和任务处理环境(www.visualstudio.com),或者是更加直截了当的例如基于布局的编程网站(www.trello.com),都有大量的方法去定义并追踪你的目标完成度,以及完成目标所必要的步骤

将你的心思专注于达成你的目标,并做好思想准备:你现有的知识可能会在这个过程中受到挑战。你可能需要改变你的观点或者在你完成任务之前调查一些新话题。

最后,正是这种态度才能让你完成你的app。是否采取行动,是将业余爱好者与企业家区别开来的指标。

 

第 7 段(可获 1.4 积分)

这是完成任务的一个更加积极的,且更重要的是,一个更加现实的方式,这种方式能使你更可能达到预期的效果。

2. 学习而不是尝试

有时并不能是“尝试”来创建一个有用的终端产品。你可能只是想通过它来学习一些东西。你的行动的学习过程就注定了结果是什么样子。

但是等一下,那并不是“尝试”?! 不,那叫学习。如果你想的话,叫研究也行。当你付出努力而做出来的产品没引起重视,但是创造它的过程—以及因此获得的知识—却很重要,你就是在学习了。

第 8 段(可获 1.45 积分)

如果你因为想学习如何使用Angular 2或Aurelia进行编码,而在你的下一个业余项目中使用这些框架,那没问题。是的,你可能会有点慢,或者比你用老版本的Angular要难些。但是只要你由于把学习它当作目标而下定决心去做这件事时,你都可以尽管放心的去做。

你想测试一下那个看起来酷酷的并使用了几百个物理设备的基于云的新的移动测试服务吗? 快速建立一个测试项目,并在里面挂上这个服务,这样你就可以学习如何使用它。

完事之后,你可以扔掉这些代码,或者将它保留下来以便日后参考。你将获得的不是产品,而是知识。

第 9 段(可获 1.64 积分)

确保用一两句话描述你想要试图学习的东西和你为什么要学习它。这使你不至于偏离方向。

3. 测试你的假设

当你尝试某件东西是为了看看它是如何工作的,你实际上是在测试一个假设。例如:“我写这个函数是为了看它是否能良好工作。” 这不是真正的尝试。这实际上是测试的定义,经常被称为创建了一个概念验证 (PoC)。

结果(你所编写的函数)可能没那么相关。实际上,它是对你所做的假设的确认(比如这个函数工作良好)。以SMART的方式定义你的假设能帮助你进行有益的测试。

第 10 段(可获 1.63 积分)

即使测试的结果是失败的,而该函数也慢如蜗牛,你还是会学到一定知识的(参考与第2部分),即能够帮助你做出正确的实现的决定。

没有尝试

就这么简单。不管你是你在学习,测试你的假设,还是在寻找一个对你有用的结果,重要的是要分析你正在“尝试”得到的东西并针对如何达到你的目标做出明确的选择。以这种方式思考,可以使你能更充分的利用你的时间,并使你更容易的交付产品,达成目标以及写出漂亮的代码。

如果那个假设能够给你带来我认为能带给你的结果的话,就去测试和学习吧。

第 11 段(可获 1.74 积分)

文章评论