Các cuộc thi lập trình khác với lập trình trong thực tế thế nào?


Được đăng vào ngày 20/02/2016 | 0 bình luận
Các cuộc thi lập trình khác với lập trình trong thực tế thế nào?
5 (100%) 1 vote

Cơ bản thì chúng khác nhau giống như sự khác nhau giữa ngôn ngữ Python và ngôn ngữ Brainfuck vậy! (Brainfuck là một ngôn ngữ lập trình chỉ có 8 câu lệnh).

Trong các cuộc thi, để giải một bài toán lập trình thì bạn cần phải tìm một hoặc nhiều thuật toán mà bạn nghĩ là sẽ giải được bài đó trong thời gian và tài nguyên cho phép rồi code các thuật toán đó. Bạn không cần quan tâm đến việc viết code sao cho đẹp, sáng sủa, đặt tên biến sao cho dễ nhận biết, nên để comment chỗ nào, phân tích lớp, đối tượng…v.v thời gian bỏ ra cho một bài toán rất ít, chỉ tầm vài giờ hoặc cùng lắm là vài ngày, và chỉ cần code của bạn giải được bài toán là xong.

Khi làm các project trong thực tế, bạn không quan tâm đến các thuật toán chạy như thế nào, việc bạn làm là sử dụng các thư viện có sẵn để giải quyết yêu cầu khách hàng. Thời gian viết code của bạn rất ít, phần lớn thời gian sẽ tập trung vào việc tổ chức code như thế nào, đặt tên biến sao cho dễ nhớ, phân tích dữ liệu… Khi đã hoàn thành chương trình, công việc tiếp theo là test chương trình, rồi nâng cấp, cải tiến, quá trình này có thể ngốn một khoảng thời gian là… cả đời.

Mọi người thường cho rằng trình độ của một coder được đánh giá qua năng lực của người đó trong các cuộc thi lập trình, nhưng thực sự thì chẳng có cái nào đánh giá cái nào cả. Lập trình trong các kì thi và trong thực tế khác nhau hoàn toàn, một coder tầm thường trên Codeforces hay TopCoder không có nghĩa là người đó không thể làm tốt các project thực tế, một ví dụ điển hình là Mark Zuckerberg, người sáng lập Facebook, Mark Zuckerberg từng tham gia vài cuộc thi trên TopCoder và rating của anh cao nhất chỉ là 1044, đây là một số điểm khá thấp.

Mặc dù tham gia các cuộc thi lập trình giúp bạn hiểu sâu hơn về các thuật toán mà mình sẽ dùng bằng cách tự học và tự code lấy thuật toán đó, nhưng không vì thế mà khi làm thực tế bạn phải tìm hiểu đến chúng, bởi vì đó không phải là cách mà thế giới phát triển, có một câu nói rất nổi tiếng đó là:

“Why keep reinventing the wheel?” –

Tạm dịch: Tại sao phải mất công đi phát minh lại cái bánh xe?

main-qimg-292725c7b08a91bda15738a9c9f76c77







Trả lời


Lưu ý: bọc code trong cặp thẻ [code language="x"][/code] để highlight code.


Ví dụ:


[code language="cpp"]


    std::cout << "Hello world";


[/code]



Các ngôn ngữ được hỗ trợ gồm: actionscript3, bash, clojure, coldfusion, cpp, csharp, css, delphi, diff, erlang, fsharp, go, groovy, html, java, javafx, javascript, latex, matlab, objc, perl, php, powershell, python, r, ruby, scala, sql, text, vb, xml.

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *