Ada beberapa jawaban yang sangat bagus di sini, tetapi saya pikir saya mungkin menambahkan beberapa poin pendek lagi:
ketika saya masih pemula saya biasanya berpikir saya tahu segalanya tentang pemrograman, tetapi ketika saya belajar lebih banyak saya menyadari betapa sulitnya bidang ini
Ini disebut efek Dunning-Kruger . Ini sangat umum di antara programmer pemula, dan pada kenyataannya, pemula di banyak bidang.
Sebagian besar kode sumber di situs web, yang dilihat oleh google chrome tampak sangat berantakan dan tidak terorganisir
Apakah orang-orang yang menulis situs web itu ingin Anda bisa memahaminya? Mungkin tidak. Adalah kepentingan mereka untuk memiliki kode yang sulit dipahami.
itu hanya membuat saya bertanya-tanya bagaimana orang bisa belajar banyak.
Dengan spesialisasi . Saya seorang ahli dalam bidang yang sangat sempit: desain dan implementasi analisis semantik kompiler C #. Jika saya menghabiskan waktu lima belas tahun mempelajari OpenGL atau XML atau HTML atau apa pun, saya akan menjadi ahli dalam hal itu dan bingung oleh analis semantik. Tetapi saya tidak melakukannya, dan karena itu saya hanya memiliki pemahaman yang sangat mendasar tentang OpenGL, XML dan HTML.
Singkatnya, pertanyaannya adalah apakah hal-hal ini menjadi lebih jelas bagi seorang programmer saat ia maju dalam karirnya.
Ya, karena Anda mulai melihat pola yang lebih besar. Ambil OpenGL misalnya. Anda mungkin telah melihat banyak "pustaka API" - potongan besar kode terkait di mana cara Anda berinteraksi dengan kode adalah dengan memanggil sekelompok fungsi bernama dengan argumen tertentu. Dan Anda bisa mendapatkan pemahaman dasar tentang OpenGL hanya dari memahami bahwa itu adalah API.
Ketika Anda mendapatkan lebih banyak pengalaman dan melihat banyak teknik pemrograman yang berbeda, Anda menyadari bahwa teknologi yang tampaknya tidak terkait - katakanlah, OpenGL dan LINQ di C # - memiliki kesamaan. Keduanya adalah API tempat Anda membuat alur kerja yang mengalirkan data, dan Anda dapat menjalankan pengoptimal dan transformasi lain pada alur kerja dengan cara yang kaya dan menarik. Setelah Anda memiliki konsep itu di dalam kotak alat Anda, tiba-tiba menjadi lebih mudah untuk memanfaatkan kekuatan penuh dari API apa pun yang menggunakan pola itu.
Apakah topik rumit seperti yang tercantum di atas (OpenGL, MySQL, situs html canggih) menjadi lebih mudah dibaca, ditulis, dan dipahami ketika Anda belajar lebih banyak, atau apakah itu semakin rumit saat Anda pergi?
Mereka menjadi lebih mudah dan lebih rumit. Lebih mudah karena, seperti yang saya katakan, Anda mulai mengenali pola pemikiran yang lebih besar yang mendasari desain sistem, yang memungkinkan Anda menggunakan sistem secara lebih efektif. Lebih rumit karena sekarang Anda dapat menggunakan sistem untuk memecahkan masalah yang lebih rumit , dan Anda kemudian mulai mengalami keterbatasan sistem.
Bagaimana Anda bisa melawan perasaan ini bahwa Anda adalah semut di dunia pemrograman dan hal-hal ini akan menghancurkan Anda?
Anda adalah semut; kita semua semut. Tetapi benda itu bukan kaki yang meremas Anda; itu adalah dunia yang Anda jelajahi, tinggali, manfaatkan, dan tingkatkan. Anda, semut, hanya dapat menjelajahi bagian yang sangat kecil darinya. Pilih bagian yang Anda suka di mana Anda dapat menambahkan nilai nyata dan menjadi ahli di dalamnya.