完美主义对新手程序员的影响
(点击上方公众号,可快速关注)
编译:伯乐在线/飞哥的咖啡
我是一个完美主义者,或者,至少我喜欢这样自居。不管怎样,我绝对离完美主义者不远了。
这样本来挺好的。然而,我最近意识到,它实际上阻碍我成为一个更出色的开发者。至少,它阻碍了我的进步,并妨碍了我的学习。
像很多初级开发者和普通开发者,我有一个不完成副项目(side projects)的习惯。不是因为我懒或没时间,出于某种原因,我似乎从来不会把事情做完。
然后就是受打击的地方了。
在进行项目时,我一直努力追求完美,
这就是问题的所在。
怎么定义完美?完美是什么意思?完美真的是一个可以实现的目标吗?
对我来说,我想交出一些了不起的东西,尽自己所能做出一些东西。
想法是好的,但作为一个初级开发者,我面对的困境是,因为我每天都在学习,我的能力在不断增强。
这样的话,我如何才能尽自己最大(且不断提高的)能力,将一个项目做到最好?!
作为开发者,这是阻碍我进步的关键因素。我不知道要在哪里确定一条底线。我觉得很难对自己说“够了,可以继续前进了”。
而有时候,情况甚至会变得有些愚蠢…
6 个月前,我写了一个简单的 URL 缩短器,以熟悉 Symfony 框架。我花了几个晚上的时间,做出了一个基本的工作产品(Working Product),以及一个大的框架介绍。做得很开心?好吧,不尽然。
信不信由你,3 个月后,我仍在对这个小项目修修补补:修改样式,用 Ajax 改进表单提交,我甚至考虑过用 Vue 或 React 来实现。
随着我的能力和知识的不断增加,我完全无法继续前进。我不断看到能够改进的地方,并有了更好的改进方法。
这在商业环境中是好事。在产品或项目上不断进行改进和迭代非常赞。
但是,作为一个小小的学习项目,我明显用力过猛了,正在努力解决一个并不存在的问题。这不是尝试给 Bitly(知名短网址服务)造一个竞争对手,我只是利用这个小项目来加强自身的学习。事实上,根本没有人会看到这个项目!
我并不是唯一会这么做的人,即使最有经验的开发者,也会在某个时候遇到类似的情况。当他们回顾几年前写的代码,他们可能会羞愧难当,甚至可能会对自己几个月前写的代码感到震惊。
(伯乐在线补充配图,Via:程序员的那些事)
作为开发者,无论处于什么水平,你都在不断学习,这是野兽的天性。而经验告诉我们,你只有学会放手,才能继续前进。
但说起来容易做起来难。作为一个初级的,或有抱负的开发者,“单单”继续前进就显得难得多了。在现实中,除非你的代码接受他人的审查,否则你完全不知道好与坏的标准。
我的建议是,在你学习时,要创建一些东西,直到它看起来很得体,并能正常工作,此时你需要忘掉它继续前进。不要寻求完美,这是不存在的~ 你应该将时间花在学习并钻研更大、更好的事情上,而不是花在类似调整无关要紧的内边距这一类事情上。请务必相信我这个过来人的经验之谈!
我最终明白了“完成即完美”这句话,这也是二八定律告诉我们的道理。(原因与结果、投入与产出、努力与报酬之间的关系往往是不平衡的,结果、产出或报酬的 80% 取决于 20% 的原因、投入或努力。)
当你处于学习阶段时,所有的项目都不需要做到“完美”。它们本身就是用于学习的项目,做完尽管放手让它们去。
瞎搞瞎弄、缝缝补补、或者试图压缩最后 10% 的时间,这些都不是对有限时间的合理使用方式。
在 Web 开发中,完美是不存在的。
只有一种情况除外,那就是…完成,因为“完成即完美(done === perfect)”。
随着时间的推移,你能做出更大、更好的东西!
看完本文有收获?请分享给更多人
关注「伯乐在线」,看更多精选 IT 职场文章