这里已经有一些非常好的答案,但是我想我可能还要补充几点:
当我还是一个初学者时,我曾经以为自己对编程一无所知,但是随着我学到更多,我意识到了这一领域的困难。
这称为Dunning-Kruger效应。在初学者程序员中,甚至在许多领域中的初学者中,这都是极为普遍的。
谷歌浏览器看到的网站上的大多数源代码看起来非常凌乱且无序
编写这些网站的人是否希望您能够理解它们?可能不是。拥有难以理解的代码符合他们的利益。
这只是让我想知道如何能学到很多东西。
通过专业化。我是一个非常狭窄的领域的专家:C#编译器语义分析器的设计和实现。如果我花了十五年的时间研究OpenGL或XML或HTML或其他内容,我将是这方面的专家,并且会被语义分析器所迷惑。但是我没有,因此我对OpenGL,XML和HTML仅有非常基本的了解。
简而言之,问题是,随着程序员的职业发展,这些事情是否对他们而言变得更加清晰。
是的,因为您开始看到较大的模式。以OpenGL为例。您可能已经看到了一堆“ API库”,这是大量相关代码,其中与代码交互的方式是通过调用带有特定参数的一堆命名函数。而且,仅通过了解OpenGL是一种API就可以对OpenGL有了基本的了解。
当您获得更多经验并看到了许多不同的编程技术时,您会意识到看似无关的技术(例如C#中的OpenGL和LINQ)具有共性。两者都是API,您可以在其中构建用于传输数据的工作流,还可以以丰富有趣的方式对工作流运行优化器和其他转换。一旦在工具箱中有了该概念,突然之间,利用该模式的所有API的全部功能就会变得更加容易。
随着学习的深入,上面列出的复杂主题(OpenGL,MySQL,高级html站点)是否变得更易于阅读,编写和理解,或者随着学习的进行变得更加复杂?
它们变得既简单又复杂。就像我说的那样,这很容易,因为您开始认识到系统设计背后的更大思想模式,从而使您可以更有效地使用系统。更加复杂,因为现在您可以使用该系统解决更复杂的问题,然后开始遇到系统的局限性。
您如何克服这种感觉,即您是编程世界中的蚂蚁,而这玩意儿正在压垮您呢?
你是一只蚂蚁;我们都是蚂蚁。但是这些东西并不是挤压你的脚;这是您可以探索,生活,受益和改善的世界。蚂蚁只能探索其中的一小部分。选择您喜欢的零件,在其中您可以增加真正的价值并成为其中的专家。