Is C++ a good first programming language?
Topic này đang hot bên Quora, mọi người đọc chơi
http://qr.ae/fra7r
No, and I’ll go even further and say that none of the popular programming languages are well suited to being learned as a first programming language. The reason is simple: “real world” languages need to be scrappy and pragmatic in order to meet the needs of a wide variety of applications, but a good first programming language would be one with a simple mental model, to introduce students to concepts common to programming languages in general without forcing them to deal with confusing details that don’t fit neatly into a simple mental model.
But C++ is particularly bad. I said real world languages are scrappy and pragmatic, and C++ exemplifies those qualities more than any other. There’s so much undefined, unspecified, and implementation-defined behaviour, just so C++ can be fast on every machine. There’s stuff from C we can’t get rid of, because of backward compatibility. There are extremely complicated sets of rules for how some features behave, so that some practical kind of behaviour can be established for all possible uses. None of these things should be present in a good first programming language.
Các câu trả lời khác cho câu hỏi này
http://www.quora.com/Is-C++-a-good-first-programming-language
Cá nhân Đạt đồng ý với các câu trả lời no
Nếu theo tiêu chí này, và theo em đánh giá 1 cách tự nhiên nhất trong các ngôn ngữ mà em từng học và biết thì có Python xứng đáng hơn C++ rất nhiều
Theo em Pascal gần nhất
Pascal đúng là “tự nhiên”, nhưng theo mình cách dùng câu lệnh như vậy dư thừa qúa
" Dư thừa " ??? là sao nhỉ ???
Lệnh Pascal theo dạng Basic,
if then else
.Ý mình là câu lệnh và từ khóa của pascal viết theo 1 cách quá tự nhiên, các ngôn ngữ về sau đều lược bỏ đi nhiều. Tất nhiên nó có ưu điểm là người đọc code sẽ dễ hiểu và có tư duy liền mạch. Nhưng mình vẫn ủng hộ cách viết ngắn gọn, mềm dẻo và hơn nữa có thể viết theo cả OOP của Python
Pascal và Python à , thôi chọn pascal đi, rất gần với thực tế, phù hợp với người mới hơn (đặc biệt là với học sinh).
Em nhớ không nhầm là có trường ở Việt Nam còn dạy cho học sinh cấp 2 lập trình batch file trước pascal
Nhưng em vẫn mong có một ngôn ngữ nào đó thật sự dành cho giáo dục ở Việt Nam hơn. Vì học sinh đã phải học lập trình lại còn phải học tiếng anh nữa, tại sao không tạo ra một ngôn ngữ cho trẻ em/thiếu niên Việt Nam có thể tiếp cận với lập trình với một cách đơn giản nhất, dễ hiểu nhất. Đồng ý là học lập trình thì không thể tránh tiếng anh mãi được nhưng mà tránh được đến đâu thì tránh cùng một lúc học 2 thứ theo em là không nên tý nào
Mục tiêu của ngôn ngữ đó là cho các em những khái niệm cơ bản nhất của lập trình, nên có thể hi sinh/dấu đi những vấn đề sâu xa của lập trình.
Ví dụ như này:
Không nên tí nào, tiếng Việt không đủ từ vựng để miêu tả các vấn đề kỹ thuật, đặc biệt là trong ngành công nghệ thông tin.
Nên dùng tiếng Anh. Nên học nhiều tiếng Anh hơn.
Trong C++ có thể định nghĩa đc mà anh! Em nhớ không lằm là định nghĩa được từ khóa luôn.
Em thấy chương trình pascal của cấp 2 cũng chỉ có for if read write đơn giản, thì mình cũng chỉ cần tạo ra một ngôn ngữ để làm những việc đó thôi còn khi các em đã quen với tư duy lập trình thì có hàng tá ngôn ngữ để lựa chọn
Em không hề có tham vọng tạo ra “ngôn ngữ lập trình của người việt” có thể làm phần mềm to lớn này nọ, em cần một ngôn ngữ để đưa em đến với lập trình một cách dễ dàng nhất
Thực ra Pascal cũng có bản tiếng Việt Anh song ngữ đấy chứ nhưng nhược điểm, nhìn loạn mắt và cùi bắp so với Pascal thời đại mới
vd:
Chương_trình vd;
bắt đầu
nếu … thì
begin
if … then
…
end;
kết thúc.
Python thì sao? Mục tiêu ban đầu của Python là ngôn ngữ dễ học.
Còn mục tiêu của Pascal là ngôn ngữ để dạy học
Nhưng dù sao theo mình thì tin học THCS tiếng anh trong đó cũng không nhiều. Chỉ cần trình tiếng anh 6 cũng có thể hiểu hết được
Nhưng em không biết for là gì range là gì, print là gì. Nếu như em biết nghĩa của từ đó trong tiếng anh thì em hoàn toàn có thể nhớ nó và tư duy theo nó một cách dễ dàng hơn.
Em sẽ nghiên cứu cái này
Học sinh nói chung là lười lắm anh, bỏ được cái gì là nó bỏ hết, đặc biệt tiếng anh không được yêu thích lắm, luôn luôn bị học sinh coi là một môn học khó nhằn và từ đó sinh ra định kiến cái gì có tiếng anh là khó =>bỏ
Nếu có 1 điều ước, em ước VN chấp nhận tiếng Anh là ngôn ngữ chính thứ 2 như Ấn Độ hay Malaysia đang làm!
Bạn cũng có thể làm một ngôn ngữ như thế trên Pascal vì Pascal mở nên bạn có thể down source về sửa. Các thư viện cũng mở nốt. OpenGl trên Pascal cũng mở, windowAPI vẫn xem được source trên Pascal, blah blah nói chung cái gì liên quan tới Pascal đều mở.
Còn mình thì không. Nói gì thì nói, mất văn hóa là mất nước.
Em chỉ muốn làm sao mà học sinh không còn sợ / ghét tiếng anh nữa. Chứ đừng bỏ hẳn tiếng việt
Hôm em gạ đứa em nghịch thử pascal nó bảo “em ghét tiếng anh lắm em không học đâu”
Chắc chắn em sẽ nghiên cứu cái này
Hơi sa vào chủ đề khác mất rồi
Thực ra chính bản thân mình hồi cấp 3 học chuyên tin cũng là học Pascal chứ ko phải C, nhưng Pascal ko có gì đặc biệt ngoài câu lệnh basics như anh @ltd nói, còn Python mình biết đến sau này và cảm thấy cực kì tự nhiên và dễ cho người mới bắt đầu.