Tại sao phải học thuật toán?
Thuật toán không phải là chiếc đũa thần, nó không làm được tất cả mọi thứ trên đời, nhưng nếu bạn nắm vững thuật toán, bạn sẽ có lợi thế vô cùng lớn trong cuộc tranh nghề nghiệp vô cùng khốc liệt hiện nay. Vì thế nếu có cơ hội làm quen với thuật toán bạn hãy học nó càng sớm càng tốt. Sau đây là tất cả những hướng đi, những lợi ích mà bạn sẽ có nếu theo đuổi con đường Thuật Toán.1. Trung học cơ sở: khi bạn học THCS bạn mong muốn thi vào cấp 3 của trường Chuyên Tin, ví dụ như Phổ Thông Năng Khiếu ĐH Quốc Gia TpHCM thì ngoài các môn cơ sở thì bạn phải thi môn Tin Học và bài thi này là những câu hỏi đều là về Thuật Toán.
Tham khảo đề thi môn Tin 2014: https://www.dropbox.com/s/xtlg7z0bsyfdyxn/De_thi_tuyen_sinh_lop_10_mon_Tin.pdf?dl=0
2. Trung học phổ thông: Là cấp học quan trọng vì sắp tới bạn sẽ phải chuẩn bị cho kỳ thi Đại Học, có một con đường khác mà bạn KHÔNG cần phải thi ĐH đó chính là thi Học Sinh Giỏi Quốc Gia. Khi bạn có giải Nhất, Nhì hoặc Ba của kỳ thi HSG QG bạn sẽ được tuyển thẳng ở bất kỳ trường ĐH nào ở Việt Nam miễn là phù hợp với môn mà bạn có giải. Và bạn có biết là đề thi HSG QG môn Tin Học những câu hỏi cũng sẽ là Thuật Toán.
Tham khảo đề thi HSG QG 2014: https://www.dropbox.com/s/p2rw4k06ntf8p4r/DeThi-HSGQG2014.pdf?dl=0
Chưa dừng lại ở đấy, khi bạn có giải QG và nằm top những học sinh có điểm cao, bạn sẽ được bồi dưỡng để tham dự kỳ thi International Olympiad in Informatics (IOI) kỳ thi Olympic Tin Học Quốc Tế. Đây là kỳ mang tầm cỡ thế giới và tại đây chính là cái nuôi mà hiện nay rất nhiều kỹ sư CNTT tài năng bước ra từ cuộc thi này. Bạn sẽ có 2 ngày thi đấu với các bạn học sinh ở nhiều quốc gia khác nhau, mỗi ngày sẽ có 3 câu hỏi về thuật toán cần phải giải quyết.
Tham khảo đề thi IOI 2016: http://ioi2016.ru/pages/ps?locale=en
3. Đại Học: Những năm tháng chinh chiến cấp 3 sẽ mang lại cho bạn những thuận lợi nhất định, khi có giải thưởng về Tin Học, nếu bạn học ĐH ở VN bạn sẽ được ưu tiên và học các hệ "chất lượng cao" của Trường ĐH mà theo học.
Ở cấp bậc Đại Học này sẽ có rất nhiều cuộc thi về thuật toán cấp quốc gia cũng như quốc tế, mình xin được liệt kê các cuộc thi tiêu biểu mà bạn có thể tham gia để nâng cao trình độ của mình và sẽ giúp ích cho bạn rất nhiều sau này khi đi làm:
Olympic Tin Học Sinh Viên Việt Nam: Đây là cuộc thi học thuật lớn trong nước do Hội Tin Học Việt Nam tổ chức từ 1992. Nơi đây bạn sẽ thi đấu với rất nhiều những bạn sinh viên học CNTT khác trong cả nước. Có rất nhiều khối thi tại cuộc thi này: Nếu bạn năm 1 bạn sẽ được thi Không Chuyên, nếu bạn học Cao Đẳng bạn sẽ tham gia khối Cao Đẳng, bạn từ năm 2 trở lên bạn sẽ thi khối Chuyên Tin. Đặc biệt nếu bạn đã có giải về Tin Học bạn sẽ được tham dự khối Siêu Cúp đây là khối thi dành cho những bạn đã từng có giải cao ở những mùa trước của Olympic.
Tham khảo đề thi Olympic Tin Học 2015 tất cả khối thi: https://www.dropbox.com/s/8hjr0xduqdumi2w/2015.rar?dl=0
Kỳ thi lập trình Quốc Tế ACM-ICPC ( ACM International Collegiate Programming Contest ): Đây là một trong những kỳ thi về lập trình lớn nhất thế giới ở thời điểm hiện tại, bạn sẽ không còn phải thi cá nhân nữa mà bạn sẽ phải thi nhóm 3 người. Và để đến được kỳ thi Chung Kết Thế Giới World Finals(Ảnh) này bạn phải trải qua rất nhiều vòng thi cấp quốc gia và khu vực. Rất nhiều công ty và những nhà tuyển dụng sẽ có mặt ở vòng chung kết thế giới này. Đây chính là dịp để bạn giới thiệu mình với cộng đồng lập trình thế giới. Đề thi của kỳ thi này sẽ bao gồm từ 10 đến 12 bài về thuật toán và nhóm bạn phải cạnh tranh với rất nhiều trường ĐH danh giá trên thế giới như: MIT (Mỹ), Harvard (Mỹ), Moscow Institute of Physics & Technology (Nga), ĐH Shanghai Jiao Tong (ĐH Giao Thông Thượng Hải), ĐH Warsaw (Ba Lan), ĐH Tokyo (Nhật).
Tham khảo đề thi ACM-ICPC 2016: https://icpc.baylor.edu/worldfinals/problems/icpc2016.pdf
Thực tập ở nước ngoài: trong những năm qua rất nhiều sinh viên Việt Nam học tại VN nhưng có cơ hội thực tập ở nước ngoài, điều đáng nói là những công ty họ thực tập đều là những công ty lớn. Ví dụ như: Google, Facebook, Amazon...Làm sao những sinh viên này có thể được những công ty công nghệ hàng đầu biết đến và mời thực tập? và khi phỏng vấn chọn thực tập sinh họ sẽ hỏi những gì?
Để nộp hồ sơ thực tập thì bạn có thể nộp online hoặc có người nào đó làm trong công ty sẽ refer bạn. Sau đó bạn sẽ có 2 đến 3 vòng phỏng vấn online. Ví dụ như Facebook năm nay thì sau khi qua vòng hồ sơ bạn sẽ phải làm 1 câu thuật toán trên trang https://www.hackerrank.com, thường đây sẽ là câu hỏi để loại bớt những người không biết gì về thuật toán họ mong muốn bạn sẽ phải nộp bài 1 lần và đúng luôn ngay lần đầu tiên.
Sau khi qua vòng đó thì bạn sẽ có 1 đến 2 vòng Interview bằng phone hoặc skype họ sẽ hỏi bạn 1 đến 2 câu thuật toán và bạn sẽ phải code ngay lên màn hình để họ xem. Vòng này thi ngoài kỹ năng về "problem solving" bạn còn phải có kỹ năng "communication" tiếng Anh tốt. Nếu thiếu 1 trong 2 kỹ năng đó bạn sẽ fail.
Bạn có thể tham khảo các câu hỏi phỏng vấn Internship của Facebook tại đây: https://www.glassdoor.com/Interview/Facebook-Software-Engineer-Intern-Interview-Questions-EI_IE40772.0,8_KO9,33.htm
Du học ngay sau khi học 1 năm ở VN: Ngoài ra mình thấy có nhiều bạn cũng chọn 1 con đường khác là du học sau khi học năm đầu tiên ở VN, khi bạn có kiến thức về thuật toán + trình độ Tiếng Anh tốt. Ở Việt Nam mình thấy rất nhiều bạn họn học trường NUS (ĐH Quốc Gia Singapore). Bên đó cũng có một đội tuyển về Thuật Toán cực mạnh, và hiển nhiên là bạn sẽ tiếp tục được thực hiện ước mơ của mình.
4. Đi làm: Như mình đã nói ở trên, không phải hiển nhiên mà nhiều công ty lớn hiện nay những bài Interview của họ cho vị trí "Software Engineering" lại hỏi nhiều Thuật Toán đến vậy, họ biết họ cần gì vì thế để trở thành 1 global Engineer bạn phải trang bị cho mình những kiến thức thuật toán cần thiết.
Trước đây tôi cũng đã từng giới thiệu với các bạn một số kỳ thi về thuật toán do các công ty công nghệ lớn tổ chức, mục tiêu của họ ngoài việc tổ chức sân chơi cho những người đam mê thuật toán toàn cầu thì đây cũng là dịp để họ có thể tuyển được nhân tài cho công ty họ. Những kỳ thi này bạn có thể tham dự với tư cách là Sinh Viên, HV Cao Học hoặc bạn đã tốt nghiệp ra trường vẫn có thể tham dự.
Cuộc thi Google Codejam do Google tổ chức, bạn có thể đọc thêm thông tin tại đây, có đề bài, bài giải mẫu 1 câu của mình , để bạn tham khảo: https://www.facebook.com/photo.php?fbid=10202240253403317&set=a.1029601955860.4220.1699687190&type=3&theater
Facebook HackerCup cũng là một kỳ thi về thuật toán hấp dẫn không kém do Facebook tổ chức, đây cũng là kỳ thi online giành cho mọi đối tượng, 1 kết quả tốt ở kỳ thi này đồng nghĩa với việc bạn sẽ Facebook để mắt tới và bạn sẽ có lợi thế nhất định khi ứng tuyển vào FB. Bạn tham khảo để thi của Facebook 2016 tại đây: https://www.facebook.com/hackercup/problem/952837544792288/
Ngoài ra các công ty khác hiện nay cũng đã bắt đầu tổ chức các kỳ thi về thuật toán như: Samsung contest, Code Challenge của Topcareer (Nhật)...
Facebook HackerCup không phải là kỳ thi dành cho Hacker đâu, nó là kỳ thi về Thuật Toán đấy.
Tóm lại: Trong lĩnh vực CNTT vô cùng rộng lớn này thì Thuật Toán thật ra cũng chỉ là 1 hướng đi rất nhỏ để bạn có thêm chọn lựa cho mình. Thuật Toán không phải là con đường duy nhất mang đến thành công. Nhưng nó là một con đường thú vị, trải đầy những chông gai thách thức, những gì bạn thấy được từ những thành công của những người đi trước là kết quả của cả 1 quá trình phấn đấu không mệt mỏi của những người theo đuổi con đường này.
Bên dưới của sự hào nhoáng của thành công ấy là cả một sự đánh đổi rất lớn. Nhưng bạn thử nghĩ xem trên đời này, làm việc gì mà không phải đánh đổi. Vì mọi thành công đều có cái giá của nó.
Những gì mình viết ra đây cung cấp cho các bạn có thêm những thông tin tham khảo để chọn lựa cho con đường riêng của mình. Hi vọng các bạn sẽ có thêm những thông tin hữu ích trên con đường nghề nghiệp của mình.
Xin kết thúc note này với bài báo:
http://dantri.com.vn/suc-manh-so/yeu-ve-thuat-toan-nhan-luc-viet-se-thua-trong-canh-tranh-toan-cau-20161102105321002.htm
Phạm Nguyễn Sơn Tùng
https://www.facebook.com/notes/1251640565210835/
====
Yếu về thuật toán, nhân lực Việt sẽ thua trong cạnh tranh toàn cầu
Ở Việt Nam, tuyển dụng nhân sự chủ yếu quan tâm đến hiểu biết về lập trình của ứng viên, rất hiếm khi vấn đề thuật toán được thảo luận, và nếu có, thì chỉ là những chủ đề giản đơn.
Câu chuyện thành công của New York
Năm 1962, hai tác giả trẻ Lloyd Shapley và David Gale viết trên tạp chí American Mathematical Monthly một bài với tiêu đề lạ lẫm “Tuyển sinh đại học và sự ổn định của hôn nhân”. Bài viết trình bày một thuật toán giản đơn để giải quyết một vấn đề rất phổ biến trong xã hội là sự ghép đôi giữa cung và cầu; như nguyện vọng nhập học của sinh viên và tiêu chí tuyển sinh của các đại học; hoặc sự cân bằng nhu cầu tìm bạn đời của hai giới trên những chuyên mục làm quen.
Những năm đầu thập niên 2000, hệ thống trung học công lập ở New York xét tuyển đầu vào theo cơ chế tương tự như tuyển sinh đại học ở Việt Nam hiện nay: dựa trên điểm học tập của thí sinh và 5 nguyện vọng theo thứ tự ưu tiên. Năm 2003, gần 100.000 học sinh dự tuyển, hơn 31.000 trường hợp không được theo học như mong muốn.
Chính quyền thấy phải hành động.
Nhóm của Alvin Roth, áp dụng thuật toán của Shapley và Gale, xây dựng một chương trình máy tính tự động chọn trường cho thí sinh, với mục tiêu có càng nhiều thí sinh thỏa mãn nguyện vọng càng tốt. Qua năm sau, 2004, chỉ còn khoảng 3.000 học sinh không thể theo học trường như ý. Cho đến gần đây, hầu hết các thành phố của nước Mỹ áp dụng cơ chế tuyển sinh theo New York.
Năm 2012, Viện hàn lâm khoa học hoàng gia Thụy Điển đã trao giải Nobel kinh tế cho Lloyd Shapley và Alvin Roth về những đóng góp cho "Lý thuyết phân phối ổn định và thực tiễn về tạo lập thị trường" - thực chất là một sự mở rộng từ bài báo ban đầu của Shapley và Gale. Không ai tưởng tượng bài báo ngắn gọn của 50 năm trước đã khai sinh ra một ngành nghiên cứu mới của kinh tế học thường gọi với cái tên "lý thuyết ghép cặp" (matching theory).
Dạy và học thuật toán ở Việt Nam
Thuật toán Gale-Shapley không hề xa lạ với lập trình viên Việt Nam; những sinh viên ngành công nghệ thông tin được giảng dạy thuật toán này vào năm giữa của chương trình đại học; đối với học sinh của các trường chuyên tin, các em thậm chí được làm quen với ghép cặp từ lớp 11. Nhưng, đến khi ra trường, đọng lại trong trí nhớ của đa số sinh viên chỉ còn mang máng một cái tên "thuật toán ghép cặp".

