Học ngôn ngữ mới và bản chất vấn đề
Chào mọi người. Mình đang có một băn khoăn về việc học lập trình như thế này
Khi bắt đầu học lập trình, mình tiếp cận với Pascal và C.
Từng dòng lệnh thực thi khá rõ ràng, nhất là với C, việc diễn giải các lệnh và hiệu năng của chúng khá rõ ràng do không sử dụng quá nhiều thư viện can thiệp, mọi thứ diễn giải trên nền tương tác gần như trực tiếp với phần cứng như thế nào.
Khi bắt tay vào học những ngôn ngữ khác, như Java, hay Js, Python, mình bắt gặp một vấn đề là : việc sử dụng các cấu trúc ngắn gọn của các ngôn ngữ này, giúp ích rất nhiều cho việc code, tuy nhiên mình lại không thể nắm đươc hoàn toàn những gì thuộc về nó, không hiểu được sự chênh lệch hiệu năng chương trình chính xác do đâu.
Vậy, có phương pháp nào để nắm bắt được bản chất vấn đề, để code đạt hiệu suất cao.
Cảm ơn mn
Giờ ví dụ việc bạn tính tay từng phép cộng trừ nhân chia là việc bạn đang học C, Pascal. Thì việc sử dụng các ngôn ngữ lập trình mới hơn hỗ trợ nhiều hơn (C#, Python, Js,…) để lập trình cũng giống như việc bạn làm các bài toán phức tạp. Rõ ràng khi làm các bài toán phức tạp thì việc tính toán bạn đều bấm máy, vì bạn đã hiểu quá rõ bản chất cách làm các phép cộng trừ nhân chia nên đâu cần phải làm để mà hiểu nó nữa.
Vấn đề mình có thể thấy một phần không phải do ngôn ngữ khác mà có thể phần logic về lập trình. Bạn hiểu nó một cách rõ nhất và đơn giản nhất về cách nó hoạt động như thế nào. Thì mình nghĩ tiếp cận sẽ dễ thôi. Ngôn ngữ lập trình không phải là vấn đề bạn cần quá quan trọng hóa !
Vấn đề này lại ở một khía cạnh khác. Các ngôn ngữ bậc cao thì không gần với ngôn ngữ máy nên về tốc độ nó không thể mạnh như C được. Còn hiệu năng mà bạn muốn nói đến nó có thể còn nhiều lý do khác nữa …
Tóm lại, Bạn master một ngôn ngữ hiểu bản chất ngôn ngữ, cách xử lý vấn đề thì qua một ngôn ngữ khác sẽ không vất vả đến vậy
chuẩn rồi … giống như học toán các định lý đã được chứng minh sẳn rồi chúng ta ko cần chứng minh lại…giống như việc làm 1 thằng đứng photo tài liệu thì không cần phải biết chế tạo ra máy photo mà nó chỉ cần biết cách sử dụng thôi …giống các api nó sẽ giấu đi cái phức tạp bên trong và chỉ đưa ra các cài đặt để ta sử dụng … cái gì cũng phải có cái giá của nó cả mấy cái đầu bác học của bọn nước ngoài nó tính hết rồi bạn…
Việc không biết một hàm được viết thế nào là việc tất lẽ với tất cả các ngôn ngữ chắc trừ ASM.
Tất cả các ngôn ngữ còn lại đều có điểm yếu và điểm mạnh. Do vậy không có ngôn ngữ tốt nhất, chỉ có ngôn ngữ phù hợp nhất. Và để có hiệu quả thì phải biết rõ ngôn ngữ nào đó mạnh yếu chỗ nào.
Nó gọi là môn Computer Science 101.