Hôm nay mình tham gia chương trình gợi ý phỏng vấn xin việc do Google tổ chức và có ghi lại một số thông tin khá bổ ích để các bạn đọc qua. :D


Các nhóm câu hỏi trong phỏng vấn


  • Coding

    • Java / C++ / Python
    • Đệ qui 
  • Toán
    • Toán xác suất thống kê căn bản
    • Powers of 2 (2^n)
    • Div / mod

  • Căn bản hệ điều hành
    • Threads, processes
    • Quản lí bộ nhớ
    • Dữ liệu hệ thống, mạng

  • Thuật toán
    • Thuật toán sắp xếp
    • Thuật toán tìm kiếm
    • Đồ thị
    • Phân tích độ phức tạp thuật toán

  • Cấu trúc dữ liệu
    • Danh sách (List)
    • Nạp chồng, hàng đợi (Stack, Queue)
    • Cây, đồ thị (Tree & graph)
    • Tập hợp (Set)
    • Hàm băm, map (hashes & map)
    • Heap


Những điều nhà tuyển dụng để ý khi phỏng vấn


  • Bạn phân tích câu hỏi như thế nào
  • Bạn có quên mất các trường hợp đặc biệt của bài toán không
  • Bạn có tiếp cận bài toán một cách logic và có lí luận về nó không
  • Bạn có căn bản tốt về các khái niệm cơ bản trong khoa học máy tính không
  • Code bạn viết có chạy được không? Bạn đã chạy thử code chưa?
  • Code của bạn có clean, dễ đọc và dễ chỉnh sửa không
  • Bạn có thể giải thích ý tưởng của mình một cách rõ ràng hay không
  • Bạn có phải là người dễ làm việc chung?

Một vài lỗi cơ bản khi làm phỏng vấn


  1. Bắt đầu viết code ngay lập tức
    • Tại sao việc này lại không tốt:
      • Nhà tuyển dụng không biết rằng bạn có đang đi vào ngõ cụt hay không
      • Không thể đưa ra lời khuyên hoặc bật mí nếu như bạn gặp rắc rối
      • Bạn sẽ lãng phí thời gian nếu như quyết định làm lại từ đầu với cách khác
      • Có khả năng code không hoàn thành hoặc chạy ra đáp án sai



  1. Gặp rắc rối trong việc tối ưu hoá code


    • Hãy suy nghĩ kĩ về độ phức tạp thuật toán của bài giải của bạn nhưng đừng cho rằng brute-force không được chấp nhận (Từ wiki: Brute force may refer to any of several problem-solving methods involving the evaluation of multiple (or every) possible answer(s) for fitness)
    • Hãy giải thích tại sao bạn nghĩ rằng bài giải này có thể hoặc không thể tối ưu hoá được nữa
    • Hãy phân tích và sẵn sàng giải thích độ phức tạp thuật toán trong đoạn code của bạn

  1. Không xem xét qua một ví dụ


    • Hãy kiếm một ví dụ đơn giản để giải thích bài giải của bạn
    • Hãy nghĩ về các trường hợp đặc biệt của bài toán
    • Hãy giải thích rõ ràng khi bạn dùng tới một ví dụ
    • Đừng tốn quá nhiều thời gian để đưa ra các ví dụ khác nhau

  1. Áp dụng bài giải cho một bài toán tương tự vào bài toán hiện tại


    • Hãy học hỏi từ kinh nghiệm và các bài tập
    • Đừng tự cho rằng bạn sẽ được hỏi các bài toán mình được thấy trong lớp

Một vài gợi ý khác


  • Không hề có đường tắt: Hãy luyệt tập thật nhiều
  • Hãy chuẩn bị cho các câu hỏi liên quan tới những gì bạn ghi trên CV
  • Giao tiếp nhiều tốt hơn là không hề giao tiếp (Nhắc đi nhắc lại câu hỏi với nhà tuyển dụng không phải là một ý kiền tồi)

Các gợi ý cho resumé


  • Gợi ý chung

    • CV của bạn nên rõ ràng và giúp nhà tuyển dụng tìm ra thông tin của bạn một cách nhanh chóng, dễ dàng 
    • CV dưới dạng PDF, HTML, Microsoft word đều được chấp nhận
    • Cấu trúc nên đơn giản, rõ ràng
    • Sử dụng bullet points để phân biệt các phần
    • Sử dụng động từ khi cần thiết
    • Tập trung vào kết quả và ảnh hưởng trong các dự án, v…v..
    • Có phần thông tin liên lạc, email, github và link các dự án nguồn mở (nếu như bạn có )
    • Độ dài: Thường là 1 trang, nhưng vẫn ok nếu như bạn có CV dài hơn (Đặt những thứ quan trọng nhất lên đầu)
  • Gợi ý về phần học vấn (education)

    • Ghi tất cả các nơi bạn từng học sau cấp phổ thông
    • Các loại bằng và chuyên ngành
    • Ngày tốt nghiệp
    • Điểm trung bình
    • Các lớp học quan trọng đã học qua (Trí thông minh nhân tạo, Thuật toán, v…v… )
    • Thêm vào một phần giải thích ngắn gọn về bất kì dự án quan trọng nào bạn đã hoàn thành trong quá trình học
    • Các kĩ năng liên quan tới công việc: Danh sách các ngôn ngữ mình thông thạo theo thứ tự từ cao tới thấp
  • Gợi ý về phần kinh nghiệm

    • Liệt kê theo thứ tự thời gian những kinh nghiệm việc làm gần nhất của bạn
    • Nhớ liệt kê chức danh, công ti, ngày bắt đầu làm
    • Phần giải thích nên ngắn gọn, súc tích
    • Liệt kê ra tất cả các:

      • Công việc thực tập
      • Các dự án nghiên cứu, các dự án thú vị mình đã làm
      • Kinh nghiệm về mã nguồn mở
      • Thiết kế ứng dụng điện thoại và thiết kế web
      • Các cuộc thi viết code
      • Các dự án trong lớp
  • Gợi ý về hoạt động ngoại khoá, các thông tin khác

    • Thứ hạng trong các cuộc thi code hoặc các cuộc thi liên quan tới công nghệ
    • Các học bổng, phần thưởng bạn được nhận ở đại học
    • Các bài báo khoa học, bằng sáng chế
    • Bài thuyết trình ở hội nghị nghiên cứu
    • Bất kì các phần thưởng hoặc danh hiệu nào ở các lĩnh vực không liên quan tới khoa học máy tính
  • Gợi ý khi viết resumé

    • Giữ cho bản CV của bạn rõ ràng và đơn giản
    • Sử dụng font chữ, khoảng cách giữa các dòng đồng bộ với nhau
    • Sử dụng ngữ pháp, chính tả hợp lí
    • Sử dụng định dạng mm/yy cho thời gian
    • Gửi bản copy bằng định dạng file PDF