总之,最好的学习方法通常是一个你可以学习到挂出的。如果您觉得自己的技能还没到手,那么和最好的人一起出去玩是您所能做到的。当然比退出和孤立自己要好得多。
但是,我认为您正在绘制一张非常简化且具有误导性的图片。远非所有“专业教授”的程序员真的有任何好处。仅仅因为他们做某事并不一定意味着它是正确的事。
而且您说的很多(但不是全部)听起来确实像是您可以教给他们一两个技巧的人。
我比OO更倾向于功能性方面,但是当某些东西作为抽象实体更有意义时,我会看到使用OO。
对我来说听起来很棒。最好的编码人员是使用正确工具进行工作的人员。我总是选择一个既了解这两种范式的人,又对那些只使用一种范式的人有意义。
接下来,我也会在做某事时走简单的路线。相反,有时候,我从专业程序员那里看到的代码似乎很复杂!
同样,简单是件好事。直到它不要让你的代码复杂,需要很复杂。有些人的确是出于对优雅的误解而使事情变得复杂,或者是因为“稍后我们将需要此附加功能”。通常,最好执行最简单的解决问题的方法。
我使用很多闭包。好。这就是为什么他们在那里。他们确实吓到了一些陷于1990年代和Java过时的准OOP模型的人,但实际上,这就是他们的问题。
最后,我不是最好的评论者。
应该评论什么以及如何评论是非常主观的。那里并没有真正的“正确”或“错误”,但是在团队中工作时,重要的是编写整个团队而不是仅代码编写者都能理解的代码。有时,必须做出折衷以符合团队的编码风格。那并不一定意味着您应该写更多的评论,而只是意味着您和您的团队必须对此达成共识。
我听到受过专业训练的程序员不断进行诸如单元测试之类的事情。我以前从未使用过的东西,所以我什至都没有关于它们是什么或它们如何工作的最模糊的想法。
好吧,问他们。:)测试您的代码是必不可少的,而单元测试是一种流行且有用的工具。
下划线“ _”很多,这并不是我真正的品味。
与评论一样,这是主观的,取决于语言。在C和C ++中,lowercase_with_underscores
是一种相当常见的命名约定。在许多其他语言中,您几乎不会看到下划线。但归根结底,这实际上并不重要。无论一个函数被调用write_to_log
或WriteToLog
实际上不打算有所作为。有人将不得不将其吸纳起来并遵守团队在那里达成的共识。
对MVC一无所知,尽管我曾经听说过很多关于main.js的内容。我认为这是组织应用程序的一种方式。尽管这使我感到困惑,因为到目前为止,我已经建立了自己的组织结构。
与单元测试一样,永远不要停止学习。您与不了解您的人一起工作,并且与您的背景不同。互相学习。显然,有些东西可以教给他们,但是有些东西却可以教给您,您不知道或从未听说过。这并不意味着您(或他们)是一个不好的程序员。这意味着一个优秀的程序员是一个努力提高自己并向他人学习的人。
完整的OO编程确实让我不快
在这里也是一样,我就是您所说的“专业培训”(CS学位)。自学编程的人与自学成才的人一样多。听起来您正在与一些确实需要学习一些新技巧的人一起工作。
实际上,我非常害怕人们最终会签出我的代码。这是任何程序员都可以正常进行的事情吗?还是我真的应该改变自己的技术?
都。当然,让其他人查看(并判断)您所做的事情很可怕。但这也很有教育意义。他们可以告诉您他们会另外做些什么,或者为什么他们会否则做。他们可以帮助您改善自己,也可以自己学习一些东西。向他们展示解决问题的代码比他们“首选”解决方案所能解决的要好,并希望他们会“哦,那很干净。您怎么知道那样做?您怎么称呼它?我应该自己使用这种技术”