JavaRush /Blog Java /Random-VI /Nhào lộn trên không trong một cuộc phỏng vấn kỹ thuật: cá...

Nhào lộn trên không trong một cuộc phỏng vấn kỹ thuật: cách tôi gia nhập Google, Microsoft, v.v.

Xuất bản trong nhóm
Bản dịch và chuyển thể của bài viết Cuộc phỏng vấn kỹ thuật của Ace: Điều gì đã đưa tôi vào Google, Microsoft và hơn thế nữa trong cộng đồng Khởi nghiệp trên Medium. Nhào lộn trên không trong một cuộc phỏng vấn kỹ thuật: làm thế nào tôi vào được Google, Microsoft và hơn thế nữa - 1Trước cuộc phỏng vấn thực tập đầu tiên, tôi không hề biết rằng những câu hỏi kỹ thuật cũng sẽ được hỏi. Tôi cho rằng sẽ chỉ có một loạt câu hỏi “hãy kể cho tôi nghe về bản thân bạn” đang chờ tôi. Tuy nhiên, tôi cũng chưa có sự chuẩn bị chu đáo cho chúng. Tôi đã dành hai giờ ở trung tâm hướng nghiệp để cố gắng nhận được những lời khuyên có giá trị từ mọi người và hai giờ nữa ở nhà để luyện tập câu trả lời cho nhiều câu hỏi khác nhau. Nhưng khi tôi đến phỏng vấn, người phỏng vấn lại không hỏi về điểm mạnh, điểm yếu của tôi. Thay vào đó, tôi được đưa cho một cây bút và yêu cầu lên bảng. Và tôi thậm chí còn không nghĩ rằng họ sẽ kiểm tra kỹ năng kỹ thuật của tôi trước! Điều này làm tôi ngạc nhiên. Tôi không biết làm thế nào để trả lời chính xác các câu hỏi và vài giờ sau tôi nhận được email với lời từ chối lịch sự. May mắn thay, sau sự việc này tôi đã có nhiều cuộc phỏng vấn thành công. Tôi đã tham dự 50 cuộc phỏng vấn kỹ thuật và đã chuẩn bị cho rất nhiều bạn bè của tôi những cuộc phỏng vấn đó. Cách tiếp cận của tôi có vẻ khá hiệu quả vì nó đã giúp tôi và những người khác thành công trong các cuộc phỏng vấn tại các công ty như Google, Microsoft, Apple, Amazon, v.v. Cá nhân tôi muốn giúp đỡ mọi người, nhưng đơn giản là không có đủ thời gian cho việc này. Điều tốt nhất tôi có thể làm là chia sẻ hướng dẫn từng bước về cách thực hiện thành công các cuộc phỏng vấn kỹ thuật. Tôi đã học được những gì có thể và không thể làm được trong những tình huống như vậy thông qua việc thử và sai. Vì vậy, đây là danh sách những lời khuyên hữu ích từ tôi mà tôi đã tổng hợp qua nhiều năm thực hành.

1. Đừng nhảy ngay vào các cuộc phỏng vấn thử nghiệm.

Mọi người thường khuyên nên thực hiện càng nhiều cuộc phỏng vấn thử càng tốt - và họ đã đúng. Nhưng nếu bạn không chuẩn bị, một cuộc phỏng vấn thử có thể không hiệu quả, đáng sợ và thậm chí khiến bạn mất tinh thần. Tôi có thể nói với bạn từ kinh nghiệm: nếu tôi phỏng vấn một người hoàn toàn không chuẩn bị trước khi thực hành, cuối cùng họ cảm thấy mất hứng thú vì họ “lơ lửng” trong các câu hỏi và trả lời không tốt lắm. Hãy dành thời gian để chuẩn bị tốt hơn và hiểu cuộc phỏng vấn kỹ thuật là như thế nào. Đây là một ví dụ điển hình về một cuộc phỏng vấn thử tại Google:

2. Kỹ năng giao tiếp > trình độ đào tạo kỹ thuật

