Nguồn: Sưu tầm từ internet via Giaosucan
Trước đây, mình hay đi phỏng vấn ứng viên, làm đề bài test để kiểm tra năng lực ứng viên. Nhưng giờ cũng đến lúc phải lên thớt, trở thành candidate, để người khác check hàng. Tuy nhiên, lần này là người check là một công ty ở Sillicon Valley.
Khách hàng là một unicorn (công ty vốn hóa tỉ đô) ở Sillicon Valley, vị trí cần tuyển là Back End engineer, ngôn ngữ lập trình là Java. Được biết phỏng vấn sẽ gồm 3 vòng. Vòng 1 làm bài Test, vòng 2 kiểm tra communication skill, khả năng leader ship, hiểu biết về process Scrum, vòng 3 check kiến thức kĩ thuật, khả năng design, problem solving.
Vì đã có 1 vài thanh niên tạch luôn từ vòng gửi xe, nên mình quyết định xin được thử, coi như là một cơ hội học hỏi và thử thách bản thân.
Mấy năm rồi không còn sờ tới Java, chủ yếu làm mảng DevOps, Blockchain toàn code python, nodeJS là chính. Cái cert Java professional thi xong vứt xó, nên mấy ngày phải giở sách ra ôn lại, y chang như thi đại học
Bài Test là một list câu hỏi về lập trình Java, SQL, thuật toán yêu cầu trả lời dưới hình thức tự luận ví dụ như
Thực tế thì mình nhận thấy bài Test cũng không đến nỗi quá khó, nếu như có kiến thức tương đối vững về Java, SQL database thì có thể vượt qua. Ví dụ như StringBuilder và StringBuffer thì sự khác biệt rõ nhất là StringBuffer là thread safe và synchronized còn StringBuilder thì không
Anyway, vòng gửi xe qua được
Vòng 2 mục đích chính là muốn kiểm tra khả năng communication, leadership, biết cách xử lý tình huống. Hình thức phỏng vấn online qua Google Hangout. Uầy, từ xưa tới giờ toàn coding, có bao giờ làm quản lý lãnh đạo đâu, nhưng thôi cố tra GG thuộc sẵn mấy câu interview rồi tùy cơ ứng biến vậy
Người phỏng vấn là một bác người Anh, senior manager, qua giao tiếp thì nhận thấy bác này ko phải chuyên về tech mà thiên về quản lý hơn. Rất may mắn là người Anh, nên phát âm khá chuẩn, không gặp khó khăn gì trong vấn đề nghe hiểu
Cố thuộc sẵn mấy câu interview trong bộ đề nhưng đến lúc interview chả trúng cái nào, được duy nhất trúng tủ là các câu hỏi về Scrum process, Extreme programming (mô tả quy trình làm việc, các thuật ngữ trong Scrum như restros, grooming…) các câu hỏi khá ngẫu nhiên kiểu như
Cơ bản những câu hỏi này đòi hỏi khả năng chém gió hươu viện, ứng biến nhanh của ứng viên, nếu trả lời ngập ngừng, luống cuống là xác định tạch.
Cũng may do đã chinh chiến nhiều năm lại cũng gặp nhiều tình huống tương tự nên basic thì cũng pass nổi.
Có thể bạn quan tâm
Top 10 câu hỏi phỏng vấn Java thường gặp
Câu hỏi phỏng vấn mẹo về React: Component hay element được render trong browser?
Đây là vòng quyết định. Trong vòng này, ứng viên sẽ phải trả lời các câu hỏi kiểm tra kiến thức kĩ thuật, viết code lập trình để xử lý thuật toán nào đó trên Google Doc. Người phỏng vấn sẽ quan sát cách ứng viên viết code để đánh giá năng lực. Nó cũng tương tự như kiểu viết code trên bảng trắng, run và debug bằng niềm tin.
Người phỏng vấn là 1 bác Director of Software engineering người Ấn, nói tiếng Anh dập như máy khâu, giọng lơ lớ, nghe đúng là khốn khổ, xem CV LinkedIn của bác thì tí ngất, với trên 20 năm kinh nghiệm lâp trình đa luồng, chuyên về machine learning, extensive experience working with concurrency primitives such as atomic reference, read write lock, countdownlatch. Bác còn tự build một mạng xã hội khoảng mấy trăm nghìn user truy cập mỗi ngày.
Xem thông tin biết lần này là gặp trùm cuối Thanos rồi, nhưng thôi đành nhắm mắt đưa trym vậy.
Sau màn chào hỏi, giới thiệu bản thân xong thì bắt đầu nhà zô code
Viết code mô tả singleton class
Đù mừng như bắt được vàng, món này code suốt rồi. Thế rồi mồm chém tay code, kinh nghiệm là tuyệt đối không được im lặng ngồi code, cần trình bày ý tưởng trước rồi mới code, code đến line nào trình bày line đấy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// Lazy Initialization (If required then only)
public static Singleton getInstance() {
if (instance == null) {
// Thread Safe. Might be costly operation in some case
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
|
Rồi, câu cuối cùng, anh có service expose API cho client, nếu anh dùng GET api call service qua HTTPS chú thấy có secure ko?
Ờ may, câu này thì biết, theo em thì data parameters trong GET URL sẽ được encrypted trong HTTPs nên nếu hacker có capture được data thì cũng ko view được. Tuy nhiên, một số server có thể lưu log có chứa data parameters trong GET request trên dạng plan-text, nên khuyến cáo là không nên dùng GET với sensitive data.