6 "địa hạt" hấp dẫn, so kè trình độ của dân Dev

Vừa được rèn luyện, thử thách nghiệp vụ chuyên môn, lại có thể giao lưu với anh em cùng lĩnh vực và khẳng định vị trí của bản thân...đó là lý do mà các “đấu trường” code luôn tạo được sức hút với các nhà lập trình viên. Cùng điểm qua 6 coding challenge sites nổi bật dưới đây nhé!

1. Codeforces

Codeforces là một nền tảng, nơi các lập trình viên có thể tham gia các cuộc thi lập trình cạnh tranh. Tại đây, các vòng thi có giới hạn thời gian và cách thức phân chia điểm cho những người tham gia. 

Coding challenge site này ra đời từ năm 2009, và được vận hành bởi một nhóm đến từ Đại học ITMO do Mikhail Mirzayanov dẫn đầu. Tính đến năm 2018, đã có hơn 600.000 người dùng đã đăng ký tham gia các thử thách tại đây.

Được đánh giá là là trang luyện lập trình và thuật Toán rất hay, Codeforces được chia thành 3 Div:

  • Div 3 cho những người có rating < 1600, có điều kiện tham gia.
  • Div 2 cho những người có rating < 1900, không có điều kiện gì cả.
  • Div 1 cho những người có rating >= 1900, không có điều kiện gì cả.

Div 3 và Div 2 có độ khó không quá cao, tương đương nhau, tuy nhiên để vào Div 3 bạn cần đáp ứng một số yêu cầu đặc thù hơn từ quản trị viên để sàng lọc tư cách tham gia. Trong khi đó Div 1 được giới lập trình nhận định là khá khó với các thử thách cần mức độ “cày cuốc” tương đối sâu.

Xét về điểm nổi trội, CodeForces là nền tảng tuyệt vời cho những ai tìm kiếm các 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, là nơi các lập trình viên có thể rèn luyện kỹ năng trong các challenge cụ thể và nhìn thấy rank của mình vào cuối thử thách.

2. CodeChef

Được bắt đầu từ một sáng kiến ​​giáo dục bởi Directi - một công ty phần mềm của Ấn Độ vào năm 2009, CodeChef là một cộng đồng lập trình cạnh tranh của các lập trình viên từ khắp nơi trên thế giới, thúc đẩy văn hóa học tập với cả cộng đồng IT.

Tùy vào trình độ của mình, bạn có thể chọn các thử thách đã được phân loại sẵn ở trên trang web. Ngoài ra, điểm nổi bật của CodeChef là người dùng có thể giao tiếp với các lập trình viên khác để đặt câu hỏi mình đang thắc mắc, hoặc trả lời các vấn đề của người khác đưa ra.

Một số chức năng chính có thể kể đến như:

  • Luyện tập
  • Cạnh tranh
  • Thảo luận
  • Cuộc thi
  • Campus chapter

Với tính xã hội hóa cao của mình, Codechef  được tôn vinh 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 khi cung cấp một công cụ mang tên campus chapter. 

Nền tảng này cũng tổ chức 3 cuộc thi mỗi tháng có trao thưởng nhằm khích lệ cộng đồng coder là Long Challenge, Cook-off và Lunchtime. Long Challenge kéo dài trong khoảng 10 ngày, 2 cuộc thi còn lại diễn ra trong thời gian ngắn hơn. Lập trình viên có thể tham gia viết code trong editor trực tuyến CodeChef IDE và lựa chọn 1 trong 35 ngôn ngữ lập trình có sẵn.

Giải thưởng tiền mặt cho các cuộc thi mã hóa này là khoảng 700 USD và cũng có thể bao gồm thêm các phần mềm miễn phí khác.

3. CodeWars

Giống như tên gọi của mình, Codewars là một thế giới nơi các lập trình viên cùng tham gia vào hàng loạt cuộc thi, thử thách để “leo rank”. Rank sẽ được tính theo điểm gọi là kyu và điểm này sẽ cao hay thấp tùy vào độ khó của vấn đề mà bạn giải quyết. Sau khi tìm ra giải thuật cho một thử thách nào đó, bạn có thể xem đáp án của người khác để so sánh cách viết code cũng như tính hiệu quả của code của mình.

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

Codewar gây ấn tượng với cộng đồng bởi 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. Không đơn thuần là học lập trình, nền tảng này mang đến sự tận hưởng thách thức đầy sự thú vị cho người dùng. Bạn có thể giải quyết những thử thách này trực tuyến trong editor trên Codewars bằng hơn 20 ngôn ngữ có sẵn. Bạn cũng có thể xem các thảo luận cho từng thử thách cũng như các giải pháp của người tham gia khác.

4. Hackerrank

