“BỨT PHÁ BẢN THÂN” NHƯ THẾ NÀO KHI THAM GIA LẬP TRÌNH THI ĐẤU?
Tác giả: Nguyễn Quang Minh, học viên khóa 2020 – 2023
MỞ ĐẦU
Chào các bạn, mình là Nguyễn Quang Minh – học viên khóa 1 FCT Club. Mình cũng đã tham gia lập trình thi đấu (Competitive Programming) được vài năm, và cũng đã có được một số kết quả khá khả quan. Trong những năm tham gia CP, mình cũng đã rút ra được một số bài học, và mình muốn chia sẻ những bài học đó trong bài viết dưới đây:
1. Luôn luôn làm quen với những người giỏi hơn mình, trừ khi bạn là người giỏi nhất thật (kiểu người bạn đi IOI của mình)
Lý do:
- Các bạn luôn luôn có những vấn đề (có thể là bị lỗi 1 bài nào đó, có thể là bí bài nhưng không có editorial) cần được giải đáp.
- Những người như vậy có thể chỉ ra cho các bạn những thứ các bạn cần học hỏi thêm.
- Vượt qua những người giỏi hơn mình (có thể ở rating CF hay bất cứ cái gì đo được) thường xuyên cũng có thể là một mục tiêu mà các bạn hướng đến, nghe nó gần gũi hơn là những cái mục tiêu dài hạn như đạt giải HSGTP hay HSGQG.
Tìm những người như vậy ở đâu:
- Các bạn có thể vào discord của VNOI – một cộng đồng khá lớn bao gồm các bạn học sinh, sinh viên có đam mê với CP. Link. Bạn có thể nhắn thử với một số thành viên trong đó, ngoài ra có chỗ để các bạn có thể hỏi bài.
- Thông thường thì mọi người sẽ muốn giúp các bạn, quan trọng hơn là các bạn có hỏi không, nên đừng ngại hỏi.
2. Luôn luôn có những thứ để các bạn học hỏi thêm, nên đừng dành hàng tháng trời chỉ để đi cày bài.
- Có rất nhiều bài toán mà sự thông minh là chưa đủ để có thể giải được bài, mà còn cần những kiến thức mà bản thân có nữa
=> Học thêm kiến thức là rất quan trọng.
- Có rất nhiều topic để các bạn học, đặc biệt là ở những trang như VNOI wiki hay Cp-Algo. Ngoài ra ở trên Codeforces cũng có khá nhiều blog hay và cũng đã có những người tổng hợp lại các blog đó cho các bạn.
- Mình nghĩ các bạn nên bắt đầu từ những thứ cơ bản, như ở trong VNOI wiki mọi người đã phân loại ra những thứ cơ bản và những thứ nâng cao hơn để các bạn có thể theo đúng lộ trình.
3. Khi suy nghĩ bài, không nên suy nghĩ theo dạng.
- Lý do: Thông thường mình thấy nhiều bạn hay nghĩ theo kiểu “bài này chắc dùng DP là xong”, “bài này greedy là xong”. Điều này
- Làm suy nghĩ của các bạn vô cùng tù túng.
- Nếu các bạn đúng thì không sao, nếu các bạn sai thì đơn giản là sẽ rất khó để các bạn rút hẳn ra và đi theo một hướng khác. Điều đó dẫn đến hậu quả là có nhiều bài trong tầm tay nhưng các bạn lại mất nhiều thời gian mà không làm được.
- Khi bắt đầu suy nghĩ về một bài toán, các bạn nên chú ý vào việc đưa ra những nhận xét (observations) có thể trước, còn những kiến thức các bạn học được thường sẽ là công cụ để giúp các bạn giải những bài toán mà các bạn đã đưa về được sau khi nhận xét.
- 1 blog mà các bạn có thể tham khảo
4. Hãy biết sinh test
- Sinh test là một kĩ năng vô cùng quan trọng trong việc thi cử. Thay vì tự viết các test bằng tay và tự tính, chi bằng chúng ta dùng sức mạnh của máy tính. Chúng ta có thể thử hàng chục test mỗi giây, và thông thường chỉ cần vài giây để ra được một test làm cho code bạn sai (nếu code bạn sai thật).
- Điều này giúp sinh test không chỉ hữu ích trong những bài thi offline (chỉ được nộp 1 lần), mà còn trong cả những bài online (được nộp bao nhiêu lần tùy thích và biết ngay kết quả), vì chúng ta không bao giờ được biết test của BTC.
- Link mà mình thấy mọi người (và mình cũng) dùng: Link
- Ngoài ra mình cũng muốn nói một điều về việc thi (đặc biệt là những kì thi offline): khi bạn chỉ nộp được bài 1 lần như vậy, thì nó giống việc bạn giữ lại được bao nhiêu điểm hơn là việc bạn ghi được bao nhiêu điểm, nên hãy chú trọng việc ăn chắc được điểm hơn là cố gắng làm hết tất cả mọi thứ có thể như online.
5. Hãy rèn luyện sức khỏe nếu các bạn muốn luyện tập và thi tốt hơn
- Mình tin là việc thi 3-5 tiếng liên tục, phải cố gắng hết sức mình trong khoảng thời gian đó cũng như chịu rất nhiều áp lực từ bản thân là vô cùng tốn thể lực, và do đó sức khỏe là một thứ không thể thiếu.
- Mình nghĩ các bạn ngoài việc tập trung vào CP hay việc học trên lớp hay những hoạt động khác thì cũng nên dành sự quan tâm đến thể dục thể thao. Có thể chỉ là tập chạy, đạp xe hay bơi lội 2-3 lần / tuần. Điều đó giúp các bạn
- Cải thiện về mặt thể chất, dẫn đến cải thiện về mặt tinh thần, hay nói cách khác là não mình cũng trở nên khỏe mạnh hơn.
- Trong lúc tập luyện, các bạn có thể thoải mái hơn, giúp các bạn giảm stress trong những thời điểm quan trọng.
- Duy trì được một thói quen tốt.
- Nếu có thể, các bạn có thể rủ những người bạn của các bạn đá cùng, đó cũng là một hoạt động gắn kết mọi người với nhau. Chẳng hạn, đội tuyển bọn mình rủ nhau đi đá bóng hàng tuần, và cũng có được khá nhiều niềm vui thông qua việc đó.
6. Hãy tham ra nhiều cuộc thi online
Lý do:
- Việc thi có khá là nhiều lợi ích
- Giúp cho bạn hiểu rõ hơn về trình độ hiện tại của bản thân.
- Tạo cho bạn một môi trường áp lực về mặt thời gian tương tự như lúc bạn thi những kì thi chính thức, trái ngược với những lúc bạn làm bài bình thường, khi bạn có thể dành cả ngày để làm một bài.
- Các bạn có thể thử nghiệm những chiến thuật làm bài của bản thân khi thi
- Hiện tại có rất nhiều cuộc thi online cho các bạn chọn, từ trong nước (Link) đến nước ngoài như codeforces, atcoder, codechef, etc.
7. Có mục tiêu là tốt, nhưng đừng giới hạn bản thân ở đó.
- Một mặt, đặt mục tiêu giúp các bạn biết mình cần làm gì trong phòng thi. Chẳng hạn, để đạt được giải nhì, giải ba thì lượng điểm mình cần có được khác so với giải nhất, và do đó khối lượng công việc sẽ khác, và các bạn có thể có nhiều thời gian hơn để check lại mọi thứ.
- Mặt khác, việc giới hạn bản thân ở một mức nhất định có thể làm các bạn thiếu tự tin
- Các bạn có thể sẽ không học những thứ mới chỉ vì nó “trông không giống cái mình cần để đạt được mục tiêu”
- Khi mọi thứ diễn ra khác bạn nghĩ (chẳng hạn, bài dễ/khó hơn bạn nghĩ), bạn không sẵn sàng cho việc đó. Điều đó dẫn đến việc bạn mất bình tĩnh và quên mất mình cần làm gì. Chẳng hạn, mình cũng đã từng đặt cho mình một mục tiêu vào năm trước. Nhưng mọi thứ đã diễn ra quá suôn sẻ với mình. Sau ngày thi đầu tiên, mình đứng thứ 2, mặc dù mục tiêu của mình trong kì thi đó là top 15. Hệ quả là ngày thứ hai tuy mình không làm quá tệ nhưng những cái chiến thuật của mình đã bị đảo lộn lên. Mình đã không giữ được bình tĩnh và đã có những lựa chọn sai lầm, và mình đã không thể làm bài như ý.
KẾT BÀI
Ở trên là một số kinh nghiệm nhỏ mình có được trong những năm gắn bó với CP, hi vọng các bạn có thể rút ra được một số điều cho bản thân. Cảm ơn các bạn đã quan tâm đến bài viết này, chúc các bạn một ngày tốt lành!
2,003 total views, 1 views today