Tại sao Python được chọn là ngôn ngữ đầu tiên để học?
Mình đang có ý định học lập trình cơ bản, mình thấy trên các trang nước ngoài người ta khuyên học Python trước tiên, nhưng mình có đọc qua một số tài liệu và tutorial về Python thì thấy ngôn ngữ này có cú pháp rất khác với đa số ngôn ngữ hiện nay (Java,C#,PHP đều có cú pháp giống C), hơn nữa sau khi tìm hiểu kỹ hơn thì mình thấy Python có rất nhiều hàm mang tính chất “ăn sẵn”, quá nhiều hàm, thư viện có sẵn. Ko hiểu sao nhiều người lại khuyên học Python nhỉ, nhiều hàm ăn sẵn có thể giúp lập trình dễ thở hơn nhưng như vậy thì làm sao hiểu được những thứ cơ bản của lập trình ?
Cụ thể là hàm nào?
Như thế nào là “ăn sẵn”, bạn có thể dùng assembly code để
printf
thay vì dùng hàmprintf
của C mà. C làm sẵn hàmprintf
rồi. Theo quan điểm của bạn thì nếu bạn sử dụng C sẽ không hiểu cơ bản của lập trình đâu.Bonus hello world của ASM
Nguồn
Get the right tool for the job
ví dụ trong List a ạ, có thể dùng sort() để sắp xếp luôn, trong khi các ngôn ngữ như C thì phải thực hiện hoán đổi vị trí các phần tử một cách thủ công
Thích thì bạn có thể tự viết mà, Java , C# cũng có hàm sort thôi
Tại em thích thủ công thôi chứ c có hàm qsort mà?
qsort
qsort is a C standard library function that implements a polymorphic sorting algorithm for arrays of arbitrary objects according to a user-provided comparison function. It is named after the "quicker sort" algorithm (a quicksort variant due to R. S. Scowen), which was originally used to implement it in the Unix C library, although the C standard does not require it to implement quicksort. Implementations of the qsort function achieve polymorphism, the ability to sort different kinds of data, b...
Nói thế thì mình khuyên bạn học Pascal thôi nhé
C cũng có hàm mang tính chất “ăn sẵn” đấy, như anh Đạt có nói
Ăn sẵn có vẻ xấu xa nhỉ
Bạn có thể “tự nấu” không ai cấm, cười chê
Đến khi bị “cơm hư” thì hãy tự trách bản thân
Mình thấy khá nhiều bạn mới học lập trình (học được < 1 năm) đều thích tự làm thay vì sử dụng thư viện bên ngoài, thậm chí cả hàm trong SDK cũng không xài, tự làm luôn. Đến khi lỗi thì trách abc xyz
Những người làm ngôn ngữ, SDK làm những hàm đó để người phát triển tiết kiệm thời gian hơn, suy nghĩ ra cách giải quyết bài toán, phần mềm, chức năng nhanh hơn
Cơ bản về lập trình?
Đâu cần phải nói mấy hàm trong Python hay C#, Java là “ăn sẵn”. Học lập trình là học tư duy, cách giải quyết một bài toán mang tính rộng lớn hơn như một dự án phần mềm có hàng trăm chức năng. Bạn biết vận dụng mấy hàm, đối tượng “ăn sẵn” đó để viết app, đó là tư duy lập trình
Vào dự án cho mấy bạn newbie < 1 năm học lập trình “ngồi nấu cơm” thay vì xài “đồ ăn sẵn” xem “cơm” có hư không
Thớt làm mình nhớ đến 1 cmt (giờ bị xoá rồi) mà mình vẫn nhớ như in, khi mình nói rằng nếu đã code 1 bài toán về string (hình như là tìm string trong string), mình nói rằng dùng STL (C++) vừa nhanh vừa tiện (và tất nhiên là chính xác), bạn thớt của topic đó cmt thế này:
Mình cạn lời luôn.
Đến lúc kiếm cơm, một ngày viết mấy nghìn dòng code lại chả hốt cả project của người ta paste vào chứ mấy hàm ăn sẵn đã là cái gì
Ví dụ hàm
sqrt()
để tính căn bậc 2 chẳng hạn, rõ ràng Python có sẵn, nhưng khi mới học lập trình thì 99% mọi người đều phải tìm cách tự code 1 hàmsqrt()
để hiểu bản chất, haysorted()
cũng vậy, học cấu trúc dữ liệu và giải thuật (môn cơ bản của cntt) bạn sẽ phải học khá nhiều loại sort khác nhau để hiểu bản chất, lúc đó Python có sẵn hay không có sẵn không quan trọng nữaBạn có thể xem MIT họ dùng Python để dạy cho newbie như thế nào ở đây:
vẫn ko hiểu “những thứ cơ bản của lập trình” của chủ thớt là sao. mỗi ngôn ngữ đều có tư duy của nó. như python sinh ra là để viết code nhanh gọn dễ hiểu. mình học c và python và thấy python nó ngắn gọn, dễ nhìn dễ hiểu. mà nói về hàm sẵn chắc gì bạn đã biết và áp dụng được các hàm sẵn đó đâu :))
Chính xác mà nói thì MIT không hề dạy python dù biết rằng học sinh họ sẽ học được python qua course đó. Mục đích của course này là dạy học sinh “using computation to solve problems”