Có một số câu trả lời thực sự tốt ở đây đã có nhưng tôi nghĩ rằng tôi có thể thêm một vài điểm ngắn hơn:
Khi tôi mới bắt đầu, tôi đã từng nghĩ rằng tôi biết mọi thứ về lập trình, nhưng khi tôi học được nhiều hơn, tôi nhận ra lĩnh vực này khó khăn như thế nào
Đây được gọi là hiệu ứng Dunning-Kruger . Nó là cực kỳ phổ biến trong số các lập trình viên mới bắt đầu, và trên thực tế, người mới bắt đầu trong nhiều lĩnh vực.
Hầu hết các mã nguồn trên các trang web, được xem bởi google chrome có vẻ rất lộn xộn và không có tổ chức
Có phải những người đã viết những trang web đó muốn bạn có thể hiểu chúng? Chắc là không. Đó là lợi ích của họ để có mã là khó hiểu.
nó chỉ khiến tôi tự hỏi làm thế nào người ta có thể học được nhiều như vậy.
Bởi chuyên . Tôi là một chuyên gia trong một lĩnh vực cực kỳ hẹp: thiết kế và triển khai các máy phân tích ngữ nghĩa của trình biên dịch C #. Nếu tôi đã dành mười lăm năm để nghiên cứu OpenGL hoặc XML hoặc HTML hoặc bất cứ điều gì, tôi sẽ là một chuyên gia về điều đó và bị phân tích bởi các máy phân tích ngữ nghĩa. Nhưng tôi đã không làm, và do đó tôi chỉ có hiểu biết rất cơ bản về OpenGL, XML và HTML.
Câu hỏi, một cách ngắn gọn, là nếu những điều này trở nên rõ ràng hơn đối với một lập trình viên khi anh ta tiến bộ trong sự nghiệp.
Vâng, bởi vì bạn bắt đầu thấy các mẫu lớn hơn. Lấy OpenGL làm ví dụ. Bạn có thể đã thấy một loạt các "thư viện API" - những đoạn mã lớn có liên quan trong đó cách bạn giao tiếp với mã bằng cách gọi một loạt các hàm được đặt tên với các đối số cụ thể. Và bạn có thể có được sự hiểu biết cơ bản về OpenGL chỉ từ việc hiểu rằng đó là một API.
Khi bạn đã có thêm kinh nghiệm và thấy một loạt các kỹ thuật lập trình khác nhau, bạn sẽ nhận ra rằng các công nghệ dường như không liên quan - giả sử, OpenGL và LINQ trong C # - có những điểm tương đồng. Cả hai đều là các API nơi bạn xây dựng các luồng công việc mà dữ liệu xung quanh và bạn có thể chạy các trình tối ưu hóa và chuyển đổi khác trên quy trình công việc theo những cách thú vị và phong phú. Khi bạn có khái niệm đó trong hộp công cụ của mình, đột nhiên việc khai thác toàn bộ sức mạnh của bất kỳ API nào sử dụng mẫu đó sẽ trở nên dễ dàng hơn nhiều.
Các chủ đề phức tạp như những chủ đề được liệt kê ở trên (OpenGL, MySQL, các trang html nâng cao) trở nên dễ đọc, viết và hiểu hơn khi bạn tìm hiểu thêm hay nó chỉ trở nên phức tạp hơn khi bạn đi qua?
Chúng trở nên dễ dàng và phức tạp hơn. Dễ dàng hơn bởi vì, như tôi đã nói, bạn bắt đầu nhận ra các kiểu suy nghĩ lớn hơn theo thiết kế của hệ thống, cho phép bạn sử dụng hệ thống hiệu quả hơn. Phức tạp hơn vì bây giờ bạn có thể sử dụng hệ thống để giải quyết các vấn đề phức tạp hơn , và sau đó bạn bắt đầu gặp phải những hạn chế của hệ thống.
Làm thế nào bạn có thể chống lại cảm giác rằng bạn là một con kiến trong thế giới lập trình và công cụ này là bàn chân sắp đè bẹp bạn?
Bạn là một con kiến; chúng ta đều là kiến. Nhưng những thứ không phải là bàn chân đè bẹp bạn; đó là thế giới mà bạn có thể khám phá, sống, hưởng lợi và cải thiện. Bạn, kiến, chỉ được khám phá một phần nhỏ xíu của nó. Chọn một phần bạn thích nơi bạn có thể thêm giá trị thực và trở thành một chuyên gia trong đó.