Đóng góp ý kiến và báo lỗi phiên bản mới tại đây

public6 năm trước

Để Tỏa Sáng Trong Buổi Phỏng Vấn Ngành Công Nghệ Phần Mềm

Không riêng chỉ Việt Nam, ngành công nghệ phần mềm thế giới đang bước vào giai đoạn “khát người”, thế nhưng tại sao vẫn có những lập trình viên không thể vượt qua nổi vòng phỏng vấn đề tìm công việc phù hợp. Có phải chăng, kỹ năng phỏng vấn tìm việc của họ quá kém? Trong bài viết lần này, chúng ta sẽ cùng trò chuyện với Yaphi Berhanu, founder của Simple Steps Code , lắng nghe cô chia sẽ 7 mẹo đơn giản để giúp các lập trình viên ta sáng với bất cứ nhà tuyển dụng nào.

Phỏng vấn thật đáng sợ. Còn đáng sợ hơn khi đó là phỏng vấn ngành công nghệ phần mềm. Không có gì lạ khi bạn rơi vào cảnh đứng ngồi không yên trước ngày trọng đại đó. Nếu nhà tuyển dụng hỏi một cái gì đó mình không biết thì sao nhỉ? Nếu mình trả lời sai câu hỏi thì sao? Vâng và sẽ có hàng trăm câu hỏi tại sao khiến bạn lo lắng xuất hiện liên tục.

Tin tốt cho bạn đây, tôi ở đây là để bạn giải quyết tất cả những vấn đề đó.

Mặc dù những lời khuyên trong bài viết này không thể thay thế kiến thức chuyên ngành mà bạn đang có, nhưng nó có thể giúp bạn trở nên khác biệt với các ứng viên còn lại, bảo vệ bạn khỏi những câu hỏi hóc búa khi bước vào cuộc chiến với nhà tuyển dụng.

Hãy trả lời các câu hỏi theo hướng tư duy mở rộng vấn đề

Khi đối đáp với nhà tuyển dụng, mọi người thường có xu hướng đưa ra đáp án về mặt kỹ thuật và không cần quan tâm, giải pháp đó có thể ảnh hưởng đến ai.

Đây là một sai lầm!

Ví dụ như một trường hợp sau: “Em hãy cho anh biết làm cách nào để tối ưu tốc độ của website?”

Trả lời A:

“Em sẽ nén hình ảnh để website có thể load hơn.”

Trả lời B:

“Em sẽ nén hình ảnh để làm cho trang web tải nhanh hơn. Điều này thực sự quan trọng vì người dùng sẽ thích các website load nhanh hơn thay vì ngồi chờ đợi, dẫn đến nhiều khả năng họ sẽ quay trở lại và sử dụng website cho lần tiếp theo. Điều đó ảnh hưởng trực tiếp đến doanh thu. ”

Cả hai câu trả lời đều chính xác, nhưng câu trả lời của B sẽ khiến nhà tuyển dụng ấn tượng hơn mặc dù xét về kiến thức, 2 cách giải quyết không có gì khác nhau. Vậy sự khác biệt là gì?

Câu trả lời của A đưa ra một giải pháp, trong khi B lại giải thích giải pháp nào sẽ ảnh hưởng như thế nào đến các vấn đề liên quan. Điều này gây ấn tượng đối với nhà tuyển dụng, cho thấy khả năng tư duy đa chiều với một vấn đề. Trong  câu trả lời của B, ứng viên đã thể hiện sự đồng cảm cho người sử dụng và tư duy chiến lược cho việc kinh doanh. Không tệ một chút nào!

Thế nên mỗi khi ngồi vào bàn đối đáp với nhà tuyển dụng, hãy luôn nhớ một điều: ”Câu trả lời bạn sắp đưa ra, sẽ ảnh hưởng đến ai? Người dùng, dự án hay là các đồng đội trong đội”.

Tên biến đôi khi sẽ quyết định bạn là ai

Trong một buổi coding interview, bạn sẽ được đặt tên cho các biến JavaScript, các lớp CSS hoặc bất cứ thứ gì khác mà bạn có thể đặt tên. Lúc đầu, để tiết kiệm được thời gian, chắc bạn thường bắt đầu bằng tên “se” thay vì “submitEmail” chẳng hạn, nhưng điều này có nghĩa là bạn sẽ lãng phí nhiều thời gian hơn để theo dõi xem “se” có nghĩa là gì sau này.

Tại sao bạn lại đặt tên biến rõ ràng ư, và đây là lý do:

  • Đặt tên biến rõ ràng giúp bạn dễ dàng theo dõi mọi thứ. Điều này kích thích trí nhớ để làm việc trên một vấn đề thay vì ghi nhớ một loạt các chữ viết tắt.
  • Mặt khác, nó sẽ hỗ trợ gián tiếp đến việc phỏng vấn của bạn, giúp các nhà tuyển dụng dễ quan sát cách bạn đang tư duy.
  • Những cái tên đơn giản và dễ hiểu một phần sẽ thể hiệu code bạn viết ra trong tương lai dễ dàng review, điều này rất quan trọng đối với một team có nhiều người cùng làm việc trên cùng một codebase. Thế nên đừng ngần ngại mất thời gian cho nó nhé, hãy sử dụng nó thông minh như công cụ gây ấn tượng với các nhà tuyển dụng.

