diff --git a/articles/tortoise_and_hare.md b/articles/tortoise_and_hare.md index 1db80c1..6f0f1b6 100644 --- a/articles/tortoise_and_hare.md +++ b/articles/tortoise_and_hare.md @@ -208,7 +208,7 @@ $\implies$ *Ta không cần gọi $\gcd(u, N)$ mỗi bước Thỏ chạy mà g - Sau cùng, ta vẫn cần một lần duyệt $\lambda$ bước để tìm vị trí Thỏ gặp Rùa và sử dụng hàm $\gcd(u,N)$ mỗi bước. $\implies$ *Cả thuật toán gọi $\gcd(u, N)$ khoảng $\lambda + \log (\lambda+ \mu) \sim \sqrt[4]N$* lần. -ĐPT của **Thuật toán Brent** vẫn là $O \left( \sqrt[4] N \log N\right)$. +Độ phức tạp của **Thuật toán Brent** vẫn là $O \left( \sqrt[4] N \log N\right)$. Tuy nhiên **Thuật toán Brent** lại có số lần sử dụng $f(x)$ ít hơn **Thuật toán Floyd** rất nhiều nên đã tăng tốc thuật toán tìm chu trình khoảng $36\%$ và thuật toán phân tích số nguyên khoảng $24\%$ - [theo Brent](https://en.wikipedia.org/wiki/Cycle_detection#Brent's_algorithm).
Bảng dưới đây là minh họa cho **Thuật toán Brent** với $N = 143$, $x_0 = 2$ và $c = 1$. diff --git a/interviews/2024-dang-doan-duc-trung.md b/interviews/2024-dang-doan-duc-trung.md index 40ae32e..23c5053 100644 --- a/interviews/2024-dang-doan-duc-trung.md +++ b/interviews/2024-dang-doan-duc-trung.md @@ -5,129 +5,129 @@ meta: interviewer: "Vương Hoàng Long ~-- ICPC World Finalist 2021" --- -*Xin chào Kuroni, cảm ơn bạn đã nhận lời tham gia phỏng vấn tạp chí VNOI 2024, được biết bạn là người rất nổi tiếng và sâu sắc, rất mong qua buổi phỏng vấn này có thể đem đến cho độc giả sâu hơn cái nhìn về bạn và những trải nghiệm của bạn trong hành trình đến với Lập trình thi đấu. +*Xin chào Kuroni, cảm ơn bạn đã nhận lời tham gia phỏng vấn tạp chí VNOI 2024, được biết bạn là người rất nổi tiếng và sâu sắc, VNOI mong qua buổi phỏng vấn này có thể đem đến cho độc giả sâu hơn cái nhìn về bạn và những trải nghiệm của bạn trong hành trình đến với Lập trình thi đấu. Kuroni là một trong những người hiếm hoi đạt được thành công trên nhiều lĩnh vực. Hiện tại bạn là người giữ mức rating cao nhất Việt Nam và là một người làm đề vô cùng nổi tiếng trên Codeforces, bảo chứng cho những bộ đề hay trên trang web này. Ngoài ra bạn cũng đạt được học bổng toàn phần bậc Tiến sĩ về Toán kinh tế ở trường đại học bên Mỹ. Bên cạnh việc học, bạn là một gamer rất khủng với việc tham dự OSU World Cup nữa. Qua buổi phỏng vấn lần này, bọn mình hi vọng bạn có thể chia sẻ đến cho độc giả những kinh nghiệm cũng như bí quyết để bạn có thể toàn diện trong nhiều lĩnh vực như thế.* -### Bạn có xuất phát điểm cấp 2 là học sinh chuyên Toán, sau đó lên cấp 3 bạn học ở trường Phổ Thông Năng Khiếu. Nổi bật nhất bạn đã từng tham gia Entropy (kì thi ‘Đường lên đỉnh Olympia’ của trường PTNK), không biết lý do gì đã chuyển bạn từ Toán sang Tin, mà lại không chuyển từ Toán sang một con đường thú vị không kém là thi Olympia? +### Bạn có xuất phát điểm cấp 2 là học sinh chuyên Toán, sau đó lên cấp 3 bạn học ở trường Phổ Thông Năng Khiếu. Nổi bật nhất bạn đã từng tham gia Entropy (kì thi ‘Đường lên đỉnh Olympia’ của trường PTNK), lý do gì đã chuyển bạn từ Toán sang Tin, mà lại không chuyển từ Toán sang một con đường thú vị không kém - thi Olympia? ![](../assets/interviews/2024-dang-doan-duc-trung/image4.jpg) -Thật ra thì lý do việc mình chuyển từ Toán sang Tin với lý do mình không thi Olympia là hai cái…hoàn toàn khác nhau. Việc mình quyết định rẽ hướng sang Tin là do sau cấp 2 mình dần mất hứng thú với việc làm Toán thi HSG nữa, căn bản cũng tại hồi đó mình kém hình lắm. Đến tận bây giờ khi sang Mỹ mình cũng vẫn kém hình không kém. Còn việc mình không thi Olympia thì thật ra là lúc mình thi Entropy cũng là lúc mình đang trong giai đoạn thi vào đội tuyển Tin của trường, thế nên sau khi thi xong Entropy thầy Hùng có bảo đùa mình là ‘May quá, thằng này không thắng Entropy, không thì nó thi Olympia mất rồi’, cũng từ đó mình không thi Olympia luôn. Kể ra thì ước mơ từ nhỏ của mình là được đứng ở cầu truyền hình một lần, nên khi không được thi thì mình cũng tiếc, nhưng nghĩ lại thì từ việc đó mình mới có những trải nghiệm như thi HSGQG, TST nên từ một góc nhìn khác thì nó vẫn tốt. +Lý do mình chuyển từ Toán sang Tin với mình không thi Olympia là hai cái...hoàn toàn khác nhau. Việc mình quyết định rẽ hướng sang Tin là do sau cấp 2 mình dần mất hứng thú với việc làm Toán Chuyên, cũng vì hồi đó mình kém hình lắm. Đến bây giờ khi sang Mỹ mình cũng vẫn kém hình (cười). Còn việc mình không thi Olympia thì do lúc mình thi Entropy cũng là trong giai đoạn thi vào đội tuyển Tin của trường, thế nên sau khi thi xong Entropy thầy Hùng (Nguyễn Thanh Hùng - đồng tác giả bộ sách giáo khoa Chuyên Tin) có đùa mình là may rằng mình không thắng Entropy, chứ không thi Olympia mất rồi’, cũng từ đó mình không thi Olympia luôn. Tuy có tiếc nuối khi ước mơ từ nhỏ của mình là được đứng ở cầu truyền hình một lần, nhưng nhờ đó mình mới có trải nghiệm như thi HSGQG, TST. Từ một góc nhìn khác thì nó vẫn tốt. ### Được biết thì bạn bắt đầu thi VOI từ lớp 11 và được thi TST. Vậy lúc đó kết quả của bạn như thế nào? Đợt đó mình thi thì được rank 4 chung cuộc, ở thời điểm đó thì mình là thí sinh lớp 11 có thứ hạng cao nhất ở TST. Ngoài ra, đấy cũng là thứ hạng của mình năm lớp 12 luôn. Điểm đặc biệt là ở cả hai năm, ngày thi đầu tiên mình đều nằm ngoài top 15 và ở ngày 2 mình bứt lên được rank 4. -Có thể các bạn độc giả chưa biết thì có một ‘lời nguyền’ cứ thí sinh nào được rank 4 TST thì sẽ đều không đậu vào đội tuyển IOI và từ đó đến giờ thì vẫn chưa ai phá được. +*Có thể các bạn độc giả chưa biết thì có một ‘lời nguyền’ cứ thí sinh nào được rank 4 TST thì sẽ đều không đậu vào đội tuyển IOI và từ đó đến giờ thì vẫn chưa ai phá được.* -### Lớp 11 đã được rank 4 TST thì cũng là một kết quả rất tốt, không biết hồi đó bạn có bí quyết hay cách thức luyện tập nào để đạt được rank cao như vậy không? +### Lớp 11 đã được rank 4 TST thì cũng là một kết quả rất tốt, bạn có bí quyết nào để đạt được rank cao như vậy không? -Hồi đấy thì mình có một kỹ năng mình vô cùng tự hào đấy là mình có thể code các bài cấu trúc dữ liệu khó mà không bị lỗi quá nhiều. Mình nhớ năm ấy thi TST ngày 2 thì có một bài thuần cấu trúc dữ liệu, đấy là bài yêu cầu thí sinh phải code cấu trúc dữ liệu dạng persistent. Mình có nghĩ ra và code được bài đấy trong giờ, nhờ bài này nên mình bứt lên được hạng 4. Hôm đấy chỉ có 2 thí sinh AC được bài này là mình với anh Nhật (Hoàng Xuân Nhật - IOI 2018). Điều này cũng bởi vì hầu hết năm lớp 10, 11 mình đều cày các bài cấu trúc dữ liệu nên tạo cho mình lợi thế rất nhiều. +Hồi đấy mình có một kỹ năng mình vô cùng tự hào là code các bài cấu trúc dữ liệu khó mà không bị lỗi. Mình nhớ năm ấy thi TST ngày 2 thì có một bài thuần cấu trúc dữ liệu yêu cầu thí sinh phải code cấu trúc dữ liệu dạng persistent. Mình có nghĩ ra và code được bài đấy trong giờ, nhờ bài này nên mình bứt lên được hạng 4. Hôm đấy chỉ có 2 thí sinh AC được bài này là mình với anh Nhật (Hoàng Xuân Nhật - IOI 2018). Điều này cũng bởi vì hầu hết năm lớp 10, 11 mình đều cày các bài cấu trúc dữ liệu nên tạo cho mình lợi thế rất nhiều. ### Với vòng TST bạn được rank 4, vậy khi thi APIO đã có khó khăn nào khiến bạn không đủ điểm để đậu đội tuyển IOI? ![](../assets/interviews/2024-dang-doan-duc-trung/image1.jpg) -Thật ra năm đấy mình không đậu cũng là một việc hiển nhiên, một phần vì năm ấy đề cực kỳ khó, anh Thắng (Phạm Đức Thắng - IOI 2018) thi APIO cao nhất đoàn Việt Nam cũng chưa được đến 200 điểm. Đề năm ấy mình đánh giá khá là khó nghĩ, mà năm mình lớp 11 thì khả năng nghĩ thuật của mình cũng chưa chín muồi nên việc thất bại cũng không phải không ngờ tới được. +Năm đấy mình không đậu cũng là một việc hiển nhiên, một phần vì năm ấy đề cực kỳ khó, anh Thắng (Phạm Đức Thắng - IOI 2018) thi APIO cao nhất đoàn Việt Nam cũng chưa được đến 200 điểm. Đề năm ấy mình đánh giá là khó nghĩ, mà năm mình lớp 11 thì khả năng nghĩ thuật của mình cũng chưa chín muồi nên việc thất bại cũng không phải không ngờ tới được. ### Bạn đã có thay đổi gì về chiến thuật để tiếp tục đạt được rank 4 TST ở năm thi tiếp theo không? -Thật ra mình cũng không rõ mình đã thay đổi điều gì, nhưng mình nhớ khá rõ sau kì thi TST lớp 11 thì mình bắt đầu luyện tập nhiều hơn đề OI. Trước đấy thì mình chỉ có làm đề trên Codeforces thôi nên do thời đó Codeforces bài tập đòi hỏi phải code khá nhiều nên mình cũng code khá khỏe. Sau đó, năm lớp 12 mình cố gắng phát triển khả năng nghĩ bài bằng cách luyện tập các đề OI ở các nước khác. Trong thời gian này mình cũng cố gắng học nhiều thuật toán hơn thay vì như trước đó chỉ làm những bài cấu trúc dữ liệu. Lúc này cũng là khởi điểm mình bắt đầu đi làm problemsetter trên các trang OJ, khi tạo đề thì cũng đòi hỏi mình phải biết nhiều thuật toán và nhiều hướng nghĩ khác nhau, chính vì thế giai đoạn này mình tập trung để nâng cao tư duy khá nhiều. +Sau kì thi TST lớp 11 thì mình bắt đầu luyện tập nhiều hơn đề OI. Trước đấy thì mình chỉ có làm đề trên Codeforces thôi mà thời đó Codeforces bài tập đòi hỏi phải code khá nhiều nên mình cũng code khỏe. Sau đó, năm lớp 12 mình cố gắng phát triển khả năng nghĩ bài bằng cách luyện tập các đề OI ở các nước khác. Trong thời gian này mình cố gắng học nhiều thuật toán hơn thay vì như trước chỉ làm những bài cấu trúc dữ liệu. Lúc này cũng là khởi điểm mình bắt đầu đi làm Problemsetter trên các trang OJ, khi tạo đề thì cũng đòi hỏi mình phải biết nhiều thuật toán và nhiều hướng nghĩ khác nhau, chính vì thế giai đoạn này mình tập trung để nâng cao tư duy nhiều. ### Vậy sau đó với kỳ thi APIO năm lớp 12, bạn đã có trải nghiệm như thế nào? -![](../assets/interviews/2024-dang-doan-duc-trung/image3.jpg) - -Trước khi thi TST thì thầy Hùng cũng nói với mình là làm gì cũng được nhưng đừng để rank 4. Lúc đấy mình cũng nghĩ là nếu mình thi tốt thì sẽ phá được lời nguyền "rank 4" này, không thì cả thế giới sẽ biết mình là "Chú Tư". Thi xong TST khi biết mình vẫn giữ rank như năm ngoái thì mình có khóc với anh Hạnh thì anh ý cũng cười cười không biết ám chỉ gì (cười) +Trước khi thi TST thì thầy Hùng cũng nói với mình đừng để rank 4. Lúc đấy nghĩ là nếu mình thi tốt thì sẽ phá được lời nguyền "rank 4" này, không thì cả thế giới sẽ biết mình là "Chú Tư". Thi xong TST khi biết mình vẫn giữ rank như năm ngoái thì mình có khóc với anh Hạnh, anh ý cũng cười cười không biết ám chỉ gì (cười). -### Kuroni có một điểm khá đặc biệt khác với các bạn trong miền Nam đấy là bạn đi du học ngay khi tốt nghiệp cấp 3 với một trường rất tốt ở Mỹ - trường Purdue. Bạn có thể chia sẻ về cách bạn chuẩn bị hồ sơ đi du học được không? +### Đa số các CP-er nổi tiếng trong miền Nam đều ít đi du học, bạn đi du học ngay khi tốt nghiệp cấp 3 với một trường rất tốt ở Mỹ - trường Purdue. Bạn có thể chia sẻ về cách bạn chuẩn bị hồ sơ đi du học được không? -Thật ra gia đình mình cũng có điều kiện hơn một tí nên từ sớm mình đã được tư vấn và học SAT, mình đã học SAT từ rất sớm là đầu năm lớp 11. Điều này cũng vì gia đình đã định hướng mình đi du học từ đầu cấp 3 thế nên ngay từ trước khi vào lớp 12 là mình đã thi xong SAT và chuẩn bị viết luận rồi. Mình cứ thế chuẩn bị hồ sơ liên tục từ lúc mình học đội tuyển ở trường đến lúc mình thi TST năm lớp 12 và ngay khi tốt nghiệp là mình đã sẵn sàng để đi du học rồi. Chính vì thế nên mình cũng không cần mất 1 năm làm hồ sơ như các bạn khác. +Gia đình mình có điều kiện hơn một tí nên từ sớm mình đã được tư vấn du học và ôn SAT, mình đã học SAT từ đầu năm lớp 11. Điều này cũng vì gia đình đã định hướng mình đi du học từ đầu cấp 3 nên ngay từ trước khi vào lớp 12 là mình đã thi xong SAT và chuẩn bị viết luận rồi. Mình cứ thế chuẩn bị hồ sơ liên tục từ lúc mình học đội tuyển ở trường đến lúc mình thi TST năm lớp 12. Ngay khi tốt nghiệp là mình đã sẵn sàng để đi du học rồi. Chính vì thế nên mình cũng không cần mất 1 năm làm hồ sơ như các bạn khác. -### Thành tích học thuật của bạn rất khủng nhưng vẫn có thời gian để học SAT và chuẩn bị hồ sơ du học, không biết bí quyết nào giúp bạn có thể duy trì những việc này? +### Thành tích học thuật của bạn rất khủng nhưng vẫn có thời gian để học SAT và chuẩn bị hồ sơ du học. Bí quyết nào giúp bạn có thể duy trì những việc này? -Mình học đội tuyển thì trên trường mình cày nhiều chứ về nhà cũng không nhiều lắm, chắc chắn là mình không cày nhiều bằng một số bạn mình biết được như bạn Khoa (Nguyễn Ngọc Đăng Khoa, IOI - 2023), mình nhìn profile Codeforces bạn này là mình biết mình không thể cày nhiều như bạn này ở hồi đó được (cười) +Mình học đội tuyển thì trên trường mình cày nhiều chứ về nhà cũng không nhiều lắm, chắc chắn là mình không cày nhiều bằng một số bạn mình biết được như bạn Khoa (Nguyễn Ngọc Đăng Khoa, IOI - 2023), mình nhìn profile Codeforces bạn này là biết mình không thể cày nhiều như bạn này ở hồi đó được (cười). -Nếu mà nói thì hồi cấp 3 mình cũng như bao học sinh bình thường khác, mình không thể dành hết thời gian cho CP được mà sẽ có nhiều hoạt động khác nữa. Hồi đấy thì ngoài CP mình có học thêm SAT và chơi game, thật sự thì mình khá…lười học SAT, hồi đó mình chỉ đơn giản là lên làm bài của trung tâm giao và về nhà làm thêm các dạng là hết rồi. Mình cảm thấy cách mình phân bố thời gian không hiệu quả bằng các bạn khác nhưng đối với mình thì nó vừa đủ để cân bằng việc học CP và chuẩn bị hồ sơ du học cùng một lúc. +![](../assets/interviews/2024-dang-doan-duc-trung/image3.jpg) +Hồi cấp 3 mình cũng như bao học sinh bình thường khác, mình không thể dành hết thời gian cho CP được mà sẽ có nhiều hoạt động khác nữa. Ngoài CP mình có học thêm SAT và chơi game, nhưng mình khá...lười học SAT, hồi đó mình chỉ đơn giản là lên làm bài của trung tâm giao và về nhà làm thêm các dạng là hết rồi. Mình cảm thấy cách mình phân bố thời gian không hiệu quả bằng các bạn khác nhưng đối với mình thì vừa đủ để cân bằng việc học CP và chuẩn bị hồ sơ du học cùng một lúc. -### Ngay từ lúc bạn còn chưa qua Mỹ đã vô cùng nổi tiếng trong cộng đồng CP thế giới. Mình thấy có bạn và zscoder có điểm chung là đều nổi tiếng rất bất ngờ. Theo bạn điều gì đã làm bạn nổi tiếng như vậy? +### Lúc bạn chưa qua Mỹ bạn đã vô cùng nổi tiếng trong cộng đồng CP thế giới. Theo bạn điều gì đã làm bạn nổi tiếng như vậy? ![](../assets/interviews/2024-dang-doan-duc-trung/image2.jpg) -Hồi đó mình có tham gia server Discord ‘AC’, một server nước ngoài khá là nổi tiếng trong giới CP. Mình đã tham gia và giao lưu trên đấy khá thường xuyên, nhưng mình nghĩ việc mình đột nhiên nổi tiếng như vậy cũng là từ việc mình tham gia tổ chức các contest trên Codeforces. Từ hồi lớp 11 mình đã tổ chức contest rồi nhưng mình thấy nó cũng không tốt lắm, mãi đến năm lớp 12 thì mình tổ chức một contest nữa được đánh giá khá là cao. Từ lúc đó mình bắt đầu kết nối đến các bạn nước ngoài trên Codeforces có rating cao và cùng chí hướng để ra lò một số series contest khá là hay, cũng từ đó mọi người biết đến tên mình nhiều hơn và đánh giá khá cao chất lượng các contest mình làm. Có một kỉ niệm mình rất nhớ và tự hào đấy là đợt ICPC World Finals ở Dhaka, ông Mike (founder Codeforces) đã chào mình và bảo mình làm thêm contest đi (cười). -Đầu đuôi câu chuyện lúc đấy là mình có bắt gặp Mike và xin chụp hình cùng, ông ý có hỏi tên mình và mình trả lời, sau đó mình không ngờ tới được là ông ý nói như này: ‘Oh, I remember you, you made very good contests, please make more contests’. (cười) +Trước mình có tham gia server Discord ‘AC’, một server nước ngoài nổi tiếng trong giới CP. Mình đã tham gia và giao lưu trên đấy khá thường xuyên, nhưng mình nghĩ việc mình đột nhiên nổi tiếng như vậy cũng là từ tham gia tổ chức các contest trên Codeforces. Hồi lớp 11 mình đã tổ chức contest rồi nhưng mình thấy nó cũng không tốt lắm, mãi đến năm lớp 12 mình tổ chức một contest nữa thì được đánh giá cao. Từ lúc đó mình bắt đầu kết nối đến các bạn nước ngoài trên Codeforces có rating cao và cùng chí hướng để ra lò một số series contest khá là hay, mọi người biết đến tên mình nhiều hơn và đánh giá tốt chất lượng các contest mình làm. Có một kỉ niệm mình rất nhớ và tự hào đấy là đợt ICPC World Finals ở Dhaka, ông Mike (founder Codeforces) đã chào mình và bảo mình làm thêm contest đi (cười). +Đầu đuôi câu chuyện lúc đấy là mình có bắt gặp Mike và xin chụp hình cùng, ông ý có hỏi tên mình và mình trả lời, sau đó mình không ngờ tới được là ông ý nói như này: ‘Oh, I remember you, you made very good contests, please make more contests.’ -Lúc đấy có hai điểm mình chú ý đấy là mình rất hãnh diện vì Mike nhớ đến mình là một người làm contest hay, thứ hai là Mike nhớ là mình không làm contest từ rất lâu rồi, khoảng chừng là 2 năm. Thế nên lúc đó mình cảm thấy rất là vui vì có trùm của một contest như thế nhớ đến. +Lúc đấy có hai điểm mình chú ý, mình rất hãnh diện vì Mike nhớ đến mình là một người làm contest hay, thứ hai là Mike nhớ mình không làm contest từ rất lâu rồi, khoảng chừng là 2 năm. Thế nên lúc đó mình cảm thấy rất là vui vì có trùm của một trang như thế nhớ đến. ### Lý do gì mà bạn nghỉ làm những contest trên Codeforces mà chuyển sang làm những contest cho Việt Nam không? -Lý do mình ngưng làm contest có lẽ là do bị burnout thôi, lúc đấy mình khá là bí ý tưởng và đúng là trong quãng thời gian đó mình tổ chức các contest khá là liên tục nên đến một lúc bị bí ý tưởng thì cũng là dĩ nhiên. Việc mình chuyển hướng sang làm contest cho cộng đồng Việt Nam cũng tại vì phần lớn mình được mời làm coordinator cho VNOI CUP 2023. Khoảnh khắc mình được mời làm vai trò đó là mình đã bí ý tưởng được 2 năm rồi nên mình cũng khá tự ti, nhưng sau đó mình khá ngạc nhiên là sau khi đảm nhận một vị trí quan trọng như vậy thì mình có cảm hứng và ý tưởng tạo đề lại. Mình cảm ơn VNOI nhiều vì đã tạo động lực cho mình quay lại việc tổ chức các contest. Tiết lộ một chút thì mình đang cùng bạn mofk (Nguyễn Đinh Quang Minh - max rating CF 2726) làm một contest Div 1 trên Codeforces và nếu điều này thành hiện thực thì Kuroni x Mofk Cup sẽ được làm trên Codeforces chứ không phải là VNOJ (cười). - -![](../assets/interviews/2024-dang-doan-duc-trung/image7.png) +Lý do mình ngưng làm contest có lẽ là do bị burnout thôi, lúc đấy mình bí ý tưởng và trong quãng thời gian đó mình tổ chức các contest liên tục nên đến một lúc bị bí ý tưởng thì cũng là dĩ nhiên. Việc mình chuyển hướng sang làm contest cho cộng đồng Việt Nam vì phần lớn mình được mời làm Coordinator cho VNOI CUP 2023. Khoảnh khắc mình được mời làm vai trò đó là mình đã bí ý tưởng được 2 năm rồi nên mình cũng khá tự ti, nhưng sau đó mình ngạc nhiên là khi đảm nhận một vị trí quan trọng như vậy thì mình có cảm hứng và ý tưởng tạo đề lại. Mình cảm ơn VNOI nhiều vì đã tạo động lực cho mình quay lại việc tổ chức các contest. Tiết lộ một chút thì mình đang cùng bạn mofk (Nguyễn Đinh Quang Minh - max rating CF 2726) làm một contest Div 1 trên Codeforces. Nếu điều này thành hiện thực thì Kuroni x Mofk Cup sẽ được làm trên Codeforces chứ không phải là VNOJ (cười). *Dành cho các bạn chưa biết thì đề VNOI CUP 2023 được đánh giá là một bộ đề chất lượng và cực kỳ hay, rất nhiều bạn thích và tín nhiệm với bạn Kuroni là trưởng ban ra đề* ### Sau khi học cấp 3 và chuyển sang Mỹ, thời gian đầu bạn có gặp trở ngại gì không? -Mình cảm thấy mình may mắn ở chỗ mình hòa nhập văn hóa ở Mỹ khá hợp. Thực sự thì lúc đấy mình cũng đang trong giai đoạn nổi loạn nữa nên suy nghĩ của mình lúc đấy là luôn thích được đi khám phá và không muốn ở nhà. Lúc đấy mình nghĩ đơn giản là nếu mình không hòa nhập được cộng đồng ở đây thì mình lại quay trở về nhà, mình thấy nó không hợp lý với suy nghĩ của mình lúc đấy nên mọi chuyện sau đó diễn ra rất là tốt. Một ấn tượng của mình trong thời gian đầu ở đây là mình được thầy Ninghui Li - thầy coach ICPC ở Purdue để ý, do là vì trên Codeforces mình có đổi thông tin trường học của mình thành Purdue, chính vì thế mình có tên trong danh sách của trường ở trên Codeforces. Vì vậy ngay từ tuần thứ hai của năm nhất mình đã được thầy dẫn dắt và làm trợ giảng cho một số lớp học của thầy. Từ đó mình cũng được kết nối với rất nhiều bạn đam mê CP ở Purdue. Trong số đó có một cái tên cũng khá nổi tiếng với cộng đồng Codeforces là bạn Monogon (max rating CF 2705). +![](../assets/interviews/2024-dang-doan-duc-trung/image7.png) + +Mình cảm thấy may mắn khi hòa nhập được văn hóa ở Mỹ. Lúc đấy mình đang trong giai đoạn nổi loạn nữa nên suy nghĩ của mình là luôn thích được đi khám phá và không muốn ở nhà. Một ấn tượng của mình trong thời gian đầu ở đây là mình được thầy Ninghui Li - thầy coach ICPC ở Purdue để ý, do là vì trên Codeforces mình có đổi thông tin trường học của mình thành Purdue. Vì vậy ngay từ tuần thứ hai của năm nhất mình đã được thầy dẫn dắt và làm trợ giảng cho một số lớp học của thầy. Từ đó mình cũng được kết nối với rất nhiều bạn đam mê CP ở Purdue. Trong số đó có một cái tên cũng khá nổi tiếng với cộng đồng Codeforces là bạn Monogon (max rating CF 2705). ### Bạn đã từng đủ điều kiện tham dự 2 ICPC World Finals năm 2020 và 2021 nhưng phải tới năm 2022 thì mới có giá trị do là 2 kỳ thi kia bị ảnh hưởng bởi Covid 19. Bạn có thể chia sẻ về điều này được không? -Đúng là như vậy, mình có được tham dự kỳ thi ICPC World Finals tổ chức ở Nga nhưng mình không đi được do bị ảnh hưởng từ Covid. Lý do trực tiếp do mình không đi được là vì Visa mình hết hạn nên không thể quay lại Mỹ. Vì thế khả năng mình về Việt Nam để gia hạn Visa và quay lại Mỹ là khá thấp do lệnh hạn chế đi lại ở các nước nên mình quyết định không đi. +Đúng là như vậy, mình có được tham dự kỳ thi ICPC World Finals tổ chức ở Nga nhưng mình không đi được do bị ảnh hưởng từ Covid. Lý do trực tiếp mình không đi được là vì Visa mình hết hạn nên không thể quay lại Mỹ. Vì thế khả năng mình về Việt Nam để gia hạn Visa và quay lại Mỹ là khá thấp do lệnh hạn chế đi lại ở các nước nên mình quyết định không đi. *Có một sự thật thú vị rằng bạn Kuroni là người đầu tiên trên thế giới đủ điều kiện tham dự ICPC World Finals tận 4 lần. Lần gần nhất bạn Kuroni thực sự tham gia là ICPC World Finals 2022 ở Dhaka, Bangladesh* -### Kuroni đạt được rank 17 ICPC World Finals 2022, một rank khá là cao ở một kỳ thi đẳng cấp. Vậy quá trình luyện tập của bạn cho kỳ thi này là như thế nào? +### Kuroni đạt được rank 17 ICPC World Finals 2022, một rank cao ở một kỳ thi đẳng cấp. Vậy quá trình luyện tập của bạn cho kỳ thi này là như thế nào? -Năm đầu tiên ở trên đại học của mình là khoảng cỡ 2020 thì đương nhiên lúc đó mình hướng tới ICPC World Finals ở Nga rồi, lúc đó thì mình luyện tập rất nhiều, hơn cả lúc mình học cấp 3. Một phần cũng là vì mình khá cay do hồi đó trượt đội IOI, có một khoảng thời gian cỡ 3-4 tháng liên tiếp mà mỗi ngày mình sẽ chọn ra 1 bài độ khó 2700 bất kỳ trên Codeforces và cố gắng giải nó trong 3-4 tiếng, thậm chí có một số ngày đỉnh điểm mình giải đến 2-3 bài 2700 cơ. Ngoài ra mình còn luyện riêng với đội ICPC nữa, thường thì bọn mình sẽ chọn ra một bộ đề Regional nào đấy và mỗi một tuần lại làm với nhau 1 lần, mỗi lần tụi mình gặp nhau như thế thì sẽ dành ra 5 tiếng để làm và 2-3 tiếng để thảo luận về lời giải cũng như chiến thuật sau khi làm xong. Không biết may hay rủi nhưng Monogon là một số ít trong những bạn mình biết như Bùi Hồng Đức (IOI 2019, 2020) rất thích code những bài hình, nên là đợt đó mình gần như không quan tâm đến việc code những bài hình mà cứ quăng hết cho Monogon. +Năm đầu tiên ở trên đại học của mình là khoảng cỡ 2020 thì mình đang hướng tới ICPC World Finals ở Nga, mình đã luyện tập rất nhiều, hơn cả lúc mình học cấp 3. Một phần vì mình khá cay do trượt đội IOI, có một khoảng thời gian cỡ 3-4 tháng liên tiếp mà mỗi ngày mình sẽ chọn ra 1 bài độ khó 2700 bất kỳ trên Codeforces và cố gắng giải nó trong 3-4 tiếng, có một số ngày đỉnh điểm mình giải đến 2-3 bài 2700 cơ. Ngoài ra mình còn luyện riêng với đội ICPC nữa, thường thì bọn mình sẽ chọn ra một bộ đề Regional ngẫu nhiên và mỗi một tuần lại làm với nhau 1 lần, mỗi lần như thế sẽ dành ra 5 tiếng để làm và 2-3 tiếng để thảo luận về lời giải cũng như chiến thuật sau khi làm xong. Không biết may hay rủi nhưng Monogon là một số ít trong những bạn mình biết như Bùi Hồng Đức (IOI 2019, 2020) rất thích code những bài hình, nên là đợt đó mình gần như không quan tâm đến việc code những bài hình mà cứ quăng hết cho Monogon. ![](../assets/interviews/2024-dang-doan-duc-trung/image8.jpg) -Nhưng khi sang quãng thời gian 2020 - 2021 và 2021 - 2022 thì là một khoảng trầm không chỉ trong hành trình CP của mình mà trong cuộc đời mình luôn. Hai năm đó cũng là hai năm cao điểm nhất của dịch Covid 19, tinh thần mình hồi đó cũng khá bất ổn và nếu các bạn để ý trên Codeforces của mình thì mình có một khoảng nghĩ hơn 1 năm rưỡi đến 2 năm mà mình không có hoạt động nào nhiều trên Codeforces như trước. Mình có nhớ một bạn đăng blog trên Codeforces hỏi tại sao mình lại ngưng hoạt động trên Codeforces lâu như thế, blog viết cũng dài và lượt upvote cũng khá cao, cũng nhờ đợt này mà mình mới biết mình nổi tiếng trong cộng đồng đến thế. +Sang quãng thời gian 2020 - 2021 và 2021 - 2022 thì là một khoảng trầm không chỉ trong hành trình CP của mình mà trong cuộc đời mình luôn. Hai năm đó cũng là hai năm cao điểm nhất của dịch Covid 19, tinh thần mình khá bất ổn và nếu các bạn để ý trên Codeforces thì mình có một khoảng nghĩ hơn 1 năm rưỡi đến 2 năm mà không có hoạt động nào nhiều trên Codeforces như trước. Mình nhớ một bạn đăng blog trên Codeforces hỏi tại sao mình lại ngưng hoạt động trên Codeforces lâu như thế, blog viết cũng dài và lượt upvote cũng cao, nhờ đợt này mới biết mình nổi tiếng trong cộng đồng đến thế. ![](../assets/interviews/2024-dang-doan-duc-trung/image5.jpg) -Đến giữa năm 2022 thì có vẻ Covid tốt hơn dần nên mình có thể ra ngoài và giao lưu với bạn bè nhiều hơn, đợt đấy thì mình có gặp bạn ToMo ở Purdue (Nguyễn Thành Minh - hai lần tham gia APIO 2018, 2019) - một người ôn TST chung với mình. Sau này thì mình với bạn ý ở chung luôn, trong quãng thời gian này thì mình tìm lại cảm hứng với CP, lâu lâu ăn tối thì mình với bạn ý lôi bài trên Codeforces ra và thảo luận với nhau, các chủ đề bọn mình thảo luận nhiều khi không chỉ mỗi CP mà còn là toán nữa, nhiều lúc ToMo nói ra 1 tràng toán xong mình ngồi nghe (cười) +Đến giữa năm 2022 thì có vẻ Covid tốt hơn dần nên mình ra ngoài và giao lưu với bạn bè nhiều hơn, đợt đấy mình có gặp bạn ToMo ở Purdue (Nguyễn Thành Minh - hai lần tham gia APIO 2018, 2019) - một người ôn TST chung với mình. Sau này mình với bạn ý ở chung ký túc xá luôn, trong quãng thời gian này mình đã tìm lại cảm hứng với CP, lâu lâu ăn tối thì bạn ý lôi bài trên Codeforces ra và thảo luận với mình, các chủ đề bọn mình thảo luận nhiều khi không chỉ CP mà còn là toán nữa, ToMo cứ nói ra 1 tràng toán xong mình ngồi nghe. -Kể từ đó mình tập trung cày CP để hướng đến ICPC World Finals ở Dhaka, lúc này mình phải làm những bài khó hơn tầm rating 3000 và những bài trên trang AtCoder. Trùng với khoảng thời gian này thì mình theo đuổi hướng nghiên cứu nên mình cũng khai thác những góc nhìn rộng hơn và bao quát chứ không chỉ ở trong CP, may mắn là mình cũng học được một kỹ năng khá quan trọng liên quan đến chủ đề ‘Tối ưu hàm lồi’, mình cũng đóng góp một bài trên VNOI Wiki liên quan đến chủ đề này. +Kể từ đó mình tập trung cày CP để hướng đến ICPC World Finals ở Dhaka, mình phải làm những bài khó hơn tầm rating 3000 và những bài trên trang AtCoder. Trùng với khoảng thời gian này thì mình theo đuổi hướng nghiên cứu nên khai thác những góc nhìn rộng hơn và bao quát chứ không chỉ ở phạm vi CP, may mắn là mình học được một kỹ năng quan trọng liên quan đến chủ đề ‘Tối ưu hàm lồi’, mình cũng đóng góp một bài trên VNOI Wiki liên quan đến chủ đề này. -### Được biết thì do Covid nên ICPC World Finals ở Dhaka bị dời lại khá là sâu, lúc đó đồng đội của bạn là Monogon cũng đã đi làm rồi nên không dành nhiều thời gian cho CP được nữa, vậy lúc đó cách làm việc của cả đội cũng như chiến thuật có bị thay đổi không? +### Do Covid nên ICPC World Finals ở Dhaka bị dời lại khá là sâu, lúc đó đồng đội của bạn là Monogon cũng đã đi làm rồi nên không dành nhiều thời gian cho CP được nữa, vậy cách làm việc của cả đội cũng như chiến thuật có bị thay đổi không? -Có một điều mình khá hối hận là không tái hợp với team sớm hơn để luyện tập cho ICPC World Finals. Cũng vì thế nên là trong lúc thi bọn mình cũng gặp một số trở ngại, Monogon với mình không còn kết hợp nhuần nhuyễn như hồi năm 2020 nữa, nhưng về cơ bản thì cái luồng làm việc của team vẫn được giữ nguyên như đọc bài, nghĩ bài, debug, ….Trong đó thì mình vẫn đảm nhiệm hầu hết các bài, quan trọng nhất vẫn là các bài cấu trúc dữ liệu cùng với những dạng như quy hoạch động hay các bài thiên hướng như đề Codeforces. Phần còn lại như các bài hình này nọ thì Monogon sẽ làm, các bài toán thì sẽ đưa cho bạn Richard Li - đồng đội còn lại của mình. Bạn là một người có khả năng làm toán khá là tốt nhưng buồn một cái là bạn code bug kinh khủng (cười). Thế nên team mình cho bạn ý một vai trò nghĩ bài và sẽ đọc lời giải cho mình hoặc Monogon code. Đợt bọn mình thi thì cả team code một bài và mình bug xong debug không ra nên đưa lại cho các bạn debug, cả team cũng không ai debug ra thế nên là bài đầu tiên bọn mình AC là phải sau 60 phút đầu tiên, một khởi đầu cũng khá là chậm so với các team khác. +Có một điều mình hối hận là không tái hợp với team sớm hơn để luyện tập cho ICPC World Finals. Vì thế nên lúc thi bọn mình cũng gặp một số trở ngại, Monogon với mình không còn kết hợp nhuần nhuyễn như hồi năm 2020 nữa, nhưng về cơ bản thì cái luồng làm việc của team vẫn được giữ nguyên như đọc bài, nghĩ bài, debug, ….Trong đó thì mình vẫn đảm nhiệm hầu hết các bài, quan trọng nhất vẫn là các bài cấu trúc dữ liệu, quy hoạch động hay các bài thiên hướng như đề Codeforces. Phần còn lại như các bài hình này nọ thì Monogon sẽ làm, các bài toán thì sẽ đưa cho bạn Richard Li - đồng đội còn lại của mình. Bạn là một người có khả năng làm toán khá là tốt nhưng buồn là bạn code bug kinh khủng (cười). Thế nên team cho bạn ý một vai trò nghĩ bài và sẽ đọc lời giải cho mình hoặc Monogon code. Đợt bọn mình thi thì cả team code một bài và mình bug xong debug không ra nên đưa lại cho các bạn debug, team cũng không ai debug ra nên bài đầu tiên bọn mình AC là phải sau 60 phút đầu tiên, một khởi đầu chậm so với các team khác. -### Khi kỳ thi kết thúc thì mình cũng thấy ở bạn một sự thất vọng nhẹ mặc dù rank tương đối cao nhưng mình nghĩ bạn cũng có hy vọng khá cao vào việc dành được huy chương. Vậy kết quả năm ấy có ảnh hưởng đến bạn như nào cho việc chuẩn bị WF sắp tới? +### Khi kỳ thi kết thúc thì mình thấy ở bạn một sự thất vọng nhẹ mặc dù rank tương đối cao. Vậy kết quả năm ấy có ảnh hưởng đến bạn như nào cho việc chuẩn bị WF sắp tới? -Mình sẽ ví World Finals năm ấy như APIO thứ hai của mình thế thôi. Mình cảm thấy mình đã có thực lực và thời điểm cũng chín muồi nhưng mình lại để vụt mất trong tầm tay, thế nên từ sau WF đấy mình cũng làm bài nhiều hơn, tuy không thường xuyên như hồi năm nhất đại học. Nếu các bạn để ý thì mình cũng làm CF thường xuyên lại rồi, cứ 2-3 tháng mình lại tham gia thi một contest. Ngoài ra thì mình cũng làm nhiều bài hình trở lại vì lúc này team mình cũng thiếu đi bạn Monogon, cũng không đến nỗi thích bài hình lắm nhưng mình đã quen với việc làm bài hình và nghĩ ra code. +Mình sẽ ví World Finals năm ấy như APIO thứ hai của mình. Mình cảm thấy đủ thực lực và thời điểm cũng chín muồi nhưng mình lại để vụt mất trong tầm tay, từ sau WF đấy mình cũng làm bài nhiều hơn, tuy không thường xuyên như hồi năm nhất đại học. Nếu các bạn để ý thì mình làm CF thường xuyên lại rồi, cứ 2-3 tháng mình lại thi một contest. Ngoài ra mình tập làm nhiều bài hình trở lại vì team mình đã thiếu đi bạn Monogon, mình đã quen với việc tiếp cận bài hình và nghĩ ra code. ![](../assets/interviews/2024-dang-doan-duc-trung/image10.jpg) -Theo mình thấy thì việc có kĩ năng làm những bài hình là một trong những cái quan trọng nhất mình đã học kể từ sau WF ở Dhaka. Bởi vì thiếu Monogon rồi thì đối với mình như thiếu một bạn ‘nhân tố X’ ấy, bạn ấy như kiểu code hình full-time luôn nên là một sự mất mát rất lớn đối với mình . +Theo mình thấy kĩ năng làm những bài hình là một trong những cái quan trọng nhất mình đã học kể từ sau WF ở Dhaka. Bởi vì thiếu Monogon rồi như thiếu một ‘nhân tố X’ ấy, bạn ấy code hình full-time luôn nên là một sự mất mát rất lớn đối với mình . -Như mình cũng đã chia sẻ thì mình cũng bắt đầu tạo bài trở lại và kết nối nhiều hơn với cộng đồng Tin học Việt Nam. Mình cũng có nhiều bạn để bàn bài cùng, mình thấy việc thảo luận về các bài với các bạn giỏi là một cách rất nhanh để phát triển. Những năm đầu là với Monogon và các bạn trong server ‘AC’, những năm gần đây thì là bạn Bách (Trần Xuân Bách - IOI 2022, 2023), bạn Kiên (Vũ Hoàng Kiên - IOI 2019, 2020), bạn Vũ (Nguyễn Hoàng Vũ - IOI 2021), anh Quang (Nguyễn Diệp Xuân Quang - IOI 2017), bạn Phát (Hồ Ngọc Vĩnh Phát - IOI 2021), mofk, … cùng rất nhiều bạn nữa trong VNOI. Mình khá ngạc nhiên là qua ICPC WF mình không làm thường xuyên CF nữa nhưng từ những việc này mình vẫn nâng cao khả năng của mình ở CP lên được. +Như mình đã chia sẻ thì mình bắt đầu tạo bài trở lại và kết nối nhiều hơn với cộng đồng Tin học Việt Nam. Mình có nhiều bạn để bàn bài cùng và thấy việc thảo luận về các bài với các bạn giỏi là một cách rất nhanh để phát triển. Những năm đầu là với Monogon và các bạn trong server ‘AC’, những năm gần đây thì là bạn Bách (Trần Xuân Bách - IOI 2022, 2023), bạn Kiên (Vũ Hoàng Kiên - IOI 2019, 2020), bạn Vũ (Nguyễn Hoàng Vũ - IOI 2021), anh Quang (Nguyễn Diệp Xuân Quang - IOI 2017), bạn Phát (Hồ Ngọc Vĩnh Phát - IOI 2021), mofk, … cùng rất nhiều bạn nữa trong VNOI. Mình khá ngạc nhiên là qua ICPC WF mình không làm thường xuyên CF nữa nhưng từ việc này mình vẫn nâng cao khả năng của mình ở CP lên được. ### Bạn có mục tiêu và kỳ vọng gì cho ICPC World Finals 2023 lần này? Như có một lần mình chia sẻ, là mình sẽ luôn đặt mục tiêu cao hơn khả năng hiện tại của mình, thì mục tiêu lần này của mình là Gold Medal, đồng nghĩa cũng là trong top 4 (cười). -Có thể đối với nhiều người thì việc WF 2023 bị dời là một tin không hay, nhưng đối với mình lại là một điều may mắn. Đấy là sau WF 2022 thì mình cũng bắt đầu luyện tập lại khá là trễ nên cũng nghĩ là sẽ không đủ thời gian để luyện tập đạt được mục tiêu. Tới khi nghe tin dời lại thì mình nghĩ đây là ý trời bảo mình giành huy chương, thế nên mục tiêu của mình tiếp tục sẽ là ‘Chú Tư’ cơ mà không ở Việt Nam nữa mà là ‘Chú Tư’ thế giới luôn (cười) +Có thể đối với nhiều người thì việc WF 2023 bị dời là một tin không hay, nhưng với mình là một điều may mắn. Đấy là sau WF 2022 thì mình cũng bắt đầu luyện tập lại rễ nên nghĩ là sẽ không đủ thời gian để luyện tập đạt được mục tiêu. Tới khi nghe tin dời lại thì mình nghĩ đây là ý trời bảo mình giành huy chương, thế nên mục tiêu của mình tiếp tục sẽ là ‘Chú Tư’ cơ mà không ở Việt Nam nữa mà là ‘Chú Tư’ thế giới luôn! -### Mình cũng thấy bạn đã rục rịch luyện tập lại với team khá là căng, vậy bạn có mục tiêu đạt LGM (Legendary Grandmaster - rating CF 3000) trước ICPC WF không? +### Mình cũng thấy bạn đã rục rịch luyện tập lại với team, vậy bạn có mục tiêu đạt LGM (Legendary Grandmaster - rating CF 3000) trước ICPC WF không? -Đây cũng là mục tiêu của mình trong năm 2023 nhưng nó đã không thực hiện được dù hai contest cuối của năm 2023 mình cũng thi và được cộng điểm. Hiện tại thì mình cũng kết hợp làm trên nhiều OJ khác, điển hình là mình đang làm lại các dạng bài OI để nâng cao khả năng nghĩ của mình ở trong giờ thi tiếp, mình cũng có mong muốn là được LGM, nhưng trước hay sau LGM thì mình không dám chắc. Mình có thể tiết lộ là ở NAC (kỳ thi ICPC Regional ở Bắc Mỹ) mình cũng đã gặp tourist (max rating CF 3979). Mình nói chuyện với tourist thì tourist bảo rằng nếu mình đặt mục tiêu LGM thì hầu hết các bạn sau khi đạt được sẽ không có ý chí để luyện tập nữa. Mình bây giờ mình cũng đang phân vân là không biết mình nên đặt mục tiêu LGM trước hay sau World Finals, nhưng mà mình sẽ nhắm có skill LGM trước World Finals. +Đây cũng là mục tiêu của mình trong năm 2023 nhưng nó đã không thực hiện được dù hai contest cuối của năm 2023 được cộng điểm. Hiện tại, mình kết hợp làm bài trên nhiều OJ khác, điển hình là mình đang làm lại các dạng bài OI để nâng cao khả năng nghĩ của mình ở trong giờ thi tiếp, mình có mong muốn là được LGM, nhưng trước hay sau WF thì mình không dám chắc. Mình có thể tiết lộ là ở NAC (kỳ thi ICPC Regional ở Bắc Mỹ) mình đã gặp tourist (max rating CF 3979). Mình nói chuyện với tourist thì tourist chia sẻ rằng nếu mình đặt mục tiêu LGM thì sau khi đạt được sẽ không có ý chí để luyện tập nữa. Mình đang phân vân là không biết nên đặt mục tiêu LGM trước hay sau World Finals, nhưng mà mình sẽ nhắm có kỹ năng của LGM trước World Finals. ![](../assets/interviews/2024-dang-doan-duc-trung/image13.jpg) -*World Finals được dời tầm khoảng tháng 4, tức bạn còn khoảng 3 tháng để chuẩn bị. Tất cả mọi người đề rất mong được chứng kiến Kuroni tỏa sáng ở WF lần này. Từ câu chuyện của Kuroni thì chúng ta có thể thấy có rất nhiều sự luyện tập và tính toán chiến thuật để đạt được đến đẳng cấp của bạn Kuroni và đồng hành với đó là còn là sự đam mê để có thể duy trì ở cấp độ như vậy. Nếu xét ở khía cạnh CP thì bạn Kuroni rất là khủng, tuy nhiên, cái điểm khác biệt giữa bạn Kuroni so với nhiều người khủng CP mình biết là bạn có thể khủng về những thứ khác, cụ thể là nghiên cứu. Có rất nhiều người khủng CP nhưng họ ngại bước ra vùng an toàn của mình và họ chỉ tập trung vào CP. Tuy nhiên CP giỏi thì tốt nhưng không cũng không thể xem đấy là công việc được trừ khi bạn là tourist.* +*World Finals được dời tầm khoảng tháng 4, tức bạn còn khoảng 3 tháng để chuẩn bị. Tất cả mọi người đề rất mong được chứng kiến Kuroni tỏa sáng ở WF lần này. Từ câu chuyện của Kuroni ta có thể thấy rất nhiều sự luyện tập và tính toán chiến thuật để đạt được đến đẳng cấp của bạn Kuroni và đồng hành với đó là còn là sự đam mê để có thể duy trì ở cấp độ như vậy. Nếu xét ở khía cạnh CP thì bạn Kuroni rất là khủng, tuy nhiên, cái điểm khác biệt giữa bạn Kuroni so với nhiều người khủng CP mình biết là bạn có thể khủng về những thứ khác, cụ thể là nghiên cứu. Có rất nhiều người khủng CP nhưng họ ngại bước ra vùng an toàn của mình và họ chỉ tập trung vào CP. Tuy nhiên CP giỏi thì tốt nhưng không thể xem đấy là công việc được trừ khi bạn là tourist.* -### Khi biết rằng định hướng của Kuroni theo nghiên cứu và có nguyện vọng học lên tiến sĩ thì mình đã rất bất ngờ. Vì vốn là người quen biết Kuroni lâu năm nên phong cách của Kuroni mình không nghĩ sẽ theo hướng nghiên cứu. Bạn có thể chia sẻ quá trình học đại học của khi đến cuối lại quyết định đi nghiên cứu, dù trước đó đã có intern ở Meta được không? +### Bạn có thể chia sẻ quá trình học đại học của khi đến cuối lại quyết định đi nghiên cứu, dù trước đó đã có thực tập ở Meta không? + +![](../assets/interviews/2024-dang-doan-duc-trung/image6.jpg) Một phần do duyên, một phần do giai đoạn nổi loạn của mình đã đề cập trước đó, nhưng không liên quan đến vấn đề ở với gia đình mà ở đây liên quan đến Software Engineering. Khi mình học năm 2 thì mình có học một lớp ‘Thiết kế thuật toán’ ở trường Purdue, mình có gặp thầy Alex Psomas do đang là năm Covid nên mình cũng không đến lớp hay nghe giảng online và mình chỉ nhớ lớp đó mình qua rất dễ, mình chỉ cần vào làm bài tập về nhà thi thôi là được A+. Lớp đấy cũng không có quá nhiều ký ức với mình, nhưng cái kí ức mà mình ấn tượng là sau khi được A+ lớp đấy thì thầy đã trực tiếp liên lạc với mình và hỏi mời mình học lớp của thầy là lớp ‘Thuật toán trong kinh tế’. Tất nhiên lúc đấy mình năm 2, việc được một giáo sư của 1 trường rất to mời mình học lớp của thầy thì tất nhiên mình không thể nào từ chối được. Và sau khi mình học lớp đấy, mình phát hiện ra có rất nhiều thuật toán mà ngoài CP cực kì thú vị. Trước đây mình chưa từng nghĩ là kinh tế là một thứ mình sẽ đam mê, nhưng sau khi học lớp đấy thì mình thấy sự giao thoa giữa thuật toán và kinh tế rất là hay, nó bao hàm rất nhiều yếu tố khác nhau, không chỉ liên quan đến kinh tế vi mô, kinh tế vĩ mô mà còn là các chủ đề rất là tổng quát trong Computer Science bao gồm độ phức tạp của thuật toán, thiết kế các thuật toán khác nhau. Trong đó cũng có ‘Convex Optimization’ cũng là 1 nhánh của Computer Science và nghiên cứu rất nhiều về việc tối ưu những hàm lồi, khi biết được ý tưởng của cái này thì mình mới nhận ra đã được áp dụng rất là nhiều. -![](../assets/interviews/2024-dang-doan-duc-trung/image6.jpg) Trong CP thì các bạn có thể biết ‘Convex Hull Trick’ hay ‘Alien Trick’, là một trong những áp dụng rất cao của ‘Convex Optimization’ trong CP. Mình nhớ có dịp mình đọc một thuật toán luồng cực kì hay mà được áp dụng cho 1 bài toán kinh tế và mình cảm thấy là ‘Oh não to quá!’, chính khoảnh khắc đấy mình quyết định là mình phải suy xét xem bản thân xem có hợp nghiên cứu hay không, tại vì trước đây điểm mạnh của mình là code khỏe nhưng thực sự mình lại thích nghĩ bài hơn. Mình nhận ra hướng nghiên cứu là một nghề cho phép mình nghĩ bài mà có thể kiếm ra tiền và cho phép bản thân có thể thử. Sau đó mình cũng liên lạc nhiều hơn với thầy và cùng thầy nghiên cứu, rồi mọi thứ diễn ra rất suôn sẻ và sau khoảng 1 năm thì thầy với mình có chung bài nghiên cứu. Hiện tại thì mình cũng đang làm với 1 thầy khác, tuy nhiên câu chuyện đó lại rất buồn cười nên mình sẽ kể sau. @@ -137,35 +137,34 @@ Còn về lý do mình lại không theo hướng đi làm công ty dù mình c ### Bạn có thể trình bày hướng nghiên cứu của bạn và tại sao nó quan trọng? +![](../assets/interviews/2024-dang-doan-duc-trung/image12.jpg) -Mình sẽ nói về nghiên cứu trong quá trình mình học Tiến sĩ. Thật ra nó cũng là quá trình nghiên cứu liên tục từ đại học thôi. Mình đang nghiên cứu về giao thoa giữa kinh tế và thuật toán. Với một bài toán cơ bản như này: giả sử bạn muốn bán 1 món đồ, thì có 1 cách là đấu giá, nhưng cách bạn đấu giá ảnh hưởng rất nhiều đến hành động của các tham gia, tức là nếu bạn đấu giá và chọn người thắng cuối cùng không hợp lý hoặc cái giá cuối cùng không hợp lý thì bắt đầu sẽ có những hành vi gian lận như người tham gia đấu giá bắt đầu đi tìm hiểu, cơ cấu và điều khiển giá thị trường, tất nhiên là người đấu giá lại không muốn như thế. +Mình sẽ nói về nghiên cứu trong quá trình mình học Tiến sĩ. Thật ra nó cũng là quá trình nghiên cứu liên tục từ đại học thôi. Mình đang nghiên cứu về giao thoa giữa kinh tế và thuật toán. Với một bài toán cơ bản như này: giả sử bạn muốn đấu giá 1 món đồ, nhưng cách đấu giá ảnh hưởng rất nhiều đến hành động của người tham gia, tức là nếu bạn đấu giá và chọn người thắng cuối cùng hoặc cái giá cuối cùng không hợp lý thì bắt đầu sẽ có những hành vi gian lận như người tham gia đấu giá bắt đầu đi tìm hiểu, cơ cấu và điều khiển giá thị trường, tất nhiên là người đấu giá không muốn như thế. -![](../assets/interviews/2024-dang-doan-duc-trung/image12.jpg) +Điều này liên quan đến chủ đề nghiên cứu của mình, mình sẽ tiếp cận thị trường và quan sát những người đấu giá theo các cách và những món đồ khác nhau. Việc của mình sẽ thiết kế thể thức đấu giá sao cho người tham gia không thao túng được thị trường hay thay đổi chiến thuật của người đấu giá (incentive compatibility) và cho phép thu lợi nhuận nhiều nhất cho người bán đấu giá từ người tham gia (revenue optimization). -Điều này liên quan đến chủ đề nghiên cứu của mình, mình sẽ tiếp cận thị trường và quan sát thấy có những người đấu giá theo cách khác nhau, đấu giá những món đồ khác nhau, và mình sẽ thiết kế format đấu giá sao cho không cho phép người tham gia thao túng thị trường hay thay đổi chiến thuật của người đấu giá (incentive compatibility) và cho phép thu lợi nhuận nhiều nhất cho người bán đấu giá từ người tham gia (revenue optimization). +Về cơ bản trong phạm vi bài toán này chính là sự giao thoa giữa thuật toán và kinh tế, gọi là ‘mechanism design’. Thật ra nó chính là ‘algorithm design’ nhưng kết hợp thêm yếu tố ‘kích thích’ (incentive) vào trong đó, để có thể thiết kế một thuật toán làm cho tất cả đối tượng đều cảm thấy hài lòng. Nghiên cứu này đã đi theo mình từ năm 3 đại học đến bây giờ. -Về cơ bản trong phạm vi bài toán này chính là sự giao thoa giữa thuật toán và kinh tế, gọi là ‘mechanism design’. Thật ra nó chính là ‘algorithm design’ nhưng kết hợp thêm yếu tố ‘kích thích’ (incentive) vào trong đó, để có thể thiết kế một thuật toán làm cho tất cả đối tượng đều cảm thấy hài lòng. Nghiên cứu này đã đi theo mình từ năm 3 đại học đến bây giờ và mình vẫn tiếp tục nghiên cứu về vấn đề này. +### Hẳn các bạn độc giả cũng rất tò mò về cuộc sống của một người theo học Tiến sĩ ở Mỹ, vậy Kuroni có thể chia sẻ về cách bạn viết nghiên cứu và xuất hiện ở các hội nghị được không? -### Hẳn các bạn độc giả cũng rất tò mò về cuộc sống của một người theo học Tiến sĩ ở Mỹ, vậy Kuroni có thể chia sẻ về cách bạn viết nghiên cứu cả mấy chục đến trăm trang để nộp và xuất hiện ở các hội nghị được không? +Mình cảm thấy cuộc sống của mình khá thoải mái. Buổi sáng mình sẽ đọc các bài nghiên cứu với 2 mục đích chính. Thứ nhất là để cập nhật kiến thức của mình về những nghiên cứu khác. Thật sự thì những nghiên cứu của mình khá là thuần toán, kiểu áp dụng và mình cũng không code nhiều. Thứ hai là để mình có thể học những cách chứng minh của người ta, xem người ta dùng những kĩ thuật nào để chứng minh. Ví dụ như vừa rồi mình vừa đọc một kỹ thuật rất hay, và đang thử áp dụng vào bài hiện tại của mình. Tất nhiên là mình vừa học hai học kỳ thôi nên cuộc sống của mình cũng chưa có nhiều điều mới, mình cũng tranh thủ để mở rộng các chủ đề có thể theo đuổi qua việc đọc thêm các bài nghiên cứu và trao đổi với những đồng nghiệp trong lúc nghiên cứu để có thể cùng hợp tác chung trong tương lai. ![](../assets/interviews/2024-dang-doan-duc-trung/image11.jpg) -Mình cảm thấy cuộc sống của mình khá thoải mái. Buổi sáng mình sẽ đọc các bài nghiên cứu với 2 mục đích chính. Thứ nhất là để cập nhật kiến thức của mình về những nghiên cứu khác. Thật sự thì những nghiên cứu của mình khá là thuần toán, kiểu áp dụng và mình cũng không code nhiều. Thứ hai rất là quan trọng đấy là để mình có thể học những cách chứng minh của người ta, xem người ta dùng những kĩ thuật nào để chứng minh. Ví dụ như vừa rồi mình vừa đọc một kỹ thuật rất là hay, và đang thử áp dụng vào project hiện tại của mình. Tất nhiên là mình vừa học hai học kỳ thôi nên cuộc sống của mình cũng chưa có nhiều điều mới, mình cũng tranh thủ để mở rộng các chủ đề mình có thể theo đuổi qua việc đọc thêm các bài nghiên cứu và trao đổi với những đồng nghiệp trong lúc nghiên cứu để có thể cùng hợp tác chung trong tương lai. Đương nhiên quá trình này đòi hỏi mình sẽ phải nghĩ rất nhiều, hầu hết quá trình nghiên cứu của mình sẽ cứ chầm chậm và đột nhiên khám phá ra một hướng giải có thể ra kết quả và tiếp tục theo đuổi hướng đi đó để ra hướng giải cuối cùng. Và ít nhất 2 bài nghiên cứu mình đã viết xong đều theo xu hướng này cả, cụ thể hơn thì mình hầu hết sẽ tốn tầm vài tháng nhưng chỉ tốn 2 tuần gần cuối để ra hết ý tưởng cuối cùng của bài nghiên cứu. -Việc mình viết paper thì mình tự nhận không phải người viết paper tốt nhất trên thế giới, tuy nhiên thầy Alex Psomas của mình viết cực kỳ hay luôn nên mình học cách viết paper của thầy. Khi viết mà nới ra vài chục trang thật ra cũng khá tự nhiên, những cái paper của mình hầu hết nội dung khá là nhiều, mỗi cái chứng minh của mình đã tốn nửa trang đến 1 trang rồi, và có một số chứng minh hoặc những định lý dài mình phải dùng đến những bổ đề khác để chứng minh thì phải kéo dài 5-6 trang. Tất nhiên rằng một project nghiên cứu mình làm thì không chỉ giải một bài mà mình phải giải rất nhiều khía cạnh khác nhau của bài toán nên sẽ có rất nhiều phần để xây dựng nên bài toán tổng quát nên việc mà ra được khoảng 20-30 trang liên tiếp thì nó cũng không quá lạ với mình và mình nghĩ đó không phải là do cách viết của bản thân mà đấy chỉ là hệ quả tự nhiên do nội dung mình quá nhiều mà thôi -### Bạn có thể chia sẻ qua 2 paper mà bạn đề cập trước đó đã được xuất bản rồi không? +Việc mình viết paper thì mình tự nhận không phải người viết paper tốt nhất, tuy nhiên thầy Alex Psomas của mình viết cực kỳ hay luôn nên mình học cách viết paper của thầy. Khi viết mà nới ra vài chục trang thật ra cũng khá tự nhiên, những cái paper của mình hầu hết nội dung nhiều, mỗi cái chứng minh đã tốn nửa trang đến 1 trang rồi, và có một số chứng minh hoặc những định lý dài mình phải dùng đến những bổ đề khác thì phải kéo dài 5-6 trang. Tất nhiên rằng một bài nghiên cứu thì không chỉ giải một bài toán duy nhất mà mình phải giải rất nhiều khía cạnh khác nhau của bài toán. Chính vì thế có rất nhiều phần để xây dựng nên bài toán tổng quát. Việc viết được khoảng 20-30 trang liên tiếp thì nó cũng không quá lạ và đó không phải do phong cách viết của mình mà chỉ là hệ quả tự nhiên do nội dung mình thôi. -Thật ra thì một paper đã được xuất bản và một paper thì mình đang gửi đi (cười). Và mình mong paper kia sẽ được đăng trên một hội nghị hay diễn đàn nào đó trước khi tạp chí ra mắt. Còn paper kia thì đã được đăng ở hội nghị NeurIPS - một hội nghị về AI rất là lớn. Lý do paper mình được đăng tại hội nghị đó là do mình nghiên cứu về lý thuyết về học máy, cụ thể là bài toán ‘Mean Estimation’: từ nhiều mẫu từ một phân phối ngẫu nhiên nào đấy, bạn sẽ tính toán lại giá trị trung bình hay giá trị kỳ vọng của phân phối ban đầu là bao nhiêu, thật ra bài toán này nghe rất là đơn giản đúng không, nó kiểu như một bài áp dụng lý thuyết xác suất thống kê cơ bản. Tuy nhiên nó phức tạp hơn rất là nhiều, tính trung bình cộng không phải lúc nào cũng là cách tốt nhất, và có một thấy ở Purdue là thầy Paul Valiant có một chuỗi các bài nghiên cứu rất là nổi tiếng về ‘Mean Estimation’, về cơ bản thì thầy giải được cho cái trường hợp mà phân phối của bạn chỉ tạo ra 1 số duy nhất, trong trường hợp có 2 chiều thì nó sẽ khác. Cùng với thầy, mình đã chứng minh được bài toán này khó nhất là ở phân phối chuẩn. Điều này khá ngạc nhiên vì mọi người thường nghĩ phân phối chuẩn là một cái phân phối cực kỳ đẹp, nó thường là trường hợp tốt nhất (best case) cho các bài toán nghiên cứu, nên việc mình chứng minh như thế là mình đã khép lại bài toán khi mà đã chứng minh được cận trên và cận dưới của bài toán này. Để cho dễ tưởng tượng thì paper của mình như chứng minh bài toán này có một thuật toán $O(n^2)$ và không thể làm bài toán này tốt hơn $O(n^2)$. +### Bạn có thể chia sẻ qua 2 paper mà bạn đề cập trước đó không? -![](../assets/interviews/2024-dang-doan-duc-trung/image9.jpg) +Một paper đã được xuất bản và một paper thì mình đang gửi đi, mình mong paper sẽ được đăng trên một hội nghị hay diễn đàn nào đó trước khi tạp chí này ra mắt. Còn paper kia thì đã được đăng ở hội nghị NeurIPS - một hội nghị về AI rất là lớn. Lý do paper mình được đăng tại hội nghị đó là do mình nghiên cứu về lý thuyết học máy, cụ thể là bài toán ‘Mean Estimation’: từ nhiều mẫu từ một phân phối ngẫu nhiên nào đấy, bạn sẽ tính toán lại giá trị trung bình hay giá trị kỳ vọng của phân phối ban đầu là bao nhiêu, bài toán này nghe rất là đơn giản đúng không! Một bài áp dụng lý thuyết xác suất thống kê cơ bản nhưng câu chuyện phức tạp hơn rất là nhiều, tính trung bình cộng không phải lúc nào cũng là cách tốt nhất, và có một thấy ở Purdue là thầy Paul Valiant có một chuỗi các bài nghiên cứu rất là nổi tiếng về ‘Mean Estimation’. Về cơ bản thì thầy giải được cho cái trường hợp mà phân phối của bạn chỉ tạo ra 1 số duy nhất, trong trường hợp có 2 chiều thì nó sẽ khác. Cùng với thầy, mình đã chứng minh được bài toán này khó nhất là ở phân phối chuẩn. Điều này khá ngạc nhiên vì mọi người thường nghĩ phân phối chuẩn là một cái phân phối cực kỳ đẹp, nó thường là trường hợp tốt nhất (best case) cho các bài toán nghiên cứu. Để cho dễ tưởng tượng thì bài nghiên cứu của mình như chứng minh một bài toán có một thuật toán $O(n^2)$ và không thể làm bài toán này tốt hơn $O(n^2)$. -Cái paper thứ 2 của mình với thầy Alex Psomas là một bài toán khá là dễ thương. Khi mà bạn đi mua điện thoại, cách để bạn biết nó tốt hay không là nhìn giá, giá thì thường được định do nhà sản xuất hoặc thị trường đặt, nên về cơ bản thì giá chỉ là ‘noisy sample’. Kiểu như một chiếc điện thoại có hiệu suất được đánh giá là 2 triệu đồng nhưng lại được bán là 2 triệu 500 nghìn đồng, tức nhiều tiền hơn so với hiệu năng thật của điện thoại này. Lúc này, bạn sẽ tham khảo thị trường có n điện thoại với những cái giá khác nhau, tất nhiên bạn sẽ muốn mua điện thoại có cái hiệu năng tốt nhất so với túi tiền hiện tại. Theo xu hướng thì bạn sẽ mua điện thoại đắt nhất mà bạn có thể trả được, nhưng giả sử, trước mắt bạn có 2 cái điện thoại với giá 15 triệu đồng và 14 triệu 999 nghìn đồng, lúc này bạn không thể mua điện thoại 15tr một cách ngẫu nhiên mà phải so sánh thêm. Vậy nên bài toán của mình sẽ cho giá tiền mà nhà sản xuất rao bán của những chiếc điện thoại này và kèm với những ‘noisy sample’ so với giá trị thật mà điện thoại đem lại và mình cần phải tìm một thuật toán mà cho ra chiếc điện thoại có giá tiền niêm yết sát với giá trị thật nhất mà đem lại hiệu năng cao nhất. +Cái paper thứ 2 của mình với thầy Alex Psomas là một bài toán khá là dễ thương. Khi đi mua điện thoại, cách để biết nó tốt hay không là nhìn giá, giá thì thường được định do nhà sản xuất hoặc thị trường đặt, nên về cơ bản thì giá chỉ là ‘noisy sample’. Kiểu như một chiếc điện thoại có hiệu suất được đánh giá là 2 triệu đồng nhưng lại được bán là 2 triệu 500 nghìn đồng, tức nhiều tiền hơn so với hiệu năng thật của điện thoại. Lúc này, bạn sẽ tham khảo thị trường có nhiều điện thoại với những cái giá khác nhau, tất nhiên bạn sẽ muốn mua điện thoại có cái hiệu năng tốt nhất so với túi tiền hiện tại. Theo xu hướng sẽ mua điện thoại đắt nhất mà có thể trả được, nhưng giả sử, trước mắt bạn có 2 cái điện thoại với giá 15 triệu đồng và 14 triệu 999 nghìn đồng, lúc này bạn không thể mua điện thoại 15 triệu một cách ngẫu nhiên mà phải so sánh thêm. Vậy nên bài toán của mình sẽ cho giá tiền mà nhà sản xuất rao bán của những chiếc điện thoại này và kèm với những ‘noisy sample’ so với giá trị thật mà điện thoại đem lại và mình cần phải tìm một thuật toán mà cho ra chiếc điện thoại có giá tiền niêm yết sát với giá trị thật nhất mà đem lại hiệu năng cao nhất. ![](../assets/interviews/2024-dang-doan-duc-trung/image15.jpg) -Mình cảm thấy bài toán này rất là hay mà vẫn chưa có paper nào nghiên cứu thật là kĩ về vấn đề này nên mình với thầy đã nghiên cứu về vấn đề này. Trong bài toán này thì mình cũng đã tìm được một thuật toán rất là hay để giải quyết, mình có thể biểu diễn ‘noisy value’ bằng phương sai của số tiền niêm yết so với giá trị thật, lúc này mình sẽ không quan tâm các điện thoại có phương sai to và ở những ở điện thoại còn lại mình sẽ chỉ chọn những cái có giá tiền cao nhất vì đương nhiên những điện thoại có phương sai to sẽ không liên quan quá nhiều đến giá trị thật của chiếc điện thoại đem lại, chính vì thế những điện thoại có phương sai nhỏ khả năng sẽ phản ảnh chất lượng tốt nhất. Thuật toán này nghe có vẻ đúng nhưng mình không chỉ đề xuất ra nó mà còn chứng minh nó tốt luôn (cười) +Mình cảm thấy bài toán này rất là hay mà vẫn chưa có paper nào nghiên cứu thật là kĩ về vấn đề này nên mình với thầy đã nghiên cứu. Trong bài toán này, mình cũng tìm được một thuật toán rất hay để giải quyết, mình có thể biểu diễn ‘noisy value’ bằng phương sai của số tiền niêm yết so với giá trị thật, lúc này mình sẽ không quan tâm các điện thoại có phương sai to và ở những ở điện thoại còn lại mình sẽ chỉ chọn những cái có giá tiền cao nhất vì đương nhiên những điện thoại có phương sai to sẽ không liên quan quá nhiều đến giá trị thật của chiếc điện thoại đem lại, chính vì thế những điện thoại có phương sai nhỏ khả năng sẽ phản ảnh chất lượng tốt nhất. Thuật toán này nghe có vẻ đúng nhưng mình không chỉ đề xuất ra nó mà còn chứng minh nó tốt luôn. *Con đường chứng minh thuật toán ‘nghe nó đúng’ đến ‘đúng hẳn’ là một con đường rất là dài.* @@ -173,11 +172,13 @@ Mình cảm thấy bài toán này rất là hay mà vẫn chưa có paper nào Đây là nghiên cứu mình cảm thấy hãnh diện nhất bởi vì mình phải tốn một năm để ra được cái paper như thế. Hướng chứng minh bài toán này thật sự rất lằng nhằng tuy lúc miêu tả thuật toán thì lại rất tự nhiên. -### Mình thấy ở Kuroni có một khía cạnh nữa mà rất ít bạn có thể nhận ra tầm quan trọng của nó là việc duy trì sức khỏe, tinh thần cũng như sức bền để làm việc ở cường độ cao như vậy trong thời gian dài? +### Bạn có thể chia sẻ cách bạn duy trì sức khỏe, tinh thần cũng như sức bền để làm việc ở cường độ cao như vậy trong thời gian dài? + +![](../assets/interviews/2024-dang-doan-duc-trung/image9.jpg) -Đầu tiên để có sức bền thì mình nghĩ bạn phải có đam mê trước đã. Mình nghĩ điều quan trọng để duy trì công việc ở cường độ cao là phải có đam mê, giữ được đam mê đó bằng việc trải nghiệm nhiều khía cạnh khác nhau trong cuộc sống. Mình không chỉ dành cả ngày của mình với việc nghiên cứu mà mình cũng có một lối sống sinh hoạt cũng khá là tốt, ngay từ hôm qua mình đăng trên Twitter là mình vừa đi một concert. +Đầu tiên để có sức bền thì mình nghĩ phải có đam mê trước đã. Điều quan trọng để duy trì công việc ở cường độ cao là phải có đam mê, giữ được đam mê đó bằng việc trải nghiệm nhiều khía cạnh khác nhau trong cuộc sống. Mình không chỉ dành cả ngày của mình với việc nghiên cứu mà mình cũng có một lối sống sinh hoạt lành mạnh, như ngay hôm qua mình đăng trên Twitter là mình vừa đi một concert xong (cười). -Việc chuyển giữa các hoạt động khác nhau như thế giúp cho mình không chán bất cứ hoạt động nào cả mà có thể cho mình thích tất cả mọi thứ cùng lúc được. Tất nhiên mình cũng không phải người đi concert quá là nhiều, nhưng nếu mình đi 1-2 lần trong nhiều tháng thì mình cảm thấy tinh thần của mình tốt hơn rất là nhiều. Bên cạnh đó mình còn duy trì tinh thần của mình qua việc đi chơi với bạn bè, rủ các bạn nấu ăn, có thể các bạn không biết chứ mình nấu ăn rất là ngon, đăng Twitter là lúc nào cũng nhiều like cực kì luôn (cười) +Việc chuyển giữa các hoạt động khác nhau giúp cho mình không chán bất cứ hoạt động nào mà có phép mình thích tất cả mọi thứ cùng lúc được. Tất nhiên mình cũng không phải người đi concert quá nhiều, nhưng nếu mình đi 1-2 lần trong nhiều tháng thì mình cảm thấy tinh thần của mình tốt hơn. Bên cạnh đó mình còn duy trì tinh thần của mình qua việc đi chơi với bạn bè, rủ các bạn nấu ăn, có thể các bạn không biết chứ mình nấu ăn rất là ngon, đăng Twitter là lúc nào cũng nhiều like cực kì luôn (cười). *Nếu các bạn không biết thì Kuroni là người thường xuyên đăng ảnh đồ ăn lúc đêm muộn trên kênh chat Discord của VNOI. Đúng là một tội ác* diff --git a/interviews/2024-le-minh-hoang.md b/interviews/2024-le-minh-hoang.md index c316fb6..9f5b444 100644 --- a/interviews/2024-le-minh-hoang.md +++ b/interviews/2024-le-minh-hoang.md @@ -9,70 +9,70 @@ meta: Thầy là người mà tất cả các bạn rất mong muốn được phỏng vấn. Còn gì tuyệt vời hơn khi được phỏng vấn một “huyền thoại”, với không chỉ một, mà là hai nghiên cứu đã thay đổi nền Tin học Việt Nam – Sách “Giải thuật và Lập trình” và phần mềm chấm thi Themis mà các bạn bây giờ vẫn hay dùng. Kì thi Học sinh giỏi Quốc gia vẫn còn dùng Themis, và có thể sẽ còn được sử dụng dài dài.* ### Thầy là một trong những giáo viên dạy Tin đời đầu, vậy thì cơ duyên nào đưa thầy đến với môn Tin học? -Câu này nếu trả lời thì sẽ dài lắm! Thật ra thì hồi mình cấp 2, thì mình cũng biết Tin học là gì rồi. Nhưng hồi ấy học trong tiết Kĩ thuật thì nó chán lắm, chả có tí cảm hứng nào cả! Lên cấp 3 khi mình gặp người thầy đúng chuyên môn thì khác biệt thật, thầy không những dạy kiến thức, mà còn dạy những kĩ năng nghề nghiệp, và truyền cho mình cái đam mê nghề nghiệp nữa. Lúc đấy thì mình mới cảm thấy thích. +Câu này nếu trả lời thì sẽ dài lắm! Từ khi mình học cấp 2, mình cũng biết Tin học là gì rồi. Hồi ấy, mình học Tin trong trong tiết Kĩ thuật. Tiết học chán lắm, mình chả có tí cảm hứng nào cả! Lên cấp 3, khi mình gặp người thầy đúng chuyên môn thì khác biệt thật, thầy không những dạy kiến thức, mà còn dạy những kĩ năng nghề nghiệp, và truyền cho mình cái đam mê nghề nghiệp nữa. Lúc đấy thì mình mới cảm thấy thích. -Nói thật thì thời xưa, bọn mình học 100% là đam mê, chứ chả có một tí ưu đãi về lớp chuyên, giải Quốc Gia,... như các bạn bây giờ đâu. Chắc là các bạn không biết, chứ hồi mình thi Quốc Gia, không hề có tiêu chuẩn tuyển thẳng đại học đâu! 100% là vô tư, thích thì học, không thích thì bỏ thôi. +Nói thật thì thời xưa, bọn mình học 100% là đam mê, chứ không nhận được nhiều ưu đãi về lớp chuyên, giải Quốc Gia,... như các bạn bây giờ. Hồi mình thi Quốc Gia, không hề có tiêu chuẩn tuyển thẳng đại học! 100% là vô tư, thích thì học, không thích thì bỏ thôi. Trong môi trường ấy, cũng may là các thầy cô hay khuyến khích, rằng “nếu em thích thì em cứ học giỏi môn này cái đã, các môn khác tính sau!”. Thật vậy, nếu như cứ gây sức ép học đều đều những môn còn lại, môn Tin chỉ học vài tiết một tuần thì chả thể nên cơm cháo gì được. -Mình nói thật, cái mà dẫn mình tới với môn Tin học, đơn giản vì Tin học nó hấp dẫn ấy! Nó không phải như mấy môn Toán, các bài toán khó nhăn nhở trong các kì thi đâu. Cái mà mình cảm thấy thích là mấy lúc các anh sinh viên đi làm các đồ án tốt nghiệp, các phần mềm đồ hoạ “chạy nhảy”, và những lúc mình làm ra được một phần mềm nào đó, và được người khác sử dụng. Có thể nó rất là đơn giản, nhưng mình cảm thấy nó thật sự có giá trị thực tiễn, khác với giải một bài toán, khi mà mình chỉ sướng được một lúc thôi thì đã phải chuyển sang bài khác rồi. +Mình tới với môn Tin học, đơn giản vì Tin học nó hấp dẫn! Nó không phải như môn Toán, các bài toán khó nhăn nhở trong các kì thi đâu. Mình thích những lúc các anh sinh viên đi làm các đồ án tốt nghiệp, các phần mềm đồ hoạ “chạy nhảy”, và những lúc mình làm ra được một phần mềm nào đó, được người khác sử dụng. Có thể niềm vui ấy rất là đơn giản, nhưng mình cảm thấy nó thật sự có giá trị thực tiễn, khác với giải một bài toán, khi mà mình chỉ sướng được một lúc thôi thì đã phải chuyển sang bài khác rồi. ### Thầy có đề cập đến việc cảm thấy hứng thú khi viết ra phần mềm và được người khác dùng. Liệu nó có phải là lí do để thầy viết ra phần mềm chấm thi Themis – phần mềm đã thay đổi cách chúng ta dạy học ở Việt Nam hay không? ![](../assets/interviews/2024-le-minh-hoang/image3.jpg) -Thật ra qua quá trình làm các phần mềm như thế, có cả những cái làm cho vui, cũng có những cái để bán nữa, do đó nên mình cũng có tí kinh nghiệm để lập trình. +Trải qua quá trình làm nhiều phần mềm, có cái làm vì mong muốn cá nhân, cũng có những cái làm để bán nữa, mình có kinh nghiệm lập trình khá đáng kể. -Vào năm 2001, có hệ thống chấm tự động AMM2, nhưng khi chấm C\++ phải dịch file C\++ ra .EXE mới chấm được. Thế là mình bảo với cả Đông (thầy Đỗ Đức Đông), hay nghĩ thầm là hay "viết luôn một trình chấm đi!". +Vào năm 2001, cộng đồng Tin học có hệ thống chấm tự động AMM2, nhưng khi chấm C\++ phải dịch file C\++ ra .EXE mới chấm được. Thế là mình bảo với cả Đông (thầy Đỗ Đức Đông), hay là "viết luôn một trình chấm đi!". -Đầu tiên thì mình cũng định viết cho vui thôi, nhưng mà sau đấy thì thầy Đông bảo: "Nếu mà dùng được ổn định thế này, thì xin luôn dự án của Bộ đặt hàng làm một cái.". +Đầu tiên thì mình cũng định viết cho vui thôi, nhưng mà sau đấy thì thầy Đông bảo: Nếu mà dùng được ổn định thế này, thì xin luôn dự án của Bộ đặt hàng luôn một thể! -Mình nghĩ nó là một phần mềm khá đơn giản, nhưng yêu cầu lớn nhất của phần mềm đó thì phải chạy không được lỗi! Chạy chậm hay ít chức năng cũng được, nhưng một khi đã chấm thì phải chạy từ đầu tới cuối, không được ngừng giữa chừng hoặc có lỗi. Ngoài ra nó phải gọn nhẹ, dễ cài đặt trên máy xách tay để các thầy mang lên lớp trong điều kiện không có server và internet. +Mình nghĩ Themis là một phần mềm khá đơn giản, nhưng yêu cầu lớn nhất của phần mềm đó thì phải chạy không được lỗi! Chạy chậm hay ít chức năng cũng được, nhưng một khi đã chấm thì phải chạy từ đầu tới cuối, không được ngừng giữa chừng hoặc có lỗi. Ngoài ra nó phải gọn nhẹ, dễ cài đặt trên máy xách tay để các thầy mang lên lớp trong điều kiện không có server và internet. ### Nhiều bạn thắc mắc thi bằng C++ bây giờ sẽ được chấm bằng bản C++14, không biết thông tin này có chính xác không ạ? -Thật ra giả sử có một thầy ra đề thi đòi hỏi một cách chấm riêng thì thầy có quyền được chấm theo kiểu của thầy, nên không có quy ước đâu. Khi viết chương trình tương tác với code của thí sinh thì nếu lệch phiên bản C++, code hoàn toàn có thể bị dịch lỗi. Tuy vậy với những bài đặc thù như thế thường sẽ có đặc tả rõ ràng trong đề. +Thật ra giả sử có một thầy ra đề thi đòi hỏi một cách chấm riêng thì thầy có quyền được chấm theo kiểu của thầy, nên sẽ không có quy ước cố định. Khi viết chương trình tương tác với code của thí sinh, nếu lệch phiên bản C++, code hoàn toàn có thể bị dịch lỗi. Tuy vậy với những bài đặc thù như thế thường sẽ có đặc tả rõ ràng trong đề. ### Thầy mất khoảng bao lâu kể từ khi Themis ra bản đầu tiên để cho ra phần mềm có khả năng chạy ổn định, được đón nhận rộng rãi? -Phải mất khoảng một năm. Thực ra thành hình sản phẩm thì mất có vài tuần thôi, nhưng mình với thầy Đông mang đi dạy khoảng một năm, thấy ổn định mới dám cho nghiệm thu và chấm ở VOI năm sau. +Phải mất khoảng một năm. Thực ra để thành hình sản phẩm thì mất có vài tuần thôi, nhưng mình với thầy Đông mang đi dạy khoảng một năm, thấy ổn định mới dám cho nghiệm thu và chấm ở VOI năm sau. -Một trong những đặc điểm hay ho của môn Tin học so với môn khác đó là chấm tự động. Chuyện mà mình đọc code rồi chấm gây ra nhiều sai sót, làm cho việc ra đề thiếu chặt chẽ. Mình đọc rất nhiều đề thi trong các kì thi cấp thấp, thì đề toàn đưa ra những dữ liệu đầu vào (input), dữ liệu đầu ra (output) chả có ràng buộc to hay nhỏ gì cả, nhìn có vẻ như là những người chấm có ý tưởng sẽ chạy chương trình bằng tay rồi chấm. Nhưng thế thì nó trái với quy ước của một đề thi Tin học thuần tuý – có ràng buộc dữ liệu. Khi mà hội đồng chấm thi đòi hỏi phải nộp luôn bộ test khi ra đề, thì chắc chắn đề thi phải có những ràng buộc cơ bản như thế. +Một trong những đặc điểm hay ho của môn Tin học so với môn khác đó là chấm tự động. Chuyện mình đọc code rồi chấm gây ra nhiều sai sót, làm cho việc ra đề thiếu chặt chẽ. Mình đọc rất nhiều đề thi trong các kì thi cấp thấp, thì đề toàn đưa ra những dữ liệu đầu vào (input), dữ liệu đầu ra (output) không có ràng buộc input nào, nhìn có vẻ như là những người chấm có ý tưởng sẽ chạy chương trình bằng tay rồi chấm. Nhưng làm vậy thì trái với quy ước của một đề thi Tin học thuần tuý – có ràng buộc dữ liệu. Khi mà hội đồng chấm thi đòi hỏi phải nộp luôn bộ test khi ra đề, thì chắc chắn đề thi phải có những ràng buộc cơ bản như thế. ### Từ khi Themis trở thành trình chấm chính thức cho các cuộc thi (như kì thi HSGQG), thì thầy đã có những kỉ niệm khó quên nào chưa ạ? -May là chưa có! Mình cũng gặp một số thắc mắc, nhưng cuối cùng lần ra thì cũng là do lỗi của thí sinh thôi. Chẳng hạn như là, đôi lúc có những hành vi không xác định (undefined behaviour), thì code chạy trên máy thì ok, nhưng lúc chạy trên trình chấm, rồi thử chạy trên các trang như ideone, Codeforces thì nó cũng bị tình trạng giống như thế. +May là chưa có! Mình cũng gặp một số thắc mắc, nhưng cuối cùng lần ra thì cũng là do lỗi của thí sinh thôi. Chẳng hạn như, đôi lúc có những hành vi không xác định (undefined behaviour), lúc đó code chạy trên máy thì ổn, nhưng lúc chạy trên trình chấm, rồi thử chạy trên các trang như ideone, Codeforces thì nó cũng bị tình trạng giống như thế. -Thắc mắc nhiều nhất là khi Themis được đưa vào chấm chính thức bằng C\++11. Lúc đấy thì nhiều code C\++98 bị dịch lỗi. Thực ra thì trước khi thi, thí sinh phải biết quy tắc, “luật chơi” của kì thi đấy. Nhưng mà ở VOI, thì quy chế của Bộ chỉ nói là C++ thôi, không đề cập phiên bản nào, thế hệ bao nhiêu! Cho nên đôi khi, có một thứ phổ biến để giúp thí sinh hiểu rằng “nếu anh chấm ở nhà bằng phần mềm ấy không lỗi, thì tức là đi thi có thể dùng được các lệnh đó!”. Mình nghĩ nó cũng góp phần hạn chế bớt lỗi trong quá trình thi thật khi phát hành phần mềm cho mọi người đều có thể tiếp cận. +Thắc mắc nhiều nhất là khi Themis được đưa vào chấm chính thức bằng C\++11. Lúc đấy thì nhiều code C\++98 bị dịch lỗi. Thực ra thì trước khi tham gia bất kì cuộc thi nào, thí sinh phải biết quy tắc, “luật chơi” của kì thi đấy. Nhưng mà ở VOI, thì quy chế của Bộ chỉ nói là C++ thôi, không đề cập phiên bản nào, thế hệ bao nhiêu! Cho nên đôi khi, cần có một thứ phổ biến để giúp thí sinh hiểu rằng “nếu anh chấm ở nhà bằng phần mềm ấy không lỗi, thì tức là đi thi có thể dùng được các lệnh đó!”. Và Themis đã làm được điều ấy. Mình nghĩ Themis đã góp phần hạn chế bớt lỗi trong quá trình thi thật, khi Themis đã được phát hành rộng rãi cho tất cả mọi người đều có thể tiếp cận. ### Chuyện về những ngày đầu ra đấu trường quốc tế ![](../assets/interviews/2024-le-minh-hoang/image2.jpg) -Môn này cũng là cái môn hay, được dự đoán là môn học rất quan trọng của tương lai, do đó, năm 1987, Hội nghị UNESCO về giáo dục nêu đề xuất tổ chức kỳ thi tin học quốc tế (IOI) bên cạnh các môn Toán, Lý, Hóa, Sinh. Bulgaria đứng ra đăng cai vào năm 1989. Hồi đấy thì Tin học đã được tiếp nhận tại Việt Nam, nhưng chỉ dạy cho một số sinh viên ở các khoa đặc biệt của trường đại học mà thôi. Ông Trần Hồng Quân (Bộ trưởng Bộ Giáo Dục từ năm 1987 đến năm 1997), gọi thầy Đàm (Nhà giáo nhân dân Hồ Sĩ Đàm) lên và bảo: “Tôi cũng chả biết môn này là môn gì, nhưng mà thấy bảo môn này quan trọng lắm! Về nhóm cái đội đi thi Quốc tế đi!”. Thi thì, có thể giải ở những năm đầu không quan trọng đâu, chủ yếu để biết người ta học thế nào để mình học theo. +Tin học là môn học hay, được dự đoán là một phần rất quan trọng trong nền giáo dục tương lai, do đó, năm 1987, Hội nghị UNESCO về giáo dục nêu đề xuất tổ chức kỳ thi tin học quốc tế (IOI) bên cạnh các môn Toán, Lý, Hóa, Sinh. Bulgaria đứng ra đăng cai IOI đầu tiên vào năm 1989. Hồi đấy, Tin học đã được tiếp nhận tại Việt Nam, nhưng chỉ dạy cho một số sinh viên ở các khoa đặc biệt của trường đại học mà thôi. Ông Trần Hồng Quân (Bộ trưởng Bộ Giáo Dục từ năm 1987 đến năm 1997), gọi thầy Đàm (Nhà giáo nhân dân Hồ Sĩ Đàm) lên và bảo: “Tôi cũng chả biết môn này là môn gì, nhưng mà thấy bảo môn này quan trọng lắm! Về nhóm cái đội đi thi Quốc tế đi!”. Thi thì, có thể giải ở những năm đầu không quan trọng đâu, chủ yếu để biết người ta học thế nào để mình học theo. -Thầy Đàm về kêu mãi 4 đứa theo chỉ tiêu tối đa đi thi quốc tế, nhưng gọi được có 3 người thôi. Ba người ấy học cấp tốc trong khoảng độ từ 3-4 tháng, về thì có huy chương Đồng. Xong rồi ngay từ những năm sau thì Việt Nam mình đã có Vàng, có Bạc. Đỉnh cao đến năm 1999 Việt Nam mình đứng #1 toàn đoàn. Bây giờ Việt Nam còn thiếu đúng chức vô địch IOI. +Thầy Đàm về kêu mãi 4 đứa theo chỉ tiêu tối đa đi thi quốc tế, nhưng gọi được có 3 người thôi. Ba người ấy học cấp tốc trong khoảng độ từ 3-4 tháng, về thì có huy chương Đồng. Xong rồi ngay từ những năm sau thì Việt Nam mình đã có Vàng, có Bạc. Đỉnh cao đến năm 1999 Việt Nam đứng #1 toàn đoàn. Bây giờ Việt Nam còn thiếu đúng chức vô địch IOI. Sau IOI lần đầu, ông Trần Hồng Quân bảo là: "Chưa học gì mà đã được huy chương Đồng, vậy thì triển khai học là ngon ngay". Do đó, ông yêu cầu thầy Đàm triển khai chương trình dạy tin học phổ thông. ![](../assets/interviews/2024-le-minh-hoang/image13.jpg) Các thầy của Việt Nam có thể là những chuyên gia rất giỏi, nhưng viết chương trình lại là thách thức lớn, khi phải biết dạy cái gì trước, cái gì sau. Hơn nữa, các thầy không thể áp cái cách học của mình xuống học sinh phổ thông vì hầu hết các thầy học tin đều trong trạng thái đã là Tiến sĩ, Phó tiến sĩ, Thạc sĩ, Cử nhân các ngành Toán, Lý, Tối ưu hóa, Tự động hóa rồi. Hồi đấy thì chưa bỏ cấm vận, mình chỉ giao lưu với các nước thuộc khối Vác-sa-va (Warsaw) - các nước Xã hội Chủ nghĩa thôi. Nên các thầy phải đi xin tài liệu của Ba Lan, Nga, v.v, rồi sau đó thì trộn vào thành một cái chương trình, dạy ở một vài trường chuyên: trường chuyên Khoa học Tự nhiên, trường mình (Đại học Sư phạm), Đại học Bách khoa, trường chuyên Hà Nội – Amsterdam, thành phố Hồ chí Minh với trường Phổ thông Năng Khiếu, v.v. -Học sinh của mình thì có cái hay: "nếu không thi, thì không học; còn một khi đã thi thì nó sẽ học và ông thầy cũng sẽ phải cố dạy!". Từ đó, nội dung học ngày càng được làm phong phú thêm và chuẩn hóa dần. Cho nên là chỉ có năm đầu tiên thì khá bất ngờ thôi, còn những năm sau thì tính cạnh tranh cao, đề thi bắt đầu khó rồi. +Học sinh của mình thì có cái hay: "nếu không thi, thì không học; còn một khi đã thi thì nó sẽ học và ông thầy cũng sẽ phải cố dạy!". Từ đó, nội dung học ngày càng được làm phong phú thêm và chuẩn hóa dần. Do vậy, chỉ có huy chương Đồng trong lần đầu tiên tham dự thì mang lại sự bất ngờ thôi, còn những năm sau, tính cạnh tranh được nâng cao, đề thi bắt đầu khó rồi. -Những năm đầu tiên, đi thi Quốc tế thì vẫn chấm như các môn khác: học sinh trình bày thuật toán ra giấy, chương trình có là được, không có thì cũng chả đến nỗi bị 0 điểm. Sau đó, mình phải dịch bài ra tiếng Anh, rồi từng nhóm chia nhau ra chấm. Trong ngày cuối cùng, trưởng đoàn phải đứng ra bảo vệ cho học sinh mình ở những điểm nào đang mấp mé giữa cho điểm hay không. Nói chung rất là mệt, và hội đồng làm việc rất căng. +Những năm đầu tiên, IOI vẫn có format chấm như các môn khác: học sinh trình bày thuật toán ra giấy; Chương trình có là được, không có thì cũng chả đến nỗi bị 0 điểm. Sau đó, mình phải dịch bài ra tiếng Anh, rồi từng nhóm chia nhau ra chấm. Trong ngày cuối cùng, trưởng đoàn phải đứng ra bảo vệ cho học sinh mình - tranh luận ở những điểm nào đang mấp mé giữa cho điểm hay không. Nói chung, việc chấm bài rất mệt mỏi, và hội đồng làm việc rất căng thẳng trong một khoảng thời gian dài. ![](../assets/interviews/2024-le-minh-hoang/image1.jpg) -Đến năm 1994, người ta cãi nhau “mệt rồi”. Thôi thì, anh làm sai cũng được, nhưng tôi có một bộ test, làm sai là một phần của cuộc chơi, anh cứ đúng test đó là được. Từ năm ấy, người ta bắt đầu chấm theo bộ test. Từ khi bắt đầu chấm bộ test, Việt Nam mình kết quả cũng xuống, hình như có năm chỉ được 1, 2 huy chương Đồng gì đấy. Nhưng mà ngay sau đấy, từ năm 1995 tới 1999, Việt Nam mình đứng nhất thế giới! -Đoạn đấy thì chấm bằng bộ test nhưng tính chất bài thì vẫn là các bài toán tối ưu, các bài đó thì sẽ chấm theo độ tốt, anh không cần đưa ra đáp án chính xác tuyệt đối. Hồi đấy, đa số các bài đưa ra thì sẽ theo kiểu: “Em hãy liệt kê đầy đủ... ”. Sau đỉnh cao 1999, không chỉ Việt Nam, rất nhiều nước khác bắt đầu dùng bài: đừng tập trung nghĩ thuật toán hoàn hảo cho một bài nào cả (subtask), bài nào cũng phải dí một cái gì đấy. Đôi khi cái đấy lại được điểm rất là cao, nhưng nói thẳng là thuật toán sai ấy! Bởi vì phải đưa ra đáp án gần đúng chứ không phải đáp án chỉ có một số, đúng chính xác như bây giờ. +Đến năm 1994, người ta cãi nhau “mệt rồi”. Thôi thì, anh làm sai cũng được, nhưng tôi có một bộ test, làm sai là một phần của cuộc chơi, anh cứ đúng test đó là được. Từ năm ấy, người ta bắt đầu chấm theo bộ test. Từ khi bắt đầu chấm bộ test, Việt Nam mình kết quả cũng có chiều hướng đi xuống; Có năm chỉ được 1 tới 2 huy chương Đồng. Nhưng mà ngay sau đấy, từ năm 1995 tới 1999, Việt Nam mình đứng nhất thế giới! +Dù chấm bằng bộ test nhưng tính chất bài thì vẫn giữ nguyên, là các bài toán tối ưu. Các bài đó được chấm theo độ tốt, thí sinh không cần đưa ra đáp án chính xác tuyệt đối. Hồi đấy, đa số các bài đưa ra thì sẽ theo kiểu NP đầy đủ (NP-complete). Sau đỉnh cao 1999, không chỉ Việt Nam, rất nhiều nước khác bắt đầu dùng chiến thuật: không tập trung nghĩ thuật toán hoàn hảo cho một bài nào cả (subtask), bài nào cũng phải có code một phần nào đó. Đôi khi code ấy lại được điểm rất là cao, nhưng nói thẳng là thuật toán sai ấy! Bởi vì phải đưa ra đáp án gần đúng chứ không phải đáp án chỉ có một số, đúng chính xác như bây giờ. -Đến năm 2003 hay 2004, thì người ta mới bắt đầu chấm tuyệt đối – lệch một đơn vị cũng chết. Đến năm 2010, thì chơi test nào ăn test nấy thì cũng không công bằng – ăn may còn nhiều quá. Vậy là bắt đầu áp dụng bài chấm theo bộ test cho từng subtask (batch) – phải đúng hết tất cả các test trong subtask đó thì mới ăn điểm. +Đến năm 2003 hay 2004, người ta mới bắt đầu chấm tuyệt đối – lệch một đơn vị cũng chết. Đến năm 2010, thì việc chấm đúng test nào được điểm test nấy cũng không công bằng – yếu tố may mắn còn nhiều quá. Vậy là IOI bắt đầu áp dụng format chấm theo bộ test cho từng subtask (batch) – phải đúng hết tất cả các test trong subtask đó thì mới ăn điểm. ### Giáo trình phổ thông môn Tin học những ngày đầu tiên -Ở các môn khác, chương trình phổ thông đại chúng, người ta nhặt ra rồi nâng cao một vài kiến thức lên, trở thành chương trình chuyên. Còn với môn Tin thì ngược lại, chương trình chuyên có trước, sau đó nó giảm tải đi, trở thành chương trình đại trà. Cho nên người ta cứ kêu là phần lập trình của chương trình phổ thông cũ khá nặng. Thật ra thì phần lập trình đâu có giảm tải. Nó chỉ có hai dạng: biết lập trình hoặc không biết lập trình thôi! Câu lệnh thì vẫn phải học đủ chứ giảm tải được lệnh gì! +Ở các môn khác, người ta nhặt ra rồi nâng cao một vài kiến thức từ chương trình phổ thông đại chúng; Các kiến thức ấy trở thành chương trình chuyên. Còn với môn Tin thì ngược lại, chương trình chuyên có trước, sau đó được giảm tải đi, trở thành chương trình đại trà. Cho nên người ta hay phàn nàn về việc phần lập trình của chương trình phổ thông cũ khá nặng. Thật ra thì phần lập trình đâu có giảm tải. Nó chỉ có hai dạng: biết lập trình hoặc không biết lập trình thôi! Câu lệnh thì vẫn phải học đủ chứ giảm tải được lệnh gì! Không dạy for với while thì lại không được! ![](../assets/interviews/2024-le-minh-hoang/image6.jpg) -Ngày xưa, thì trong sách lớp 11 dạy thế đấy! Trong Pascal thì có 3 vòng lặp: repeat, while với for. Tương tự với C thì có do..while, while với for. Thì hàm while là tổng quát nhất, người ta dạy mỗi while còn hai cái kia thì lại bỏ! Tước bớt công cụ thì lập trình lại càng khó hơn chứ đâu có dễ hơn gì đâu! -Đôi khi thì bệnh thành tích hay học để thi, thì cũng có mặt tích cực: Khi mình đã đại diện cho một đơn vị nào đấy đi thi, thì mình phải có một sự nỗ lực cố gắng, và trong quá trình nỗ lực cố gắng ấy, thì mình mới thấy thích! Không có yêu cầu thành tích thì người ta chả học đâu, hoặc học mà không có định hướng, không có mục đích rõ ràng. Ông thầy cũng lười, vì môn của mình đâu có thi đâu mà phải ép các bạn học sinh nhiều vậy! +Ngày xưa, thì trong sách lớp 11 dạy thế đấy! Trong Pascal có 3 vòng lặp: repeat, while với for. Tương tự cho C, có do..while, while với for. Hàm while là hàm tổng quát nhất, thì người ta dạy mỗi while còn hai cái kia thì lại bỏ! Tước bớt công cụ thì lập trình lại càng khó hơn chứ đâu có dễ hơn gì đâu! +Đôi khi bệnh thành tích hay học để thi, thì cũng có mặt tích cực: Khi mình đã đại diện cho một đơn vị nào đấy đi thi, thì mình phải có một sự nỗ lực cố gắng, và trong quá trình nỗ lực cố gắng ấy, thì mình mới thấy thích! Không có yêu cầu thành tích thì người ta chả học đâu, hoặc học mà không có định hướng, không có mục đích rõ ràng. Ông thầy cũng lười, vì môn của mình đâu có thi đâu mà phải ép các bạn học sinh nhiều vậy! Trong thể thao, một người không tập luyện bài bản gì vẫn có thể chạy, đánh bóng bàn, cầu lông, đá bóng, … nhưng vẫn phải có các động viên thành tích cao, thì người ta mới biết chơi thế nào là đúng kỹ thuật, tránh chấn thương, rồi ăn uống, ngủ nghỉ như thế nào để nâng cao thành tích… Trong Tin học cũng tương tự thế, chỉ những thí sinh CP mới biết kỷ luật nghiêm ngặt khi chấm bằng test, biết cách hạn chế các lỗi tràn hay hành vi không xác định… Còn bệnh thành tích nó cũng có mặt tiêu cực, ngoài những thứ mà báo đài hay đề cập thì trong môn Tin học, có xu hướng không học/không dạy những kiến thức không xuất hiện hoặc ít xuất hiện trong các bài thi cho dù đó là những giá trị cốt lõi. Chẳng hạn nhiều bạn “ngại” học con trỏ, “từ chối” học lập trình hướng đối tượng, sẵn sàng code bẩn, code bắt test để che giấu lỗi… @@ -80,7 +80,7 @@ Còn bệnh thành tích nó cũng có mặt tiêu cực, ngoài những thứ m Qua đấy mới thấy việc ra đề và làm test trách nhiệm cao đến thế nào: Không chỉ là để phân loại trao giải mà còn để định hướng việc học cho các thế hệ sau nữa. Làm thiếu trách nhiệm sẽ đẩy việc học xa rời các giá trị cốt lõi mà tập trung vào các kỹ năng vô bổ. ### Quan sát tin học Việt Nam một thời gian, trình độ các bạn từ khi Codeforces được phổ cập thì bắt đầu tăng rất nhiều. Các kĩ thuật vào những năm ngày xưa được liệt vào dạng cao cấp như Segment Tree, Chia căn, ... thì bây giờ được xem là thuật phổ thông! -Ngày xưa mấy thuật này phải tự chế ra ấy! Thường thì các thuật ấy không có trong sách vở chính thống hoặc có nhưng khó tìm sách mà đọc lắm, mà đa số là một người nào đấy làm bài rồi tự chế ra, sau đó truyền lại thế thôi chứ nó không phổ biến rộng. +Ngày xưa mấy thuật này phải tự chế ra! Thường thì các thuật ấy không có trong sách vở chính thống hoặc có nhưng khó tìm sách mà đọc lắm. Đa số các trường hợp là nhờ một người nào đấy làm bài rồi tự chế ra, sau đó truyền lại thế thôi chứ nó không phổ biến rộng. ### Thầy thấy rằng trong 5 năm trở lại đây thì Tin học Việt Nam đang ở mức nào? Trình độ chung các bạn như thế nào? Mình nghĩ rằng gần đây các bạn cũng có mặt giỏi hơn, nhưng cũng có mặt dở hơn. Tất nhiên thì ở đỉnh cao, sóng sau sẽ luôn lớn hơn sóng trước. Nhưng so với ngày xưa, thì bây giờ khi các bạn học cơ sở, các bạn phụ thuộc vào Internet và ChatGPT nhiều quá! Học những cái ABC mà đã bị phụ thuộc vào những thứ đấy, thì các bạn sẽ không học được những thứ DEF rồi XYZ. Những viên gạch, những bước chân đầu tiên, thì mình phải tự bước đi! Phải tự bước đi, để tự vấp ngã, tự đứng dậy. Những bước đi có người dắt chỉ là học động tác, bạn phải tự đi thì mới biết cách lấy thăng bằng, và cái chi tiết đó tuy là nhỏ nhưng không ai dạy được cả. @@ -90,23 +90,23 @@ Mình thấy rất nhiều bạn như thế, kể cả là sinh viên. Tất nhi ![](../assets/interviews/2024-le-minh-hoang/image4.jpg) -Ngay cả trong việc học C++, các bạn tập sử dụng các hàm trong thư viện sớm quá! Nếu ngay từ đầu mà đã nhảy vào dùng set, map các thứ thì người ta sẽ không hiểu cái nguyên lý của các cấu trúc dữ liệu đó. Mà đôi khi, mình học không phải là để cài bài tập, mình chỉ cần hiểu nguyên lý của nó thôi, đấy mới là cái bổ ích, là giá trị cốt lõi của khoa học máy tính. Thật ra để làm những thứ mà chỉ đơn thuần dùng set, map thì chả có phần mềm nào đòi hỏi bạn tự code bằng tay đâu! +Ngay cả trong việc học C++, các bạn tập sử dụng các hàm trong thư viện sớm quá! Nếu ngay từ đầu mà đã nhảy vào dùng set, map, v.v, thì người ta sẽ không hiểu cái nguyên lý của các cấu trúc dữ liệu đó. Mà đôi khi, đích đến của việc học không phải là để cài bài tập, học là để hiểu nguyên lý! Đấy mới là cái bổ ích, là giá trị cốt lõi của khoa học máy tính. Thật ra để làm những thứ mà chỉ đơn thuần dùng set, map thì chả có phần mềm nào đòi hỏi bạn tự code bằng tay đâu! -Bây giờ thì truyền thông, giao lưu hỏi bài trên các diễn đàn trở nên thuận tiện hơn nhưng nó cũng là cái thứ dở đấy! Ngày xưa, có những bài phải nghĩ vài tháng mới ra. Thậm chí, có những bài mà cho đến bây giờ vẫn nghĩ chưa ra. Nó ở cái mức IMPOSSIBLE ấy, bản thân người ra đề còn chưa tin là mình có được giải pháp tốt đâu. Thế nhưng mà qua quá trình xoay sở ấy, thì kĩ thuật và tư duy của mình sẽ lên khá đáng kể. +Tỉ lệ thuận với sự phát triển của các phương tiện truyền thông, việc giao lưu hỏi bài trên các diễn đàn trở nên thuận tiện hơn. Nhưng nó cũng là cái thứ dở đấy! Ngày xưa, có những bài phải nghĩ vài tháng mới ra. Thậm chí, có những bài mà cho đến bây giờ vẫn nghĩ chưa ra. Nó ở cái mức IMPOSSIBLE ấy, bản thân người ra đề còn chưa tin là mình có được giải pháp tốt đâu. Thế nhưng mà qua quá trình xoay sở ấy, thì kĩ thuật và tư duy của mình sẽ lên khá đáng kể. -Nói về chuyện chấm tự động, cho học sinh chấm tự động ngay từ đầu, mình nghĩ không phải là điều hay đâu! Không cần nộp bài chấm tự động, đọc code, hack được code của thằng bạn hay bị hacked rồi phân tích xem vì sao test này lại hỏng… Cách học như thế sẽ mang lại năng lực học tập tích cực hơn nhiều, giúp việc học đỡ khô khan hơn. Mình nghĩ môn này học rất hay, nhưng mà do cách học nên một số bạn bị thụ động, dẫn đến nhanh chán. Tóm lại nếu như ngay từ đầu mà các bạn không chịu khó trải nghiệm khó khăn và vượt qua chúng, thì không thể đi xa được. +Nói về chuyện chấm tự động, cho học sinh chấm tự động ngay từ đầu, mình nghĩ không phải là điều hay. Không cần nộp bài chấm tự động, đọc code, hack được code của thằng bạn hay bị hacked rồi phân tích xem vì sao test này lại hỏng… Cách học như thế sẽ mang lại năng lực học tập tích cực hơn nhiều, giúp việc học đỡ khô khan hơn. Mình nghĩ môn này học rất hay, nhưng mà do cách học nên một số bạn bị thụ động, dẫn đến nhanh chán. Tóm lại nếu như ngay từ đầu mà các bạn không chịu khó trải nghiệm khó khăn và vượt qua chúng, thì không thể đi xa được. ### ChatGPT thì gần như nó sẽ giải được hết các bài đơn giản hoặc cơ bản. Vấn đề là nếu chúng ta không nghĩ bài đấy thì sẽ không thể giải được các bài khó, sẽ chỉ mãi dậm chân tại chỗ. -Nó không phải là chỉ có các bạn học lớp thường mà có môn Tin đâu. Ngay cả trong lớp chuyên Tin, nếu như ngay từ đầu mà các bạn không chịu khó trải nghiệm khó khăn và vượt qua chúng, thì cũng chả đi được đến đâu. Sử dụng ChatGPT cho các bài đơn giản, nó sẽ đọc cả đề và solution chuẩn 100%! Nhưng nếu chúng ta không nghĩ bài đấy thì sẽ không thể giải được các bài D, E, F trong một cuộc thi trên Codeforces được, sẽ chỉ mãi giậm châm tại chỗ. ChatGPT nó làm mọi người lười suy nghĩ hơn. +Nó không phải là chỉ có các bạn học chương trình Tin học phổ thông đâu. Ngay cả trong lớp chuyên Tin, nếu như ngay từ đầu mà các bạn không chịu khó trải nghiệm khó khăn và vượt qua chúng, thì cũng chả đi được đến đâu. Sử dụng ChatGPT cho các bài đơn giản, nó sẽ đọc cả đề và solution chuẩn 100%! Nhưng nếu chúng ta không nghĩ bài đấy thì sẽ không thể giải được các bài D, E, F trong một cuộc thi trên Codeforces được, ta sẽ chỉ mãi giậm châm tại chỗ. ChatGPT nó làm mọi người lười suy nghĩ hơn. -Vấn đề ở đây nó còn dính dáng tới chuyện về học toán nữa cơ. Cách học toán của các bạn hiện tại vẫn theo kiểu gần như tương tự: ngay cái lúc mà bạn học toán ở cấp cơ sở, thì các bạn đã phụ thuộc vào sách bài tập, lớp học thêm, các hệ thống AI, v.v, làm tư duy toán của các bạn khá là nông. Thậm chí là, nếu mình đọc thử đề thi toán các trường chuyên, hầu như là toàn các bài rất khó, thì các bạn giải tốt, nhưng đến những cái toán vô cùng cơ bản, thì chưa chắc các bạn đã nhớ và vận dụng tốt. Phải nói rằng người thầy dạy phải khéo lắm thì mới cảm thấy các bạn đang làm bài tốt, nhưng rất có thể đó là giá trị ảo dẫn tới đánh giá sai: tưởng các bạn giỏi vì làm được bài khó nên liên tục nâng cao mà không biết rằng các bạn đang mất cơ bản. +Vấn đề của cách học này còn dính dáng tới chuyện về học toán nữa cơ. Cách học toán của các bạn hiện tại vẫn theo kiểu gần như tương tự: ngay cái lúc mà bạn học toán ở cấp cơ sở, thì các bạn đã phụ thuộc vào sách bài tập, lớp học thêm, các hệ thống AI, v.v, làm tư duy toán của các bạn khá là nông. Thậm chí là, nếu mình đọc thử đề thi toán các trường chuyên, hầu như là toàn các bài rất khó, thì các bạn giải tốt, nhưng đến những cái toán vô cùng cơ bản, thì chưa chắc các bạn đã nhớ và vận dụng tốt. Phải nói rằng người thầy dạy phải khéo lắm thì mới cảm thấy các bạn đang làm bài tốt, nhưng rất có thể đó là giá trị ảo dẫn tới đánh giá sai: tưởng các bạn giỏi vì làm được bài khó nên liên tục nâng cao mà không biết rằng các bạn đang mất cơ bản. ![](../assets/interviews/2024-le-minh-hoang/image12.jpg) -ChatGPT nó làm mọi người lười suy nghĩ hơn và điều này rất nguy hiểm. Mình dạy những bài toán cơ bản: tìm kiếm nhị phân, sàng số nguyên tố,... Mình không phải chỉ dạy đơn thuần thuật toán đấy – nó chỉ là một phần rất nhỏ thôi, vì cái tư tưởng thuật toán và cách thức triển khai chương trình mới quan trọng, và qua việc mô phỏng đúng một thuật toán bạn mới thấy được cái hay và phát triển tư duy giải quyết vấn đề. Ví dụ với sàng số nguyên tố, ngày xưa, ông tác giả dùng cái que, chọc một vài lỗ lên lá để sàng. Ta phải mô phỏng lại quá trình đấy, để các bạn thấy được cái hay của việc đấy, và tư duy của các bạn sẽ phát triển khác đi. +Như đã nói, ChatGPT nó làm mọi người lười suy nghĩ hơn, và điều này rất nguy hiểm. Mình dạy những bài toán cơ bản: tìm kiếm nhị phân, sàng số nguyên tố,... Mình không phải chỉ dạy đơn thuần thuật toán đấy – nó chỉ là một phần rất nhỏ thôi, vì cái tư tưởng thuật toán và cách thức triển khai chương trình mới quan trọng, và qua việc mô phỏng đúng một thuật toán thì người học mới thấy được cái hay và phát triển tư duy giải quyết vấn đề. Ví dụ với sàng số nguyên tố, ngày xưa, ông tác giả dùng cái que, chọc một vài lỗ lên lá để sàng. Ta phải mô phỏng lại quá trình đấy, để các bạn thấy được cái hay của thuật toán, và tư duy của các bạn sẽ phát triển khác đi. -Những bài toán 'lớp 1, 2' thì chắc bây giờ ChatGPT làm được hết rồi! Nhưng nếu anh không chịu học lớp 1, 2 thì chẳng thể lên được 3, 4; càng chẳng thể học tiếp lên cấp 3, Đại học, Thạc sĩ, Tiến sĩ rồi đi làm được. Những thứ cơ bản ấy, sớm muộn gì cũng phải học, mọi người cũng sẽ thuộc bảng cửu chương, và biết cộng trừ nhân chia. Có thể lớp 1 học không giỏi, nhưng mình nghĩ rằng một khi đã đến lớp 12 thì chắc ai cũng phải biết đọc, viết, cộng trừ hết rồi. Tóm tắt lại, phải biết cộng biết trừ rồi mới học cái khác. Mình nghĩ là học sinh phổ thông, khi bắt đầu học một môn mới, bạn có thể nhận thức hơi chậm và kỹ năng giải bài kém - nó chẳng nói lên điều gì. Chỉ cần bạn kiên trì, khắc phục được những điểm yếu của mình, thì bạn còn có thể tiến xa hơn những bạn “phát triển sớm” hoặc được học trước nếu như bạn không bỏ qua những năng lực cần có của từng bài học. +Những bài toán "lớp 1, 2" thì chắc bây giờ ChatGPT làm được hết rồi! Nhưng nếu anh không chịu học lớp 1, 2 thì chẳng thể lên được 3, 4; càng chẳng thể học tiếp lên cấp 3, Đại học, Thạc sĩ, Tiến sĩ rồi đi làm được. Những thứ cơ bản ấy, sớm muộn gì cũng phải học, mọi người cũng sẽ thuộc bảng cửu chương, và biết cộng trừ nhân chia. Có thể lớp 1 học không giỏi, nhưng mình nghĩ rằng một khi đã đến lớp 12 thì chắc ai cũng phải biết đọc, viết, cộng trừ hết rồi. Tóm tắt lại, phải biết cộng biết trừ rồi mới học cái khác. Mình nghĩ là học sinh phổ thông, khi bắt đầu học một môn mới, bạn có thể nhận thức hơi chậm và kỹ năng giải bài kém - nó chẳng nói lên điều gì. Chỉ cần bạn kiên trì, khắc phục được những điểm yếu của mình, thì bạn còn có thể tiến xa hơn những bạn “phát triển sớm” hoặc được học trước, nếu như bạn không bỏ qua những năng lực cần có của từng bài học. ### Codeforces theo thầy đã thay đổi nền tin học Việt Nam như thế nào, khi trong 5 tới 7 năm gần đây là nền tảng lớn nhất, phổ biến nhất cho CP-er ở Việt Nam? Các bài của Codeforces, đặc biệt là Div 2 và Div 3, nó tập cho các bạn đang nhập môn lập trình khả năng code nhanh và code chính xác. Ta cần một giải pháp đơn giản cho các bài đơn giản. Tất nhiên để làm được bài đấy thì dễ thôi, nhưng cần phải làm vừa nhanh, vừa chính xác. @@ -121,10 +121,10 @@ Mình chỉ nói thêm chút là nhiều bạn quan trọng hóa hạng của c Khi mình làm việc với các bạn mới học đội tuyển thì mình cũng thi Codeforces. Mình có trao giải thưởng cho ông nào thi hạng cao hơn mình. Nói thế chứ thi mà hạng cao hơn thầy thì cũng không phải khó lắm! Chủ yếu vui là chính thôi! -Có một đoạn nữa, khi mà chuyển sang dạy C++, mình biết C++, nhưng để biết ở mức độ đi dạy được, thì phải thi bằng cái đấy xong mới biết mà dạy được. Nếu mà chỉ chuyển từ ngôn ngữ này sang ngôn ngữ kia theo kiểu ánh xạ 1:1 ấy, thì nó không phải là tư duy của một người đi thi – không thể làm nhanh được. Đợt đấy, nhìn trên biểu đồ thì mình tụt rank thê thảm, cứ nhập nhằng mãi. Quãng thời gian đấy thì hầu như kỳ thi nào mình cũng làm đến mức độ học sinh tưởng mình cho nick đứa nào đó để tập cơ. Mình tập bằng một ngôn ngữ mới, thì nó thay đổi thói quen viết cũ, ngay cả trong cách trình bày chương trình. Phải tập đến độ Expert thì mới tự tin đi dạy được người khác. +Có một đoạn nữa, khi mà chuyển sang dạy C++, mình biết C++, nhưng để biết ở mức độ đi dạy được, thì phải thi bằng cái đấy xong mới biết mà dạy được. Nếu mà chỉ chuyển từ ngôn ngữ này sang ngôn ngữ kia theo kiểu ánh xạ 1:1 ấy, thì nó không phải là tư duy của một người đi thi – không thể làm nhanh được. Đợt đấy, rank của mình tụt thê thảm, cứ nhập nhằng mãi. Quãng thời gian đấy, hầu như kỳ thi nào mình cũng làm, đến mức độ học sinh tưởng mình cho nick đứa nào đó để tập cơ. Mình tập bằng một ngôn ngữ mới, thì nó thay đổi thói quen viết cũ, ngay cả trong cách trình bày chương trình. Phải tập đến độ Expert thì mới tự tin đi dạy được người khác. ### Theo thầy thì so C++ với Python, Python có dễ học hơn C++ nhiều không? -Nói về ngôn ngữ lập trình, mình thấy ngôn ngữ nào cũng phải bỏ công học tất cả mọi cấu trúc điều khiển và đặc tả của ngôn ngữ đó. Mình không nghĩ là có ngôn ngữ nào dễ hơn hẳn cái kia. Còn nếu mà nói khó làm chủ, thì mình nghĩ rằng C++ là một trong những ngôn ngữ khó. C++ có quá nhiều kí hiệu, và càng về sau thì ngày càng mở rộng ngôn ngữ ra làm cho code rối rắm hơn, lambda function rồi các thứ viết tắt! Lẽ ra thì C++ nên làm theo hướng thêm đặc tả nếu cần thôi, chứ ngôn ngữ đang chạy ổn thì cứ để đấy lâu lâu một chút. Đây thì cứ 5 năm lại lên một đời, làm cho người ta chạy theo lâu lâu cũng thấy mệt. +Nói về ngôn ngữ lập trình, mình thấy ngôn ngữ nào cũng phải bỏ công học tất cả mọi cấu trúc điều khiển và đặc tả của ngôn ngữ đó. Mình không nghĩ là có ngôn ngữ nào dễ hơn hẳn cái kia. Còn nếu mà nói khó làm chủ, thì mình nghĩ rằng C++ là một trong những ngôn ngữ khó. C++ có quá nhiều kí hiệu, và càng về sau thì ngày càng mở rộng ngôn ngữ ra làm cho code rối rắm hơn, nổi bật là lambda function và các cách viết tắt thông dụng khác nữa. Lẽ ra thì C++ nên làm theo hướng thêm đặc tả nếu cần thôi, chứ ngôn ngữ đang chạy ổn thì cứ giữ nguyên một khoảng thời gian. C++ cứ 5 năm lại lên một đời, làm cho người ta chạy theo lâu lâu cũng thấy mệt. ![](../assets/interviews/2024-le-minh-hoang/image9.jpg) @@ -132,14 +132,15 @@ Còn riêng về Python, thì mình không nghĩ đây là một ngôn ngữ d Nói về chuyện thuật toán và cấu trúc dữ liệu, một trong những cái mà mình thấy rất là quan trọng là đánh giá độ phức tạp tính toán. Python không đánh giá được vì phép cộng, phép nhân của nó không phải là hằng số. Với những cái đấy, thì khi mình đánh giá độ phức tạp, lúc chạy thì nó sẽ 'rùa' hơn so với cái mình đã đánh giá. -Khi mình đi dạy, mình chỉ ra rằng một thuật toán O($n^2$) sẽ chậm hơn O($n \log_2 n$), như O($n \log_2 n$) thì phải dùng phép nhân ma trận hay gì đấy, cần tính toán số lớn chẳng hạn. Khi đem hai code đi chạy thì code O($n \log_2 n$) lại chậm hơn code O($n^2$) đáng kể. Tự nhiên làm thế, người ta cũng mất lòng tin với lý thuyết được học. Nói thế thôi chứ ngôn ngữ biên dịch sẽ khá sát với độ phức tạp tính toán. +Khi mình đi dạy, mình chỉ ra rằng một thuật toán O($n^2$) sẽ chậm hơn O($n \log_2 n$), nhưng O($n \log_2 n$) thì phải dùng phép nhân ma trận, cần tính toán số lớn chẳng hạn. Khi đem hai code đi chạy thì code O($n \log_2 n$) lại chậm hơn code O($n^2$) đáng kể. Tự nhiên làm thế, người ta cũng mất lòng tin với lý thuyết được học. Nói đi cũng phải nói lại, ngôn ngữ biên dịch sẽ khá sát với độ phức tạp tính toán. Nhưng nói chung, mình không nghĩ rằng học một ngôn ngữ lập trình là chuyện dễ. Vì ở ngoài kia, người ta có những lớp học cấp tốc, có những cuốn sách học ngôn ngữ nào đó trong vài tuần. Mình không nghĩ là nó sẽ được việc đâu! Nó phải có trải nghiệm, có sự luyện tập, phải làm từ từ thì nó mới có độ ngấm! Học có độ 3 tuần thì chỉ ở mức độ biết nó là gì thôi. + ### Là một người code C++ thì thầy là người code theo phong cách những phiên bản mới nhất, hay theo kiểu truyền thống là C++11? Mình code theo kiểu truyền thống. Vì thật sự, ngay cả những đặc tả trong C\++17, C\++20 thì mình cũng chưa biết hết đâu. Mình code theo kiểu: trông nó quen thuộc thì viết thôi. Thỉnh thoảng nổi hứng lên viết những lệnh trông ngầu ngầu một tí, chứ nó không phải là chuyện thường xuyên. Một khi mà mình viết một lệnh mà bản thân mình thấy đã khó nhìn, thì khi debug (sửa lỗi) nó sẽ mệt lắm. ### Còn về IDE, thì bây giờ thầy vẫn dùng gì? Thầy thấy các bạn trẻ bây giờ hay dùng VS Code, Sublime Text thì thầy cảm thấy thế nào? -Với C++ thì thầy vẫn dùng Codeblocks. Mình nghĩ là Codeblocks nó dở thật, hệ soạn thảo tích hợp nó hỗ trợ kém quá! Nếu có điều kiện thì nên dùng những phần mềm chuyên nghiệp, kết hợp debugger, unit test, version manager v.v, các thứ. +Với C++ thì thầy vẫn dùng Codeblocks. Mình nghĩ là Codeblocks nó dở thật, hệ soạn thảo tích hợp nó hỗ trợ kém quá! Nếu có điều kiện thì nên dùng những phần mềm chuyên nghiệp, kết hợp debugger, unit test, version manager, v.v. Tuy nhiên mình lại thấy có rất nhiều bạn code thẳng bằng giao diện trên trang web nào đấy: Mở web, code thẳng vào đấy rồi nộp bài luôn. Mà mình lại chẳng thấy cách làm này được lợi ích gì cả. Nếu có lỗi thì nó gỡ kiểu gì? @@ -151,7 +152,7 @@ Cách làm đấy chỉ nhanh hơn ở những bài đơn giản có thể code Mình chẳng hiểu vì sao nữa, bạn chỉ cần bỏ vài giây, có khi chưa tới một phút, trong việc làm sẵn một file input như thế nhưng các bạn vẫn không làm. -Chuyện chọn IDE cũng như vậy, quả thực rất là khó để dạy các bạn debug, bởi vì những bài đầu tiên thì nó không đáng để dạy những cái đấy. Khi mà bài khó lên, thì cần dùng debug nhưng lúc đó thì các bạn không có thói quen đặt break, while, step over, trace into, v.v, gì cả. Khi ấy tất cả mọi kỹ năng debug phụ thuộc vào console để in ra vài giá trị trung gian, thậm chí có những bạn đi thi VOI rồi mà vẫn debug theo kiểu chống mắt lên soi từng dòng code mà không hề chạy thử để khoanh vùng và cô lập lỗi. Dùng debugger kết hợp với in số liệu trong tiến trình cộng thêm assert, exception, v.v, mới là cách đúng và nếu các bạn theo nghề lập trình thì sớm muộn gì cũng phải học. +Chuyện chọn IDE cũng như vậy, quả thực rất là khó để dạy các bạn debug, bởi vì những bài đầu tiên thì nó không đáng để dạy những cái đấy. Khi mà bài khó lên, sẽ cần dùng debug nhưng lúc đó thì các bạn không có thói quen đặt break, while, step over, trace into, v.v, gì cả. Khi ấy tất cả mọi kỹ năng debug phụ thuộc vào console để in ra vài giá trị trung gian, thậm chí có những bạn đi thi VOI rồi mà vẫn debug theo kiểu chống mắt lên soi từng dòng code mà không hề chạy thử để khoanh vùng và cô lập lỗi. Dùng debugger kết hợp với in số liệu trong tiến trình cộng thêm assert, exception, v.v, mới là cách đúng và nếu các bạn theo nghề lập trình thì sớm muộn gì cũng phải học. ### Nhắc đến việc debug, em thấy rằng ở Việt Nam rất ít người dùng debugger, tất cả đều chọn phương án in hết. Thầy có dạy học sinh dùng debugger không hay cũng in ra hết màn hình để tìm lỗi? Thật ra thì cái đấy có dạy được đâu. Mình nghĩ hồi xưa, khi mình học debugger thì trong tư tưởng của mình: nếu người làm ra phần mềm đã nghĩ ra cái này thì đây không phải là cái thứ vứt đi, nó đã tích hợp rồi thì chắc chắn phải là cái quan trọng! @@ -170,9 +171,9 @@ Mình nghĩ là ở mức độ thi Quốc gia, cứ chăm chỉ luyện tập t *Còn ví dụ nếu muốn vào vòng 2, thì phải có năng khiếu, có tư chất đặc biệt hơn đúng không ạ?* -Vòng 2 thì, mình nghĩ các bạn vào đội tuyển Quốc gia đi thi châu Á hay Quốc tế, thì phải có một số năng khiếu đặc biệt, ít nhất là trong việc thi cử. Cũng có những bạn học và thi xong rồi, có thể sở thích của bạn dẫn bạn đi làm dự án các thứ, chứ không dừng lại ở việc thi học sinh giỏi, làm những bài khó nhằn như vậy. Nói thật chứ, kể cả Quốc tế cũng thế, các bài ở tầm đỉnh cao, đôi khi nó lại xa rời thực tế. Nó không đề cao giá trị cốt lõi của môn học nữa, mà chỉ là những mẹo giải bài. Nhiều lúc thì có thể học đến đấy, các bạn không thích nữa, thì các bạn sẽ không vào Vòng 2. +Vòng 2 thì, mình nghĩ các bạn vào đội tuyển Quốc gia đi thi châu Á hay Quốc tế, thì phải có một số năng khiếu đặc biệt, ít nhất là trong việc thi cử. Cũng có những bạn học và thi xong rồi, có thể sở thích của bạn dẫn bạn đi làm dự án, chứ không dừng lại ở việc thi học sinh giỏi, làm những bài khó nhằn như vậy. Nói thật chứ, kể cả Quốc tế cũng thế, các bài ở tầm đỉnh cao, đôi khi nó lại xa rời thực tế. Nó không đề cao giá trị cốt lõi của môn học nữa, mà chỉ là những mẹo giải bài. Nhiều lúc thì có thể học đến đấy, các bạn không thích nữa, thì các bạn sẽ không vào Vòng 2. -Còn để đạt giải Quốc gia, thì kĩ thuật là cái quan trọng nhất, không cần phải đầu óc đâu. Nghĩ ra cái gì, làm được cái đấy là sẽ có giải. Đa số các bạn đi thi Quốc gia không may mắn mà mất giải, thì thường sẽ có lỗi to đùng như sai tên file, ăn quả 0 điểm các thứ. Đó là rủi ro chứ không phải giỏi hay kém gì ở đây. Thứ hai, mình thấy đề thi Quốc tế, nó đã xa rời thực tế thì chớ, lại còn dài dòng, khó hiểu. Nó khác hẳn Codeforces, đề nó vẫn ở độ dài vừa phải, không dài quá. Còn đề Quốc gia thì ngay cái việc mình phân tích xem người ra đề yêu cầu mình cái gì, nó cũng đã lâu rồi. +Còn để đạt giải Quốc gia, thì kĩ thuật là cái quan trọng nhất, không cần phải đầu óc đâu. Nghĩ ra cái gì, làm được cái đấy là sẽ có giải. Đa số các bạn đi thi Quốc gia không may mắn mà mất giải, thì thường sẽ có lỗi to đùng như sai tên file, ăn quả 0 điểm, v.v. Đó là rủi ro chứ không phải giỏi hay kém gì ở đây. Thứ hai, mình thấy đề thi Quốc tế, nó đã xa rời thực tế thì chớ, lại còn dài dòng, khó hiểu. Nó khác hẳn Codeforces, đề nó vẫn ở độ dài vừa phải, không dài quá. Còn đề Quốc gia thì ngay cái việc mình phân tích xem người ra đề yêu cầu mình cái gì, nó cũng đã lâu rồi. ### Các bạn từ đoạn chưa biết gì, để dạy lên trình độ ổn thi Quốc gia, thì mình phải dạy đủ kiến thức thì sẽ thi được. Còn với thầy, làm thế nào để thầy phát huy được các bạn đã ngang tầm Quốc gia và muốn học lên, khi kiến thức không còn là vấn đề quá lớn nữa? @@ -185,28 +186,28 @@ Thật ra các bạn đi thi Quốc tế, ai cũng có cái giỏi riêng của ![](../assets/interviews/2024-le-minh-hoang/image10.jpg) -Như ngày xưa, vào năm 2011, mình đi sang Thái Lan với Linh (Nguyễn Vương Linh - IOI 2011). Linh có khả năng nghĩ rất nhanh nhưng nói thật thì Linh code không nhanh lắm đâu. Tuy vậy, Linh luôn ở trong trạng thái tự tin rằng mình sẽ đạt được kết quả khả quan. Năm đấy mình đi với cả Linh, Tuệ (Lê Khắc Minh Tuệ - IOI 2011), Nguyên (Nguyễn Tấn Sỹ Nguyên - IOI 2011) và Yến (Nguyễn Hoàng Yến - IOI 2011). Yến năm đấy đi thi, sợ nhất là vấn đề “run”. Trong lúc ôn luyện đội tuyển, Yến đã đi qua một thời gian căng thẳng dài. Đi thi thì cũng vẫn run nữa, nhưng may là được huy chương. +Như ngày xưa, vào năm 2011, mình đi sang Thái Lan với Linh (Nguyễn Vương Linh - IOI 2011). Linh có khả năng nghĩ rất nhanh nhưng nói thật thì Linh code không nhanh lắm đâu. Tuy vậy, Linh luôn ở trong trạng thái tự tin rằng mình sẽ đạt được kết quả khả quan. Năm đấy mình đi với cả Linh, Tuệ (Lê Khắc Minh Tuệ - IOI 2011), Nguyên (Nguyễn Tấn Sỹ Nguyên - IOI 2011) và Yến (Nguyễn Hoàng Yến - IOI 2011). Yến năm đấy đi thi, sợ nhất là vấn đề “run”. Trong lúc ôn luyện đội tuyển, Yến đã đi qua một thời gian căng thẳng dài. Đi thi thì Yến vẫn run, nhưng may là được huy chương. -Kể cả một số bạn không đi thi Quốc tế, như Trung (Nguyễn Thành Trung - RR) mình cũng rất ấn tượng về kiến thức và lòng đam mê,… vòng TST thật ra nó cũng chỉ là một kì thi thôi, nên khó mà đánh giá được năng lực thực sự. Hồi xưa mình có một bạn mà mình rất là ưng – bạn Vũ (Phạm Quang Vũ), cũng đâu có đi thi Quốc tế đâu! +Kể cả một số bạn không đi thi Quốc tế, như Trung (Nguyễn Thành Trung - RR) mình cũng rất ấn tượng về kiến thức và lòng đam mê, v.v. Vòng TST thật ra nó cũng chỉ là một kì thi thôi, nên khó mà đánh giá được năng lực thực sự. Hồi xưa mình có một bạn mà mình rất là ưng – bạn Vũ (Phạm Quang Vũ), cũng đâu có đi thi Quốc tế đâu! -Nói về thành công, nếu tính thống kê ra thì giải Quốc gia, Quốc tế nó chẳng nói lên điều gì. Tất nhiên về kiến thức kỹ năng thì các bạn thi CP sẽ khác hẳn so với các bạn còn lại. Nhưng thành công nó còn phụ thuộc môi trường và lĩnh vực làm việc sau này. Nhiều bạn còn đạt được thành công ở lĩnh vực khác, chứ không dừng lại ở Tin học nữa đâu. Đi thi là để học cái tư duy, cái tính tự học là nhiều hơn cái kiến thức như là cài Segment Tree! +Nói về thành công, nếu tính thống kê ra thì giải Quốc gia, Quốc tế nó chẳng nói lên điều gì. Tất nhiên về kiến thức kỹ năng thì các bạn thi CP sẽ khác hẳn so với các bạn còn lại. Nhưng thành công nó còn phụ thuộc môi trường và lĩnh vực làm việc sau này. Nhiều bạn còn đạt được thành công ở lĩnh vực khác, chứ không dừng lại ở Tin học nữa đâu. Đi thi là để học cái tư duy, cái tính tự học là nhiều hơn kiến thức như là cách cài Segment Tree! -Cái tinh thần không bỏ cuộc, sự quyết tâm cho những gì mà mình đã bỏ thời gian ra, chắc chắn là điều cần phải cổ vũ. Xã hội nói rằng trường Chuyên luyện gà chọi chỉ để đi thi là hoàn toàn không đúng! Nhìn vào ưu điểm của gà chọi, nó khoẻ hơn, sức bền cao hơn, nếu không đem đi chọi, thì nó vẫn sẽ chạy nhanh hơn, nhảy xa hơn! Cũng như các bạn thi CP, dù không thi nữa thì niềm đam mê và tinh thần tự học, các kiến thức được trang bị luôn có ích với các bạn. +Cái tinh thần không bỏ cuộc, sự quyết tâm cho những gì mà mình đã bỏ thời gian ra, chắc chắn là điều cần phải cổ vũ. Xã hội nói rằng trường Chuyên luyện gà chọi chỉ để đi thi là hoàn toàn không đúng! Nhìn vào ưu điểm của gà chọi, nó khoẻ hơn, sức bền cao hơn! Nếu không đem đi chọi, thì nó vẫn sẽ chạy nhanh hơn, nhảy xa hơn! Cũng như các bạn thi CP, dù không thi nữa thì niềm đam mê và tinh thần tự học, các kiến thức được trang bị luôn có ích với các bạn. ### Vì sao thầy quyết định tạo ra quyển sách đã đặt nền móng cho Lập trình Thi đấu? -Lúc đầu làm gì có sách đâu! Mỗi thầy dịch một ít sách của Ba Lan với Nga rồi tiện đâu dạy đấy. Đến năm 1994, mình tốt nghiệp cấp 3, vào khoa Toán của Đại học Sư phạm. Suốt 4 năm trời, mình có đả động gì tới cuộc thi học sinh giỏi đâu. Sau đấy, mình có hai lựa chọn: xin việc làm giáo viên Toán, hay tiếp tục làm công ti Tin học. Sau đấy, khối Chuyên gọi mình ở lại dạy, nên mình vẫn làm ở công ti bình thường và đi dạy học. Mình cảm thấy việc đi dạy khá hay, cũng như bản thân thật sự có ích nên mình tập trung đi dạy từ khoảng năm 2000. +Lúc đầu làm gì có sách đâu! Mỗi thầy dịch một ít sách của Ba Lan với Nga rồi tiện đâu dạy đấy. Đến năm 1994, mình tốt nghiệp cấp 3, vào khoa Toán của Đại học Sư phạm. Suốt 4 năm trời, mình có đả động gì tới cuộc thi học sinh giỏi đâu. Sau đấy, mình có hai lựa chọn: xin việc làm giáo viên Toán, hoặc tiếp tục làm công ty Tin học. Sau đấy, khối Chuyên gọi mình ở lại dạy, nên mình vẫn làm ở công ty bình thường và đi dạy học. Mình cảm thấy việc đi dạy khá hay, cũng như bản thân thật sự có ích nên mình tập trung đi dạy từ khoảng năm 2000. ![](../assets/interviews/2024-le-minh-hoang/image12.png) -Nói tới chuyện sách, sau 4 năm không đả động gì tới Học sinh giỏi Tin, mình đâu biết kì thi đang thi gì đâu. Sau hôm đó thì mình phải về học lại. Nếu có sưu tập đề, thì đa số các bài hồi mình thi sẽ theo dạng một trò chơi giữa hai người với nhau, hoặc là những bài NP-complete – đưa ra các giải pháp gần đúng,v.v. Lúc đó là năm 1998, đề bài nó đã khó lắm rồi, các thầy cho các bạn chấm test ầm ầm, mình nhận ra rằng trình độ mình còn non hơn các bạn lớp 12 trong đội tuyển. Điều đó buộc mình phải học thôi! Cách học tốt nhất là cứ ghi ra các kiến thức đọc được, rồi dạy cho khoá mới. +Nói tới chuyện sách, sau 4 năm không đả động gì tới Học sinh giỏi Tin, mình đâu biết kì thi đang bao gồm nội dung gì đâu. Sau hôm đó thì mình phải về học lại. Nếu có sưu tập đề, thì đa số các bài hồi mình thi sẽ theo dạng một trò chơi giữa hai người với nhau, hoặc là những bài NP-complete – đưa ra các giải pháp gần đúng, v.v. Lúc đó là năm 1998, đề bài đã khó lắm rồi. Các thầy cho các bạn chấm test ầm ầm. Lúc ấy, mình nhận ra rằng trình độ mình còn non hơn các bạn lớp 12 trong đội tuyển. Điều đó buộc mình phải học thôi! Cách học tốt nhất là cứ ghi ra các kiến thức đọc được, rồi dạy cho khoá mới. -Sau đấy thì còn lộn xộn lắm. Đến năm 2002, mình đi làm nghiên cứu sinh, mình cũng không chắc là mình có về được không nên mình để free trên web dưới dạng file pdf. Mạng Internet lúc đấy thì vẫn chưa phổ biến. Nếu về sau này, bạn nào tiếp thu được kiến thức ấy, thì đỡ phải cày lại từ đầu, có thể bước tiếp. +Sau đấy thì còn lộn xộn lắm. Đến năm 2002, mình đi làm nghiên cứu sinh ở Nhật Bản (JAIST - Viện Khoa học và Công nghệ Tiên tiến Nhật Bản), mình cũng không chắc là mình có về được không nên mình để free trên web dưới dạng file pdf. Mạng Internet lúc đấy thì vẫn chưa phổ biến. Nếu về sau này, bạn nào tiếp thu được kiến thức ấy, thì đỡ phải cày lại từ đầu, có thể bước tiếp. -Bây giờ thì mình cũng dự định viết lại vài chuyên đề, nhưng mà nói thật thì cũng lười rồi, ngồi lâu thì cũng mỏi lưng rồi! Chứ hồi ấy, khi mình viết những chuyên đề ấy, mình phải chuẩn bị cả tuần thì mới dạy được các bạn đội tuyển một buổi. Tức là khi định dạy một chuyên đề nào đó, mình cần một tuần nghĩ bài với sự giúp đỡ của rất nhiều thầy khác, kể cả thầy cũ của mình: thầy Nghĩa, thầy Tùng, cô Thành, v.v để cho đội tuyển “ăn đủ” kiến thức. Nếu chỉ có một người dạy đội tuyển, mỗi tuần cho ra học một buổi thì thở ra bằng tai mất thôi. +Hiện tại, mình cũng dự định viết lại vài chuyên đề, nhưng mà nói thật thì mình cũng lười rồi, ngồi lâu thì cũng mỏi lưng! Hồi ấy, khi mình viết những chuyên đề đó, mình phải chuẩn bị cả tuần thì mới dạy được các bạn đội tuyển một buổi. Tức là khi định dạy một chuyên đề nào đó, mình cần một tuần nghĩ bài với sự giúp đỡ của rất nhiều thầy khác, kể cả thầy cũ của mình: thầy Nghĩa, thầy Tùng, cô Thành, v.v để cho đội tuyển “ăn đủ” kiến thức. Nếu chỉ có một người dạy đội tuyển, mỗi tuần cho ra học một buổi thì thở ra bằng tai mất thôi. -Cũng từ chuyện đấy, mình viết sách. Các chuyên đề đó ban đầu chỉ để dạy thôi, nhưng sau đó thì thấy trong nước dùng khá phổ biến. Mình nhận ra rằng môn Tin cần nhất là tài liệu – một học sinh sẽ không cần thầy, tự học vẫn được nếu như tài liệu đủ tốt, đưa ra một lộ trình rõ ràng để tự học. -Về sau này, có các bài viết trên VNOI các thứ ấy, nhưng mình vẫn cảm thấy thiếu một cuốn sách để hệ thống lại đầy đủ. Chứ từng topic một, từng chuyên đề thì sẽ có bài riêng; nhưng lắp ghép nó vào trong một bối cảnh chung – dạy cái này vào lúc nào, thì vẫn chưa có tài liệu nào như vậy. Mình cũng đang kì vọng nhưng mà vẫn chưa xong được. +Cũng từ chuyện đấy, mình viết sách. Các chuyên đề đó ban đầu chỉ để dạy thôi, nhưng sau đó thì mình thấy trong nước dùng khá phổ biến. Mình nhận ra rằng môn Tin cần nhất là tài liệu – một học sinh sẽ không cần thầy, tự học vẫn được nếu như tài liệu đủ tốt, đưa ra một lộ trình rõ ràng để tự học. +Về sau này, có các bài viết trên VNOI và các nguồn trong và ngoài nước, nhưng mình vẫn cảm thấy thiếu một cuốn sách để hệ thống lại đầy đủ. Từng topic một, từng chuyên đề thì sẽ có bài riêng; nhưng lắp ghép nó vào trong một bối cảnh chung – dạy cái này vào lúc nào, thì vẫn chưa có tài liệu nào như vậy. Mình cũng đang kì vọng nhưng mà vẫn chưa xong được. ### Vậy là thầy dự định sắp viết phần Giải thuật và Lập trình mới? @@ -215,13 +216,13 @@ Thật ra quyển cũ có rất nhiều điểm mình không ưng ý, vì có nh ### Code minh hoạ chắc sẽ được viết bằng C++ đúng không ạ? Chắc là phải viết bằng C++. Nói chung sẽ rất khó để tổng hợp mọi thứ thuộc mạch cốt lõi của cấu trúc dữ liệu và giải thuật. Những kiến thức trong kì thi, đôi khi là những kiến thức rời rạc, không gắn vào đâu trong cái mạch chính này. Ngay cả câu chuyện về Segment Tree hay Fenwick Tree, khi thi cử, nó là những thứ rất phổ biến, nhưng để nói về vai trò trong mạch chính của khoa học máy tính, thì những thứ ấy là vớ vẩn. Cảm giác của mình, nó chỉ là mẹo cài đặt mà thôi. -Fenwick Tree thì đúng là mẹo cài đặt, Segment Tree thì ít nhất còn có tư tưởng chia để trị, tách tầng, lưu dữ liệu này kia. Còn Fenwick Tree thì công nhận là học xong thì chỉ biết là: OK, cài như thế thôi! +Segment Tree thì ít nhất còn có tư tưởng chia để trị, tách tầng, lưu dữ liệu, v.v, còn Fenwick Tree thì đúng là mẹo cài đặt 100%. Thật vậy, Fenwick Tree được nhiều học sinh công nhận là học xong thì chỉ biết là: OK, cài như thế thôi! Những sách về thuật toán, đôi khi code cài rất dở, cài theo mô hình rất kém. Nếu mình sao chép chang mô hình của nó ra như vậy, nó sẽ thành một thuật toán chậm. Đúng là code những sách đó rất là vụn. ### Thầy dự định sẽ xuất bản quyển sách vào năm 2024 hay năm 2025? -Chắc phải là ít nhất 1 năm, nên có lẽ vào năm 2025. Cũng phải tuỳ theo năm mới mình phải làm gì khác nữa. Nó cũng phụ thuộc vào công việc chính, thì mình phải đảm bảo cái đã. Một giáo trình khi ra đời, mình phải đem đi dạy thử đã, để biết chỗ nào giải thích loằng ngoằng, tìm cách chỉnh sửa. Như hồi xưa, mình rất ớn việc đọc chủ đề thành phần liên thông mạnh. Khi cài xong, mình vẫn chưa hiểu được bản chất tại sao Tarjan lại như thế! Lúc mình chưa làm chủ hoàn toàn, mình đi dạy cũng sẽ lởm khởm, càng giải thích lại càng rối. +Chắc phải là ít nhất 1 năm, nên có lẽ vào năm 2025. Cũng phải tuỳ theo năm mới mình phải làm gì khác nữa. Nó cũng phụ thuộc vào công việc chính, thì mình phải đảm bảo cái đã. Một giáo trình khi ra đời, mình phải đem đi dạy thử đã, để biết chỗ nào giải thích loằng ngoằng, tìm cách chỉnh sửa. Như hồi xưa, mình rất ngại việc đọc chủ đề thành phần liên thông mạnh. Khi cài xong, mình vẫn chưa hiểu được bản chất tại sao Tarjan lại như thế! Lúc mình chưa làm chủ hoàn toàn, mình đi dạy cũng sẽ lởm khởm, càng giải thích lại càng rối. ### Thầy có biết đánh cờ vua không ạ? Không, mình chỉ biết chơi cờ tướng @@ -250,7 +251,7 @@ Mình thấy cái nào có vụ án mà khó đoán thì nó sẽ hay phết! *Thầy tâm đắc với bộ nào nhất?* -Phải nhớ một cái tên thôi. Xem nhiều quá thì giờ lại quên béng mất tiêu đề phim … Nói chung thì mấy phim của Hàn Quốc, Trung Quốc, Mỹ các thứ, các phim cần mình phải đoán một chút, bí hiểm một tí. Chứ phim kinh dị thì mình xem mình cũng chả sợ. Mình có thể xem được ý nghĩa bên trong của phim kinh dị, chứ chỉ doạ ma thôi thì mình không thích. +Phải nhớ một cái tên thôi. Xem nhiều quá thì giờ lại quên béng mất tiêu đề phim … Nói chung thì mấy phim của Hàn Quốc, Trung Quốc, Mỹ, v.v, các phim cần mình phải đoán một chút, bí hiểm một tí. Chứ phim kinh dị thì mình cũng chả sợ. Mình có thể xem được ý nghĩa bên trong của phim kinh dị, chứ chỉ doạ ma thôi thì mình không thích. Mấy thể loại sướt mướt, tấu hài lê thê thì mình rút kinh nghiệm rồi. Ngày xưa thì người ta xem vì chẳng có lựa chọn gì khác, và mỗi tuần cũng chỉ có một tập đấy thôi. Chứ bây giờ thì mình có thể đợi hết cả 100 tập rồi xem một mạch, vừa xem vừa ăn tô phở thì tuyệt vời(!). diff --git a/interviews/2024-nguyen-duc-thang.md b/interviews/2024-nguyen-duc-thang.md index f1a8f51..4926a41 100644 --- a/interviews/2024-nguyen-duc-thang.md +++ b/interviews/2024-nguyen-duc-thang.md @@ -7,149 +7,145 @@ meta: ### Chào mọi người, hôm nay VNOI rất vinh dự khi được phỏng vấn bạn Thắng, một hiện tượng trong làng CP của năm 2023 khi các cuộc thi bạn tham gia đều đạt thành tích rất cao. Bạn có thể giới thiệu về bản thân được không? -Em là Nguyễn Đức Thắng, hiện đang là học sinh lớp 12 chuyên Toán, trường Trung học Phổ thông Chuyên Hùng Vương, tỉnh Phú Thọ. Vài năm trước trường em cũng có một anh tên y hệt em cũng học chuyên Toán và cũng nhất Quốc Gia Tin, em thấy cái này trùng hợp quá mức luôn. Sở thích của em là xem bóng đá, thi thoảng cũng có ra sân đá cùng bạn bè cũng như chơi các game bóng đá như Fc Online. Dạo này em cũng có một sở thích khác là chơi sudoku. Ngoài ra hồi xưa em cũng thích xem phim (đặc biệt là những phim hành động như Mission Impossible, Điệp Viên 007 và Jason Bourne) cũng như chơi rubik ạ. +Em là Nguyễn Đức Thắng, hiện đang là học sinh lớp 12 chuyên Toán, trường Trung học Phổ thông Chuyên Hùng Vương, tỉnh Phú Thọ. Vài năm trước, trường em cũng có một anh tên giống hệt em, cũng học chuyên Toán, và cũng nhất Quốc Gia Tin! Em thấy cái này trùng hợp quá mức luôn. Sở thích của em là xem bóng đá, thi thoảng cũng có ra sân đá cùng bạn bè cũng như chơi các game bóng đá như FC Online. Dạo này em cũng có một sở thích khác là chơi sudoku. Ngoài ra, em cũng thích xem phim (đặc biệt là những phim hành động như Mission Impossible, Điệp Viên 007 và Jason Bourne). Giải khối Rubik cũng là một phần đam mê của em ạ. ### Được biết bạn là một fan cuồng của Liverpool, bạn thích điều gì ở Liverpool? -Em là fan Liverpool từ năm 2018, năm mà Liverpool thua chung kết Champions League với Real Madrid. Thông thường thì mọi người sẽ thích các đội vô địch nhưng em lại ấn tượng với lối chơi gegenpressing, điệu Rock rực lửa của Klopp rồi sau đó trở thành fan lúc nào không hay. Một câu nói em rất thích của Klopp đó là "I'm the normal one". Ngoài ra tinh thần máu lửa mà các cầu thủ, ban huấn luyện cũng như cổ động viên của họ mang đến luôn đem đến cho em rất nhiều cảm xúc. Đỉnh cao là năm 2019, nơi mà Liverpool đã có cuộc lội ngược dòng không tưởng trước Barca trên sân Anfield tại bán kết cúp C1. Em đã không thể tin vào mắt mình khi xem bàn thắng thứ tư "corner taken quickly" của Liverpool ở trận đấu hôm đó. Em khá buồn vì đây là mùa cuối của Klopp ở đây, dù đội đứng đầu bảng xếp hạng nhưng rất khó nói về chức vô địch bởi Man City có Kevin De Bruyne và Haaland trở lại sau chấn thương nên tình hình cũng khó lường. +Em là fan Liverpool từ năm 2018 - năm mà Liverpool thua chung kết Champions League với Real Madrid. Thông thường thì mọi người sẽ thích các đội vô địch, nhưng em lại ấn tượng với lối chơi Gegenpressing, điệu Rock rực lửa của Klopp rồi sau đó trở thành fan lúc nào không hay. Một câu nói em rất thích của Klopp đó là "I'm the normal one". Ngoài ra tinh thần máu lửa mà các cầu thủ, ban huấn luyện cũng như cổ động viên của họ mang đến luôn đem đến cho em rất nhiều cảm xúc. Đỉnh cao là năm 2019, nơi mà Liverpool đã có cuộc lội ngược dòng không tưởng trước Barca trên sân Anfield tại bán kết cúp C1. Em đã không thể tin vào mắt mình khi xem bàn thắng thứ tư "corner taken quickly" của Liverpool ở trận đấu hôm đó (lời bình luận nhắc tới việc Trent Alexander-Arnold đá quả phạt góc nhanh, đánh lừa hàng thủ Barca, kiến tạo cho Origi ghi bàn). Em khá buồn vì đây là mùa cuối của Klopp ở đây. Dù hiện tại đội vẫn dẫn đầu trên bảng xếp hạng, nhưng Liverpool vẫn chưa thể chắc chắn về một chức vô địch, bởi Man City vừa có Kevin De Bruyne và Erling Haaland trở lại sau chấn thương nên tình hình cũng khó lường. ### Vốn xuất phát học cấp 3 chuyên Toán trường Hùng Vương – trường chuyên duy nhất và tốt nhất của tỉnh Phú Thọ, với chuyên Toán là chuyên khó vào nhất, bạn đã có những bước đệm nào từ cấp 2 để lên cấp 3 có thể tỏa sáng được như thế không? Bạn có từng tham gia các kỳ thi như Violympic, Toán Quốc Tế, Toán Úc, ... dành cho học sinh từ cấp 2 trở xuống không? ![](../assets/interviews/2024-nguyen-duc-thang/image6.jpg) -Việc học toán nâng cao của em đã bắt đầu từ những năm cấp 1 rồi ạ. Thời đó thì em vào được vòng huyện những năm cấp 1 và vòng tỉnh trong những năm cấp 2 và có được giải nhì, đây cũng là cấp độ cao nhất hồi đó ạ. Về trình độ toán của em thì em tự nhận thấy bản thân không giỏi ở phần hình và bất đẳng thức lắm. Khi thi vào chuyên Toán thì em đứng thứ 12/30 - một vị trí khá an toàn nhưng cũng không quá xuất sắc ạ. +Việc học toán nâng cao của em đã bắt đầu từ những năm cấp 1. Thời đó thì em vào được vòng huyện những năm cấp 1 và vòng tỉnh trong những năm cấp 2. Vòng tỉnh cũng là cấp độ cao nhất dành cho trung học cơ sở, và em may mắn đạt được giải nhì. Về trình độ toán của em, em tự nhận thấy bản thân không giỏi ở phần hình và bất đẳng thức lắm. Khi thi vào chuyên Toán thì em đứng thứ 12/30 - một vị trí khá an toàn nhưng cũng không quá xuất sắc, nên em không hài lòng lắm với kết quả này. -Về các cuộc thi thì em có tham gia Violympic khi nó vẫn còn là một cuộc thi toán nhận được nhiều sự ủng hộ của học sinh và các thầy cô, và em đều đạt được thành tích tương đối ổn. Ngoài ra em cũng có thi các cuộc thi "Quốc Tế" đôi lần vào những năm cấp 2 nhưng cũng không mấy ấn tượng ạ. +Nhắc đến những cuộc thi, em có tham gia Violympic khi nó vẫn còn là một cuộc thi toán nhận được nhiều sự ủng hộ của học sinh và các thầy cô, và em đều đạt được thành tích tương đối ổn. Ngoài ra, em cũng có thi các cuộc thi "Quốc Tế" đôi lần vào những năm cấp 2 nhưng thành tích đạt được cũng không mấy ấn tượng. -Em nghĩ với một nền toán ở mức khá như vậy là đủ để giúp em hiểu được những kiến thức toán trong tin ạ. +Em nghĩ rằng một nền móng toán học ở mức "khá" như vậy là đủ để giúp em hiểu được những kiến thức toán học được áp dụng trong các chuyên đề tin. ### Tại sao bạn thi vào lớp chuyên Toán mà không phải lớp chuyên Tin? Tại sao bây giờ bạn lại học Tin mà lại không học toán? - -Tại vì em lúc đầu vốn là học Toán mà, thực ra bản thân em cũng chán việc học Toán từ lớp 8 do em rất kém hình, và em cũng thấy mình không còn hứng thú với việc biến đổi quá nhiều. Lên cấp 3 em mới bắt đầu thử học Tin chứ giả sử em học Tin kém mà vào lớp chuyên Tin thì lại không ổn lắm. Bây giờ mà em có được chọn lại học chuyên Toán hay chuyên Tin thì em vẫn sẽ chọn Toán bởi em thấy tính em vẫn hợp với các bạn lớp em bây giờ hơn, chứ vào lớp Tin chắc em trầm cảm mất. Em nghĩ đây cũng là background của khá nhiều người học cũng như thi Tin ạ. +Em xuất phát vốn là dân học Toán, nên thi vào chuyên Toán cũng là dễ hiểu. Thực ra bản thân em cũng chán việc học Toán từ lớp 8 do em rất kém hình, và em cũng thấy mình không còn hứng thú với việc biến đổi quá nhiều. Lên cấp 3, em mới bắt đầu thử học Tin. Thật vậy, giả sử em học Tin kém mà vào lớp chuyên Tin thì ... không ổn lắm. Nếu em có cơ hội được chọn lại giữa việc học chuyên Toán hay chuyên Tin, thì em vẫn sẽ chọn Toán bởi tính cách của em vẫn hợp với các bạn lớp em bây giờ hơn. Em nghĩ đây cũng là background của khá nhiều người học cũng như thi Tin ạ. ### Ở cấp 3 thì bạn tiếp xúc với môn Tin từ lúc nào? ![](../assets/interviews/2024-nguyen-duc-thang/image8.jpg) -Khoảng hồi hè, trước khi vào cấp 3 cô Thái trường em có nghĩ ra ý tưởng và mở một lớp dạy C++ miễn phí cho các bạn học sinh mới vào trường, chủ yếu là để đào tạo vào ĐTQG sau này. -Ban đầu cũng không ai biết và để ý em bởi em không có gì nổi trội. Nhưng sau khi học được một thời gian thì có vẻ em bứt lên, thực ra thì hồi Tết năm ý em cũng có tìm hiểu một chút qua về C++ nên tiếp thu nhanh hơn, thời điểm đó em cũng rất đam mê với việc code, em code suốt cả hè năm ý luôn. Đến giờ em vẫn không hiểu sao hồi đó mình code nhiều thế. +Khoảng hồi hè trước khi vào cấp 3, cô Thái dạy trường em có nghĩ ra ý tưởng và mở một lớp dạy C++ miễn phí cho các bạn học sinh mới vào trường, chủ yếu là để đào tạo vào ĐTQG sau này. +Ban đầu cũng không ai biết và để ý em bởi em không có gì nổi trội. Nhưng sau khi học được một thời gian thì có vẻ em bứt lên. Thực ra thì Tết năm đó, em cũng có tìm hiểu một chút qua về C++ nên tiếp thu nhanh hơn. Vả lại, em lúc ấy cũng rất đam mê với việc code, em code suốt cả hè luôn. Đến giờ em vẫn không hiểu sao hồi đó mình code nhiều thế. ### Cảm giác của bạn khi lần đầu tiếp xúc với Tin học? -Lần đầu thì có lẽ là năm lớp 8, em được học Pascal trên trường. Lúc đấy được tiếp xúc với các câu lệnh, vòng lặp và một bài vài toán đơn giản làm em thấy việc lập trình khá thú vị, em được tiếp xúc với thứ hoàn toàn mới lạ và hay ho. Thậm chí lúc ý em còn định học song song cả Toán và Tin bằng cách mượn đề mấy đứa bạn đội tuyển Tin của em để làm cùng nhưng hồi đó em quá lười nên cuối cùng lại không làm được. +Lần đầu thì có lẽ là năm lớp 8, khi em được học Pascal trên trường. Lúc đấy được tiếp xúc với các câu lệnh, vòng lặp và một bài vài toán đơn giản làm em thấy việc lập trình khá thú vị. Tin học trong em lúc đó là cả một khoảng trời của những kiến thức hoàn toàn mới lạ và hay ho. Thậm chí, em từng có ý định học song song cả Toán và Tin bằng cách mượn đề các đứa bạn đội tuyển Tin của em để làm cùng, nhưng hồi đó em quá lười nên cuối cùng lại không làm được. ### Với việc đạt giải Nhì Quốc Gia từ năm lớp 10 như thế đã cho bạn bàn đạp rất lớn khi được dành thời gian trọn vẹn 3 năm cấp 3 với môn Tin học. Bạn có thường xuyên phải học trên trường nữa không? -Trong khoảng thời gian em học đội tuyển để đi thi HSGQG thì trường cũng đã tạo điều kiện miễn việc học trên lớp cho em, còn sau khi thi QG thì cô Thái đã xin phép trường cho em được tiếp tục việc học cùng với các anh chị ạ. - -P/S: có một fact vui là hồi đó chỉ có 7 anh chị lớp 11-12 thi mà trường em có 8 slot nên em được vé vớt ạ (cười). Tuy nhiên ở vòng sau em lại khá đen đủi khi đứng đồng hạng 33 và trượt Vòng 2. +Trong khoảng thời gian em học đội tuyển để đi thi HSGQG, trường cũng đã tạo điều kiện miễn việc học trên lớp cho em. Sau khi thi HSGQG xong, cô Thái đã xin phép trường cho em được tiếp tục việc học cùng với các anh chị ạ. Sự thật là hồi đấy chỉ có 7 anh chị lớp 11-12 thi mà trường có 8 suất nên em được vé vớt (cười). Tuy nhiên ở vòng sau em lại khá đen đủi khi đứng đồng hạng 33 và trượt Vòng 2. ### Phương pháp nào để bạn từ giải Nhì Quốc gia năm lớp 10 lên Á khoa của kỳ thi chỉ sau một năm như vậy? Bạn có thay đổi gì về chiến lược học trong suốt một năm hay không? - -Em nghĩ sự khác biệt lớn nhất trong 2 năm của em là việc em đã có ý thức stress test trong phòng thi hơn ạ. Hồi lớp 10 thì em có phần tập trung vào việc luyện code trên VNOJ hơn mà quên mất phần chiến thuật trong phòng thi. Kết quả là em đã bị "sập" mất bài 2 năm đó và trượt - một kết quả làm em khá nuối tiếc. Sau đó em chơi nguyên hè cho tới khi được khuyến khích kì thi Duyên Hải Đồng bằng Bắc Bộ. Đến lớp 11 thì em cẩn thận hơn cũng như trình độ code cũng đã lên một chút, mà em cũng cảm thấy Vòng 1 chỉ cần code giỏi là vào được vòng sau rồi. Kết quả Á khoa em cảm thấy có chút may mắn, nhưng việc có được một kết quả tốt đã nằm trong dự liệu của em khi đó rồi ạ. +Em nghĩ sự khác biệt lớn nhất trong 2 năm là việc em đã có ý thức stress test trong phòng thi hơn. Hồi lớp 10 thì em có phần tập trung vào việc luyện code trên VNOJ hơn mà quên mất phần chiến thuật trong phòng thi. Kết quả là em đã bị "sập" mất bài 2 năm đó và trượt - một kết quả làm em khá nuối tiếc. Sau đó em chơi nguyên hè, cho tới khi "được" khuyến khích kì thi Duyên Hải Đồng bằng Bắc Bộ. Đến lớp 11 thì em cẩn thận hơn, cộng thêm trình độ code đã tiến bộ một chút, nên kết quả tốt hơn cũng là dễ hiểu. Vả lại, em quan niệm rằng Vòng 1 chỉ cần code giỏi là vào được vòng sau rồi. Kết quả Á khoa có thể mang chút may mắn, nhưng việc có được một kết quả tốt đã nằm trong dự liệu của em khi đó rồi. ### Bạn tập trung rất nhiều vào khả năng code, vậy còn khả năng nghĩ thì sao? Bạn phân bố thời gian học các thuật toán như thế nào? -Lúc mới vào thì em chỉ học các thuật toán cơ bản như Segment Tree, DSU... thôi ạ. Ngoài ra khi làm bài mà gặp một tính chất, một thuật toán mà em chưa biết thì em sẽ tìm đọc và làm những bài tương tự. Ngoài ra khi em lên lớp 11, với việc biết sinh test thì tỉ lệ code bug của em đã giảm xuống đáng kể. Còn khả năng nghĩ của em thì cũng ở mức tạm ổn, chưa có gì quá khác biệt, em nghĩ chủ yếu em ăn ở chỗ làm được hầu hết những phần có thể làm được trong các kì thi. - +Lúc mới vào thì em chỉ học các thuật toán cơ bản như Segment Tree, DSU, ... thôi ạ. Ngoài ra khi làm bài mà gặp một tính chất, một thuật toán mà em chưa biết thì em sẽ tìm đọc và làm những bài tương tự. Ngoài ra khi em lên lớp 11, với việc biết sinh test, tỉ lệ code bug của em đã giảm xuống đáng kể. Khả năng nghĩ của em thì cũng ở mức tạm ổn, chưa có gì quá khác biệt; Em hơn các bạn ở khả năng làm được hầu hết những phần có thể làm được trong các kì thi. + ### Bạn học TST trong vòng bao lâu? Trình độ của bạn thay đổi như thế nào? -Em nhớ là trong vòng vài tháng ạ. Em lên trình khá nhiều, vì các bài được tiếp xúc khác hẳn hồi ôn thi VOI, với nhiều kiến thức, dạng bài mới. Có nhiều bài thiên về suy nghĩ, sau khi đã ra ý tưởng thì việc cài đặt lại khá đơn giản, mặc dù thế mạnh của em là code những bài khó nhưng em vẫn rất hứng thú với các dạng bài nghĩ nhiều đó. Hồi em học thì anh Thái, thầy Đông thường cho các bài code ngắn, ngược lại thì có anh Hoàng luôn cho những bài cần "tay to" thực sự. +Em nhớ là trong vòng vài tháng ạ. Em lên trình khá nhiều, vì các bài được tiếp xúc khác hẳn hồi ôn thi VOI, với nhiều kiến thức, dạng bài mới. Có nhiều bài thiên về suy nghĩ, sau khi đã ra ý tưởng thì việc cài đặt lại khá đơn giản. Mặc dù thế mạnh của em là code những bài nặng về cài đặt, nhưng em vẫn rất hứng thú với các dạng bài nghĩ nhiều. Hồi em học thì anh Thái, thầy Đông thường cho các bài code ngắn, ngược lại thì có anh Hoàng luôn cho những bài cần "tay to" thực sự. ### Có một số người học Vòng 2 rất quyết liệt, bài nào các thầy đưa ra cũng code để AC bằng được. Tiếp cận của bạn cho vVòng 2 là gì? -Thật ra thì cô Thái cho em đi ôn riêng với các thầy, các anh khá nhiều nên em dành phần lớn thời gian để giải bài từ những buổi đó ạ, còn bài các thầy cho ở Vòng 2 thì em có cố gắng làm nhưng những bài em không làm được thì thôi ạ (cười). Vòng 2 thì em chỉ cố gắng để có được nhiều điểm nhất có thể và không đi quá sâu vào bài nào. Việc có được một thứ hạng cao như vậy thật sự cũng là một bất ngờ với em (và nếu nhìn bảng rank cũng có thể thấy ai cũng có ít nhất 1 bài xanh còn em thì bài nào cũng màu đỏ...). - - +Thật ra thì cô Thái cho em đi ôn riêng với các thầy, các anh khá nhiều nên em dành phần lớn thời gian để giải bài từ những buổi đó ạ, còn bài các thầy cho ở Vòng 2 thì em có cố gắng làm nhưng những bài em không làm được thì thôi ạ. Vào vòng 2, em chỉ cố gắng để có được nhiều điểm nhất có thể và không đi quá sâu vào bài nào. Việc có được một thứ hạng cao như vậy thật sự cũng là một bất ngờ với em vì mỗi thí sinh đều có ít nhất 1 bài xanh, em thì bài nào cũng màu đỏ thôi.. ### Trước khi thi Vòng 2, bạn có cảm thấy hồi hộp không? Sau đó cả hai ngày thi của bạn diễn ra như thế nào? ![](../assets/interviews/2024-nguyen-duc-thang/image7.jpg) -Em cảm thấy khá là bình tĩnh, vì mục tiêu của em ban đầu chỉ là vào APIO để miễn tốt nghiệp, chứ không thiết tha gì IOI cho lắm. Mà nếu lớp 11 trượt, thì lớp 12 vẫn thi lại VOI được ạ. Em thấy bản thân làm hai ngày cũng khá là bình thường, ngoài ra điểm của em cũng khá đều, còn mọi người thì hay có 1-2 bài điểm có để gánh các bài còn lại. +Em cảm thấy khá là bình tĩnh, vì mục tiêu của em ban đầu chỉ là vào APIO để miễn tốt nghiệp, chứ không thiết tha gì IOI cho lắm. Mà nếu lớp 11 có lỡ không may trượt vòng 2, thì lớp 12 vẫn thi lại VOI được ạ. Em thấy bản thân làm hai ngày ở mức khá bình thường. Ngoài ra, điểm của em cũng khá đều, còn mọi người thì hay có 1-2 bài điểm có để gánh các bài còn lại. ### Vậy chiến thuật của bạn có phải là tập trung cắn tất cả các subtask thay vì chỉ tập trung là một bài không? -Em cảm thấy đề năm vừa rồi khó hơn bình thường khá nhiều nên việc tập trung vào một bài có phần bất khả thi (trừ khi đó là anh Khuê) ạ. Khi ngày 1 kết thúc và em chỉ được chưa tới 100/300, em cũng đã nghĩ về một thứ hạng thấp. Tuy nhiên em lại có được vị trí thứ 7, điều này giúp em làm bài ngày 2 với một tâm thế khá thoải mái. +Đối với em, đề năm vừa rồi khó hơn bình thường khá nhiều nên việc tập trung vào một bài có phần bất khả thi, trừ khi đó là anh Khuê (Hoàng Ngọc Bảo Khuê - hai lần tham gia APIO 2022, 2023). Khi ngày 1 kết thúc và em chỉ được chưa tới 100/300, em cũng đã nghĩ về một thứ hạng thấp. Tuy nhiên em lại có được vị trí thứ 7, điều này giúp em làm bài ngày 2 với một tâm thế khá thoải mái. ### Sau khi qua Vòng 2 thì các bạn ở các tỉnh sẽ được ra Hà Nội học một tháng và ở kí túc xá kèm tiền hỗ trợ 250 nghìn mỗi ngày, bạn có kỉ niệm nào với việc học APIO không? -Chắc là có kỉ niệm... trốn học ạ. Phòng em có em, anh Bảo Anh và anh Triệu. Anh Triệu thì chăm chỉ, hôm nào cũng đi học đầy đủ. Còn anh Bảo Anh và em thì hay trốn, sau đó cũng có vài lần bị thầy Phương gọi hỏi thăm. Lúc trốn thì em thường chỉ ở nhà ngủ thôi nên nhiều lúc thầy gọi cho cả cô Thái để kêu dậy đi học. Với tiền phụ cấp thì em cũng chỉ đi ăn uống bình thường, không chi tiêu gì nhiều. Có một hôm ba bọn em đi xem phim cho đỡ chán, còn lại thì không khác gì sinh hoạt hằng ngày cả. +Em nhớ nhất kỉ niệm... trốn học ạ. Phòng em có 3 người: em, anh Bảo Anh và anh Triệu. Anh Triệu thì chăm chỉ, hôm nào cũng đi học đầy đủ. Còn anh Bảo Anh và em thì hay trốn, sau đó cũng có vài lần bị thầy Phương gọi hỏi thăm. Lúc trốn, em thường chỉ ở nhà ngủ thôi nên nhiều lúc thầy gọi cho cả cô Thái để kêu dậy đi học. Với tiền phụ cấp, em cũng chỉ đi ăn uống bình thường, không chi tiêu gì nhiều. Có một hôm ba bọn em đi xem phim cho đỡ chán, còn lại thì không khác gì sinh hoạt hằng ngày cả. + ### Ôn thi xong APIO là đến ôn thi IOI, trải nghiệm của bạn lúc đấy thế nào? -Đợt em ôn thi IOI thì ba bạn kia ở Hà Nội nên ở nhà riêng hết, chỉ có mình em ở kí túc xá thôi, mà cũng chỉ vì có 4 người học nên em cũng không trốn được. Thật ra nếu muốn thì có lẽ vẫn có thể, bởi vì các thầy chỉ cho bài thôi, đa phần các thầy sẽ không lên (cười). Mọi người lên đầy đủ chủ yếu chỉ để học cùng nhau để có không khí cũng như trao đổi một chút thôi ạ. +Đợt em ôn thi IOI thì ba bạn kia ở Hà Nội nên ở nhà riêng hết, chỉ có mình em ở kí túc xá thôi, mà cũng chỉ vì có 4 người học nên em cũng không trốn được. Thật ra nếu em thật sự muốn trốn thì có lẽ vẫn có thể, bởi vì các thầy chỉ cho bài thôi, đa phần các thầy sẽ không lên. Mọi người lên đầy đủ chủ yếu chỉ để học cùng nhau để có không khí cũng như trao đổi một chút thôi. ### Kỳ thi IOI 2023 được tổ chức ở Hungary, là một năm hiếm hoi trong những năm gần đây các thí sinh đi thi có thể giao lưu và gặp mặt nhau tại một nước. Cảm giác của bạn khi lần đầu tiên được đi Hungary là như thế nào? ![](../assets/interviews/2024-nguyen-duc-thang/image3.jpg) -Em nhìn Hungary thì các toà nhà có kết cấu từ ngày xưa, có nhiều hoa văn khá độc lạ. Em thấy Hungary đẹp, nhưng cũng chưa phát triển lắm, vì có nhiều khu đất trống. Cảm giác giống như em ở vùng nông thôn vậy. Đợt tụi em đi thi IOI là hội du học sinh du học Hungary của Việt Nam hỗ trợ rất nhiều. Ngoài ra còn có hội người Việt Nam ở Hungary tài trợ ở một số mặt nữa ạ. Em vui vì họ rất nhiệt tình nhưng cũng hơi thắc mắc vì bay gần nửa vòng trái đất cuối cùng lại thưởng thức gà luộc, phở bò... À ngoài ra em cũng rất thích Hungary vì đó là quê nhà của số 8 mới ở Anfield - Szoboszlai. +Ở Hungary, các toà nhà có kết cấu từ ngày xưa, có nhiều hoa văn khá độc lạ. Em thấy Hungary đẹp, nhưng cũng chưa phát triển lắm, vì em để ý thấy vẫn còn nhiều khu đất trống. Cảm giác hệt như ở vùng nông thôn vậy. Đợt tụi em đi thi IOI, hội du học sinh Việt Nam ở Hungary hỗ trợ rất nhiều. Ngoài ra còn có hội người Việt Nam ở Hungary tài trợ ở một số mặt nữa ạ. Em vui vì họ rất nhiệt tình, nhưng cũng hơi thắc mắc vì bay gần nửa vòng Trái Đất cuối cùng lại thưởng thức gà luộc, phở bò..., chả khác gì ở nhà cả! Em cũng rất thích Hungary vì đó là quê nhà của số 8 mới ở Anfield (sân nhà của đội bóng Liverpool) - Szoboszlai. ### Khi bạn bước vào thi IOI, bạn chuẩn bị tâm lý như thế nào? -Em nghĩ là một khi đã đủ khả năng trở thành một trong bốn người đại diện cho Việt Nam thi IOI thì làm kiểu gì cũng đủ khả năng có giải, trừ khi trừ khi hôm đó phong độ tệ lắm thôi. Nếu thế thật thì em cũng hi vọng sẽ được huy chương Bạc. Ngày một thì em làm suýt nữa thì xuống Đồng. Ngày hai thì khá xanh. Em thấy đề IOI năm ngoái khi làm lại thì thật sự rất hay, nhưng các subtask thì không được thuận lợi lắm. Ví dụ như bài 1 năm ngoái, em nghĩ được subtask đường thẳng ra được thuật tham lam khá giống sol chuẩn. Tuy nhiên đến subtask $n \leq 3000$, tương ứng với $83$ điểm, code chỉ vài dòng, nhưng phải dùng Quy hoạch động, khác hẳn với hướng trước đó nên không nghĩ ra thế nào. Vậy là đành an phận với $52$ điểm. Có bài $3$ thì em rút ra được nhận xét như mọi người, nhưng khi code trâu, kiểm tra lại thì code bug, thế nào lại nghĩ nhận xét đó sai. Em tưởng bài đấy khó, vậy là chỉ trâu đúng subtask 1 rồi bỏ. Khi ra khỏi phòng thi, ai cũng được ít nhất $50~60$ điểm, chỉ em được $14$ điểm. Nếu bài đó không bug, kèm thêm bài 1 nữa thì em có thể sẽ lên được vàng. +Đối với em, một khi đã đủ khả năng trở thành một trong bốn đại diện của Việt Nam tham dự IOI, thì làm bài thế nào đi nữa cũng đủ khả năng có giải, trừ khi hôm đó phong độ tệ lắm thôi. Nếu thế thật thì em cũng hi vọng sẽ được huy chương Bạc. Ngày thi đầu tiên, em làm bài suýt nữa thì xuống Đồng. Ngày thi thứ hai thì khá xanh. Đề IOI năm ngoái khi làm lại thì thật sự rất hay, nhưng các subtask thì không được thuận lợi lắm. Ví dụ như bài 1 năm ngoái, em nghĩ được subtask đường thẳng ra được thuật tham lam khá giống sol chuẩn. Tuy nhiên đến subtask $n \leq 3000$, tương ứng với $83$ điểm, code chuẩn chỉ vài dòng, nhưng phải dùng Quy hoạch động, khác hẳn với hướng trước đó nên không nghĩ ra thế nào. Em đành an phận với $52$ điểm. Bài $3$, em rút ra được nhận xét như mọi người, nhưng khi code trâu và kiểm tra lại thì code bug, làm em nghĩ nhận xét đó sai. Em tưởng bài đấy khó, vậy là chỉ trâu đúng subtask 1 rồi bỏ. Khi ra khỏi phòng thi, ai cũng được ít nhất $50~60$ điểm, chỉ em được $14$ điểm. Nếu bài đó không bug, kèm thêm bài 1 nữa thì em có thể sẽ lên được Vàng. ### Sau khi thi thì cảm giác của bạn như thế nào? Vui vì được huy chương bạc hay tiếc vì không thể đạt được vàng? ![](../assets/interviews/2024-nguyen-duc-thang/image2.jpg) -Em được bạc thì cũng hoàn thành mục tiêu của mình rồi nên em cũng không tiếc nuối nhiều. Khi về lại quê nhà, bố mẹ có tổ chức tiệc mừng HCB của em với hàng xóm, có cả các thầy cô cũng tới chia vui nữa ạ. Lúc em được HCB thì cũng được thông báo sẽ được huy chương lao động hạng $3$. Mọi năm sẽ được gặp Chủ tịch nước nhưng năm nay chỉ được gặp Phó chủ tịch nên em cũng hơi tiếc ạ. +Được Huy chương Bạc cũng gọi là hoàn thành mục tiêu của mình rồi, nên em cũng không tiếc nuối nhiều. Khi về lại quê nhà, bố mẹ tổ chức tiệc mừng HCB của em với hàng xóm, có cả các thầy cô cùng tới chia vui nữa ạ. Đạt được Huy chương Bạc cũng đồng nghĩa với việc được huy chương lao động hạng $3$. Nếu không có gì thay đổi so với những năm trước, em sẽ được gặp Chủ tịch nước, nhưng năm nay chỉ được gặp Phó chủ tịch nên em cũng hơi tiếc nuối đôi chút. + ### Trường và tỉnh Phú Thọ có tổ chức tuyên dương, khen thưởng bạn không? Cảm xúc của bạn lúc đó như thế nào? -Em khá là vui, hạnh phúc, và tự hào ạ. Nếu tính tới hiện tại, thì tổng tiền thưởng đã hơn một trăm triệu đồng. Em có dùng một khoản tiền đấy mua một cái laptop mới thôi, chứ cũng chưa có dự định gì nhiều. +Em khá là vui, hạnh phúc, và tự hào. Nếu tính tới hiện tại, thì tổng tiền thưởng đã hơn một trăm triệu đồng. Em có dùng một khoản tiền đấy mua một cái laptop mới thôi, chứ cũng chưa có dự định gì nhiều. ### Với tâm thế là một người đã có huy chương rồi, thì bạn có kì vọng gì cho Vòng 2 năm nay không? ![](../assets/interviews/2024-nguyen-duc-thang/image4.jpg) -Chắc chắn là khác năm ngoái rồi ạ. Mọi người sẽ kì vọng năm nay em có vàng IOI. Em nghĩ là năm nay được đại diện Việt Nam đi thi IOI đã là thành công rồi vì có khá nhiều bạn giỏi nên em không biết mình có thể vào được top 6 hay không nữa ạ. Từ khi thi IOI năm ngoái về thì em đi chơi khá là nhiều, và từ sau vòng 1 thì em mới tập trung hoàn toàn lại vào code ạ. +Chắc chắn là khác năm ngoái rồi ạ. Mọi người sẽ kì vọng năm nay em có vàng IOI. Em nghĩ là năm nay được đại diện Việt Nam đi thi IOI đã là thành công rồi. Năm nay có khá nhiều bạn giỏi nên em không biết mình có thể vào được top 6 (top để được tính huy chương APIO) hay không nữa. Từ khi thi IOI năm ngoái về, em đi chơi khá là nhiều, chỉ từ sau vòng 1 năm nay thì em mới tập trung hoàn toàn lại vào code ạ. ### Mình thấy hầu hết các bạn khi chuẩn bị cho IOI đều luyện tập trên Codeforces rất nhiều nhưng bạn thì ngược lại, không cày Codeforces nhiều lắm. Lí do tại sao bạn lại làm thế? Khi không tham gia các contest trên Codeforces thì bạn có hay làm lại các bài trên đó không? -Em khá lười làm Codeforces vì hay phải làm vào buổi tối muộn. Nhiều khi có những bài em có khả năng giải nhưng lại không giải được làm em khá cay cú và khó ngủ ạ (cười). Ngoài ra em cũng không thường xuyên làm lại bài lắm ạ, em sử dụng Codeforces nhiều hồi em mới học, bởi các bài div 2 giúp khả năng tư duy của em lên khá nhiều . +Em khá lười làm Codeforces vì contests Codeforces luôn diễn ra vào buổi tối muộn. Nhiều khi có những bài em có khả năng giải nhưng lại không giải được. Những bài ấy làm em khá cay cú và khó ngủ! Ngoài ra em cũng không thường xuyên làm lại bài lắm. Em sử dụng Codeforces nhiều hồi em mới học, bởi các bài div 2 giúp khả năng tư duy của em được nâng lên khá nhiều . ### Nếu không làm Codeforces thì nguồn bài chính của bạn là ở trang nào? -Em cày cuốc khá nhiều trên VNOJ với các bài OI trên oj.uz. Các bài trên oj.uz thì em cũng giải tương đối, có đề các năm gần đây thì em làm gần hết rồi ạ. +Em cày cuốc khá nhiều trên VNOJ với các bài OI trên oj.uz. Các bài trên oj.uz thì em đã giải tương đối nhiều. Đề thi các năm gần đây thì em làm gần hết rồi. ### Khi luyện tập thì trung bình bạn dành bao nhiêu thời gian cho một đề? -Đó là tuỳ tâm trạng của em ạ. Nếu em thấy có thể nghĩ tiếp được thì sẽ nghĩ tiếp tới khi nào ra thì thôi. Còn ngược lại, nếu em thấy chán, hoặc là khó quá, thì em sẽ đọc sol và các subtask ở cuối đề ạ. Thường thì em sẽ mở từng bài và cố gắng giải hơn là giải nguyên một đề ạ. +Việc dành thời gian bao lâu phụ thuộc vào tâm trạng của em. Nếu em thấy có khả năng nghĩ tiếp được thì sẽ cố gắng tới khi nào ra thì thôi. Còn ngược lại, nếu em thấy chán, hoặc là bài khó quá, thì em sẽ đọc sol và các subtask ở cuối đề ạ. Thường thì em sẽ mở từng bài và cố gắng giải hơn là giải nguyên một đề. ### Vậy động lực nào để bạn có thể tiếp tục giải hết các đề IOI, APIO? Làm thế nào để bạn cảm thấy không bị chán khi giải các đề, khi mà các bài rất khó và yêu cầu cả giờ đồng hồ suy nghĩ? -Chủ yếu vì bài rất hay, cần vận dụng trí tuệ nhiều hơn và không có quá nhiều bài yêu cầu mình phải code nhiều. Vả lại, nếu gặp các bài code nhiều, em vẫn rất thích vì sở trường của em là code cơ mà (cười). Nhưng những bài nghĩ nhiều thì em vẫn thấy thú vị hơn ạ. Hồi sau thi APIO thì có kết quả rồi mà em vẫn chưa tập trung học, em rất lười nên chỉ chơi thôi. Thấy vậy, anh minhcool (Nguyễn Quang Minh - IOI 2023) khuyên em giải các đề IOI theo từng năm, và em bắt đầu làm theo và cũng có động lực hơn ạ. +Chủ yếu vì bài rất hay, cần vận dụng trí tuệ nhiều hơn, và không có quá nhiều bài yêu cầu mình phải code nhiều. Vả lại, nếu gặp các bài code nhiều, em vẫn rất thích vì sở trường của em là code cơ mà. Tuy vậy, em thấy những bài nghĩ nhiều thú vị hơn nhiều ạ. Sau khi thi APIO, dù đã có kết quả nhưng em vẫn chưa tập trung học được. Thấy vậy, anh minhcool (Nguyễn Quang Minh - IOI 2023) khuyên em bắt đầu giải các đề IOI theo từng năm. Em bắt đầu làm theo và từ đó tìm ra nhiều động lực giải đề hơn ạ. ### Làm thế nào để bạn biến những đam mê tin học thành sức mạnh của bạn, mà không biến nó thành áp lực? Bạn nhìn nhận việc thi như thế nào? -Lần nào thi thì em cũng không áp lực lắm, có lẽ vì mục tiêu em đặt ra cũng không quan trọng. Lần thi áp lực nhất em thấy là thi VOI lớp 11, khi em phải vào được Vòng 2. Còn các cuộc thi sau đấy thì em được giải gì không quan trọng, em không quan trọng rằng TST và APIO mình đứng rank bao nhiêu, phải có huy chương gì. Nếu mà có áp lực thì chỉ áp lực trước khi thi thôi, còn một khi đã vào phòng thi thì sẽ tập trung hoàn toàn vào làm bài và không nghĩ gì về áp lực nữa. Tại vì đã được đi thi nhiều từ nhỏ, nên không khí phòng thi và tâm lý đi thi của em cũng đã được rèn luyện khá nhiều. +Những kì thi đối với em không phải là áp lực lớn, có lẽ vì mục tiêu em đặt ra cũng không quan trọng. Lần thi áp lực nhất của em là VOI năm lớp 11, khi em phải vào được Vòng 2. Còn các cuộc thi sau đấy thì em không đặt nặng thành tích, rằng TST và APIO mình đứng rank bao nhiêu, phải có huy chương gì. Nếu em có cảm giác áp lực thì chỉ áp lực trước khi thi thôi, còn một khi đã vào phòng thi thì sẽ tập trung hoàn toàn vào làm bài và không nghĩ gì về áp lực nữa. Nhờ những kinh nghiệm đi thi từ nhỏ, nên không khí phòng thi và tâm lý đi thi của em cũng đã được rèn luyện khá nhiều. ### Bạn có dự định đi du học sau khi tốt nghiệp cấp 3 không? Nếu ở Việt Nam, bạn sẽ học UET hay Đại học Bách Khoa? -Có lẽ là không ạ. Đơn giản là vì em không muốn ra nước ngoài. Bây giờ em vẫn đang phân vân, vì UET giờ phải chạy lên Hoà Lạc, mà em chẳng muốn tí nào (cười). Tuy nhiên ở đó cũng có nhiều người em quen hơn nên em vẫn muốn vào UET hơn ạ. +Có lẽ là không. Đơn giản là vì em không muốn ra nước ngoài. Bây giờ em vẫn đang phân vân, vì UET giờ phải học ở cơ sở Hoà Lạc, mà em chẳng muốn tí nào. Tuy nhiên ở đó cũng có nhiều người em quen hơn nên UET vẫn là sự lựa chọn số một. ### Bạn có phải là một người giỏi môn Anh không? Bạn có dự định học IELTS nghiêm túc không? -Em không giỏi tiếng Anh lắm, và khi đi thi IOI thì em cũng không giao tiếp được gì nhiều, và điều đó khiến em cảm thấy khá đáng tiếc. Em đang có học bổng IELTS, em cũng đang học nhưng chỉ để giao tiếp được thôi, còn để thi thì em chưa nghĩ nhiều ạ. +Em không giỏi tiếng Anh lắm. Khi đi thi IOI, em cũng không giao tiếp được gì nhiều, và điều đó khiến em cảm thấy khá đáng tiếc. Em đang có học bổng IELTS, em cũng đang học nhưng chỉ để giao tiếp được thôi, còn để thi thì em vẫn chưa nghĩ đến nhiều. ### Bạn có muốn tiếp tục thi đấu ở ICPC không? -Em nghĩ nếu kiếm được đội thì em sẽ thi ạ, nếu vào UET thì em sẽ nhờ thầy Phương kiếm giúp em ạ (cười). Mong muốn của em là cùng đội với những người giỏi toán và hình, vì đó là hai lĩnh vực em còn chưa giỏi ạ. +Em nghĩ nếu kiếm được đội thì em sẽ tham gia ICPC. Hơn nữa, nếu học ở UET, em sẽ nhờ thầy Phương (Hồ Đắc Phương - huấn luyện viên ICPC của trường Đại học Công nghệ, ĐHQG-HN) kiếm giúp em. Mong muốn của em là cùng đội với những người giỏi toán và hình, vì đó là hai lĩnh vực em còn chưa giỏi lắm. ### Sau này, bạn có dự định sẽ làm gì? Bạn thích đi nghiên cứu nhiều hơn, hay đi làm nhiều hơn? -Em sẽ thiên về đi làm nhiều hơn, vì em không giỏi nghiên cứu nhiều lắm. Tuy nhiên trong tương lai, nếu có một chủ đề mà em đủ đam mê thì em có thể sẽ suy nghĩ lại ạ. +Em sẽ thiên về đi làm nhiều hơn, vì em không giỏi nghiên cứu nhiều lắm. Tuy nhiên trong tương lai, nếu có một chủ đề mà em đủ đam mê thì em có thể sẽ suy nghĩ lại. ### Với tình hình công việc hiện tại, thì bạn có thích một lĩnh vực nhất định nào chưa? (AI, ứng dụng, web, điện thoại, ...) ![](../assets/interviews/2024-nguyen-duc-thang/image5.jpg) -Em vẫn chưa tìm hiểu nên chưa rõ lắm. Nhưng anh Bách (Trần Xuân Bách - IOI 2023) có rủ em học AI xem thử thế nào, nên em có ý định thử. Còn những lĩnh vực khác thì em sẽ thử nghiệm nhiều hơn ở Đại học ạ. +Em vẫn chưa tìm hiểu nên chưa rõ lắm. Nhưng anh Bách (Trần Xuân Bách - IOI 2023) có rủ em học AI xem thử thế nào, nên em có ý định thử. Còn những lĩnh vực khác, em sẽ thử nghiệm nhiều hơn ở Đại học. ### Một phương châm mà bạn luôn hướng đến? diff --git a/shorthands.yaml b/shorthands.yaml index b8c672f..1b0e0df 100644 --- a/shorthands.yaml +++ b/shorthands.yaml @@ -29,4 +29,7 @@ - Software Engineering: Kỹ thuật/Công nghệ phần mềm. - Computer Science: Khoa học máy tính. - Blockchain: công nghệ chuỗi – khối, cho phép truyền tải dữ liệu một cách an toàn dựa trên hệ thống mã hóa vô cùng phức tạp. -- Coordinator: người tổ chức các contest Bedao trên VNOJ. \ No newline at end of file +- Coordinator: người tổ chức các contest cho OJ. +- persistent: trong ngữ cảnh nói về cấu trúc dữ liệu thì là dạng cấu trúc dữ liệu có thể quay trở lại một trạng thái bất kỳ. Tiêu biểu là Persistent Segment Tree. +- Problemsetter: người chuẩn bị bài tập cho kỳ thi. +- upvote: tính năng 'yêu thích' bài viết trên trang Codeforces.