CodeFights – Nơi những tráng sĩ coder hội tụ

Công việc của lập trình viên hằng ngày chỉ là chuyển hóa cafe sang source code và sau đó ngồi fix bug xuyên màn đêm. Vậy làm thế nào để có thể code giỏi? Sự thật hiển nhiên là muốn giỏi cái gì thì phải thường xuyên luyện tập. Ca sĩ muốn hát hay thì phải hay hát. Ăn xin muốn kiếm được tiền thì phải thường xuyên nâng cao khả năng hóa trang và nghĩ ra các tư thế ăn xin mới. … Vậy với Coder thì sao?

Bài viết này sẽ giới thiệu về competitive programming với CodeFights – Đấu trường danh vọng của dân coder.

Việc luyện tập code không chỉ là luyện tập gõ phím nhanh mà còn là việc sử dụng thành thạo ngôn ngữ lập trình, thuật toán để giải quyết vấn đề. Làm sao để nghĩ ra các vấn đề hay và thực tiễn để luyện tập hàng ngày?  Làm sao để so sánh cách giải quyết của mình với người khác?

I. CodeFights là gì?

 

CodeFights là một mạng xã hội lập trình . Tại đây, coder khắp thế giới có thể gặp gỡ và tranh tài với nhau qua các cuộc thi vừa và lớn được tổ chức hàng ngày, tuần, tháng. Ngoài việc đánh nhau, leo rank, thì các coder còn có thể học tập, tham gia tuyển dụng vào các công ty IT hàng đầu thế giới.

1. Chế độ Học tập (Arcade)

Ở phần này sẽ tập hợp các bài toán dựa trên từng thuật toán khác nhau, bạn không thể nhảy cóc sang phần khác nếu không hoàn thành phần hiện tại. Các level ở đây được thiết kế từ dễ đến khó, từ cơ bản đến phức tạp, tuy nhiên có điểm trừ lớn phần này là các bạn sẽ không được giảng dạy lý thuyết, mà tự học đâu đó ở ngoài, sau đó mới giải quyết được các vấn đề ở đây.

Đối với các bạn đã có kinh nghiệm đi làm, thì các bài toán ở đây có mức độ khó vừa phải. Cái thú vị nhất là làm sao để có thể code được những dòng code ngắn gọn, dễ hiểu như những bài thơ trữ tình.

Các bạn có thể làm 1 bài thơ trữ tình 1 dòng cho bài toán dưới đây như tôi không?

Khi giải quyết xong 1 bài, thì các bạn có thể tham khảo cách làm của những người khác. Tin tôi đi, tôi đã không ít lần há mồm không ngậm được khi đọc được những cách làm quá hay, quá ngắn mà trước giờ tôi không bao giờ nghĩ mình có thể nghĩ ra được.

2. Chế độ luyện tập phỏng vấn (Interview Practice)

Ở phần này các bạn có thể thử sức với các câu hỏi lập trình của các cty IT lớn như Google, Facebook, Uber, Microsoft … do đó bạn có thể phần nào tự đánh giá được “nội công” của mình có thâm hậu hay không?

3. Chế độ luyện tập với Bot

Nhiệm vụ của các bạn là đánh bại 2 loại bot dưới đây

  • Company bot: các công nghệ có tiết mục tuyển dụng thông qua CodeFights, do đó họ có tạo ra các con bot để thách thức mọi người, nếu ai đánh bại được các con bot này, thì cơ hội được mời phỏng vấn từ các công ty này là rất cao. Thêm 1 điều nữa là nếu bạn có mời bạn của bạn tham gia, nếu bạn của bạn đủ điều kiện vào làm việc ở các công ty này, thì bạn sẽ có ngay $1000 tiền hoa hồng. Quá tuyệt! Việc đánh bại các con bot này rất khó, đòi hỏi sự hiểu biết cao.

  • Code bot: đây là con bot trí tuệ nhân tạo code CodeFights tạo ra. Hiện tại đang có 6 con, chia làm các level từ dễ đến khó, các bạn có thể chọn các level phù hợp với mình để thi đấu. Thực tế thì thực lực của các con bot này được lập trình bằng trung bình cộng của các coder cùng level với bot, do đó việc chiến thắng bot khá là dễ dàng nếu bạn nằm ở top trên trung bình.