The author of the text emphasizes that learning to program is essential as it teaches one how to think critically and gives a vocabulary to express complex ideas. However, code can be hard to read due to its unintuitive nature, particularly in large and interconnected codebases. The main reasons for this difficulty include the varying directory structure of different programming languages and frameworks, making it challenging to decipher functionality without extensive searching. Additionally, documentation alone is insufficient as it may not address specific gaps in knowledge depending on one's background expertise. To overcome these challenges, subject-matter experts are necessary, but replicating this process with artificial intelligence (AI) poses significant difficulties due to the complexity and non-linearity of codebases, requiring novel solutions such as semantic search and vectorization techniques.