Đừng quá vội vàng trả lời bất cứ câu hỏi nào

Trong các cuộc phỏng vấn, có quá nhiều bạn thường nhảy thẳng vào câu trả lời mà không cần nhìn nhận lại đánh giá tình hình. Cách tiếp cận này khiến họ bị đi lạc vấn đề. Thay vào đó, tại sao bạn không thử tự đặt ra các câu hỏi liên quan đến vấn đề mà nhà tuyển dụng đưa ra:

  • Bạn đang có những thông tin gì?
  • Thông tin này còn thiếu những gì?
  • Bạn có thể tự vẽ  sơ đồ đơn giản hóa vấn đề này được không?

Bên cạnh đó, việc suy nghĩ kỹ trước khi trả lời bất cứ câu hỏi nào của nha tuyển dụng sẽ:

  • Bạn sẽ thu hẹp chính xác những vấn đề mà bạn cần giải quyết, không đi lạc đề.
  • Người phỏng vấn sẽ có thể theo dõi quá trình suy nghĩ của bạn.
  • Khoảng trống trong thông tin sẽ tự lộ ra, giúp bạn dễ dàng nhìn nhận vấn đề.
  • Điều này sẽ cho bạn thời gian để suy nghĩ và giúp bạn cảm thấy tự tin hơn.

Nếu bạn không biết rõ câu trả lời, hãy mạnh dạng chia sẻ cách bạn tìm hiểu chúng

Đôi khi, bạn sẽ gặp một câu hỏi mà bạn không chắc chắn làm thế nào để trả lời. Đừng quá lo lắng, đây cũng là cơ hội để thể hiện cách giải quyết vấn đề tương tự trong tương lai: Cách bạn chạy theo một công nghệ mới.

Bắt đầu với những gì bạn biết, và thu hẹp những phần bị thiếu càng nhiều càng tốt. Sau đó, bạn có thể thảo luận các cụm từ tìm kiếm cụ thể và tài liệu tham khảo bạn có thể sử dụng. Ví dụ: nếu bạn không chắc chắn về sự khác biệt giữa “substr” và “substring” trong JavaScript, bạn có thể nói về cách bạn nhìn chúng trong MDN.

Tiếp theo, bạn có thể nói về những loại đoạn mã bạn đã viết cho các khái niệm thử nghiệm và trả lời các câu hỏi của riêng bạn. Ví dụ: Nếu bạn không chắc chắn một vị trí CSS nào đó sẽ tìm kiếm, bạn sẽ viết mã gì để kiểm tra?

Bằng cách thảo luận cách bạn tìm thấy thông tin mới, bạn thực sự có thể gây ấn tượng với người phỏng vấn hơn bằng cách biết câu trả lời ngay. Công nghệ sẽ liên tục thay đổi từng giây, và vì vậy cách bạn học sẽ quan trọng hơn những gì bạn biết.

Đặt vấn đề với Input

Xác nhận Input có nghĩa là đảm bảo đầu vào là những gì bạn mong đợi. Ví dụ: nếu một mẫu yêu cầu tuổi của ai đó, bạn có thể xác nhận input bằng cách kiểm tra xem nó có chứa các con số chứ không phải chữ cái.

Một điều rất đơn giản nhưng các ưng viên lại hay bỏ qua. Hãy luôn kiểm tra xem input có NULL, empty, positive, etc. Và đừng bao giờ tự nhủ rằng bạn được cho một valid param.

Hơn nữa, khi bạn muốn test phương pháp của mình, hãy dùng một số input “quái quái” tí để coi kết quả như thế nào. Hãy bảo đảm phương pháp của bạn đủ mạnh mẽ để xử lí hết tất cả mọi trường hợp được đặt ra.

Tránh mất thời gian vào việc define các function không quan trọng

Một điều thường gặp ở các ứng viên là họ hay đặt quá nhiều thời gian vào việc define các function một cách không cần thiết. Tuy nhiên, nó sẽ chỉ khiến mọi thứ càng trở nên rắc rối và tốn thời gian hơn.

Đa phần các câu hỏi sẽ không đòi hỏi ta phải define quá 2 function và chỉ những function phụ không cần thiết thường nằm trong 3 trường hợp sau:

  • Utility function hay swap function
  • Được dùng nhiều lần, thế thì bạn nên chỉ viết một lần thôi
  • Nó nằm ở một phần khác so với function chính

Thay vì dừng lại ở mỗi câu hỏi, bạn có cách ghi điểm ngay lập tức trong khi cần thời gian để suy nghĩ. Cách tiếp cận này cũng giúp tạo ra sự thoải mái khi nói chuyện qua quá trình suy nghĩ của bạn.

Không phải mọi câu hỏi sẽ có cơ hội xác nhận input, nhưng đối với những câu hỏi có thể làm, đừng quên đề cập đến nó.

Đặt câu hỏi thay cho câu trả lời

