Tóm tắt nhanh:
Bởi vì trong thế giới thực, sớm hay muộn, bạn phải làm việc với mã thủ tục.
Bởi vì Ngôn ngữ thủ tục có thể hoạt động như một phần mở rộng hoặc giới thiệu về Ngôn ngữ hướng đối tượng, thay vì chỉ là một ngôn ngữ thay thế.
Bổ sung cho câu trả lời 2. Vì OOP phức tạp hơn Lập trình thủ tục, do đó, tốt nhất là học Lập trình thủ tục, trước tiên.
Bởi vì trong thế giới thực, các lập trình viên làm việc cùng và kết hợp một số cách để giải quyết vấn đề, AKA "lập trình đa hướng", không chỉ là một mô hình đơn lẻ.
Hầu hết các ngôn ngữ lập trình là đa ngôn ngữ, ở một mức độ nào đó, thậm chí, nếu các nhà thiết kế hoặc nhà phát triển chung của họ, nói ngược lại.
[MỚI] Bởi vì Lập trình mô đun thường bị lẫn lộn và nhầm lẫn với Lập trình thủ tục, có thể được áp dụng cho OOP. Do đó, câu hỏi có thể được đọc là "Tại sao chúng ta phải học lập trình Modular trước khi chúng ta học lập trình hướng đối tượng"
Mô tả nhàm chán mở rộng:
Điểm 1 rất rõ ràng, không giải thích thêm.
Điểm 2, Lớp học, Kế thừa, Đa hình, Giao diện, v.v ...
Điểm 3, tôi viết mã Pascal theo thủ tục trước khi tôi học Pascal hướng đối tượng, khi tôi đến đó tôi nói: "nhìn này, các lớp giống như các chương trình thủ tục nhỏ ... ... và bạn có thể khiến chúng nói chuyện với nhau, thật tuyệt !!! ".
Tôi đã nghe điều tương tự từ những người đã đi từ đồng bằng C đến C cộng với.
Điểm 4, Hầu hết các lập trình viên kết hợp một số kỹ thuật lập trình hoặc mô hình, hoặc các cách để giải quyết vấn đề. Chức năng, thủ tục, OOP, logic.
Ngay cả Java "Pure OO" cũng không phải là lập trình đối tượng đơn giản như đã nói.
+1 điểm khi nói "Lập trình thủ tục" thay vì "Lập trình có cấu trúc". Hoặc lập trình mô-đun. Đây là những điều quan trọng.
Thay vào đó, nhiều lần các thuật ngữ này được dạy hoàn toàn và được sử dụng thay thế cho nhau, chúng không như vậy. Lập trình có cấu trúc, bao gồm nhiều khái niệm, không chỉ sử dụng các thủ tục và một trong số đó là làm cho chương trình không giống như "Mã Spaghetti".
Hôm nay tôi đã đọc một số chương trình OO "thuần túy" trông giống như "Mã Spaghetti hướng đối tượng", nghĩa là lập trình viên đã sử dụng OOP, nhưng mã của nó trông giống như một mớ hỗn độn.
Nhiều lần, tôi có thể đọc mã OO và nói rằng lập trình viên đã học Lập trình có cấu trúc trước OOP, vì mã này rõ ràng và được sắp xếp.
Và đối với lập trình mô-đun, tôi đã thấy một số ứng dụng. trong C ++ và PHP không sử dụng các mô-đun. *