Duy Nguyen Hoang A fully enthusiastic boy

“Tôi biết rõ về C++” – Những lời dối gian

5 min read

Anyone who says they know C++ is probably lying or making tall claims.

By Mohit Pandey

Bài viết được dịch từ bài viết gốc: Don’t trust a programmer who knows C++

c++

OK, khi bạn đọc đến đây nghĩa là bạn đã để tâm đến topic này. Hãy cùng nhau làm rõ một vài khía cạnh sau: Trước hết, phần lớn lập trình viên hiện nay sử dụng các ngôn ngữ như Python, Rust, Javascript hoặc các ngôn ngữ mới hơn. Bạn không cần phải trở thành một “Master C++”, hay thậm chí không cần phải “master” bất kì ngôn ngữ nào để trở thành một lập trình viên. Mặt khác, một người dám vỗ ngực tự xưng “Tôi có kiến thức về C++” có tỉ lệ khá cao là họ đang đưa ra những tuyên bố xa vời khỏi thực tế.

Cuộc thảo luận về chủ đề này bắt đầu từ năm 2010 bởi một blog có tiêu đề Never trust a programmer who says they know C++ bởi tác giả Louis Brandy. Ông giải thích rằng những lập trình viên chuyển từ C sang C++ tin rằng họ có thể dễ dàng tiếp cận ngôn ngữ này vì họ thành thạo nó khá nhanh.

Họ đang dối trá. Đối với các lập trình viên rẽ ngang sang C++, họ sẽ phải đi qua “thung lũng tuyệt vọng” – nơi mà chính bản thân mỗi người phải chấp nhận sự phức tạp của thứ ngôn ngữ kì quái này.

Chỉ cần biết C++ là một ngôn ngữ cực kỳ lớn và phức tạp, và những người đã đi qua thung lũng tuyệt vọng sẽ cho bạn 127 sự thất vọng nhỏ khác nhau mà họ gặp phải với ngôn ngữ này. Những người đứng trước thung lũng sẽ nói “Vâng, tôi đoán vậy. Ý tôi là, nó chỉ là C với Class”

Trích lời của Louis Brandy

Gượm đã, liệu có phải thực sự là thế?

Thứ nhất, hãy làm rõ với nhau rằng đó chỉ là một trò đùa trong giới lập trình. Thứ hai, vẫn còn rất nhiều tranh cãi xung quanh tính đúng đắn của nó.

Trong một thread trên Reddit, các lập trình viên đã thảo luận về tính đúng đắn của tuyên bố này. “Chỉ cần hỏi kỹ năng của họ về C++ trên thang điểm từ 1-10,” nếu câu trả lời nhận về cao hơn 6, chúng ta cần hỏi chi tiết hơn.

Trong thế giới máy học hiện tại, dường như những người học C++ nhắm đến mục đích học kiến ​​thức và bán sách. “Còn lại, chúng tôi chỉ cần múa vài đường và hoàn thành công việc của mình” – một người dùng Reddit cho biết.

Điều này là hoàn toàn đúng. Một số người thuật lại câu chuyện của họ về việc đưa C++ vào CV của họ, và sau đó khi được nhà tuyển dụng hỏi một câu hỏi cụ thể về nó, họ đã không trả lời được. Điều này có thể do C++ là một ngôn ngữ rộng lớn. Biết mọi chi tiết của nó là không cần thiết để hoàn thành công việc. Hầu hết các nhà phát triển chọn nó thay vì Python hoặc bất kỳ ngôn ngữ nào khác hiện nay chỉ vì tốc độ của nó.

Những người đã sử dụng ngôn ngữ này trong nhiều thập kỷ vẫn không khẳng định mình biết ngôn ngữ này 100%. “Có cực kì nhiều điều cồng kềnh và kì quặc.”

Ngay cả Bjarne Stroustrup, tác giả của cuốn sách Ngôn ngữ lập trình C++ , cũng không khẳng định mình hoàn toàn biết C++ và có lẽ chỉ có bốn người trên thế giới biết về nó. Trước đây ông ấy đã nói rằng: Phần lớn những người sử dụng C++ không thể viết một class đơn giản mà không bị rò rỉ hoặc lỗi.

Đến với C++ hay chúng ta không thuộc về nhau?

Sự thật về thế giới lập trình hiện tại là bạn có thể chọn bất kỳ ngôn ngữ nào phù hợp với mình. Rốt cuộc, ngôn ngữ lập trình chỉ là công cụ mà một lập trình viên nên học nếu bạn thực sự cần. Nếu Python phù hợp với bạn, tại sao lại chọn con đường C++?

Rất nhiều nhà phát triển đã tin rằng C++ là một ngôn ngữ đang chết dần chết mòn . Nhưng điều đó chắc chắn không phải. Nếu một nhà phát triển cần xây dựng thứ gì đó từ đầu như hệ điều hành, phát triển trò chơi và một số trường hợp nền tảng khác, thì C++ vẫn được cho là ngôn ngữ phù hợp cho việc đó. Nó chỉ có một vấn đề là “cú pháp quá khô khan” để sử dụng trong một số nhu cầu phát triển phần mềm hiện đại.

“Trong thế giới hiện tại, tất cả những gì bạn cần là kiến ​​thức về lập trình hướng đối tượng hoặc lập trình hàm.” một người dùng trên HackerNews giải thích .

Rõ ràng là rất ít người, hoặc có thể là không ai biết 100% bất kỳ ngôn ngữ lập trình nào. Với sự phức tạp và các mô hình thay đổi liên tục của ngôn ngữ, C++ chỉ cần tiến thêm một bước nữa. Một người dùng trên HackerNews cho biết: “Không ai trong số những người tuyên bố mình biết C++, dám nói mình biết 100% về nó”

Hầu hết các lập trình viên C++ đều có suy nghĩ này: “Nếu tôi tuân theo các quy tắc này, tránh XYZ và không làm ABC, làm theo quy tắc DEF, tôi có thể tránh việc chĩa súng vào chính mình”. Rõ ràng, câu trả lời tốt nhất để đưa ra khi được hỏi liệu bạn có biết C++ hay không là nói, “Tôi biết đủ, để biết rằng tôi không biết về nó”.

Avatar photo
Duy Nguyen Hoang A fully enthusiastic boy

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Leave a Reply

Your email address will not be published. Required fields are marked *