Já existem algumas respostas muito boas aqui, mas pensei em acrescentar mais alguns breves pontos:
quando eu era iniciante, pensava que sabia tudo sobre programação, mas, ao aprender mais, percebi o quão difícil é esse campo.
Isso é chamado de efeito Dunning-Kruger . É extremamente comum entre programadores iniciantes e, de fato, iniciantes em muitos campos.
A maioria dos códigos-fonte em sites, vistos pelo google chrome, parecem muito confusos e desorganizados
As pessoas que escreveram esses sites queriam que você os entendesse? Provavelmente não. É do interesse deles ter um código difícil de entender.
isso apenas me faz pensar como alguém pode aprender tanto.
Por especializada . Sou especialista em um campo extraordinariamente estreito: o design e a implementação de analisadores semânticos do compilador C #. Se eu tivesse passado quinze anos estudando OpenGL ou XML ou HTML ou qualquer outra coisa, eu seria um especialista nisso e ficaria intrigado com os analisadores semânticos. Mas não o fiz e, portanto, tenho apenas um entendimento muito básico de OpenGL, XML e HTML.
A questão, em poucas palavras, é se essas coisas se tornam mais claras para um programador à medida que ele avança em sua carreira.
Sim, porque você começa a ver os padrões maiores. Veja o OpenGL, por exemplo. Você provavelmente já viu várias "bibliotecas de API" - grandes partes de código relacionado, onde a maneira como você interage com o código é chamando várias funções nomeadas com argumentos específicos. E você pode obter um entendimento básico do OpenGL apenas entendendo que é uma API.
Quando você obtém mais experiência e vê várias técnicas de programação diferentes, percebe que tecnologias aparentemente não relacionadas - digamos, OpenGL e LINQ em C # - têm pontos em comum. Ambas são APIs nas quais você cria fluxos de trabalho que canalizam dados e que você pode executar otimizadores e outras transformações no fluxo de trabalho de maneiras ricas e interessantes. Depois de ter esse conceito na sua caixa de ferramentas, de repente fica muito mais fácil explorar todo o poder de qualquer API que use esse padrão.
Os tópicos complicados, como os listados acima (OpenGL, MySQL, sites avançados de html), tornam-se mais fáceis de ler, escrever e entender à medida que você aprende mais, ou fica mais complicado à medida que avança?
Eles se tornam mais fáceis e mais complicados. Mais fácil porque, como eu disse, você começa a reconhecer os padrões mais amplos de pensamento subjacentes ao design do sistema, o que permite que você use o sistema com mais eficiência. Mais complicado porque agora você pode usar o sistema para resolver problemas mais complicados e começar a se deparar com as limitações do sistema.
Como você pode combater esse sentimento de que você é uma formiga no mundo da programação e esse material está prestes a esmagá-lo?
Você é uma formiga; somos todos formigas. Mas o material não é o pé que esmaga você; é o mundo em que você começa a explorar, viver, se beneficiar e melhorar. Você, formiga, só consegue explorar uma parte minúscula dela. Escolha uma peça que você gosta, onde você pode agregar valor real e se tornar um especialista nela.