LÝ DO NÊN THAM GIA CÁC KỲ THI LẬP TRÌNH
Mục đích của thi lập trình:
Mục đích của thi lập trình (competitive programming) là
viết chương trình máy tính để
giải quyết các vấn đề liên quan đến
logic và toán học. Các bài toán cần giải quyết nằm trong phạm vi: tổ hợp, lý thuyết số, lý thuyết đồ thị, hình học, phân tích chuỗi và các cấu trúc dữ liệu [1].
Tiến trình giải quyết vấn đề:
Giải quyết vấn đề bằng lập trình thường gồm 4 bước chính:
(1) đọc hiểu rõ chi tiết vấn đề
(2) thiết kế thuật toán hiệu quả
(3) cài đặt thuật toán bằng ngôn ngữ cụ thể
(4) kiểm thử, debug chương trình kỹ càng
Lợi ích của việc tham gia thi lập trình:
Qua đó chúng ta thấy khi tham gia thi lập trình sẽ giúp chúng ta:
1. Kiến thức: chúng ta sẽ có đầy đủ kiến thức cơ bản về phương pháp giải quyết vấn đề bằng lập trình như: cấu trúc dữ liệu, thuật toán, phương pháp thiết kế thuật toán
2. Kỹ năng: chúng ta sẽ có kỹ năng đọc đề, kỹ năng phân tích logic, kỹ năng sử dụng các kỹ thức uyển chuyển, kỹ năng thiết kế thuật toán, kỹ năng sử dụng ngôn ngữ lập trình, kỹ năng debug, kỹ năng code các ý thành các chương trình
3. Thái độ:
- Tự tin: vì đã có đầy đủ kiến thức cơ bản, kỹ năng sử dụng các kiến thức cơ bản một cách uyển chuyển, linh hoạt
- Khiêm tốn: bên cạnh sự tự tin về những gì mình có, chúng ta cũng sẽ có thái độ khiêm tốn vì có nhiều vấn đề không phải lúc nào chúng ta cũng giải quyết được, cần phải có thời gian, phương pháp tiếp cận phù hợp.
- Chú ý chi tiết, kỹ càng: trước khi thiết kế ra thuật toán hiệu quả, chúng ta cần tận dụng từng ràng buộc của bài toán (chú ý chi tiết từng ràng buộc của bài toán), nhìn nhận các kiến thức ở nhiều góc nhìn khác nhau (các kiến thức được xem xét kỹ càng).
- Điềm tĩnh: Qua giải quyết các vấn đề khó, chúng ta sẽ được tôi luyện thái độ điềm tĩnh trong suy nghĩ, bình tĩnh phân tích từng nội dung của vấn đề.
4. Cơ hội: khi đã có kiến thức, kỹ năng giỏi, chúng ta mới có cơ hội để giúp đỡ, chia sẽ các kiến thức kỹ năng với những người cần giúp đỡ.
Tài liệu tham khảo
[1]. https://en.wikipedia.org/wiki/Competitive_programming