Một trong những cách tốt nhất để cải thiện kỹ năng lập trình hoặc là tham gia các cuộc thử thách dành cho các lập trình viên. Giải quyết các vấn đề học búa khác nhau giúp bạn nâng cao khả năng giải quyết vấn đề, học các vấn đề phức tạp của các ngôn ngữ lập trình. Bạn cũng có thể học thêm các giải thuật, chuẩn bị tốt hơn cho phỏng vấn xin việc và nhiều ích lợi khác khi tham gia các cuộc thử thách.
Dưới đây là danh sách 20 trang web thi lập trình và thử thách dành cho lập trình viên cùng những tính năng và đặc tính tốt nhất của từng trang. Nhiều trong số này đã được các lập trình viên Việt Nam và tham gia.
1. HackerEarth
HackerEarth là một nền tảng lập trình phổ biến với số lượng 8.000 câu hỏi, 2.000 thử thách và 1.000 hackathon (cuộc thi viết phần mềm). Web này cũng được tin cậy bởi những nhà quản lý tuyển dụng từ hơn 1000 công ty. Nền tảng này có một cộng đồng rất phát triển, với hơn 3 triệu lập trình viên.
Các chức năng chính:
- Thực hành: câu hỏi lập trình cơ bản
- Cuộc thi: từ các cuộc thi sơ cấp cho đến các cuộc thi kéo dài cả tuần
- Những cuộc thi phát triển phần mềm – Hackathons: giải quyết các vấn đề và thách thức thực tế.
- Những cuộc thi Khoa học dữ liệu: kiểm tra kỹ năng khoa học dữ liệu của bạn
Những điểm nổi trội: Trang web hiển thị những ngày còn lại trong các cuộc thi. HackerEarth còn có một phần mềm đánh giá lập trình viên, hiển thị rõ sự tiến bộ của bạn. Ngoài ra trang web còn có tính năng phỏng vấn từ xa cộng với các phân tích để các công ty xem số liệu thống kê về bạn.
2. HackerRank
HackerRank là một nền tảng tuyển dụng thực tế dùng để đánh giá các kỹ năng của lập trình viên cho hơn 2.000 công ty khắp nơi trên toàn thế giới. Bằng cách cho phép các nhà tuyển dụng mảng công nghệ và các nhà quản lý tuyển dụng đánh giá khách quan các nhân tài ở mọi giai đoạn của quy trình tuyển dụng, HackerRank giúp các công ty thuê các lập trình viên lành nghề và giúp họ đổi mới nhanh hơn.
Các chức năng chính:
- Thực hành mã hóa
- Chuẩn bị cho phỏng vấn
Những điểm nổi trội: HackerRank là một trong những trang web thực hành code hàng đầu hiện nay. Website này nổi tiếng với việc kết hợp các lập trình viên với các công ty tuyệt vời và hữu ích cho cả công ty và nhân viên. Có hơn 7 triệu lập trình viên tham gia trang web này.
3. Exercism
Exercism được hiểu đơn giản như thế này – Thực hành code và hướng dẫn cho mọi người. Website này có 3.173 bài tập được hiển thị 51 ngôn ngữ nhằm nâng cao kỹ năng lập trình của bạn. Bạn cũng có thể thảo luận với đội ngũ cố vấn tận tình của họ. Điểm tốt nhất, hoàn toàn miễn phí 100% mãi mãi.
Các tính năng:
- Theo dõi ngôn ngữ
- Tư vấn cá nhân
- Chế độ luyện tập
Những điểm nổi trội: Exercism có hàng loạt các ngôn ngữ cho phép người dùng chọn ngôn ngữ ưa thích. Hơn nữa, có những cố vấn viên (mentor) sẽ kiểm tra mã của bạn và giúp bạn cải thiện. Điều này làm nền tảng hoàn hảo cho những người mới bắt đầu muốn gia tăng hiểu biết của họ về một ngôn ngữ lập trình mới.
4. SPOJ
Spoj (Sphere Online Judge) là một trang web đơn giản với rất nhiều thách thức về lập trình. Những thách thức này giúp bạn trở thành một bậc thầy lập trình thực sự và cho bạn kỹ năng xây dựng các thuật toán hiệu quả. Có hơn 315.000 người dùng đã đăng ký và hơn 20000 vấn đề đang chờ đợi bạn
Các tính năng:
- Cuộc thi
- Thuật toán
- Xếp hạng
- Trạng thái
- Trang thảo luận
Những điểm nổi trội: SPOJ có rất nhiều thách thức về lập trình đáng kinh ngạc, chúng sẽ thực sự kiểm tra được kỹ năng của bạn. Có những cuộc thi cũng cho phép bạn tham gia để trình diễn kỹ năng của bản thân.
5. Programmr
Programmr là một nền tảng tương tác trực tuyến cho bất kỳ ai học và thực hành lập trình. Các nhà sáng lập tin rằng cách tốt nhất để học là theo nhịp độ của riêng bạn trong một môi trường tự học. Programmr được cho là có các coding simulators tốt nhất, nơi bạn có thể viết code và chạy tất cả các loại chương trình.
Các chức năng chính:
- Thách thức
- Dự án
- Cuộc thi
- Chứng chỉ
Những điểm nổi trội: Programmr có trình mô phỏng (simulator) trực tuyến tuyệt vời và một B2B API cho phép mọi người tích hợp các widgets vào các trang web.
6. TopCoder
Topcoder là một nền tảng lập trình đầy thử thách. Trang web cung cấp các thử thách về thuật toán mà bạn có thể giải quyết trong trình soạn thảo . Luôn có những thách thức và chạy code trên trang web và bạn luôn có thể tham gia nếu bạn sẵng sàng.
Các chức năng chính:
- Thách thức
- Công việc hợp tác
Những điểm nổi trội: Những thách thức được đặt ra có thời hạn cụ thể cũng như các giải thưởng được hiển thị rõ ràng đối với từng cuộc thi. Topcoder cũng cho biết loại ngôn ngữ hoặc kiến thức cần thiết. Hầu hết những cuộc thi lập trình này không dành cho người mới bắt đầu và được chuẩn bị rất tốt.
7. CodeForces
Codeforces là một nền tảng hợp tác nơi các lập trình viên có thể tham gia các vòng thi, chúng có giới hạn thời gian và điểm được chia cho những người tham gia. Codeforces cũng có các cuộc thi, vấn đề cần giải quyết cũng như các nhóm cho các lập trình viên tham gia.
Các chức năng chính:
- Cuộc thi
- Gym
- Các vấn đề
- Nhóm
Những điểm nổi trội: CodeForces rất tốt cho những lập trình viên nào tìm kiếm những thử thách thú vị để xây dựng kỹ năng và tham gia các nhóm phù hợp với nhu cầu của họ. Tính năng Gym cũng rất độc đáo nơi các lập trình viên có thể rèn luyện các kỹ năng của họ trong các thử thách cụ thể và nhìn thấy vị trí của họ vào cuối thử thách.
8. CodeWars
Codewars là một nền tảng được thiết kế kỹ lưỡng mà người dùng làm việc cùng nhau để tạo ra những cuộc thi. Có hai nhóm trên CodeWars trong đó có những người sáng tạo cho phép kata dạy các kỹ thuật khác nhau, giải quyết các giải pháp nhằm khai sáng những người khác, và cho ý kiến với những phản hồi có tính xây dựng và các leaders sẽ kiểm duyệt nội dung và cộng đồng.
Các chức năng chính:
- Kata (thực hành lập trình)
- Kumite (thách thức 1-1)
- Diễn đàn
- Wiki
Những điểm nổi trội: codewar có một giao diện đẹp mắt với những cách đặc biệt để trình bày những thách thức, đặt tên cho chúng là katas, nơi mà các lập trình viên đạt được kỹ năng và thách thức khác ở kumite. Đó là một trong những nơi tốt nhất để học lập trình và cũng có thể tận hưởng sự thú vị.
9. CodeChef
Codechef là một nền tảng được xây dựng giúp lập trình viên nâng cao kỹ năng của họ trong thế giới thuật toán, lập trình và cáccuộc thi. Họ thúc đẩy văn hóa học tập và lập trình thân thiện với một cộng đồng lớn được quản lý bởi các quản trị.
Các chức năng chính:
- Luyện tập
- Cạnh tranh
- Thảo luận
- Cuộc thi
- Campus chapter
Những điểm nổi trội: codechef là một trong những nền tảng lập trình cạnh tranh lớn nhất. CodeChef mở nền tảng cho bất kỳ ai cũng có thể tổ chức các cuộc thi lập trình. CodeChef cos một công cụ gọi là campus chapter dành việc lập trình. Họ cũng tổ chức 3 cuộc thi mỗi tháng có trao thưởng.
10. CodeGym
Codegym là một trang web lập trình Java trực tuyến, trong đó 80% là thực hành. Bất cứ ai muốn học Java, đây là trang web thích hợp.
Các chức năng chính:
- Khóa học
- Nhiệm vụ
- Trò chơi
- Chat
- Diễn đàn
Những điểm nổi trội: codegym có những nhiệm vụ thực tế dành cho người mới bắt đầu với Java để họ có thể học về tất cả những gì họ cần biết. Họ cũng có cơ chế để có thể tìm thấy các lỗi ngay lập tức. Codegym cũng sử dụng kỹ thuật giảng dạy mới nhất, với những hình ảnh tuyệt vời và các trò chơi.
11. CodePen
Codepen là một IDE trực tuyến tuyệt vời cho phép bạn viết mã trong trình duyệt và xem ngay kết quả . Những thách thức CodePen là một nơi để nâng cao kỹ năng của bạn bằng cách xây dựng mọi thứ. Mỗi tuần, những thách thức mới xuất hiện dành cho bạn giải quyết chúng, và những “Pen” giỏi nhất được lựa chọn.
Các chức năng chính:
- Đội nhóm
- Podcast
- Giáo dục
Những điểm nổi trội: Những thách thức CodePen rất thú vị và là một một nơi dành cho sự sáng tạo và cộng tác. Không có sự cạnh tranh nào cả bởi vì chẳng có gì để mất, nhưng bạn có được kỹ năng thông qua những thách thức này.
12. CodinGame
Mục tiêu của CodeinGame là để cho lập trình viên tiếp tục cải thiện kỹ năng viết code của họ bằng cách giải quyết các vấn đề mang tính thách thức lớn nhất thế giới, tìm hiểu các khái niệm mới, cũng như lấy cảm hứng từ những lập trình viên tốt nhất.
Các chức năng chính:
- Luyện tập
- Cạnh tranh
- Đóng góp
- Học hỏi
Những điểm nổi trội: Codingame giúp mọi người học code dưới dạng trò chơi, cho phép họ học và tận hưởng niềm vui. Các lập trình viên cũng có thể yêu cầu trợ giúp từ các cố vấn để xem xét code và so sánh các giải pháp với nhau.
13. LeetCode
Leetcode là nền tảng tốt nhất để giúp bạn nâng cao kỹ năng, mở rộng kiến thức và chuẩn bị cho các cuộc phỏng vấn kỹ thuật. Được sử dụng bởi hàng trăm nghìn lập trình viên cho bộ sưu tập các giải thuật từ Amazon, Facebook, Google, Linkedin, v. v. Ngoài ra còn có hơn 1400 câu hỏi để thực hành.
Các chức năng chính:
- Thuật toán
- Cơ sở dữ liệu
- Vỏ đạn
- Concurrency
Những điểm nổi trội: Leetcode là công cụ giúp lập trình viên tiến bộ có thể đạt được bước tiến trong sự nghiệp lập trình của mình. Leetcode giúp bạn chuẩn bị cho các cuộc phỏng vấn kỹ thuật, và bạn cũng có thể tham gia giúp các công ty thuê những nhân tài hàng đầu.
14. GeeksForGeeks
Geeksforgeeks là trang web cho những người “lập dị”. Nó có hàng nghìn tài nguyên về lập trình và thuật toán. Nó cũng có một phần phỏng vấn để giúp lập trình viên giành được những công việc mơ ước của họ. Cũng có một bộ sưu tập các câu đố của C và C++ cho các lập trình viên để giải quyết.
Các chức năng chính:
- Thuật toán
- Phỏng vấn
- Học sinh
- Câu đố
Những điểm nổi trội: Geeksforgeeks có các bài báo dạy các chủ đề như cấu trúc dữ liệu, thuật toán, khoa học máy tính, và các câu đố để kiểm tra kiến thức và hiểu biết. Đó là một nơi tuyệt vời để có thể thấm nhuần kiến thức.
15. ProjectEuler
Nếu bạn đang nghiên cứu các thuật toán và lập trình máy tính, thì chắc hẳn là bạn đã nghe về Project Euler. Một tập hợp các vấn đề toán học được tạo ra cho dành cho những người quan tâm. Project Euler đòi hỏi phải sử dụng toán học để tạo ra thuật toán và dẫn đến các giải pháp hiệu quả, và lập trình để giải quyết nó. Những vấn đề này rất khó khăn, cần dành nhiều thời gian để tìm hiểu.
Các chức năng chính:
- Các vấn đề đã lưu trữ
- Tin tức
Những điểm nổi trội: mặc dù trang web không có code editor được xây dựng sẵn và cũng không có các giải pháp kiểm tra nhưng các lập trình viên có thể tải IDE về để viết code và giải quyết các vấn đề hóc búa trên Project Euler . Hơn nữa, giải quyết các vấn đề này giúp bạn phát triển các kỹ năng không thể thiếu với vai trò là một lập trình viên. Bạn nên nhớ toán học là nền tảng cơ bản của thuật toán và cấu trúc dữ liệu.
16. URI Online Judge
URI Online Judge được khoa Khoa học máy tính của trường đại học URI thành lập. Mục tiêu chính của dự án là cung cấp các bài thực hành lập trình và chia sẻ kiến thức. Trang web của họ có giao diện người dùng thân thiện và có chứa hơn 1000 vấn đề được chia ra 8 danh mục lớn, hiển thị bằng 11 ngôn ngữ.
Các chức năng chính:
- Kho vấn đề
- Diễn đàn
- Cạnh tranh và xếp hạng
- Học thuật
- Cuộc thi
Những điểm nổi trội: URI được tạo ra bởi các sinh viên đại học, có nghĩa là họ có tư duy của người mới bắt đầu muốn học mã theo một cách vui vẻ. Hơn nữa, các vấn đề được cấu trúc tốt và phân chia phù hợp, bắt đầu với danh mục người mới bắt đầu và dần dần thành những chủ đề phức tạp như hình học và đồ thị tính toán.
17. Reply Challenges
Reply Challenges là một loạt thách thức được thiết kế bởi các “Replyers” và chúng dành cho bất kỳ ai yêu công nghệ và các cuộc thi trực tuyến. Tận hưởng niềm vui, thể hiện tài năng trong các lĩnh vực như mã hóa, an ninh mạng, sáng tạo và đầu tư là tất cả những gì mà Reply Challenges có. Có những giải thưởng có giá trị cho mỗi thách thức, chẳng hạn như: macbook pro 16, airpods pro, v. v. Các thách thức trên trang web này dành cho học sinh và các chuyên gia.
Các chức năng chính:
- Các thách thức đầu tư
- Thách thức viết code tiêu chuẩn
- Thách thức lập trình dành cho thanh thiếu niên
- Thách thức an ninh mạng (Sắp ra mắt)
- Sáng tạo (Sắp ra mắt)
Những điểm nổi trội: Reply Challenges là những thách thức thú vị với những giải thưởng hấp dẫn. Rất đa dạng và bất cứ ai cũng được tự do tham gia.
18. KickStart – Cuộc thi coding của Google
Kick Start là một cuộc thi của Google, cung cấp cho lập trình viên khắp thế giới cơ hội để phát triển kỹ năng của họ qua cạnh tranh trực tuyến. Mỗi vòng thi kéo dài 3 tiếng và họ có những thách thức về thuật toán được kỹ sư của Google phát triển để bạn có thể có được vị trí cần thiết để làm việc tại Google. Kick Start được tổ chức định kỳ để mọi người có cơ hội tham gia.
Những điểm nổi trội: Các lập trình viên hàng đầu được trao cơ hội để phỏng vấn và thậm chí có thể có được một công việc tại Google.
Ngoài ra, Google còn có một cuộc thi lập trình khác Hashcode cũng rất đáng chú ý
19. Code Jam
Code Jam là cuộc thi lập trình toàn cầu với thời lượng dài nhất của Google, nơi các lập trình viên của tất cả các cấp sử dụng tất cả kỹ năng của họ cho bài kiểm tra. Những người tham gia phải vượt qua một loạt các câu đố thuật toán để giành được một vị trí trong kỳ thi chung kết thế giới, cho một cơ hội để trở thành nhà vô địch và thắng giải cao nhất.
Những điểm nổi trội: Code Jam thách thức các lập trình viên trên toàn thế giới trong việc giải quyết các vấn đề thuật toán khó khăn với hình thức 4 vòng trực tuyến, và các trận chung kết Code Jam hàng năm được tổ chức tại các văn phòng Google khác nhau mỗi năm. Thách thức vĩ đại này cho phép các lập trình viên của tất cả các cấp gặt hái kinh nghiệm và thúc đẩy họ cải thiện kỹ năng của mình để có thể giành được một vị trí trong vòng chung kết.
20. Kaggle Learn
Kaggle nổi tiếng vì đây là nơi mà các nhà khoa học dữ liệu cộng tác và cạnh tranh với nhau. Nhưng họ cũng có một nền tảng được gọi là Kaggle Learn, nơi các khóa học nhỏ được cung cấp. Đó là những khóa học nhỏ nơi các nhà khoa học dữ liệu có thể học kỹ năng dữ liệu thực tế mà họ có thể áp dụng ngay lập tức. Họ gọi đó là cách nhanh nhất (và thú vị nhất) để trở thành nhà khoa học dữ liệu hoặc cải thiện kỹ năng hiện tại của mình. Các khóa học có sẵn bao gồm: Python, Panda, SQL và hình ảnh hóa dữ liệu (Data Visualization).
Các chức năng chính:
- Hướng dẫn
- Bài tập
Những điểm nổi trội: những khóa học nhỏ này biến các chủ đề phức tạp thành các thành phần then chốt giúp người mới bắt đầu học những chủ đề quan trọng và có những kỹ năng cần thiết với thời gian hạn hẹp. Trình soạn thảo mã tích hợp của họ, kernel, dễ sử dụng và rất tốt cho người mới bắt đầu.
Và cuối cùng, các lập trình viên hãy hành động
Trong thời điểm này có lẽ bạn có nhiều thời gian hơn. Hoặc ngay cả bạn đang bù đầu với những dự án của mình, bạn cũng nên sắp xếp thời gian cho những cuộc thi lập trình đầy thử thách. Thông qua các vấn đề cụ thể mà bạn chưa đối mặt bao giờ sẽ giúp bạn nâng cao những kỹ năng về lập trình của mình một cách không ngờ. Hơn thế nữa bạn có thể tự hào với những kết quả mình đạt được trong những kỳ thi. Và biết đâu bạn cũng có được những giải thưởng đầy tính khích lệ từ những cuộc thi này.
Hãy chọn một trang web, và đăng ký tài khoản ngay!
Thông tin trong bài được tham khảo từ towardsdatascience.com và các nguồn thông tin khác.
Bạn có biết?
tham gia cộng đồng ITguru trên Linkedin, Facebook và các kênh mạng xã hội khác có thể giúp bạn nhanh chóng tìm được những chủ đề phát triển nghề nghiệp và cập nhật thông tin về việc làm IT mới nhất
Linkedin Page:
Facebook Group:
cơ hội việc làm IT : ITguru.vn