Leetcode leetcode & leetcode? But Why?

Cũng lâu lắm rồi mình mới quay lại diễn đàn, mình muốn chia sẻ một vấn đề với mọi người trong diễn đàn và mong nhận được ý kiến phản hồi.

Lúc trước, tầm trước 2016 thì mình khá là phản đối leetcode hay competitive programming bởi vì mình cảm thấy nó vô nghĩa và tốn thời gian. Nếu các bạn không biết leetcode hay competitive programming là gì thì các bạn có thể lên Leetcode.com tìm bài rồi giải thì các bạn sẽ hiểu ngay.

Vậy bây giờ 2021 sao mình lại nhắc lại chuyện 2016? Đó là vì năm 2016 mình có phỏng vấn để chuyển từ embedded sang làm web backend, mình khá là shock với phong cách phỏng vấn của công ty làm web mà mình phỏng vấn vào. Họ hỏi rất nhiều kiến thức căn bản của khoa học máy tính như tổ hợp, chỉnh hợp, hệ điều hành, mạng máy tính các kiểu. Nhưng kèm theo đó họ còn hỏi các câu hỏi như câu hỏi trên leetcode hay còn gọi là các câu hỏi giải thuật algorithm.

Lúc đó mình rất shock nhưng cũng may mắn là mình giải được bằng cách “nhà quê” mình tự nghĩ ra và bạn interviewer cho mình pass. Nhưng từ đó về sau mình đi phỏng vấn trong ngành IT thì 90% các công ty mình phỏng vấn đều hỏi giải thuật. Mình luôn nghĩ cách phỏng vấn này không phải là cách tốt nhất, nhưng nó là cách tốt hơn nhiều cách khác (không có thời gian kể ra).


Thôi dài dòng cũng nhiều rồi, mình muốn nhấn mạnh một điều là từ 2016 trở đi mình cảm thấy luyện leetcode hay luyện giải thuật algorithm là rất tốt rất cẩn thiết cho một engineer giỏi bởi vì

  1. Nó luyện khả năng tư duy, cũng giống như chơi cờ vậy. Khi mình chưa biết chơi thì rất chán nhưng mà khi chơi được rồi thì lâu lâu sẽ tìm được cảm giác “aha” rất đã
  2. Đôi khi, rất hiếm, mình sẽ áp dụng được một số giải thuật vào công việc.
  3. Mình sẽ có khả năng pass phỏng vấn được những công ty to. Ví dụ như mình may mắn pass phỏng vấn Facebook. Trong thời gian rảnh rỗi mình cũng đi phỏng vấn mấy công ty to to khác thì cũng đậu/rớt lung tung nhưng mà cảm giác phỏng vấn cũng dễ hơn rất nhiều.

Mọi người cho ý kiến nhé, có đồng ý, không đồng ý với quan điểm “mới” của mình không.


À cho bạn nào không biết thì mình đi làm từ 2011, sang Singapore từ 2013 và phỏng vấn Leetcode style từ 2016. Vào làm FB từ 2019.

12 Likes

Chỗ cty mình phỏng vấn cũng hỏi (RẤT) nhiều về giải thuật.
Nhưng thật ra thì ngoài chuyện bạn có giải được bài toán hay không, thì còn nhiều thứ khác để đánh giá ứng viên. Mình tạm xếp theo thứ tự từ QUAN TRỌNG nhất xuống:

  • Bạn có hiểu rõ đề bài không? Có hỏi lại người ra đề để làm sáng tỏ những điểm không hiểu hay không?
  • Bạn có suy nghĩ và phân tích trước khi code hay không?
  • Bạn có thái độ chia sẻ, cởi mở để nhận phản hồi từ người phỏng vấn hay không?
  • Bạn có viết test case và suy nghĩ về các trường hợp corner cases hay không?
  • Bạn có giải được đề bài và trình bày code ra được hay không?
  • Bạn có tối ưu được phương án của mình hay không?

Đa số mọi người tưởng rằng Giải được đề bài là đậu. Nhưng đôi khi không giải được vẫn đậu vì bạn thỏa mãn được những tiêu chí đầu. :smiley:

7 Likes

Đồng ý, mỗi công ty lại có một cách đánh giá ứng viên khác nhau.

Mình viết bài này hi vọng nhiều bạn mới ra trường hoặc các bạn đang đi làm dành thời gian “luyện” để nâng cấp bản thân mình.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?