- Sinh viên châu Á trong cuộc thi lập trình quốc tế ACM
Trên thực tế, mỗi khi vào mùa nhập trường, phụ huynh vẫn đi từ sáng sớm đến trường nộp hồ sơ, và nhà trường vẫn lựa chọn học sinh bằng những phần mềm "chạy bằng cơm" - theo lối nói của tỉ phú Phạm Nhật Vượng. Nguyên nhân một phần do chúng ta chưa ứng dụng thành công các kiến thức thuật toán vào cuộc sống.
Trên blog của mình, giáo sư Ngô Bảo Châu chia sẻ trao đổi về vấn đề toán ứng dụng ở Viện VIASM: "Vấn đề này rất dễ trên giấy tờ và rất khó trên thực tế". Câu nói từ cho chúng ta một hình dung về sự khó khăn trong việc áp dụng những ý tưởng thuật toán vào cuộc sống như thế nào, đặc biệt trong những xã hội mà việc thúc đẩy đổi mới sáng tạo chưa phải là một văn hóa.
Người Việt Nam được đánh giá cao trong các cuộc thi lập trình toàn cầu, những cuộc thi đòi hỏi kiến thức và thông hiểu thuật toán một cách sâu sắc. Người Việt cũng được cho là phù hợp với học Toán; nhưng, chưa có văn hóa áp dụng thuật toán vào cuộc sống ở Việt Nam, sinh viên học thuật toán chỉ để đi thi và có điểm.
Vai trò của thuật toán trong cuộc cạnh tranh toàn cầu
Có sự trái ngược giữa các bài tuyển dụng nhân sự ở các công ty phần mềm nước ngoài và các công ty của Việt Nam, đó là: sự coi trọng kiến thức thuật toán. Có những câu phỏng vấn về giải thuật của Google hay Microsoft làm điên đầu cả những chuyên gia trong lĩnh vực này. Nhiều câu hỏi lọt ra ngoài và trở thành chủ đề thảo luận sôi nổi trên các trang như StackOverflow hoặc Quora.
Ở Việt Nam, tuyển dụng nhân sự chủ yếu quan tâm đến hiểu biết về lập trình của ứng viên, rất hiếm khi vấn đề thuật toán được thảo luận, và nếu có, thì chỉ là những chủ đề giản đơn.

