Series Code Dạo Trời Tây – Phần 2: Tôi đã phải làm test sml như thế nào

Series sẽ gồm 5 phần:

Ở phần trước, mình đã kể các bạn nghe về kinh nghiệm tìm việc, rải CV và chuyện mình đã bị reject sml như thế nào.

Bên cạnh những email reject, một số công ty cũng tạo điều kiện cho mình bằng cách cho làm bài test, hoặc phỏng vấn với nhân sự trước.

Các công ty châu Âu cho làm bài test lập trình như thế nào? Các bạn đọc bài viết để biết nhé ;).

Test, test nữa, test mãi

Quy trình chung của các công ty thường là:

  1. Bài test lập trình 60-120 phút (trên hackerrank hoặc các trang tương tự).
  2. Phỏng vấn kĩ thuật/nhân sự 60 phút qua Skype
  3. Qua tận nơi phỏng vấn, nói chuyện trực tiếp với sếp và HR
Một mẩu test nho nhỏ trên hackerrank (minh hoạ)

Nếu đợt trước mình từng bị reject sml, thì đợt này mình cũng phải lo làm test sml. Mình chia sẻ sơ sơ về những bài test mà mình đã từng làm nhé:

  • myCS Gmbh: Test 10 câu JavaScript khoảng 60 phút. Chỉ có một câu khó dùng đệ qui, còn lại toàn mấy câu đơn giản chỉ 4,5 dòng code. Vòng sau có pair-programming, vừa code vừa giải thích.
  • Fiellman Venture: Một trong những bài test có cái đề chó má nhất mình từng gặp! 1 tiếng rưỡi với 3 câu trắc nghiệm, 2 câu code dài và 5 câu tự luận. Vâng, là năm câu tự luận đấy các bạn ạ! Bắt ngồi trả lời database transaction là gì, tìm lỗi sai trong REST Design v…v

  • Optiver: Bài test 90 phút gồm 3 câu code (1 câu fix bug) và 5 câu trắc nghiệm. Đề cũng khá vừa sức, chỉ thử về OOP và ít thuật toán. Câu cuối khó nhất thì phải dùng cây nhị phân mới làm được.
  • eVision: Có anh HR gặp qua Skype, nói chuyện 15 phút trước rồi giao bài test. Đề cho sẵn back-end, ta chỉ làm front-end cho 1 ứng dụng nho nhỏ. Cũng không khó lắm, mất khoảng 2-3 tiếng trau chuốt cái UI là ok.
  • Evolution Gaming: Bài test khó kinh khủng. Vì bọn nó là công ty gaming và cá độ nên đề của bọn nó là code front-end cho một hệ thống game nho nhỏ. Đề có 3 tiếng mà phải xử lý websocket, xử lý failure event, fallback. May mà mình dùng React Redux nên cũng tạm làm xong.

Khác

  • Canva (Úc): Đề có 2 vòng. Vòng đầu là 1 bài test JavaScript 1 câu 60 phút. Mình làm xong mất có 15 phút, nhưng tận phút 40 mới nộp vì fix hoài mới xong bug. Sau đó bạn HR gửi thêm 1 bài nữa, thiết kế architect và viết code front-end theo đề đã cho. Nó cho 1 tuần, mình làm 6-7 tiếng mới xong.
  • bwin.party (Áo): Đề khá vui vì khá thực tế. Vị trí tuyển người biết JS và C#. Câu đầu 90 phút,  cho một ứng dụng back-end C# và front-end Angular2, ta code thêm chức năng và fix bug để ứng dụng chạy được. Câu 2 là cho 20 phút để review code cho 1 đoạn code nho nhỏ.
  • Agoda (Thái Lan): Đề 6 câu, 90 phút trên hackerrank. Nói chung cũng không quá khoai, có vài câu về thread và stack này nọ. Mỗi tội là test case không rõ ràng nên hơi khó làm. Câu khó nhất mình làm tà tà cũng pass gần hết test case, may mà cũng đậu.

Kinh nghiệm làm bài test

Thật ra, chắc do các công ty mình ứng tuyển chưa phải tầm như Google, Amazon nên những bài test cũng như câu hỏi phỏng vấn của họ không xoáy nhiều vào thuật toán cho lắm.

Không cần đến vét cạn, qui hoạch động, tham lam, đồ thị hoặc tìm đường ngắn nhất. Chỉ cần biết dùng Array, Queue, Stack, HashMap, Hastable là các bạn cũng đủ vượt qua mấy vòng này rồi.

Mình cũng không chuẩn bị gì nhiều, chủ yếu là ôn lại kiến thức cơ bản, đọc sách về technical interview, lên các trang như hackerrank, codefight để làm thử thôi.

Cracking the Coding Interview cũng là một cuốn sách khá đáng đọc

Lúc làm bài thì chỉ cần bình tĩnh đọc đề kĩ một tí, chạy các test case nếu có để xem thử input, output thế nào. Đọc hết một lượt đế xem câu nào khó thì để lại sau, dễ thì lấy làm trước.

Phần lớn các trang này không cấm việc copy code, chỉ cấm copy đề bài. Do vậy, nếu được thì có thể bỏ vào IDE để được nhắc lệnh và debug code dễ hơn, sau đó cóp lại vào bài làm sau.

Đa phần những câu này Google không có lời giải đâu, nhưng cũng sẽ có 1 số câu tương tự để các bạn tham khảo đấy.

Kết

Sau khi làm bài test, mình chỉ cần nằm chổng mông chờ kết quả thôi. Do ngẫu nhiên, đương nhiên và hiển nhiên, mình vượt qua toàn bộ vòng test đầu tiên. Sau màn test sml là tới màn phỏng vấn sml. Mình bắt đầu chuẩn bị và sắp xếp lịch phỏng vấn với các công ty này thôi!

Qui trình phỏng vấn ra sao, họ hỏi về những vấn đề gì? Các bạn chịu khó đón xem phần sau để biết nhé!

 

16 thoughts on “Series Code Dạo Trời Tây – Phần 2: Tôi đã phải làm test sml như thế nào”

  1. Ở Optiver anh phải giải thuật toán bằng ngôn ngữ lập trình j? E chưa hề biết javascript chạy dc đệ quy luôn

    Like

  2. Theo anh nhìn chung thì khi ứng tuyển với vị trí Full Stack thì người ta thường xoáy mạnh vào front-end không? Thường thì yêu cầu Full stack nắm front-end ở mức cơ bản, nhưng như ở Evolution Gaming với eVision thì lại test front-end (hay a ứng tuyển front-end ở đó @@ hay là do yêu cầu ở nước ngoài cao hơn?)

    Like

  3. Anh có thể cho một ít ví dụ và cách giải được không? Em đang sv năm 3 mà đọc xong thấy khó vãi.

    Like

  4. Cám ơn bạn đã truyền cảm hứng cho già. Năm nay già đã 80t rồi và đang làm trưởng bản ở sóc bombo. Tuy vậy già vẫn luôn hy vọng có 1 ngày được đi nước ngoài bằng con đường xuất khẩu lao động

    Like

Leave a comment