Chia sẻ kinh nghiệm phỏng vấn để nhận offer từ hơn 20 công ty lớn
Lời giới thiệu: Chia sẻ kinh nghiệm phỏng vấn rất thực tế!
Địa chỉ bài gốc: https://mp.weixin.qq.com/s/HXKg6-H0kGUU2OA1DS43Bw
Đột nhiên nhớ lại những năm đó, trong đợt tuyển dụng mùa thu, tôi cũng đã nhận được hơn 20 offer từ các công ty Internet lớn. Giờ nghĩ lại vẫn hơi bùi ngùi, dù nhận được nhiều đến đâu cũng chỉ có thể chọn một nơi. Tuy nhiên, nhiều người bạn muốn tôi chia sẻ phương pháp phỏng vấn công ty Internet, hôm nay tôi sẽ nói kỹ với mọi người về cách thực hiện!
Hiện nay mùa tuyển dụng tháng 9-10 đã qua, trên chiến trường tìm việc đầy khói lửa chỉ còn lại từng người thất bại. Trong những ngày này, lại phải rèn luyện từ đầu, luôn sẵn sàng cho mùa tuyển dụng tháng 3-4 năm sau.
Với sinh viên chưa tốt nghiệp, tháng 3-4 năm sau là cơ hội tuyển dụng mùa xuân, tuyển bổ sung hoặc thực tập; với những người dày dạn nơi công sở, tháng 3-4 năm sau cũng là lúc nhận xong thưởng cuối năm và chuẩn bị nghỉ việc.
Vì vậy, trong khoảng thời gian này cần chuẩn bị và tích lũy kỹ phương pháp, kinh nghiệm phỏng vấn, đặt nền tảng cho đợt tiến công năm sau. Bài viết này sẽ trình bày cách lập trình viên chuẩn bị tốt cho phỏng vấn kỹ thuật.
Thông thường, tuyển dụng vị trí kỹ thuật tại các công ty Internet sẽ có 3 ~ 4 vòng phỏng vấn, một số vị trí có HC ít có thể trải qua 5 ~ 8 vòng hoặc hơn. Ngoài ra, tùy tình hình công ty, trước phỏng vấn có thể còn có một vòng thi viết tương ứng.
Nhiều vòng phỏng vấn bao gồm technical interview và HR interview. Xét toàn bộ quy trình tuyển dụng, technical interview có tính quyết định hơn; HR interview chủ yếu xác nhận thông tin cơ bản và tố chất nghề nghiệp của ứng viên.
Tuy nhiên, ở một số công ty lớn, HR cũng có quyền phủ quyết, vì vậy cần chuẩn bị và ứng phó tốt với từng vòng phỏng vấn. Technical interview thường có thể chia thành năm phần:
- Hai bên tự giới thiệu
- Kinh nghiệm dự án
- Kiểm tra kiến thức chuyên môn
- Kiểm tra coding ability
- Q&A của ứng viên
Hai bên tự giới thiệu
Phỏng vấn thường mở đầu bằng phần tự giới thiệu, nhiều khi một màn mở đầu mạch lạc, logic rõ ràng sẽ quyết định không khí và nhịp độ của toàn bộ buổi phỏng vấn.
Với tư cách ứng viên, bạn có thể cung cấp có chọn lọc một số thông tin mang tính định hướng trong phần tự giới thiệu, giúp interviewer khai thác điểm nổi bật và thế mạnh của mình.
Thực ra, tự giới thiệu không phải là lần lượt đọc qua những thông tin cơ bản cá nhân, mà là bản tóm lược hiệu quả về CV của bạn.
Thế nào là tóm lược hiệu quả? Điều đó có nghĩa là cần trích xuất và tổng hợp các keyword cốt lõi từ thông tin trong CV. Sau một đoạn giới thiệu, interviewer có thể hiểu tổng thể về bạn, từ đó được dẫn dắt để đặt câu hỏi liên quan.
Kinh nghiệm dự án
Kinh nghiệm dự án là một phần rất quan trọng trong quá trình phỏng vấn, đặc biệt là phỏng vấn người đã có kinh nghiệm. Thông thường, level càng cao thì càng coi trọng kinh nghiệm dự án.
Với ứng viên mới tốt nghiệp, một vài dự án có độ phù hợp cao với vị trí và tính hoàn chỉnh tốt có thể trở thành điểm sáng trong phỏng vấn, đồng thời là yếu tố then chốt quyết định việc nhận SP hoặc SSP.
Tuy nhiên, chuẩn bị tốt kinh nghiệm dự án không phải việc dễ dàng. Nhiều người không biết nên mô tả dự án của mình như thế nào, càng không biết làm sao thể hiện ưu thế và điểm nổi bật trong quá trình đó.
Dưới đây là một số gợi ý về kinh nghiệm dự án:
1. Mô tả hiệu quả và có tổ chức
Kinh nghiệm dự án thường là phần chiếm nhiều dung lượng nhất trong CV, vì vậy phần này cũng quan trọng không kém khi phỏng vấn. Khi trình bày, logic và sự mạch lạc của ngôn ngữ phải rõ ràng, để interviewer nhanh chóng nắm được tư duy tổng thể của dự án.
Có lẽ nhiều người từng nghe về các nguyên tắc viết CV như STAR, SMART. Trên thực tế, các nguyên tắc này đều có thể dùng để chuẩn hóa logic diễn đạt của bạn.
Nguyên tắc STAR tương đối đơn giản, rất hiệu quả để giữ sự mạch lạc trong quá trình phỏng vấn. STAR gồm Situation, Target, Action, Result. Cách phân chia logic này nhìn chung giống với viết luận và viết tài liệu.
Situation: tức bối cảnh dự án, cần trình bày rõ lý do dự án được đề xuất, hiện trạng và điểm xuất phát. Nói đơn giản, cần mô tả rõ nguồn gốc và diễn biến của dự án. Ví dụ, lý do xây dựng một nền tảng nào đó có thể là để giải quyết một pain point cụ thể của người dùng.Target: tức mục tiêu dự án, mô tả mức độ dự kiến đạt được hoặc hoàn thành. Tốt nhất nên có chỉ số có thể định lượng và kết quả dự kiến. Ví dụ như chỉ số tối ưu performance, lợi ích nghiệp vụ do tối ưu architecture mang lại.Action: tức phương pháp và giải pháp, thể hiện các hành động triển khai cụ thể để hoàn thành dự án. Đây là phần quan trọng nhất trong technical interview, cũng là cơ sở thể hiện năng lực của ứng viên. Phương pháp hoặc giải pháp của dự án có thể bắt đầu từ technology stack, nêu cụ thể các vấn đề đã giải quyết dựa trên những technical point được áp dụng. Ví dụ đã dùng framework hoặc technology nào để thực hiện architecture, optimization hay design nào, giải quyết vấn đề gì trong dự án.Result: tức kết quả dự án đạt được, bạn có thể trình bày suy nghĩ và nhìn nhận sau khi trải qua dự án. Điều này sẽ khiến interviewer cảm nhận được sự trưởng thành và tích lũy của bạn, thuyết phục hơn việc chỉ nêu kết quả.
2. Chuẩn bị đầy đủ các điểm nổi bật của dự án
Nói thật, phần lớn mọi người không có dự án thực sự nổi bật, nhưng điều đó không có nghĩa là dự án không có điểm sáng, đặc biệt là khi phỏng vấn.
Trong phỏng vấn, bạn có thể làm nổi bật dự án bằng sự chuẩn bị đầy đủ và suy nghĩ sâu sắc. Chẳng hạn, có thể bắt đầu từ các hướng sau:
- Hiểu đầy đủ business logic và technical architecture của dự án
- Nắm rõ architecture tổng thể và các design then chốt của dự án
- Biết rõ business architecture hoặc technology solution được lựa chọn như thế nào và logic quyết định là gì
- Nắm vững các component và framework liên quan trong dự án
- Nắm rõ giải pháp cho những vấn đề khó hoặc bug tồn đọng lâu dài trong dự án
- …
Kiểm tra kiến thức chuyên môn
Interviewer có kinh nghiệm thường vừa truy hỏi kỹ về kinh nghiệm dự án, vừa kiểm tra kiến thức chuyên môn của bạn.
Với lập trình viên, kiến thức chuyên môn chính là knowledge graph về máy tính của vị trí mục tiêu. Với ứng viên mới tốt nghiệp, phần lớn là kiến thức nền tảng máy tính; còn với người đã có kinh nghiệm, phần lớn có thể là skill tree tương ứng với vị trí.
Kiến thức nền tảng máy tính chủ yếu gồm computer network, operating system, programming language..., cũng chính là các câu trả lời khuôn mẫu thường được học thuộc. Dù những thứ này có thể không được dùng nhiều trong công việc thực tế, chúng vẫn là tiêu chuẩn để interviewer đánh giá tiềm năng của ứng viên.
Còn skill tree của vị trí cần được phân chia theo từng vị trí cụ thể, chẳng hạn vị trí client có thể hỏi về hiểu biết đối với mobile operating system, client-side performance optimization, client architecture và cross-platform framework. Vị trí liên quan đến livestream hoặc video còn có thể hỏi kiến thức về audio/video processing, communication và các nội dung liên quan.
Còn vị trí backend có thể thiên về high-availability architecture, transaction theory, distributed middleware và một số tư duy design architecture theo hướng service-oriented, asynchronous, high availability và scalability.
Tóm lại, kinh nghiệm làm việc càng phong phú thì câu hỏi kỹ thuật dành cho vị trí cũng càng đi sâu.
Về cách chuẩn bị những technical point này trước phỏng vấn, ở đây tôi không nói quá nhiều, vì đã có nhiều lộ trình học trình bày rất rõ.
Ở đây tôi chỉ nói về cách diễn đạt và trình bày rõ ràng hơn khi ứng phó với phỏng vấn.
Dưới đây là một số gợi ý về việc kiểm tra kiến thức chuyên môn:
1. Xây dựng trước một knowledge graph về kiến thức kỹ thuật
Trước phỏng vấn, bạn có thể tóm tắt đơn giản những knowledge point mình tương đối quen thuộc, đồng thời vẽ một sơ đồ đơn giản theo các hướng và lĩnh vực khác nhau. Việc này giúp bạn mở rộng và liên hệ hợp lý trong phỏng vấn.
Một buổi phỏng vấn chỉ theo hình thức interviewer hỏi, ứng viên trả lời thường tạo trải nghiệm không tốt. Vì vậy, khi trả lời technical point, hãy biết tận dụng knowledge graph sẵn có để mở rộng bề rộng kỹ thuật và đào sâu chiều sâu kỹ thuật. Một mặt, điều này có thể dẫn dắt interviewer đặt câu hỏi theo hướng bạn am hiểu; mặt khác, giúp thể hiện càng nhiều điểm nổi bật của bạn càng tốt.
2. Kết hợp kinh nghiệm cụ thể để tổng kết và hiểu vấn đề
Bản thân technical point thường rất khô cứng, nhưng nếu có thể kết hợp những technical point cứng nhắc với case cụ thể khi trình bày, bạn sẽ tạo được ấn tượng tốt. Đồng thời, điều đó cũng cho thấy bạn thực sự hiểu knowledge point đó.
Hiện nay trên mạng có đủ loại tài liệu phỏng vấn, có thể bạn chỉ cần học thuộc câu hỏi là đã ứng phó được với câu hỏi của interviewer. Nhưng interviewer cũng biết rõ điều này, nên họ có thể dễ dàng nhận ra bạn có đang học thuộc câu trả lời hay không.
Vì vậy, giải thích và trình bày vấn đề bằng kinh nghiệm cụ thể là cách hiệu quả để tránh bị hiểu nhầm là học thuộc câu hỏi. Có người sẽ hỏi: vậy tìm kinh nghiệm cụ thể ở đâu?
Điều này phụ thuộc vào sự tích lũy thường ngày. Bạn cần tích lũy và đúc kết thường xuyên, đọc nhiều nội dung technical output khác nhau từ các công ty lớn. Kinh nghiệm không nhất thiết phải là của chính bạn, cũng có thể được tổng kết từ những nguồn khác.
Ngoài ra, bạn cũng có thể kết hợp kinh nghiệm technology selection trong quá trình làm dự án và quá trình cập nhật, lặp lại các technology solution để liên kết, tổng hợp và trình bày.
Kiểm tra coding ability
Kiểm tra coding ability chính là việc tự tay viết code như cách nói quen thuộc, cũng là phần khiến nhiều bạn sợ nhất. Nhiều người cho rằng kết quả phỏng vấn phụ thuộc vào thể hiện khi tự tay viết code, nhưng thực ra không nhất thiết như vậy.
Trước hết cần xác định rõ: coding ability không hoàn toàn đồng nghĩa với algorithm ability. Nhiều bạn viết được algorithm problem trong phỏng vấn, nhưng đánh giá cuối cùng lại là coding ability chỉ ở mức trung bình. Cũng có nhiều bạn không thể vượt qua algorithm problem trong phỏng vấn, nhưng interviewer lại cho rằng coding ability của họ khá tốt.
Vì vậy nhất định phải phân biệt rõ điểm này: coding ability không hoàn toàn đồng nghĩa với algorithm ability. Xét từ phía công ty, nếu chỉ đơn thuần ra algorithm problem có độ khó cao để sàng lọc ứng viên thì không có ý nghĩa. Vì ai cũng biết, sau khi vào công ty, có thể làm việc vài năm mà vẫn không viết được mấy algorithm.
Hãy nhớ rằng làm algorithm problem chỉ là một cách để kiểm tra coding ability và tư duy logic.
Tất nhiên, khi chuẩn bị cho phần phỏng vấn này, chắc chắn vẫn phải luyện algorithm problem, nhưng không nên mù quáng theo đuổi độ khó, càng không nên học thuộc lòng.
Một số gợi ý khi phỏng vấn:
1. Data structure và tư duy algorithm là nền tảng
Bản thân algorithm thực chất là sản phẩm của tư duy logic, vì vậy nắm vững tư duy algorithm có ý nghĩa hơn việc biết giải một bài cụ thể. Data structure là công cụ hỗ trợ triển khai algorithm, đồng thời cũng là năng lực lập trình cơ bản. Vì vậy, mức độ thành thạo cả hai là nền tảng của việc tự tay viết code.
2. Đừng xem nhẹ coding convention
Điều này nhắc mọi người rằng ngay cả một algorithm problem rất đơn giản cũng có thể cho thấy coding ability của bạn. Điều đó thường thể hiện qua một số coding convention cơ bản. Bạn nói mình có 3 năm kinh nghiệm lập trình, nhưng lại không biết đóng gói function và bảo vệ type cơ bản, vậy làm sao khiến người khác tin được?
3. Giao tiếp rất quan trọng
Việc tự tay viết code tuyệt đối không phải là một kỳ thi đóng sách, mà là một quá trình trao đổi lẫn nhau. Như đã nói ở trên, kiểm tra algorithm cũng nhằm kiểm tra tư duy logic. Vì vậy, để interviewer biết cách bạn suy nghĩ và logic của bạn còn quan trọng hơn việc bạn viết đáp án trực tiếp.
Không chỉ vậy, trao đổi rõ hướng suy nghĩ từ trước, kịp thời hỏi khi đề bài chưa rõ cũng là cơ hội tiết kiệm thời gian cho cả hai bên và tạo ấn tượng tốt với interviewer.
Ngoài ra, code do mình viết nhất định phải chịu được việc xem xét và chất vấn, đồng thời bản thân bạn phải giải thích rõ được. Đây cũng là điểm phân biệt giữa «học thuộc câu hỏi» và «thực sự biết làm».
Cuối cùng, nếu thực sự không viết được code, bạn vẫn có thể trình bày cách suy nghĩ của mình ở mức phù hợp và trao đổi, thảo luận với interviewer. Dù sao phỏng vấn cũng là một quá trình học hỏi.
Q&A của ứng viên
Thông thường sẽ có phần ứng viên hỏi ngược. Nếu không có, có thể là họ muốn bạn về nhà chờ tin.
Phần hỏi ngược thực ra cũng có thể là một phần quan trọng trong phỏng vấn, vì lúc này bạn có thể nhận được từ interviewer những thông tin cụ thể và chân thực hơn về công ty và vị trí.
Những thông tin này có thể giúp chúng ta đưa ra quyết định toàn diện và lý trí hơn, vì tìm việc cũng là một quá trình lựa chọn hai chiều.
Điểm cộng
Cuối cùng, đây là một món quà dành cho những bạn kiên trì đọc đến cuối. Hãy cùng nói về các điểm cộng trong phỏng vấn.
Nhiều bạn cảm thấy mình đã trả lời được mọi câu hỏi trong phỏng vấn, nhưng cuối cùng lại không vượt qua, hoặc đánh giá phỏng vấn không cao. Rất có thể trong quá trình phỏng vấn bạn thiếu điểm nổi bật; có thể bạn không tệ, nhưng lại chưa có điều gì khiến interviewer ấn tượng.
Thông thường, interviewer sẽ xem xét điểm nổi bật của ứng viên từ các khía cạnh sau:
1. Giao tiếp
Phỏng vấn dù sao cũng là nghệ thuật hỏi đáp và diễn đạt, vì vậy cách trình bày lưu loát, tư duy rõ ràng và mạch lạc đương nhiên có thể tăng thiện cảm của interviewer dành cho bạn. Nếu còn có tư duy suy một ra ba, điều đó cũng có thể gián tiếp chứng minh tiềm năng của bạn.
2. Độ phù hợp
Điều này không cần bàn cãi, nhưng lại rất dễ bị xem nhẹ. Vì mọi người thường cho rằng những người có độ phù hợp thấp đã bị loại ở vòng sàng lọc CV. Nhưng thực tế, trong quá trình phỏng vấn, interviewer cũng sẽ đánh giá độ phù hợp giữa ứng viên và vị trí.
Độ phù hợp này liên quan chặt chẽ đến kinh nghiệm làm việc, có mối liên hệ lớn với nghiệp vụ và kỹ thuật từng làm trước đây. Đặc biệt là các vị trí kỹ thuật trong một số lĩnh vực dọc như tài chính, nguồn vốn, audio/video...
Vì vậy, nếu trong phỏng vấn có kinh nghiệm và dự án phù hợp cao với vị trí mục tiêu, hãy tập trung giới thiệu chi tiết.
3. Thành tích tốt và tư duy vượt ra ngoài vị trí
Điều này có thể gặp mà không thể cưỡng cầu, vì không phải ai cũng có thành tích tốt để rồi chuyển việc. Tuy nhiên, thành tích tốt từ công việc trước đây và vai trò nòng cốt trong các dự án quan trọng sẽ giúp kinh nghiệm của bạn được cộng điểm.
Đồng thời, nếu có thể thể hiện trong phỏng vấn năng lực vượt ra ngoài bản thân vị trí, bạn càng dễ thu hút sự chú ý của interviewer. Chẳng hạn có một tầm nhìn kỹ thuật nhất định, năng lực planning tốt hoặc hiểu biết tương đối sâu về hướng nghiệp vụ. Tất cả đều có thể trở thành điểm nổi bật.
4. Chiều sâu hoặc bề rộng kỹ thuật
Có lẽ nhiều người từng nghe nói nhân tài được chào đón nhất nơi công sở là nhân tài dạng T. Tức là trên nền tảng có một độ rộng kỹ thuật nhất định, họ rất nổi bật trong lĩnh vực sở trường. Những nhân tài như vậy thực sự không nhiều, vừa phải đảm nhiệm tốt công việc hiện tại, vừa có thể học hỏi và tạo output kiến thức ở các lĩnh vực khác mà không tự đặt giới hạn.
Ngoài ra, nhân tài dạng π còn hiếm hơn nhân tài dạng T; so với nhân tài dạng T, họ có nhiều hơn một lĩnh vực nổi trội. Những nhân tài như vậy càng là nguồn lực được các công ty tranh giành.
Tổng kết
Phỏng vấn tuy là quá trình đánh giá và sàng lọc nhân tài, nhưng suy cho cùng vẫn là cách con người giao tiếp với nhau và thể hiện bản thân. Vì vậy, nắm được kỹ năng phỏng vấn hiệu quả cũng là một công cụ giúp bạn đạt được nhiều hơn.
Bài viết này thực ra nói về phương pháp luận. Nhiều «đạo lý» nhìn qua là hiểu nhưng khi thực hiện có thể rất khó. Bạn có thể gặp một interviewer không hành xử theo lẽ thường, cũng có thể gặp một interviewer khó giao tiếp, và đương nhiên cũng có thể gặp một vị trí không thực sự phù hợp.
Tóm lại, để giành được điều mình mong muốn, chuẩn bị đầy đủ luôn không có hại. Chúc mọi người trở thành nhân tài dạng π và nhận được offer mình mong muốn!
Lời cuối
Nếu nội dung hữu ích với bạn, hãy tiện tay tặng JavaGuide một Star miễn phí để ủng hộ: GitHub | Gitee.
JavaGuide đã được duy trì gần bảy năm, tích lũy 6100+ commit, với sự chung tay hoàn thiện của 620+ contributor. Star, phản hồi và PR của bạn đều là động lực để dự án tiếp tục cập nhật.
Nếu bạn đang chuẩn bị phỏng vấn backend / phát triển ứng dụng AI, có thể tham khảo Knowledge Planet của tôi, bao gồm các project thực tế về backend và AI, tối ưu CV, hỏi đáp 1-1 và tài liệu về các trọng điểm thường gặp, đã được duy trì liên tục sáu năm.