Nhiều người chuẩn bị cho các cuộc phỏng vấn kỹ thuật bằng cách dành hàng giờ trên các trang như LeetCode và Hackerrank. Đây là những nền tảng tuyệt vời để thực hành. Nhưng tốt nhất bạn nên dành một chút thời gian nghỉ ngơi trước khi lãng phí hàng giờ đồng hồ vào việc giải quyết một cách bừa bãi những vấn đề mà bạn nghĩ mình sẽ gặp phải trong một cuộc phỏng vấn. Đây là một cách tiếp cận không hiệu quả: trong một cuộc phỏng vấn, bạn sẽ gặp ít nhất một câu hỏi mà bạn chưa từng thấy ở đâu trước đây. Một số người bạn của tôi có những lập trình viên giỏi hơn tôi và tôi thường ngạc nhiên tại sao tôi lại đạt thành tích cao trong các bài kiểm tra nền tảng kỹ thuật của mình trong khi họ (đôi khi) thì không. Điểm khác biệt lớn nhất giữa chúng tôi có lẽ là tôi đã dành nhiều thời gian để rèn luyện kỹ năng giao tiếp của mình. Nghiêm túc mà nói: biết cách giải quyết 100 nhiệm vụ kỹ thuật hàng đầu sẽ không giúp ích gì nếu bạn không thể giải thích rõ ràng logic giải pháp của mình. Điều rất quan trọng là học cách hình thành suy nghĩ. Lúc đầu, tất cả những điều này có vẻ khó khăn, vụng về và không tự nhiên, nhưng việc luyện tập sẽ giúp ích. Điều quan trọng là luôn cập nhật nền tảng kỹ thuật của bạn, nhưng việc phát triển kỹ năng giao tiếp của bạn có lẽ còn quan trọng hơn. Nếu bạn bị thúc ép về thời gian trước cuộc phỏng vấn sắp tới, tốt hơn hết bạn nên tập trung vào giao tiếp hơn là cố gắng làm lại tài liệu mà bạn đã dành hai năm học về khoa học máy tính trong hai ngày. Trước cuộc phỏng vấn kỹ thuật tiếp theo của bạn, hãy thử tìm hiểu điều này:

2.1 Học cách đặt câu hỏi làm rõ

Một trong những lợi ích chính của cuộc phỏng vấn là khả năng làm rõ câu hỏi mà bạn được hỏi. Thông thường những người thực hiện cuộc phỏng vấn không cung cấp tất cả thông tin cơ bản, vì vậy bạn phải trích xuất thêm thông tin chi tiết từ họ. Bạn không thể giải quyết vấn đề nếu không hiểu đầy đủ nó là gì! Để thực hành, bạn có thể lấy một số câu hỏi từ các cuộc phỏng vấn kỹ thuật và đưa ra một loạt câu hỏi làm rõ chúng. Ví dụ: nếu bạn được yêu cầu sắp xếp một danh sách, bạn có thể hỏi:
  • Làm cách nào để sắp xếp danh sách - theo thứ tự tăng dần hoặc giảm dần?
  • Danh sách chứa loại dữ liệu nào?
  • Bạn có thể đưa ra ví dụ về dữ liệu đầu vào và đầu ra sẽ trông như thế nào đối với loại tác vụ này không?
  • Vân vân.
Có thể còn nhiều câu hỏi nữa - đây chỉ là một vài ví dụ. Đảm bảo làm rõ các sắc thái khác nhau: Yêu cầu ví dụ về đầu vào và đầu ra
  • Chỉ định kiểu dữ liệu
  • Kiểm tra xem có bất kỳ hạn chế nào về phạm vi giá trị không
  • Hỏi xem bạn có phải giải quyết các trường hợp khó khăn không
  • Tìm hiểu xem bạn có thể sử dụng một số thư viện và tính năng nhất định của ngôn ngữ bạn đang lập trình không

2.2 Học cách bày tỏ suy nghĩ

Khi bạn đã hỏi tất cả các câu hỏi rõ ràng và biết chính xác những gì bạn cần để giải quyết vấn đề, đã đến lúc học cách truyền đạt bản chất của giải pháp một cách hợp lý. Nếu bạn bắt đầu chỉ viết mã mà không giải thích lý do tại sao bạn lại làm việc đó, người phỏng vấn sẽ khó xác định được bạn đúng hay sai. Bạn sẽ không nhận được điểm cho việc này, chưa kể đến việc bạn có thể viết sai giải pháp. Khi bạn giải thích logic đằng sau quyết định của mình, người phỏng vấn có thể chỉ cho bạn hướng đi đúng đắn nếu bạn đi chệch hướng một chút. Trước khi viết bất kỳ mã nào, hãy thử điều này:
  • Nói với người đối thoại về giải pháp khả thi của bạn - liệu bạn có thể giải quyết vấn đề một cách trực tiếp hay không và liệu nó có thể được cải thiện bằng cách nào đó không?
  • Xem xét giải pháp của bạn từng bước với một ví dụ để hiểu ý chính về cách thức hoạt động của nó.
  • Chia giải pháp thành nhiều bước và viết mã giả hoặc “bộ khung” để người phỏng vấn hiểu được quá trình suy nghĩ của bạn
  • Kiểm tra giải pháp của bạn với các trường hợp đặc biệt khác nhau để xem liệu bạn đã giải quyết được mọi thứ hay chưa. Hỏi ý kiến ​​của người phỏng vấn.
Để thực hành, hãy lấy một câu hỏi phỏng vấn đã được áp dụng và cố gắng đưa ra câu trả lời (giải pháp) đúng cho một người bạn. Nếu bạn không thể tìm được một người bạn, hãy lấy một con thú nhồi bông hoặc bất kỳ đồ vật nào khác và luyện tập với nó.

