VNR Content
Pearl
Trên thực tế, so với các ngôn ngữ khác, học Java chỉ ở mức khó khăn trung bình.
Ngôn ngữ Pascal từng được sử dụng để giảng dạy - nó được thiết kế để trở thành một ngôn ngữ sư phạm - và nó rất dễ học. Ngôn ngữ không dễ sử dụng để xây dựng những thứ thực tế, cho đến khi Turbo Pascal ra đời - và sau này là Delphi - nhưng những thứ đó không còn dễ học nữa.
Có vẻ như tính thực tế có phần trái ngược với sự dễ dàng.
BASIC đã từng được sử dụng để giảng dạy, nhưng có rất nhiều sai sót và khó chịu dẫn đến những người muốn học lập trình đã bảo nhau tốt nhất là nên tránh. Bây giờ về cơ bản nó đã biến mất.
Python hiện đại tương đương với BASIC. Mọi người đều muốn học Python, giống như cách mà mọi người muốn học BASIC vào những năm 1980. Python có vẻ dễ học, nhưng tính đơn giản của nó là lừa dối. Các khái niệm cơ bản như biểu diễn giá trị, cách xử lý các loại và con trỏ chủ yếu bị ẩn.
Nếu bạn không bao giờ cần biết chúng thì cũng không sao, nhưng nếu bạn cần biết chúng, sự thiếu kiến
thức nền tảng có thể kìm hãm và khiến bạn mắc sai lầm trong nhiều năm.
Tương tự như vậy đối với JavaScript. Người học dễ bị lừa gạt bởi sự đơn giản ban đầu, nhưng sau đó sẽ là hàng loạt ổ gà và những cú vấp ngã do sự hiểu biết thực sự về lập trình.
Sau đó, có những ngôn ngữ khó hơn. Haskell và Lisp đôi khi được dạy như ngôn ngữ đầu tiên và chúng dường như hiệu quả - nếu bạn là người có tư duy cụ thể. Sự cám dỗ là nói "tư duy toán học", nhưng điều đó không thực sự chính xác; chúng không “toán học” hơn các ngôn ngữ lập trình khác, nhưng những người mới bắt đầu thường cảm thấy khó khăn.
Vì vậy… Java.
Mặc dù các thư viện Java phức tạp, nhưng ngôn ngữ thiết yếu là đơn giản. Nó ít mang tính đơn giản giả tạo hơn so với ngôn ngữ BASIC, Python, JavaScript, Ruby, PHP và các ngôn ngữ tương tự, nhưng nó buộc người học phải giải quyết hướng đối tượng - đóng gói, kế thừa và đa hình - và các nguyên tắc cơ bản về lập trình - trình tự, lựa chọn, lặp, đánh giá biểu thức, biến - đồng thời với việc học các cơ chế thư viện thiết yếu.
Rất nhiều thứ để tham gia cùng một lúc.
Do đó, tôi đề nghị bắt đầu bằng C.
Tôi thích C vì đã học. Thư viện chuẩn rất đơn giản, nó không ẩn các con trỏ và biểu diễn giá trị cũng như không bao gồm các nguyên tắc cơ bản về lập trình đằng sau lớp vỏ của hướng đối tượng. Khi bạn học C, bạn thực sự học các nguyên tắc cơ bản của lập trình và chỉ các nguyên tắc cơ bản của lập trình, cùng với một lượng cơ sở máy móc tốt.
Nhưng một khi bạn đã sử dụng C để học lập trình, trừ khi bạn định trở thành một lập trình viên hệ thống, hãy chuyển sang một thứ gì đó như Java hoặc C #.
C có nhiều vấn đề mà cuối cùng sẽ “chơi” bạn nếu bạn không phải là một lập trình viên hệ thống. Tóm lại, không sử dụng C làm ngôn ngữ phát triển ứng dụng kinh doanh vì nó không phải là công cụ phù hợp cho công việc.
Nhưng sau khi học C, việc chọn Java hoặc C # rất dễ dàng.
Nhân tiện, Java và C # giống nhau đến mức chúng thực sự là các phiên bản khác nhau của cùng một ngôn ngữ. C # có thêm một số tính năng ngôn ngữ và những người sử dụng C # thực sự thích chúng.
Hãy coi C # và Java giống nhau.
Tôi cho rằng việc học C trước, sau đó là học Java hoặc C # sẽ dễ dàng hơn là tự học Java hoặc C #.
Vậy tại sao Java lại được coi là một ngôn ngữ lập trình khó?
Nói tóm lại, đó là bởi vì Java có các thư viện và hướng đối tượng cực kỳ phong phú và tất cả sự phức tạp của một ngôn ngữ lập trình được định kiểu tĩnh hoàn toàn. Nó được tạo ra để xây dựng phần mềm máy móc chất lượng công nghiệp, có nghĩa là nó là một công cụ ở cấp độ công nghiệp.
Điều đó làm cho nó vốn dĩ phức tạp, và sự phức tạp làm cho bất cứ điều gì trở nên khó khăn.
Nhưng đừng để điều đó làm bạn sợ. Như tôi đã chỉ ra, các lựa chọn thay thế như Python và JavaScript có vẻ dễ dàng hơn, nhưng không phải vậy. Bắt đầu học C, sau đó chuyển sang Java. Sau đó, Java sẽ không có vẻ phức tạp nữa. Thực sự, bạn sẽ thấy các tính năng của Java làm cho C dễ dàng và đơn giản hơn như thế nào - và bạn sẽ sẵn sàng học cách sử dụng nó cho những gì nó được tạo ra: phát triển phần mềm doanh nghiệp công nghiệp mạnh.
Dave Voorhis, kỹ sư, giảng viên phần mềm 35 năm kinh nghiệm
Ngôn ngữ Pascal từng được sử dụng để giảng dạy - nó được thiết kế để trở thành một ngôn ngữ sư phạm - và nó rất dễ học. Ngôn ngữ không dễ sử dụng để xây dựng những thứ thực tế, cho đến khi Turbo Pascal ra đời - và sau này là Delphi - nhưng những thứ đó không còn dễ học nữa.
Có vẻ như tính thực tế có phần trái ngược với sự dễ dàng.
Python hiện đại tương đương với BASIC. Mọi người đều muốn học Python, giống như cách mà mọi người muốn học BASIC vào những năm 1980. Python có vẻ dễ học, nhưng tính đơn giản của nó là lừa dối. Các khái niệm cơ bản như biểu diễn giá trị, cách xử lý các loại và con trỏ chủ yếu bị ẩn.
Nếu bạn không bao giờ cần biết chúng thì cũng không sao, nhưng nếu bạn cần biết chúng, sự thiếu kiến
thức nền tảng có thể kìm hãm và khiến bạn mắc sai lầm trong nhiều năm.
Tương tự như vậy đối với JavaScript. Người học dễ bị lừa gạt bởi sự đơn giản ban đầu, nhưng sau đó sẽ là hàng loạt ổ gà và những cú vấp ngã do sự hiểu biết thực sự về lập trình.
Sau đó, có những ngôn ngữ khó hơn. Haskell và Lisp đôi khi được dạy như ngôn ngữ đầu tiên và chúng dường như hiệu quả - nếu bạn là người có tư duy cụ thể. Sự cám dỗ là nói "tư duy toán học", nhưng điều đó không thực sự chính xác; chúng không “toán học” hơn các ngôn ngữ lập trình khác, nhưng những người mới bắt đầu thường cảm thấy khó khăn.
Vì vậy… Java.
Mặc dù các thư viện Java phức tạp, nhưng ngôn ngữ thiết yếu là đơn giản. Nó ít mang tính đơn giản giả tạo hơn so với ngôn ngữ BASIC, Python, JavaScript, Ruby, PHP và các ngôn ngữ tương tự, nhưng nó buộc người học phải giải quyết hướng đối tượng - đóng gói, kế thừa và đa hình - và các nguyên tắc cơ bản về lập trình - trình tự, lựa chọn, lặp, đánh giá biểu thức, biến - đồng thời với việc học các cơ chế thư viện thiết yếu.
Rất nhiều thứ để tham gia cùng một lúc.
Do đó, tôi đề nghị bắt đầu bằng C.
Tôi thích C vì đã học. Thư viện chuẩn rất đơn giản, nó không ẩn các con trỏ và biểu diễn giá trị cũng như không bao gồm các nguyên tắc cơ bản về lập trình đằng sau lớp vỏ của hướng đối tượng. Khi bạn học C, bạn thực sự học các nguyên tắc cơ bản của lập trình và chỉ các nguyên tắc cơ bản của lập trình, cùng với một lượng cơ sở máy móc tốt.
Nhưng một khi bạn đã sử dụng C để học lập trình, trừ khi bạn định trở thành một lập trình viên hệ thống, hãy chuyển sang một thứ gì đó như Java hoặc C #.
C có nhiều vấn đề mà cuối cùng sẽ “chơi” bạn nếu bạn không phải là một lập trình viên hệ thống. Tóm lại, không sử dụng C làm ngôn ngữ phát triển ứng dụng kinh doanh vì nó không phải là công cụ phù hợp cho công việc.
Nhưng sau khi học C, việc chọn Java hoặc C # rất dễ dàng.
Nhân tiện, Java và C # giống nhau đến mức chúng thực sự là các phiên bản khác nhau của cùng một ngôn ngữ. C # có thêm một số tính năng ngôn ngữ và những người sử dụng C # thực sự thích chúng.
Hãy coi C # và Java giống nhau.
Vậy tại sao Java lại được coi là một ngôn ngữ lập trình khó?
Nói tóm lại, đó là bởi vì Java có các thư viện và hướng đối tượng cực kỳ phong phú và tất cả sự phức tạp của một ngôn ngữ lập trình được định kiểu tĩnh hoàn toàn. Nó được tạo ra để xây dựng phần mềm máy móc chất lượng công nghiệp, có nghĩa là nó là một công cụ ở cấp độ công nghiệp.
Điều đó làm cho nó vốn dĩ phức tạp, và sự phức tạp làm cho bất cứ điều gì trở nên khó khăn.
Nhưng đừng để điều đó làm bạn sợ. Như tôi đã chỉ ra, các lựa chọn thay thế như Python và JavaScript có vẻ dễ dàng hơn, nhưng không phải vậy. Bắt đầu học C, sau đó chuyển sang Java. Sau đó, Java sẽ không có vẻ phức tạp nữa. Thực sự, bạn sẽ thấy các tính năng của Java làm cho C dễ dàng và đơn giản hơn như thế nào - và bạn sẽ sẵn sàng học cách sử dụng nó cho những gì nó được tạo ra: phát triển phần mềm doanh nghiệp công nghiệp mạnh.
Dave Voorhis, kỹ sư, giảng viên phần mềm 35 năm kinh nghiệm