查看原文
其他

完美主义对新手程序员的影响

伯乐在线 2019-07-31

(点击上方公众号,可快速关注)


编译:伯乐在线/飞哥的咖啡  


我是一个完美主义者,或者,至少我喜欢这样自居。不管怎样,我绝对离完美主义者不远了。

这样本来挺好的。然而,我最近意识到,它实际上阻碍我成为一个更出色的开发者。至少,它阻碍了我的进步,并妨碍了我的学习。

像很多初级开发者和普通开发者,我有一个不完成副项目(side projects)的习惯。不是因为我懒或没时间,出于某种原因,我似乎从来不会把事情做完。

然后就是受打击的地方了。

在进行项目时,我一直努力追求完美,

这就是问题的所在。

怎么定义完美?完美是什么意思?完美真的是一个可以实现的目标吗?

对我来说,我想交出一些了不起的东西,尽自己所能做出一些东西。

想法是好的,但作为一个初级开发者,我面对的困境是,因为我每天都在学习,我的能力在不断增强。

这样的话,我如何才能尽自己最大(且不断提高的)能力,将一个项目做到最好?!

作为开发者,这是阻碍我进步的关键因素。我不知道要在哪里确定一条底线。我觉得很难对自己说“够了,可以继续前进了”。

而有时候,情况甚至会变得有些愚蠢…

6 个月前,我写了一个简单的 URL 缩短器,以熟悉 Symfony 框架。我花了几个晚上的时间,做出了一个基本的工作产品(Working Product),以及一个大的框架介绍。做得很开心?好吧,不尽然。

信不信由你,3 个月后,我仍在对这个小项目修修补补:修改样式,用 Ajax 改进表单提交,我甚至考虑过用 Vue 或 React 来实现。

随着我的能力和知识的不断增加,我完全无法继续前进。我不断看到能够改进的地方,并有了更好的改进方法。

这在商业环境中是好事。在产品或项目上不断进行改进和迭代非常赞。

但是,作为一个小小的学习项目,我明显用力过猛了,正在努力解决一个并不存在的问题。这不是尝试给 Bitly(知名短网址服务)造一个竞争对手,我只是利用这个小项目来加强自身的学习。事实上,根本没有人会看到这个项目!

我并不是唯一会这么做的人,即使最有经验的开发者,也会在某个时候遇到类似的情况。当他们回顾几年前写的代码,他们可能会羞愧难当,甚至可能会对自己几个月前写的代码感到震惊。

(伯乐在线补充配图,Via:程序员的那些事)

作为开发者,无论处于什么水平,你都在不断学习,这是野兽的天性。而经验告诉我们,你只有学会放手,才能继续前进。

但说起来容易做起来难。作为一个初级的,或有抱负的开发者,“单单”继续前进就显得难得多了。在现实中,除非你的代码接受他人的审查,否则你完全不知道好与坏的标准。

我的建议是,在你学习时,要创建一些东西,直到它看起来很得体,并能正常工作,此时你需要忘掉它继续前进。不要寻求完美,这是不存在的~ 你应该将时间花在学习并钻研更大、更好的事情上,而不是花在类似调整无关要紧的内边距这一类事情上。请务必相信我这个过来人的经验之谈!

我最终明白了“完成即完美”这句话,这也是二八定律告诉我们的道理。(原因与结果、投入与产出、努力与报酬之间的关系往往是不平衡的,结果、产出或报酬的 80% 取决于 20% 的原因、投入或努力。)

当你处于学习阶段时,所有的项目都不需要做到“完美”。它们本身就是用于学习的项目,做完尽管放手让它们去。

瞎搞瞎弄、缝缝补补、或者试图压缩最后 10% 的时间,这些都不是对有限时间的合理使用方式。

在 Web 开发中,完美是不存在的。

只有一种情况除外,那就是…完成,因为“完成即完美(done === perfect)”。

随着时间的推移,你能做出更大、更好的东西!


看完本文有收获?请分享给更多人

关注「伯乐在线」,看更多精选 IT 职场文章

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存