我看到一些新的开发人员开始工作,并立即感到不足。我在职业生涯的早期就做了同样的事情。我认为大多数聪明人至少需要克服两个主要问题:时间感知和他们自身的天赋。
时间感知
聪明的人习惯于相对快速地解决问题。我记得当我不得不花一个小时解决一个微积分问题时感到非常吃惊。花60分钟解决一个问题已不再是问题。那些日子结束了...埋葬他们并说再见。当今大多数软件的复杂性和大小令人难以置信。人们不再了解完成任务所必须使用的所有工具。Douglas Crockford说,JavaScript语言的关键人物之一,
"Misapplication of standard tools...is the new standard."
世界上没有足够的时间来学习所有开发工具。
天生的能力首先,
您的才智,解决问题的能力和天生的技能将您带入了整个开发人员的行列。在这个领域没有什么余地。因此,您如何处理十万行几乎不知道的代码,语言和框架,人们向您推销的设计模式和范例,知道大部分内容的人(如手背),昨天想要的客户以及老板谁期望你的世界?当您的自然能力失败时,请大吃一惊。
是的,那很正常。我仍然对那些扔给我的东西有些反感。
该怎么办?
是时候通过良好的老式努力来提高那些天生的能力了。将问题分解为更小的部分。并意识到,与您过去可能做过的许多事情不同,这些问题确实需要大量时间才能解决。因此,在检查了一个复杂问题后仅15分钟就不要放弃。相反,请解决问题并停止计时。一段时间后,解决问题实际上要花费30分钟。
自信在自我管理能力中起着重要作用。团队,尤其是经验丰富的前辈也是如此。最好不要破坏事物,但这并不意味着您需要不断提出问题。
而是,使用源代码管理。只要您不签入更改,就不会破坏主要产品并使其他开发人员生气。另外,请进行一些您可以理解和测试的更改,并确保在签入之前进行正确的测试。
我什至有一个小的测试项目,可用来编写一次性的简单程序,因此我不必担心主应用程序中的所有操作。
最后,请记住,每个决定都带有一定程度的让与取。没有做出某种程度的牺牲就没有前进。不要为追求完美而努力,要为出色而努力,并注意自己的行为。因为您总是需要准备接受批评并解释您的想法以及您为什么提出它们。为您所做的决定感到自豪。即使他们错了,也有很多东西要学。