Thuật toán nhận dạng mống mắt của điện thoại Samsung
Trong thang bậc chuỗi giá trị của ngành phần mềm, việc viết mã thuộc nhóm có giá trị tương đối thấp, mức cao hơn là các công việc liên quan đến phân tích, thiết kế, tối ưu hóa sản phẩm; cao hơn nữa là năng lực nghiên cứu, xây dựng giải pháp. Các công ty phần mềm Việt không thể mãi viết mã gia công theo đơn hàng, nhưng sự thiếu hụt về năng lực giải thuật là rào cản ngăn họ chuyển dịch lên bậc cao hơn trong chuỗi.
Giữa năm 2016, một start up Nhật Bản được East Ventures đầu tư là AI+ đã không thể tìm kiếm được đối tác tại Việt Nam cho những dự án về xử lý dữ liệu của họ. Đâu đó trên báo chí, đã có những câu chuyện về đầu tư Mỹ, Hàn dự kiến điểm đến là Việt Nam, nhưng rồi phải đổi sang nước khác vì không thể tuyển dụng được nhân lực phù hợp.
Sự thay đổi đã bắt đầu
Một số doanh nghiệp như Samsung Việt Nam, trong chiến lược chuyển hướng từ công ty sản xuất thiết bị sang công ty sản xuất phần mềm, đã mạnh mẽ triển khai các chương trình phát triển năng lực lập trình và các hệ thống quy chuẩn đánh giá năng lực lập trình viên theo nhiều cấp. Năng lực lập trình được coi là một năng lực cơ bản bên cạnh các kỹ năng về các lĩnh vực chuyên môn khác.
Công ty cũng chuyển đổi hoàn toàn các bài thi lập trình trên giấy hoặc phỏng vấn sang các bài thi trên máy tính. Các bài thi này đảm bảo các kỹ sư được tuyển dụng đã sẵn sàng với những kỹ năng lập trình cần thiết cho nghành công nghệ phần mềm.
Không chỉ có Samsung, nhiều tập đoàn khác cũng đang cố gắng xây dựng đội ngũ làm thuật toán cho riêng họ; Viettel, VNG, FPT,… đều đang đầu tư cho nghiên cứu và bắt đầu tuyển dụng nhân sự làm thuật toán, họ hiểu rằng, thuật toán là trái tim của CNTT và nếu không có sự chuẩn bị, chúng ta sẽ thua ngay từ khi bắt đầu, khi nhân loại bước vào kỉ nguyên trí thông minh nhân tạo.
Phiêu Vũ

.png)



0 Comments