Thứ Ba, 20 tháng 3, 2018

Rèn luyện kỹ năng của mình bằng cách thi đấu code với các coder bên nước ngoài


 

 


Bạn là sinh viên, muốn rèn luyện khả năng code của bản thân nhưng không biết làm thế nào? 

Bạn nghĩ mình code giỏi hơn bạn bè, muốn tìm một nơi để “thi đấu” và “diễn đạt trình độ”? 

Bạn là dân đi làm, muốn gọt giũa kĩ năng code để có thể cạnh tranh với “lớp trẻ”? 

Bạn sắp có một cuộc phỏng vấn quan yếu, muốn ôn lại những dạng đề thi hay gặp? 

Bạn có khả năng lập trình, muốn được lọt vào mắt xanh của các nhà tuyển dụng lớn như Google, Facebook? 

Bài viết này sẽ giới thiệu cách để bạn đạt được những điều nói trên. Kéo xuống để đọc tiếp nhé! 

Làm sao để code giỏi? đương nhiên là phải… tập code 

Có một sự thực hiển nhiên, đúng với mọi ngành nghề là: Muốn trở thành giỏi một việc gì đó thì phải thường xuyên luyện tập . 

thầy thuốc muốn khám chữa bệnh giỏi thì phải thẳng băng khám nhiều bệnh nhân, luyện tập chữa bệnh. Anh ăn mày muốn xin được nhiều tiền thì phải thẳng băng tập các phong độ xin ăn mới… 

Lẽ dĩ nhiên, muốn code giỏi thì chúng ta phải… tập code. Tuy nhiên, tập code không đơn giản chỉ là ngồi xuống, mở máy lên và gõ code bừa. Cái đó gọi là tập gõ phím chứ không phải là tập code ! 

Để tập code, ta phải nghĩ ra vấn đề, sau đó thử dùng code để giải quyết vấn đề đó. Thế nhưng, làm sao nghĩ ra vấn đề hay, huých, thử thách được bản thân? Làm sao để biết cách giải quyết của mình có đúng hay không? 

Đừng lo, trong bài này mình sẽ giới thiệu một số trang web rất hay! Bạn sẽ có ti tỉ vấn đề hay ho để giải quyết. Mỗi vấn đề đều đi kèm với test case để rà code, song song có đáp án của những người đi trước để bạn học hỏi. Không tin à, xem phần dưới nhé.

 



Một số trang web lừng danh để… luyện code 

ngày nay, ta có thể truy cập một số trang dưới đây để “luyện tập” khả năng code, nâng cao trình độ, cũng như … thi đấu với các coder khác. 

Hackerrank 

Trang này quá nức tiếng nên chắc nhiều bạn cũng biết rồi. Hackerrank có vô thiên lủng câu đố cho bạn thử trình độ, từ cơ bản cho tới phức tạp (qui hoạch động, đồ thị, đệ qui, …). Các bài tập đều có phân loại từ dễ tới khó , ai cũng có thể thử sức.

 

 



Topcoder 

Trang này chỉ thua hackerrank về độ nức tiếng. Topcoder đặt nặng tính thi đấu hơn. Bạn sẽ không được điểm khi giải bài tập mà chỉ được điểm khi dự các tournament. Bạn sẽ phải thi xem ai viết code nhanh hơn, performance cao hơn, khá là hồi hộp. 
 

 

 

 

 


Codefights 
Trang này khá mới nên chưa nức danh lắm. Tuy nhiên, nó có chế độ combat 1vs1 và tournament ngăn ngắn (10 phút) khá hay. Nội dung thi đấu không chỉ có viết code mà còn có fix bug hoặc điền code vào chỗ trống . 


Một điều ưa nữa của codefight là chế độ vs bot. Mỗi công ty lừng danh (Uber, Quora, Instagram,…) sẽ có một con bot đại diện. Nếu đánh thắng bot, bạn sẽ có dịp thử apply vào các công ty này. 
 

 



Những ích khi tham dự “thi đấu” 

tập luyện và thi đấu trên những trang này sẽ giúp bạn nâng cao khả năng tư duy và khả năng code. phê duyệt việc xem câu giải đáp của người khác, bạn có thể học được cách code hay, cách nghĩ lạ. Lâu lâu mình cũng hay vào để đoàn luyện trí tuệ và ôn tri thức căn bản luôn. 

Những đề bài dạng này cũng giúp bạn luyện tập trước khi phỏng vấn . Để giải được các bài toán trên này, bạn cần phải rành thuật toán , các cấu trúc dữ liệu thường gặp. Độ khó của những câu hỏi khi phỏng vấn cũng chỉ ngang ngửa các bài trên này thôi. 

ngoại giả, bạn còn có thể chứng mình trình độ, khả năng của bản thân bằng cách thử “leo rank”. Nếu đạt thứ hạng cao, bạn có thể được các nhà tuyển dụng (nước ngoài lẫn trong nước) để mắt đến. Chưa kể, bạn còn góp phần nâng rank của Việt Nam trên bản xếp hạng, giúp gây dựng danh tiếng cho quốc gia (nghe oai phết).
 

 

 



Đôi điều lưu ý 

Cái gì cũng có hai mặt. Các trang web mình giới thiệu tụ tập vào competitive programming , tức là programming thi đấu. Nó giúp bạn tư duy nhanh nhạy và sắc bén hơn, nhưng nó không giống với công việc hằng ngày của bạn . 

Công việc thông thường của lập trình viên là viết code, xây dựng sản phẩm . Bạn có thời kì để suy nghĩ, thiết kế, tìm ra cách giải chung với mọi người chứ không phải tranh đua thi thố với ai cả. Người đưa ra bài toán ở đây là khách hàng . Code viết ra phải dễ đọc, dễ bảo trì , giải quyết được vấn đề. 

Do đó, dù bạn có xếp hạng cao hay gì đó thì cũng nên khiêm tốn, đừng tự cao quá nhé. Xét cho cùng, đây chỉ là thi thố! Trình độ thật sự của coder không nằm ở chỗ ai viết code chạy nhanh hơn, ai giải toán nhanh hơn, mà nó bộc lộ ở khả năng thiết kế hệ thống, tạo ra phần mềm và sản phẩm cơ. 

Bạn nào đã có kinh nghiệm tham dự những trang này thì comment san sớt kinh nghiệm cho những bạn đi sau nhé.

 

Không có nhận xét nào:

Đăng nhận xét