ここには本当に良い答えがいくつかありますが、もう少し短い点を追加すると思いました。
私は初心者の頃、プログラミングに関するすべてを知っていたと思っていましたが、より多くを学ぶにつれて、この分野がどれほど難しいかがわかりました
これは、Dunning-Kruger効果と呼ばれます。それは初心者プログラマーの間で、そして実際、多くの分野の初心者の間で非常に一般的です。
グーグルクロームによって見られるウェブサイト上のほとんどのソースコードは非常に乱雑で整理されていないようです
それらのWebサイトを書いた人たちは、あなたがそれらを理解できることを望んでいましたか?おそらくない。理解するのが難しいコードを持つことが彼らの利益になります。
どうしてそんなに学ぶことができるのだろうと思うだけです。
専門化することによって。私は非常に狭い分野の専門家です。C#コンパイラセマンティックアナライザーの設計と実装です。OpenGL、XML、HTML、その他何でも15年かけて勉強していたなら、私はそれについての専門家になり、セマンティックアナライザーによって謎に包まれました。しかし、私はそうしなかったので、OpenGL、XML、HTMLの非常に基本的な理解しかありません。
簡単に言えば、質問は、プログラマーがキャリアを進めるにつれて、これらのことがより明確になるかどうかです。
はい、あなたはより大きなパターンを見始めたからです。OpenGLを例にとります。おそらく「APIライブラリ」の束を見たことがあります。特定の引数を使用して名前付き関数の束を呼び出すことで、コードとインターフェイスする方法が関連する大きなコードです。また、OpenGLがAPIであることを理解するだけで、OpenGLの基本的な理解を得ることができます。
より多くの経験を積み、さまざまなプログラミング手法を見たとき、一見無関係なテクノロジー(C#のOpenGLとLINQなど)に共通性があることに気づきます。どちらも、データをパイプ処理するワークフローを構築するAPIであり、ワークフロー上でリッチで興味深い方法でオプティマイザーやその他の変換を実行できます。ツールのボックスにその概念が入ると、そのパターンを使用するAPIのすべての機能を活用するのが簡単になります。
上記のような複雑なトピック(OpenGL、MySQL、高度なhtmlサイト)は、学習するにつれて読みやすく、書きやすく、理解しやすくなりますか、それとも複雑になりますか?
それらはより簡単で複雑になります。私が言ったように、システムの設計の根底にあるより大きな思考パターンを認識し始めるため、より簡単になります。これにより、システムをより効果的に使用できます。より複雑になったのは、システムを使用してより複雑な問題を解決できるようになり、システムの制限に直面し始めるからです。
あなたがプログラミングの世界でアリであり、このようなものがあなたをつぶそうとしているという気持ちにどうやって対抗できるでしょうか?
あなたはアリです。私たちは皆アリです。しかし、それはあなたをつぶす足ではありません。それはあなたが探検し、住み、恩恵を受け、改善することができる世界です。あなた、アリ、それのほんの小さな部分を探検するだけです。あなたが本当の価値を追加し、その専門家になることができる場所を好きな部分を選んでください。