复制粘贴编程?如果不追问为什么,互联网上大多数技术内容都是胡扯 -aleksandra.codes


在过去的几年中,当我与许多开发人员一起工作并与之交谈时,我注意到了一种重复的模式。这一直困扰着我很多,我一直在思考和讨论:
您为什么要采用这种方法?

  • 我不知道。在某篇文章中。
  • 我不知道。我从X复制粘贴了它。
  • 我不知道。我在上一个项目中就是这样做的。
  • 我不知道。有人告诉我。

这种模式代表消费文化,消费文化隐藏在权威后面。
我看到开发人员认为别人的解决方案是理所当然的。不要三思而后行,不去分析它。好的,当Dan Abramov告诉您如何使用React或文档说这是使用其API的唯一方法时,是的,您可能应该同意它。但是,当您使用某些技术内容而没有至少一点怀疑的时候,那么,您的职业生涯可能还很遥远,但也可能使您退缩。

到处都是废话
在我职业生涯的开始,我永远不会在互联网上发布任何技术性的文章。我认为,如果有人足够勇敢地发表博客文章或参加技术讨论,他们总是知道自己在做什么。
在某个时候,我意识到互联网上的大多数技术内容都是胡扯(这个博客也可能是胡扯)。教程显示了有害的模式。文章有很多概念上的错误。人也不是完美的!高级开发人员并不总是好的开发人员。技术负责人的解决方案可能远非完美。
正确运行的应用程序体系结构可能完全搞砸了。我看到高级职位的人对编程一无所知!但是他们在互联网上写了有关此事!然后有人来,就像我使用了这个人建议的解决方案一样,他们是X公司的高级职员。
科学的伟大训诫之一就是所谓“权威的错误观点”。...太多这样的论点被证明是非常痛苦的错误。
您越早意识到到处都是胡说八道,那就越好。博客文章的数量或薪水并不能说明此人的知识。毕竟,无论我们想要什么,我们都可以在互联网上发布。

为什么会发生?
我们很懒。我们大多数时候都不傻,只是懒惰。如果有人给我们解决该问题的方法并且它可行,那么为什么要考虑它呢?为什么不复制粘贴并将其发送到生产代码中呢?
主要是我们没有时间。从逻辑上论证可能会使某人花几个小时阅读源代码,还要编写大量代码以证明其观点或花费大量时间进行研究!我们都有交付截止日期,不是吗?
逻辑推理通常需要你走出舒适区,因为您需要获得一些新知识,比平时更努力地理解某些概念,或进行一些额外的工作。而停留在舒适区是我们倾向于(无意识地)拥抱的东西。
另外一个原因:我们不相信自己。人们,尤其是在职业生涯初期,往往会认为他们的解决方案永远不够好。因此,他们只能依靠前面提到的权威,但从不质疑他们。

如何停止成为技术消费者?
意识到世界上存在大量误解。人员及其解决方案并非完美无缺。
使解决方案适应您的特定用例。没有一种万能的解决方案可以解决所有问题。比较不同的方法,进行分析。教程或文章显示了一个想法,但可能没有提供可用于生产的代码。在决定使用它之前,请务必对其进行分析。
相信你自己。您的解决方案并不比互联网上的解决方案差。
不断学习,并保持好奇心。成为开发人员是关于不断学习。确保您了解所使用的库或框架。这是最大程度地利用它的方法。人们有时在没有更深刻理解的情况下使用图书馆。它导致滥用核心概念,并编写可能具有的更复杂或性能更低的代码。

HN讨论
我在2005年离开O'Reilly,作者几乎一直都是主题专家。他们的编辑也是主题专家。然后,这本书将经过技术审查,这些人通常也是书呆子名流。然后,这本书将被出版,错误将进入勘误表跟踪系统。这些错误中的绝大多数将在两次印刷之间得到修复。

低质量内容的泛滥开始淹没高质量内容。关于互联网的最好的事情之一是任何人都可以创建和发布他们想要的东西。关于互联网的最糟糕的部分之一是任何人都可以创建和发布他们想要的东西。

我认为部分问题是发布商在为数字产品定价时做得不好,错过了增加销量的机会。我认为他们很贪婪地认为可以同时增加数量和价格,因此数字产品的定价过高。

使开发人员出色的第一个特征是他们的批判性思维能力。这些开发人员不会根据流行程度盲目采用工具和业务流程。他们总是能够以有力的论据为自己的决定辩护,这些论点令人信服地解释了为什么他们选择的选择比所有其他可能的选择更好。这适用于他们做出的每个决定。
软件开发是一个复杂的领域-遵循通用的行业模式和最佳实践,而不必考虑它们是否真的适用于您的特定用例,几乎总是错误的方法。基本上每个软件项目都存在细微差别,这至少在某些方面需要偏离行业规范。始终盲目地遵循最佳实践而不质疑它们或使它们适应您的用例本身就是一种可怕的实践。

软件行业发展非常迅速,现在的情况是,大量冒充新手的新手冒充专家,并且压制真正的专家。

urge鱼定律:百分之九十的东西都是垃圾。技术内容也不例外。正如文章所指出的,必然的结果是您必须自己思考,评估遇到的每一个内容。