Trang web HackerRank là một website nổi tiếng dành cho những ai muốn nâng cao kỹ năng code, với hơn 7 triệu lượt người tham gia.  Không chỉ là địa hạt để các lập trình viên giỏi so kè nhau trong những thử thách tầm cỡ thế giới, đây còn là nơi newbie có thể rèn luyện và nâng cao trình độ. Ngoài ra, HackerRank còn mang lại cơ hội tìm kiếm công việc phù hợp thông qua các cuộc thi do Công ty tuyển dụng tổ chức, chủ yếu tập trung về các đề tài thuật toán, AI, cơ sở dữ liệu, toán học…

Đây 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. Các tính năng của web này cho phép các nhà tuyển dụng mảng công nghệ đánh giá khách quan các lập trình viên thông qua các thử thách kỹ năng chuyên môn thực tế.

Các chức năng chính:

  • Thực hành mã hóa
  • Chuẩn bị cho phỏng vấn

Đặc biệt, để có cơ hội nhận trực tiếp tiền thưởng từ các khoản tài trợ của các công ty công nghệ lớn, bạn hãy theo dõi và  tham gia các sự kiện Hackathon được điều hành bởi HackerRank.

5. LeetCode

Nếu tìm kiếm một nền tảng tốt để giúp 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 thì Leetcode chính là câu trả lời của bạn. Với mục tiêu được chuẩn bị đầy đủ cho các cuộc phỏng vấn lập trình, bạn có thể chọn các vấn đề để giải quyết từ các danh mục như: Thiết kế hệ thống, thuật toán và cơ sở dữ liệu, tham gia các cuộc thi hay các cuộc phỏng vấn giả.

Được sử dụng bởi hàng trăm nghìn lập trình viên với 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 thử thách trên Leetcode được phân hóa rõ ràng thành 3 mức độ khó dễ khác nhau. 

Trang web này có một điểm cộng là đo performance/runtime code của bạn, rồi so sánh với người khác, đánh giá xem code của bạn có optimize được không hay chưa tối ưu chỗ nào, từ đó có hướng cải thiện hiệu quả.

Trên các diễn đàn của lập trình viên, web này được đánh giá cao như sau: “LeetCode có một bộ sưu tập rất nhiều các thử thách về thuật toán mới nhất hiện nay. Các chủ đề của họ đòi hỏi kiến thức về cấu trúc dữ liệu như binary trees, heaps, linked list...do đó các bài toán của họ thường khó hơn so với mặt bằng chung, nhưng cũng rất là thú vị và hấp dẫn. Bên cạnh đó thì họ cũng có chương trình Mock Interview giả lập các buổi phỏng vấn xin việc hay các cuộc thi code hàng tháng.”

6. Viblo Code

Sản phẩm mang nhiều tâm huyết của Sun* được phát triển bởi R&D Unit là nơi cho phép các lập trình viên rèn luyện các kỹ năng về Coding, cũng như tư duy về Giải Thuật của mình. Thông qua các Challenge của Viblo Code, bạn sẽ có nhiều hơn những cơ hội để luyện tập về cách sử dụng, cũng như tối ưu các thuật toán với ngôn ngữ lập trình mà mình yêu thích. Tại đây có một hệ thống các bài tập, khi giải thành công các đề bài này người dùng sẽ nhận được một số điểm tương ứng và hình thành một bảng xếp hạng để đánh giá rank. 

Ngoài ra, Viblo Code còn có chức năng “Contest” - hỗ trợ tạo các cuộc thi online. Tính năng này đã được bộ phận HR tại Đà Nẵng sử dụng để thực hiện thành công chương trình Code Challenge vào tháng 4/2019.

Ở Việt Nam, mô hình của Viblo Code thật ra không quá mới, một số trang tương tự thậm chí đã được phát triển từ khá lâu. Tuy nhiên không phải nền tảng nào cũng hỗ trợ việc tổ chức contest, hơn thế nữa là hệ thống có nhiều mode tính điểm cho các dạng contest khác nhau, đây có thể nói là một lợi thế nổi bật khi nhắc đến sản phẩm của Sun*.

Viblo Code hướng đến các bạn sinh viên là đối tượng chính, trong khi đó không phải bạn nào cũng giỏi tiếng Anh, nên việc phát triển song ngữ cả tiếng Anh và tiếng Việt cũng là một yếu tố thu hút, được đánh giá cao của sản phẩm này.

Trong thời gian tới, Viblo Code dự kiến sẽ có nhiều sự cập nhật về tính năng, để hướng đến việc đẩy mạnh tính tương tác giữa người dùng, xây dựng cộng đồng lớn mạnh hơn, thông qua việc bổ sung các chức năng liên quan đến đóng góp đề bài, chia sẻ lời giải, Contributions Ranking ...

Trên đây là 6 “đấu trường” code nhận được sự quan tâm của đông đảo lập trình viên. Ngoài ra còn rất nhiều nền tảng thú vị khác, Sunner hãy comment và cùng trao đổi để cùng nhau tìm ra những coding challenge sites hữu ích khác nhé!

Cố vấn nội dung - T.Đ.Thắng (Group Leader - R&D Unit)

#top

#code

#challenge