Bạn muốn trở thành một lập trình viên chuyên nghiệp, Kỹ năng, kiến thức của bạn cực kỳ tốt nhưng bạn lại không kiếm được việc vì bạn trả lời phỏng vấn quá kém. Đừng lo lắng hãy đến với bộ các câu hỏi phỏng vấn của chúng tôi
Chúng ta đều biết rằng, ngày nay để có thể làm công việc mà mình mơ ước không chỉ cần kỹ năng không chỉ cần thành tích học tập xuất sắc, cũng không phải chỉ cần một tấm bằng giỏi mà còn cần phải trải qua một cuộc phỏng vấn gắt gao. Có rất nhiều người kỹ năng, lý thuyết rất tốt, nhưng lại không có đủ tự tin khi đi phỏng vấn dẫn đến mất đi cơ hội việc làm mình mong ước bấy lâu nay. Chính vì thế, hôm nay chúng tôi xin được đem đến cho các bạn sự gợi ý về các câu hỏi phỏng vấn về một trong những ngành nghề hot nhất hiện nay, đó chính là cáccâu hỏi phỏng vấn về nghề lập trình viên.
Lập trình viên và các câu hỏi phỏng vấn phổ biến nhất với ngành nghề này
I. Top 10 câu hỏi phỏng vấn lập trình viên phổ biến nhất
1. Anh/Chị hãy giới thiệu về bản thân.
Đây là một trong những câu hỏi phỏng vấn mở đầu kinh điển nhất. Với câu hỏi này bạn hãy cứ bình tĩnh, tự tin, giới thiệu bản thân. Bạn giới thiệu tên, tuổi, trình độ, bằng cấp một số sở trường của bạn về công việc,..,. Lưu ý là bạn tránh để bị lạc đề, không nên giới thiệu những sở thích cá nhân không liên quan đến các câu hỏi phỏng vấn
2. Tại sao lại nghỉ ở công ty cũ?
Đây là một trong những câu hỏi phỏng vấnlập trình viên mà bạn nên chú ý. Không nên trả lời thành thật quá như lương thấp thì nghỉ hay thích thì nghỉ,.. sẽ gây mất thiện cảm đối với người đưa ra những câu hỏi phỏng vấn
Để trả lời các câu hỏi phỏng vấn kiểu này một cách chuẩn xác nhất, mà không gây mất thiện cảm đối với người đưa ra các câu hỏi phỏng vấn thì mình xin được đưa ra một vài cách gợi ý trả lời các câu hỏi phỏng vấn như sau.
Một số lý do để trả lời cho những câu hỏi phỏng vấn lập trình viên này: Bản thân bạn có đam mê, muốn chuyển hướng công việc sang hướng khác, bạn muốn thử thách bản thân mình, bạn khát khao kiếm tìm những cái mới, môi trường công việc mới. Những lý do trên sẽ giúp bạn tránh được sự đánh giá không tốt của nhà tuyển dụng. Không một nhà tuyển dụng nào thích tuyển một nhân viên nói xấu về công ty cũ của mình cả bởi vì biết đâu một ngày nào đấy họ cũng bị nói xấu trong một cuộc phỏng vấn khác thì sao?
Đây là một trong các câu hỏi phỏng vấn thuộc về chuyên môn, vì thế tùy vào vị trí bạn muốn ứng tuyển mà bạn thể hiện ra những kinh nghiêm của bản thân về lĩnh vực đấy, rằng bạn đã làm những gì và đạt được những thành công gì. Bạn cũng nên show ra vốn hiểu biết của mình về lĩnh vực đấy để thuyết phục người đưa ra các câu hỏi phỏng vấn hơn
4. Bạn đã từng sử dụng công cụ quản lý source code nào không?
Đây là một trong các câu hỏi phỏng vấn liên quan đến công việc của một developer, bạn bạn sẽ cần phải làm việc thường xuyên với các công cụ như SVN hoặc GIT. Chính vì vậy nếu bạn biết và thành thạo về hai hình thức quản lý source này thì bạn sẽ có được vị trí cao trong mắt nhà tuyển dụng.
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ì?
Các câu hỏi phỏng vấn liên quan đến kinh nghiệm làm việc này sẽ ghi điểm rất nhiều trong mắt người đưa ra các câu hỏi phỏng vấn. Bạn nên chọn một dự án mà bạn đã đóng góp vào nhiều công đoạn vị trí khác nhau. Bạn không nên chọn một dự án phức tạp nhất, quy mô nhất mà trong dự án ấy bạn không đóng góp được gì nhiều. Điều mà nhà tuyển dụng muốn biết chỉ là bạn làm được những gì và có thể đem lại những gì cho doanh nghiệp mà thôi
6. Bạn có khả năng làm việc với mô hình phát triển phần mềm Agile/Crum không?
Một trong những mô hình phát triển nổi bật nhất hiện nay chính là waterfall, Agile… Trong đó Agile rất hay được các công ty nhỏ, những công ty startup thuộc lĩnh vực này sử dụng vì nó dễ dàng và tối giản. Nếu bạn đã đã có hiểu biết về mô hình phát triển này thì hãy thể hiện nó ra, những am hiểu của bạn. Nếu không bạn hãy tìm hiểu ngay về những điều cơ bản nhất như: Agile là gì? Mô hình này chi vai trò cho các member như thế nào?... để tránh bị nhà tuyển dụng làm khó với các câu hỏi phỏng vấn này nhé
7. Làm thế nào để có thể đảm bảo chất lượng mã nguồn?
Đây là một trong các câu hỏi phỏng vấn gỡ điểm vì một khi đã đưa ra các câu hỏi phỏng vấn về lĩnh vực lập trình này mà bạn không biết kiến thức cơ bản này thì bạn sẽ không thể trả lời các câu hỏi phỏng vấn thành công được.
Chúng tôi gợi ý cho bạn một số các tiêu chí như sau:
- Mã nguồn có đang chạy phù hợp với requirement không? Đây là điều quan trọng nhất để đảm bảo tiêu chí của mã nguồn.
- Mã nguồn có được viết code đúng với style convention hay không.
- Mã nguồn cần được viết code clean.
- Mã nguồn được chạy Unit Test đầy đủ hay chưa.
8. Bạn có thể làm thêm giờ hay không?
Các câu hỏi phỏng vấn như thế này không hề xa lạ đối với một ngành nghề nào chứ không phải riêng lĩnh vực lập trình. Việc làm thêm giờ trong lĩnh vực này là một việc rất đỗi quen thuộc. Chính vì thế chẳng có câu trả lời nào có thể được đưa ra cho các câu hỏi phỏng vấn ngoài sự đồng ý của bạn. Nhà tuyển dụng đưa ra các câu hỏi phỏng vấn này chỉ để thăm dò bạn mà thôi. Họ muốn biết rằng bạn sẽ đối diện với việc làm thêm giờ như thế nào? Bạn có cảm thấy quá áp lực hay không? Điều kiện sống, điều kiện gia đình của bạn có thể cho phép bạn làm thêm giờ hay không,....
9. Bạn có chịu được áp lực không?
Đối với ngành lập trình, chịu được áp lực là một kỹ năng rất quan trọng. Khi một dự án được khởi chạy, bạn sẽ phải chịu rất nhiều áp lực từ nhiều nguồn khác nhau: khách hàng, boss,… Chính vì thế kỹ năng chịu đựng áp lực là một kỹ năng quan trọng mà bạn cần có để tồn tại trong ngành nghề này. Để trả lời các câu hỏi phỏng vấn kiểu này, mình khuyên bạn nên kể về những khó khăn mà bạn đã từng trải qua và cách để bạn vượt qua nó như thế nào. Điều này sẽ ghi điểm hơn trong mắt nhà tuyển dụng
10. Bạn có câu hỏi gì với chúng tôi không?
Đây sẽ là một trong các câu hỏi phỏng vấn để chốt lại. Nghe thì có vẻ dễ nhưng đây chính là một trong những câu hỏi phỏng vấn giúp có thể thăm dò bạn. Bạn không nên hỏi những câu hỏi vô nghĩa mà hay hướng vào những câu hỏi cụ thể và có mang tính chất công việc như các câu hỏi về chiến lược, văn hóa định hướng phát triển của công ty chẳng hạn,...
II. 7 câu hỏi phỏng vấn về nghiệp vụ hay gặp nhất
1. Lập trình hướng đối tượng có bao nhiêu tính chất ? Em hiểu "trừu tượng" là gì?
Gợi ý trả lời:
Có 4 tính chất chính mà lập trình hướng đối tượng có:
- Tính trừu tượng hay còn được gọi là abstraction
- Tính kế thừa hay còn được gọi là inheritance
- Tính đóng gói hay còn được gọi là encapsulation
- Tính đa hình hay còn được gọi là polymorphism
Trừu tượng hóa chính là một quá trình mà chúng ta cần đơn giản hóa một đối tượng nào đó khi nó chỉ bao gồm những đặc điểm chính để chúng ta quan tâm, chúng ta sẽ bỏ qua những đặc điểm, tính chất không quan trọng. Chẳng hạn như khi chúng ta cùng một việc kể câu truyện cổ tích nào đó, ta hoàn toàn có thể kể hết câu chuyện đó, hoặc chỉ tóm gọn nó khoảng 5 đến 7 dòng bằng những chi tiết chính, nhân vật chính, diễn biến chính. Dù thế nào thì người nghe vẫn có thể hiểu được câu chuyện đấy
Lưu ý: Bạn không nên chỉ quá chăm chú vào lý thuyết vì người đưa ra các câu hỏi phỏng vấn đã vô cùng quen thuộc rồi, bạn hãy đưa ra câu trả lời sáng tạo hơn, đưa ra các ví dụ cụ thể thuyết phục để nhà tuyển dụng có thể tin tưởng hơn hài lòng hơn về bạn
2. Git là gì? Cho biết sự khác biệt giữa Git và SVN
Để trả lời cho các câu hỏi phỏng vấn kiểu này chúng ta cần biết rằng Git là một phần của Hệ thống Quản lý Phiên bản Phân tán, nó được tạo ra nghiên cứu và phát triển để nhằm quản lý mã nguồn (source code) hiệu quả cho Linux.
Đối với Git, bạn có thể lưu trạng thái của file mà bạn muốn với dạng lịch sử cập nhật. Vì vậy, bạn hoàn toàn có thể đưa file đã qua chỉnh sửa một lần trở về trạng thái trước đó hay hiển thị lên những sự thay đổi ở nơi mà bạn chỉnh sửa.
Bên cạnh đó, lúc bạn định ghi đè (overwrite) lên tập tài liệu mới nhất đã chỉnh sửa của một ai đó bằng tập tài liệu đã chỉnh sửa trên nền tài liệu cũ, thì khi đăng tải lên server, hệ thống sẽ cảnh báo bạn. Chính vì vậy, bạn sẽ không phải lo về việc bạn đã ghi đè lên nội dung người khác đã chỉnh sửa khi bạn không biết
Sau đây là bảng so sánh giữa Git và SVN:
Sự khác biệt giữa Git và SVN
3. Khi gặp một lỗi về git mà em không thể tìm ra nguyên nhân, em sẽ làm gì để xử lý lỗi này?
Bước đầu, bạn sẽ dùng câu lệnh git log --oneline nhằm kiểm tra rằng liệu danh sách commit có gặp vấn đề gì không, nếu danh sách không có vấn đề gì bạn sẽ thực hiện lệnh git reset --soft để trở về commit đã được merge gần đây nhất rồi sau đó bạn sẽ tiến hành commit lại
Nếu trong trường hợp danh sách commit gặp một vấn đề nào đó, bạn sẽ áp dụng lệnh git reflog để kiểm tra lại những hành động được thực hiện trước đó ở lúc code vẫn ổn định và sau đó thì tiến hành các bước tiếp theo
4. Interface và Abstract class khác nhau điểm nào?
Từ khó qua trọng để có thể khẳng định sự khác nhau giữa hai cái này đó là : interface thì được implement , còn abstract class thì được kế thừa
Interface và Abstract class khác nhau điểm nào?
5. Hãy cho biết session và cookie là gì? Chúng khác nhau điểm nào?
Session là cách liên hệ giữa client với server. Khi một session bắt đầu là lúc client sẽ gửi request đến server, rồi sau đó nó sẽ tồn tại suốt trong ứng dụng cho đến khi thời gian kết thúc. Trong một tệp tin trên server, session sẽ được lưu lại những giá trị của nó
Còn cookie là sự ghi chép thông tin trên một đoạn văn bản sau đó được lưu trên trình duyệt trên máy tính người sử dụng. Khi người dùng truy cập một website nào đó, cookie sẽ được tạo ra và ghi nhớ những thông tin mà người dùng lựa thực hiện trên Website đấy. Chúng sẽ được cookie lưu lại để nhận biết.
Sự khác biệt giữa session và cookie
6. Khi đóng trình duyệt thì session có biến mất không ?
Đây là một trong các câu hỏi phỏng vấn chắc chắn sẽ được đặt ra với các bạn ứng tuyển vào vị trí internship hoặc junior. Chúng ta đều biết rằng Session đã được lưu trên server nên không thể mất khi trình duyệt đóng. Khi đóng trình duyệt, session cookie đã được lưu ở client cũng giống với session được lưu trên server sẽ bị mất, có nghĩa là session trên server cũng sẽ không có ích nữa nhưng vẫn ở đó cho đến khi timeout mới tự động xóa.
Nếu gặp phải câu hỏi này, câu trả lời nó mất hay không thì có lẽ đều sẽ được chấp nhận miễn là bạn giải thích được tại sao nó lại như vậy với những người đưa ra các câu hỏi phỏng vấn.
7. Liệu chúng ta có thể chỉnh sửa đường dẫn lưu session được không?
Session ở trên server. Còn ở PHP, session tồn tại dưới dạng tập tin và sẽ được lưu ở mục /var/lib/php/session. Vì thế sẽ có đường dẫn lưu session tại tập php.ini. Trong một số dự án lớn và quy mô, session còn có thể được lưu trong database hoặc nhiều hệ thống lưu trữ lớn.
III.Cần chuẩn bị gì trước buổi phỏng vấn
1. Đầu tiên cần chuẩn bị kiến thức chuyên môn
Kiến thức chuyên môn là vô cùng quan trọng. Nó là nền tảng vững chắc để bạn có thể phát triển thành nhiều ý khác nhau để thuyết phục nhà tuyển dụng trả lời các câu hỏi phỏng vấn, chính vì thế hãy ôn tập các kiến thức nền tảng thật tốt. Chẳng hạn như bạn muốn làm ở vị trí lập trình Android – Java. Vậy thì bạn phải nắm rõ những kiến thức cơ bản về vòng đời Activity, AsyncTask,... để thuyết phục người đưa ra các câu hỏi phỏng vấn
2. Xây dựng checklist những thứ thiết
Đây là công việc chuẩn bị rất quan trọng. Sự chuẩn bị kỹ càng sẽ giúp bạn tự tin hơn trong buổi phỏng vấn và trả lời các câu hỏi phỏng vấn trơn tru hơn
- Bạn hãy in bản mô tả công việc cùng với thông tin về công ty điều này sẽ cho nhà tuyển dụng thấy được bạn rất có đam mê muốn làm ở vị trí, công việc này của công ty.
- Bạn nên in nhiều bản hồ sơ CV đến phỏng vấn để chuyển cho những nhà tuyển dụng để thể hiện rằng bạn là người chu đáo, chuẩn bị cho mỗi nhà tuyển dụng một bản để tiện theo dõi
Cùng với đó bạn hãy luôn thật tự tin vào bản thân mình, một con người tự tin chắc chắn sẽ thu hút được người đối diện. Hãy tập rượt qua trả lời các câu hỏi phỏng vấn. Cuối cùng hãy sẵn sàng cho buổi phỏng vấn thôi.
IV. Kết luận
Vậy là trên đây, tôi đã giới thiệu tới bạn các câu hỏi phỏng vấn đối với ngành lập trình viên, chúc bạn sẽ thật thành công trả lời các câu hỏi phỏng vấn của người đưa ra các câu hỏi phỏng vấn để có được công việc và vị trí lập trình viên như mình mơ ước nhé. Trở thành một lập trình viên thì công việc không hề dễ dàng nhưng chỉ cần có đam mê chắc chắn sẽ thành công đúng không nào.