Nâng cao kỹ năng lập trình với Codesignal

Codesignal

Codesignal là một nền tảng tuyệt vời để các bạn lập trình viên nâng cao kỹ năng lập trình. Từ việc nâng cao tư duy lập trình đến sự thuần thục ngôn ngữ…

Tổng quan

Codesignal ra đời năm 2014 với tên gọi ban đầu là CodeFights, mục đích chính của CodeFights là cung cấp một nền tảng, mà ở đó các bài toán (challenges) có thể được giải bằng nhiều ngôn ngữ lập trình khách nhau.

Tới 2018 thì CodeFights được đổi tên thành CodeSignal, nền tảng được cải thiện và thêm nhiều chức năng mới. Ngoài hướng đến là sân chơi cho các lập trình viên, CodeSignal còn là một công cụ cho các nhà tuyển dụng. Do giới hạn về bài viết, nên mình không giới thiệu các ứng dụng cho nhà tuyển dụng.

Đối với lập trình viên, CodeSignal sẽ bao gồm các tính năng sau:

  • Arcade: Các bài tập được CodeSignal định nghĩa sẵn
  • Interview Practice: các câu hỏi phỏng vấn thường gặp
  • Challenges: là các bài tập do người dùng đóng góp
  • Company Challenges: các bài tập do các công ty lớn như GoDaddy, Asana, SpaceX… cung cấp

Cách sử dụng

Tùy theo trình độ, mục tiêu của mỗi người, chúng ta sẽ chọn các mục tương ứng với mình. Ví dụ, khi mới tham gia, mình bắt đầu với Arcade. Trong Arcade, chúng ta có 5 mục:

  • Intro
  • The Core
  • Databases
  • Python
  • Graphs

Bước 1: Chọn mục tương ứng và các bài tập muốn làm

Bước 2: Ở giao diện bài tập chúng ta sẽ có các khu vực quan trọng:

  • Khu vực 1: Đề bài
  • Khu vực 2: Editor, ở góc trên bên phải, chúng ta có thể đổi ngôn ngữ mà mình muốn. Trong hình mình đang để là Python3, CodeSignal hỗ trợ cho chúng ta hơn 40 ngôn ngữ lập trình. Nên các bạn có thể tha hồ chọn ngôn ngữ mình thích.
  • Khu vực 3: Testing và Submit. Sau khi làm xong bài tập, chúng ta sẽ thực hiện “run test” trước, nếu thông qua tất cả test cases, chúng ta mới có thể submit.

Học như thế nào với CodeSignal?

Với CodeSignal, thứ đầu tiên chúng ta học được là tiếng Anh. Các bạn sẽ được làm quen với các đề toán, mô tả bằng tiếng Anh. Một yếu tố rất quan trọng trong công việc của chúng ta.

Thứ 2, Ở phần test cases được CodeSignal cung cấp sẽ bao gồm 3 loại:

  • Public test: các bạn sẽ được thấy input và output của test case. Chỉ cần code của chúng ta đáp ứng được input/output là có thể thông qua.
  • Hidden test: như tên gọi, chúng ta sẽ khg thấy được yêu cầu cụ thể của các test case này, thông thường các hidden test thường kiểm tra các trường hợp đặc biệt, ngoại lệ và hiệu năng của mã nguồn.
  • Custom test: test case do chúng ta tự viết để kiểm thử mã nguồn của mình.

Cuối cùng, sau khi giải được bài toán chúng ta có thể tham khảo code của các bạn khác. Nhờ tính năng này, các bạn có thể học tập được rất nhiều từ logic, code style, độ thuần thục ngôn ngữ (các toán tử, phương thức built-in…) vv