Những câu hỏi phỏng vấn lập trình viên hay gặp nhất
Bài viết được sự cho phép của tác giả Sơn Dương
Dù bạn là ai, khi đi xin việc đều phải trải qua các vòng phỏng vấn với nhà tuyển dụng. Cho dù bạn ứng tuyển vào vị trí bảo vệ tới chuyên gia, thậm chí lãnh đạo cấp cao… Vị trí càng cao thì buổi phỏng vấn càng căng thẳng.
Với ngành công nghệ thông tin hay cụ thể là lập trình viên, việc chuẩn bị trước những câu hỏi sẽ giúp bạn tự tin hơn trong buổi phỏng vấn.
Không biết các bạn có giống mình không, chứ bình thường mình có kiến thức cũng khá chắc về các kiến thức lập trình. Nhưng khi bước vào buổi phỏng vấn, mọi kiến thức quen thuộc lại “đội nón” bay đi đâu hết.
Do vậy, trước mỗi buổi phỏng vấn quan trọng, mình đều phải lướt qua những kiến thức, đặc biệt là các câu hỏi phỏng vấn lập trình viên hay gặp. Điều này giúp mình tự tin hơn.
Bài viết này mình sẽ điểm lại những câu hỏi phỏng vấn phổ biến nhất được đúc kết từ hàng nghìn ứng viên.
Nhưng trước đó, cùng xem qua những điều cần chuẩn bị trước buổi phỏng vấn đã nhé.
#Cần chuẩn bị gì trước buổi phỏng vấn
Để buổi phỏng vấn được diễn ra suôn sẻ, công tác chuẩn bị là vô cùng quan trọng. Chuẩn bị ở đây là chuẩn bị về kiến thức, tác phong của bạn.
Dưới đây là những danh mục, đầu việc mà mình nghĩ bạn nên chuẩn bị:
1. Chuẩn bị kiến thức chuyên môn
Tất nhiên, không thể nào bảo bạn học tất cả những kiến thức liên quan đến yêu cầu công việc của nhà tuyển dụng được. Chỉ cần bạn điểm lại những kiến thức cơ bản mà bạn đã biết để tránh trường hợp bị quên khi hỏi mặc dù bình thường bạn nắm rất rõ.
Ví dụ: bạn ứng tuyển vị trí lập trình Android – Java. Vậy thì ít nhất bạn cũng nên xem lại những kiến thức cơ bản như vòng đời Activity, Fragment, AsyncTask… cách thiết kế layout … Hay lập trình hướng đối tượng là gì?
Nói chung, bạn nên xem lại một lượt kiến thức cơ bản. Có kiến thức chúng ta không sợ trời, không sợ đất.
2. Xây dựng checklist những thứ thiết
Trước buổi phỏng vấn, bạn cần lên danh sách những thứ nên mang theo để ghi điểm với nhà tuyển dụng, cũng như hỗ trợ đắc lực cho bạn.
Hai việc quan trọng nhất, đó là:
- Bạn cần in bản mô tả công việc cùng với thông tin về công tin. Điều này chứng tỏ bạn rất quan tâm và tìm hiểu kỹ về công việc cũng như công ty mà định ứng tuyển.
- In bản CV và mang tới buổi phỏng vấn. Nên in nhiều bản nếu bạn không biết có bao nhiêu người trong buổi phỏng vấn. Mục đích là đủ phát mỗi người một bản CV.
Về cơ bản, bạn chỉ cần chuẩn bị như vậy là đủ. Điểm quan trọng nhất đó chính là sự tự tin. Bạn phải luôn tự tin vào bản thân là được.
Ok, đã chuẩn bị xong thì tiếp theo là tới buổi phỏng vấn thôi!
Việc làm Data Analytics HOT tại TP. Hồ Chí Minh
#Những lưu ý để buổi phỏng vấn thành công
Sau đây là những lưu ý khi đi phỏng vấn:
- Không đến trễ: Đi muộn là điều tối kỵ với buổi phỏng vấn. Nhưng cũng đừng đến sớm quá. Tốt nhất là đến trước 5-15 phút là chuẩn nhất. Nếu bạn không thể làm chủ được thời gian do ngoại cảnh như tắc đường, xịt lốp xe… thì lời khuyên của mình là đến sớm nhưng không vào, ngồi đợi trà đá vỉa hè ở phía.
- Ngừng “ôn bài”: Đây không phải là thời điểm để bạn luyện tập cách trả lời. Giờ là lúc bạn nên để tinh thần thật thoải mái và luôn tự tin vào bản thân. Nhà tuyển dụng cũng rất thích những người tự tin vào bản thân.
- Ngừng kiểm tra email, mạng xã hội: Trong lúc chờ đợi bạn thường kiểm tra email, facebook để giết thời gian. Nhưng điều này chỉ tổ làm bạn thêm bồn chồn, lo lắng mà thôi. Hãy ưu tiên cho buổi phỏng vấn cho tới khi nó kết thúc.
- Chỉnh đốn trang phục: Điều này chắc mình không cần phải nói chi tiết nữa nhỉ. Đừng để rau dính răng là được
Ngoài ra, còn nhiều điều chi tiết nhỏ nhặt khác nữa. Nhưng với mình thì những điều trên là quan trọng nhất rồi, còn trong buổi phỏng vấn tùy cơ ứng ứng biến. Luôn luôn tự tin vào bản thân và tôn trọng người đối diện là được.
#Top 10 câu hỏi phỏng vấn lập trình viên phổ biến nhất
Dưới đây là 10 câu hỏi mà mình thấy rất nhiều bạn khi đi xin việc về lập trình hay gặp phải.
1. Anh/Chị hãy giới thiệu về bản thân.
Có lẽ đây là câu hỏi mở đầu buổi phỏng vấn kinh điển nhất rồi. Với kinh nghiệm 5 lần đi phỏng vấn của mình thì câu này không trượt phát nào.
Bạn cứ tự tin giới thiệu về bản thân mình thôi. Như tên, tuối, trình độ đại học, điểm mạnh chuyên môn (ví dụ: có nhiều kinh nghiệm về Nodejs, Android Framework…)
Tuy nhiên, mình lưu ý là chỉ nên nói về những điểm của bản thân mà phục vụ cho công việc, cho công ty. Đừng giới thiệu những điều, sở thích ngoài lề như thích nghe nhạc, thích nghe Sơn Tùng-MTP, thích phim Hàn…
2. Tại sao lại nghỉ ở công ty cũ?
Câu hỏi này cũng hơi nhạy cảm chút. Chẳng nhẽ bạn lại nói thẳng tuột ra là: Lương thấp thì nghỉ thôi. Hay tôi ghét ông sếp nên tôi nghỉ…. Cùng lắm là tôi thích thì tôi nghỉ, anh có ý kiến gì à?!
Để trả lời câu hỏi này một cách khéo léo mà không bị nhà tuyển dụng đánh giá là không thật thà, lươn lẹo không đáng tin, thì mình gợi ý một vài cách.
Bạn có thể lựa chọn một số lý do như: Do có định hướng phát triển sự nghiệp sang lĩnh vực khác, muốn thử thách bản thân với những cái mới, môi trường mới… Những lý do này sẽ tránh được những ấn tượng xấu của nhà tuyển dụng. Vì nhà tuyển dụng rất kỵ nhân viên nói xấu sếp, đồng nghiệp và công ty cũ.
3. Bạn sử dụng thành thạo ngôn ngữ lập trình nào?
Đây là câu hỏi thuộc phạm trù chuyên môn, nên bạn cứ thành thật mà trả lời thôi. Tùy vào vị trí tuyển dụng mà bạn nói ngôn ngữ tương ứng.
Ví dụ, bạn ứng tuyển vào vị trí Android Developer, bạn có thể nói thế mạnh của mình là Java hay Kotlin. Nếu vị trí front-end thì bạn có thể trình bày về Javascript, html, CSS…
4. Bạn đã từng sử dụng công cụ quản lý source code nào không?
Do đặc thù của vị trí developer, bạn sẽ phải thao tác thường xuyên với các công cụ quản lý mã nguồn như SVN hay GIT. Do vậy, nếu bạn không biết hai hình thức quản lý source này thì bạn đã mất khá nhiều điểm trong mắt nhà tuyển dụng.
Ít nhất bạn có thể nói được khái niệm cơ bản GIT là gì? tại sao lại nên sử dụng GIT thay vì SVN…
5. Kể tên dự án đã làm mà bạn tâm đắc nhất? Vị trí của bạn trong dự án đó là gì?
Đây là câu hỏi mà nhà tuyển dụng muốn kiểm tra kinh nghiệm làm việc thực tế của bạn. Bạn nên chọn dự án mà bạn tham gia vào nhiều công đoạn nhất, làm nhiều nhất. Không nhất thiết phải chọn dự án phức tạp nhất hay sử dụng công nghệ hiện đại mà trong đó bạn chỉ là chân “bóc hành đuổi mèo” mà thôi.
Cái mà nhà tuyển dụng cần là bạn đã làm được gì và làm như thế nào mà thôi.
6. Bạn có thể làm việc với mô hình phát triển phần mềm Agile/Crum không?
Có rất nhiều mô hình phát triển, nổi bật nhất là waterfall, Agile… Trong Agile thì thường được các công ty nhỏ, startup hay outsourcing ưu chuộng vì tính tối giản của nó.
Nên nếu bạn đã từng tham gia dự án sử dụng mô hình phát triển này thì quá tốt rồi. Hoặc ít nhất bạn cũng biết những khái niệm cơ bản như Agile là gì? vai trò của các member trong mô hình như thế nào?
7. Làm thế nào để đảm bảo chất lượng mã nguồn?
Bạn là một thành viên trực tiếp tạo ra mã nguồn của dự án, nên nếu bạn không biết cách để tăng chất lượng mã nguồn thì quá mất điểm rồi.
Đối với câu hỏi này, bạn có thể đưa ra một số tiêu chí để đảm bảo chất lượng mã nguồn như:
- Mã nguồn có chạy đúng với requirement không? Cái này là quan trọng nhất, nếu mã nguồn sạch đẹp mà chạy sai so với requirement thì cũng vứt.
- Viết code đúng style convention.
- Viết code clean và tránh những bad smell.
- Chạy Unit Test đầy đủ.
Đại khái như vậy.
8. Bạn có thể làm thêm giờ (OT) không?
Không biết các ngành nghề khác thế nào, chứ với nghề lập trình thì việc phải làm OT (over time) để kịp deadline dự án là điều xảy ra như cơm bữa.
Mặc dù, nhà tuyển dụng hỏi câu hỏi này chỉ để thăm dò bạn thôi, vì họ biết thừa bạn sẽ trả lời luôn và ngay: CÓ.
Nhưng như mình nói, họ thăm dò bạn thôi. Cái họ muốn là bạn đối diện với việc phải OT như thế nào? Việc phải chịu áp lực thời gian và trong quá khứ bạn đã từng phải OT rồi hay chưa? Điều kiện gia đình có cho phép OT triền miên hay không?…
9. Bạn có chịu được áp lực không?
Lại một câu hỏi vô nghĩa và thăm dò khác. Bởi vì nhà tuyển dụng, đặc biệt là ngành lập trình, kỹ năng chịu áp lực là một kỹ năng rất quan trọng.
Khi dự án chạy, bạn sẽ phải chịu áp lực từ rất nhiều phía: từ khách hàng, từ sếp, từ PL… rồi cả tụi tester nữa.
Nếu bạn là người không thể chịu được áp lực thì thật là khó để theo đuổi được nghề này, chứ chưa nói đến việc nhà tuyển dụng sử dụng bạn.
Với câu hỏi này, mình khuyên bạn nên trả lời thẳng vào những kinh nghiệm trải qua áp lực trong quá khứ với các dự án mà bạn đã trải qua. Chính những kinh nghiệm thực tế của bạn sẽ ghi điểm với nhà tuyển dụng.
10. Bạn có câu hỏi gì với chúng tôi không?
Đây thường là câu hỏi chốt trước khi kết thúc buổi phỏng vấn. Mặc dù họ để cho bạn hỏi lại họ nhưng cũng là một hình thức đánh giá bạn.
Bạn đừng hỏi những câu hỏi kiểu: Công ty có phục vụ ăn uống không? Có câu lạc bộ bóng đá không? Có được đi du lịch hàng năm không?… mất điểm lắm.
Thay vì đó, bạn nên hỏi về công việc mà vị trí ứng tuyển của bạn sẽ làm, về định hướng chiến lược của công ty hay như môi trường và style (văn hóa) làm việc của công ty như nào…
#Tạm kết
Như vậy là mình đã chia sẻ những kinh nghiệm đi phỏng vấn, cũng như những câu hỏi phỏng vấn lập trình viên phổ biến nhất.
Tất nhiên, đây là chỉ những câu hỏi chung chung để đánh giá thái độ và phong cách làm việc của bạn thôi. Tùy vị trí ứng tuyển mà họ sẽ còn hỏi những câu hỏi sâu về chuyên môn để đánh giá năng lực của bạn.
Nếu mọi người ủng hộ, mình sẽ tiếp tục series với các câu hỏi chuyên về từng lĩnh vực chuyên môn như: các câu hỏi phỏng Android, Front-end, Nodejs…
Nhà mình đã ai đi phỏng vấn chưa? Chia sẻ kinh nghiệm bên dưới nhé!
Bài viết gốc được đăng tải tại vntalking.com
Xem thêm:
- Tuyển tập câu hỏi phỏng vấn Data Engineer mới nhất
- Câu hỏi phỏng vấn Database Developer/ Database Administrator thường gặp
- Vượt ải interview với top 5 câu hỏi phỏng vấn Manual Tester
Xem thêm Việc làm IT hấp dẫn trên TopDev
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS
- C Compiler là gì? Công việc cụ thể của một trình biên dịch