Giả sử một câu hỏi hoàn toàn làm khó bạn. Bạn đã gạch ra tất cả thông tin, tìm thấy khoảng trống, vẽ sơ đồ và bạn cũng đã nói về cách bạn tìm thấy một số thông tin còn thiếu nhưng vẫn không đủ.

Đây là thời điểm tuyệt vời để đặt một câu hỏi.

Bằng cách yêu cầu trợ giúp khi bạn bị mắc kẹt, bạn cũng cho thấy rằng bạn sẵn sàng học hỏi và sẵn sàng chấp nhận khi bạn không biết điều gì đó. Điều này tạo ra một tâm trạng hợp tác, nó giúp cho nhà tuyển dụng dễ dàng hình dung rõ cách bạn làm việc nhóm. Nó cũng nói những điều tốt về tính cách của bạn.

Hãy đặt câu hỏi để làm rõ vấn đề nhà tuyên dụng yêu ra, khi bạn đã có đủ thông tin nhưng vẫn chưa giải thích rỏ được nó. Đừng lãng phí thời gian cố gắng suy nghĩ hoặc trả lời sai một cách mù quán. Bạn không phải thiên tài và phải trả lời được tất cả, đôi khi, những câu hỏi đó đang ẩn chứa mẹo của nhà tuyển dụng thì sao?

Mở đầu buổi phỏng vấn bằng những câu chuyện

Rất nhiều ứng viên im lặng khi đang coding, đó là điều không nên mặc dù đúng là bình thường ta không nói chuyện khi code. Ý tưởng ở đây là tranh thủ thời gian viết code để trò chuyện với người phỏng vấn vốn rất có lợi cho bạn.

Trước tiên, nó giúp cho họ hiểu rõ hơn về code của bạn. Khá nhiều người cho rằng code của họ dễ đọc, tuy nhiên sự thật đôi khi nó chỉ dễ đối với họ thôi. Vì thế khi bạn trao đổi với người phỏng vấn, họ sẽ hiểu rõ cũng như có thiện cảm với bạn.

Mặc khác, người phỏng vấn sẽ đưa ra hint và gợi ý giúp bạn. Nghe có vẻ khó tin đúng không nhưng thật sự là phần lớn người phỏng vấn luôn muốn bạn thành công. Vì thế mà thỉnh thoảng họ sẽ đưa ra tip khi bạn bị bí. Do vậy mà nếu bạn chịu khó giao tiếp thì họ sẽ hiểu được tiến độ cũng như khả năng của bạn. Tuy nhiên, một lập trình viên im lặng sẽ không thể nào có cơ hội cải thiện sửa chữa sau 20 phút cặm cụi làm.

Việc vừa giao tiếp vừa code còn giúp bạn biết được mình đang làm gì. Bởi đôi khi chúng ta vì bị tinh thần chưa vững nên khi bị mắc kẹt dễ gây mất bình tĩnh. Thế nên nói chuyện giao tiếp sẽ giúp bản thân chính bạn hiểu thêm về vấn đề cũng nhưng phương hướng của mình.

Mặt khác, bạn sẽ dễ dàng gây ấn tượng với nhà tuyển dụng bằng qua các câu chuyện, khi thể hiện mình là một người dày dạn kinh nghiệm với công việc tương tự ở nơi khác và bạn sẵn sàng đảm nhận vị trí hiện tại.

Phần kết luận

Một trong những nguyên nhân chính khiến phỏng vấn trở nên đáng sợ là chúng ta không thể lường trước được những gì sắp xảy ra.

Cách tốt nhất để vượt qua cuộc chiến này là tập trung vào những điều bạn có thể kiểm soát chúng.

Bất cứ khi nào có thể, hãy cho thấy bạn đang nghĩ đến người dùng, công ty, doanh thu và cả dự án. Nó sẽ khiến bạn trở nên nổi bật, một người rất có tâm với công việc tương lai.

Nếu bạn mắc kẹt trong những câu hỏi, hãy bình tĩnh và bắt đầu lại bằng cách trả lời qua những gì bạn đã biết. Sau đó xác định khoảng trống, những thông tin còn thiếu, đặt câu hỏi ngược trở lại với nhà tuyển dụng sau khi cho nhà tuyển dụng biết, bạn sẽ sử lý vấn đề mà bản thân không biết như thế nào.

Với những lời khuyên này, tôi hy vọng bạn sẽ có thể bước vào cuộc phỏng vấn tiếp theo với sự tự tin. Và quan trọng hơn, kiến thức technical sẽ luôn quan trọng hơn bất cứ mẹo nào.

Hãy luôn nhớ rằng người phỏng vấn sẽ copy code của bạn và gửi lên cho sếp xem. Vì thế mà cách bạn viết code rất quan trọng, mang tính quyết định cho kết quả của buổi phỏng vấn.

Theo topitworks.com/ interview.vn

----------------------------

Hợp Tác Cùng YBOX.VN Truyền Thông Miễn Phí - Trả Phí Theo Yêu Cầu tại http://bit.ly/YBOX-Partnership

2,055 lượt xem