3. Nâng cao kiến ​​thức và kỹ năng kỹ thuật của bạn

Khi đã học được cách giao tiếp chính xác trong cuộc phỏng vấn, bạn có thể dồn toàn bộ sức lực để nâng cao kiến ​​thức kỹ thuật của mình. Hãy chắc chắn để cải thiện các thuật toán và cấu trúc dữ liệu. Đảm bảo bạn hiểu các chủ đề chính như cấu trúc dữ liệu, sắp xếp, làm việc với thuật toán, toán tử bitwise, ký hiệu Big O, v.v. Danh sách những điều bạn cần biết sẽ khác nhau tùy thuộc vào vị trí bạn đang ứng tuyển.

4. Luyện tập!

Bây giờ, khi đã nâng cấp các kỹ năng và kiến ​​​​thức cần thiết, bạn có thể dồn toàn bộ sức lực của mình vào thực hành.
Khóa học JavaRush chứa nhiều nhiệm vụ “câu đố” và toàn bộ dự án để tạo giải pháp ứng dụng.
Cố gắng không chỉ viết giải pháp mà còn suy nghĩ qua các bước: đặt câu hỏi làm rõ trong đầu, suy nghĩ kỹ về cấu trúc và chỉ sau đó viết giải pháp. Điều này sẽ giúp bạn cảm thấy tự tin hơn trong cuộc phỏng vấn, và sự tự tin là điều quan trọng nhất!

5. Phải làm gì nếu bạn “đứng hình” khi phỏng vấn?

Bây giờ hãy tưởng tượng rằng bạn đang bước vào một cuộc phỏng vấn thực sự và chợt nhận ra rằng câu hỏi đó đã khiến bạn bối rối. Bạn không biết cần phải làm gì và làm thế nào để giải quyết vấn đề. Bạn chỉ muốn chạy ra khỏi phòng và không quay lại. Tôi hiểu - tôi đã từng rơi vào những tình huống mà tôi vẫn mơ thấy trong ác mộng. Nhưng đừng lo lắng—tất cả hy vọng vẫn chưa mất đi. Điều này đã xảy ra nhiều lần trong các cuộc phỏng vấn, nhưng chúng thường kết thúc bằng một lời đề nghị. Thật khó khăn, nó khiến bạn lo lắng, nhưng mọi thứ đều có thể xảy ra. Hãy nghỉ ngơi và suy nghĩ. Hãy hít thở, sắp xếp suy nghĩ của bạn theo thứ tự. Có lẽ bạn sẽ có “manh mối”. Kiểm tra giải pháp của bạn bằng một ví dụ đơn giản. Cố gắng tạo một phiên bản đơn giản hóa của giải pháp cho một vấn đề tương tự nhưng đơn giản hơn, chú ý đến các hành động từng bước. Ví dụ, nếu bạn cần sắp xếp một danh sách, bạn sẽ làm gì? Bạn tìm số nhỏ nhất và đặt nó ở đầu. Bạn sẽ triển khai giải pháp này bằng mã như thế nào? Hãy cho chúng tôi biết về một giải pháp riêng tư. Nếu một giải pháp đầy đủ không xuất hiện thì cũng không sao. Hãy nói với người phỏng vấn điều này nhưng cũng để họ suy nghĩ thêm. Thử thách này có giống với bất kỳ thử thách nào bạn từng gặp phải không? Có vẻ như bạn cần sử dụng cấu trúc dữ liệu cụ thể để giải quyết nó? Chia sẻ logic hướng dẫn bạn. Hãy trung thực. Nếu bạn chắc chắn rằng câu hỏi bạn được hỏi là từ một lĩnh vực kiến ​​thức xa lạ với bạn, hãy nói với người phỏng vấn về điều đó. Nói rằng bạn đã sẵn sàng tìm kiếm giải pháp nhưng bạn chưa có những kỹ năng cần thiết. Có lần tôi được hỏi một câu hỏi liên quan đến an ninh mạng. Vào thời điểm đó, tôi chưa có kinh nghiệm trong lĩnh vực này và tôi đã kể với những người phỏng vấn về điều này. Họ giải thích cho tôi những điều cơ bản cần thiết để tôi có thể hoàn thành nhiệm vụ. Bạn sẽ được phỏng vấn bởi những người thực sự :) Họ hoàn toàn hiểu bạn, vì bản thân họ cũng từng rơi vào hoàn cảnh tương tự. Đây là tất cả những lời khuyên mà tôi đã phát triển qua nhiều năm phỏng vấn. Họ đã giúp tôi và bạn bè tôi vào được các công ty hàng đầu. Chúc may mắn tìm kiếm!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION