Ngoại trừ thực tập sinh ra thì hầu hết các vị trí của ngành IT đều cần bài test đầu vào để kiểm tra năng lực của ứng viên. Do đó, bạn cần chuẩn bị thật kỹ phần này để không bị “khớp” trước nhà tuyển dụng. Bộ cheatsheet dưới đây tổng hợp các câu hỏi thường gặp nhất trong buổi phỏng vấn IT. Cùng tham khảo nhé!
Mục lục
Tiêu chí tuyển dụng đánh giá năng lực ứng viên
Kinh nghiệm làm việc
Đối với các vị trí từ Junior trở lên, HR sẽ thường nhìn vào kinh nghiệm để đánh giá sự phù hợp của bạn đối với công việc. Nếu một ứng viên có những kinh nghiệm tương đồng với mô tả công việc hay đã từng làm các công việc đó ở quá khứ, sẽ được xem xét vào vòng tuyển dụng sâu hơn.
Bởi vì, đối với những yêu cầu đặt ra trong mô tả công việc, những người có kinh nghiệm sẽ nhanh chóng bắt đầu ngay khi nhận việc, tốn ít chi phí và thời gian đào tạo hơn so với ứng viên thiếu kinh nghiệm.
Khả năng thích ứng
Trong bối cảnh nhiều biến động của công nghệ, doanh nghiệp luôn tìm kiếm và mong muốn chiêu mộ những ứng viên có khả năng thích ứng nhanh với sự thay đổi liên tục của công nghệ, thường xuyên cập nhật các kiến thức mới và đặc biệt là thích nghi tốt với văn hoá doanh nghiệp để có thể gắn bó và đi chặng đường dài hơn
Kiến thức chuyên môn
Có thể bạn không biết các kiến thức nâng cao nhưng ít nhất bạn phải nắm được những kiến thức căn bản của ngành lập trình như database, khái niệm và cách sử dụng cơ bản của các ngôn ngữ lập trình.
Tuy nhiên, đối với vị trí ứng tuyển, bạn cần biết rõ về những kiến thức chuyên ngành. Giả sử, nếu phỏng vấn vị trí backend, bạn cần nắm chắc các ngôn ngữ như Java, PHP, ASP.NET, Rub, và Python hay nếu phỏng vấn cho vị trí font-end, bạn cần biết về HTML, JavaScript, và CSS
Hơn thế nữa, với những vị trí cần kinh nghiệm, chắc chắn kiến thức chuyên môn là yếu tố được đề cao trong quá trình đánh giá ứng viên của nhà tuyển dụng.
Kỹ năng phục vụ công việc
Đối với các vị trí cấp cao như CTO hay Project Manager thì ngoài các kiến thức về chuyên môn, nhà tuyển dụng còn cần các kỹ năng về quản lý con người, sắp xếp công việc, giải quyết vấn đề, khả năng làm việc nhóm,…
Tiêu chí tuyển dụng đánh giá thái độ của ứng viên
Sự tự tin
Có được sự tự tin nghĩa là bạn đã nắm chắc phần đậu 50%. Hãy giữ bình tĩnh và thể thể hiện hết năng lực của mình, chia sẻ về những kiến thức và kinh nghiệm có được trong quá khứ. Tuy nhiên, ranh giới giữa sự tự tin và tự cao rất mỏng. Do đó, cần cho nhà tuyển dụng thấy sự chắc chắn trong lời nói, hành động của mình, không quá đề cao bản thân và thể hiện đúng lúc, đúng chỗ.
Biết lắng nghe
Người biết lắng nghe và tiếp thu ý kiến là những mảnh ghép mà doanh nghiệp nào cũng cần tìm kiếm và giữ chân. Trong một tập thể, người biết lắng nghe để cải thiện bản thân thường sẽ đi xa và lâu hơn với doanh nghiệp.
Do đó, hãy thể hiện để hội đồng phỏng vấn thấy bạn là người biết lắng nghe, sẵn sàng tiếp thu những ý kiến vào đóng góp để hoàn thiện bản thân.
Tinh thần cầu tiến và sẵn sàng học hỏi
Đây là yếu tố mà hầu hết ngành nghề nào cũng cần. Đặc biệt là với tốc độ chuyển biến nhanh chóng của công nghệ hiện nay, việc các lập trình viên liên tục học hỏi và cập nhật thông tin là hoàn toàn cần thiết để phát triển trong môi trường cạnh tranh của doanh nghiệp.
Hơn thế nữa, dù bạn không có quá nhiều kinh nghiệm, nhưng nếu có tinh thần cầu tiến và thái độ học hỏi sẽ là một điểm cộng rất lớn của bạn trong mắt nhà tuyển dụng.
Sự trung thực
Sự trung thực là đức tính cần có ở một ứng viên mà bất kỳ doanh nghiệp tìm kiếm. Rõ ràng những người trung thực sẽ luôn nhận được sự tin tưởng từ đồng nghiệp, cấp trên.
Mặc dù chưa làm việc cùng nhau nhưng bạn có thể thể hiện sự trung thực của mình qua chiếc CV và quá trình phỏng vấn. Hãy là chính mình và chia sẻ những gì là của mình. Đừng nói dối vì “cây kim trong bọc lâu ngày cũng lòi ra”. Không sớm thì muộn, chắc chắn sẽ có cách để họ biết bạn có đang nói thật hay đang lừa dối hội đồng phỏng vấn.
Tiêu chí tuyển dụng và đánh giá ứng viên được ưu tiên hàng đầu
Mức độ phù hợp với công việc và văn hoá doanh nghiệp
Đôi khi, người giỏi nhất sẽ không tốt bằng người phù hợp nhất. Mức độ phù hợp là yếu tố không thể thiếu để đánh giá các ứng viên.
Sự phù hợp ở đây nghĩa là có thể đáp ứng được những công việc như doanh nghiệp mong đợi, có thể nhanh chóng thích nghi và hoà hợp được với team mới, có tính cách và phong thái làm việc phù hợp với văn hoá doanh nghiệp.
Bằng cấp, chứng chỉ
Đối với ngành IT, hầu hết người ta không để ý đến bằng cấp của bạn. Công ty chỉ quan tâm bạn có bao nhiêu năm kinh nghiệm trong vị trí đó, đã từng làm được những gì và có những kỹ năng gì để có thể đáp ứng công việc cách tốt nhất.
Tuy nhiên, như vậy không có nghĩa là bằng cấp không quan trọng. Đối với các bạn sinh viên mới ra trường hay đi thực tập, chưa có kinh nghiệm, với một chiếc CV “trắng trơn” thì trường học và các chứng chỉ liên quan đã nhận được trong quá trình học sẽ là bước đệm rất lớn để tạo lòng tin với nhà tuyển dụng.
Khả năng ngoại ngữ
Trong thời đại này, tiếng Anh được xem như ngôn ngữ bắt buộc phải có trong mọi ngành nghề nếu bạn muốn có cơ hội thăng tiến cao. Thêm vào đó, đối với ngành IT, hầu hết những tài liệu tham khảo đều đến từ nước ngoài nên việc có tiếng Anh sẽ là một lợi thế.
Một lập trình viên có thể không giao tiếp tiếng Anh tốt nhưng ít nhất phải có khả năng đọc hiểu để tìm và tra cứu tài liệu.
Những câu hỏi về kiến thức chuyên môn khi lập trình viên IT
Kiến thức về Java
- Lập trình đối tượng là gì? Cho biết các tính chất đặc thù của lập trình hướng đối tượng?
- Sự khác nhau giữa While và doWhile?
- Cách tổ chức hoạt động của các Collection Framework như List , Map, Set, Queue, Stack,..?
- Phân biệt ArrayList , Linkedlist và Vector?
- Sự khác nhau giữa ArrayList – Array, Linkedlist – Arraylist, Set – List, Override – Overload?
- Khái niệm về Generic? Cho ví dụ và lý do sử dụng?
- Sự khác nhau giữa Abstract class và Interface?
- Khái niệm tham trị và tham chiếu
- Ngoại lệ (Exception là gì)? Phân biệt Check và Uncheck exception?
- Thuật toán tìm kiếm nhị phân và thuật toán sắp xếp
Kiến thức về GIT
- Git fork là gì? Sự khác nhau giữa git fork, branch và clone?
- Sự khác nhau giữa pull request và branch?
- Làm thế nào để revert previous commit trong git?
- Giải thích những ưu điểm of Forking Workflow?
- Sự khác nhau giữa HEAD, working tree và index?
- Trình bày quy trình làm việc của Gitflow Workflow?
- Khi nào nên sử dụng git stash?
- Làm thế nào để loại bỏ một tập tin từ git mà không cần loại bỏ nó khỏi file system của bạn?
- Khi nào nên sử dụng git rebase thay vì git merge?
Kiến thức về Framework
- Mô hình MVC là gì? Mô tả luồng đi của một ứng dụng MVC?
- Các khái niệm về Dependency Injection, JPA, ORM mapping, Webservice?
- Giải thích các annotation @Controller , @Service , @Repository , @Autowire?
- Chức năng hoạt động của Maven?
- Sự khác nhau của Session và Cookie?
- Làm thế nào để bảo mật trong lập trình?
Kiến thức về Database
- Khái niệm Database? Các quan hệ trong database? Các loại Join trong database?
- Các khái niệm về Composite key, Transaction, Unique
- Khoá chính – khóa ngoại là gì
- Giải thích các Rule chuẩn hóa dữ liệu
- Sự khác nhau Truncate, Delete , Drop
- Sự khác nhau Having và Where
Kiến thức về Front-end
- HTML, CSS, Bootstrap dùng để làm gì
- Phân biệt Class và Id
- Phân biệt các thuộc tính Position: Absolute, Fixed, Relative, Fixed, Static
- Khai báo <!DOCTYPE> trong HTML có tác dụng gì?
- Phân biệt Class vs ID như thế nào trong CSS
- Phân biệt toán tử “==” và “===” trong Javascript
- “this” trong Javascript dùng để làm gì?
Các dạng bài test
Dưới đây là các dạng bài test thường gặp cho vị trí lập trình viên
- Test kiến thức cơ bản của ngôn ngữ, công nghệ.
- Test thuật toán qua các bài lập trình, như kiểu học cấu trúc dữ liệu luôn.
- Test khả năng Debug code, tức là cho đoạn code sai, hãy tìm đoạn sai và sửa lại hoặc hỏi xem nó sai ở đâu.
- Test ngoại ngữ (đối với các công ty của Mỹ, phỏng vấn tiếng Anh với HR và phỏng vấn tiếng Việt với bộ phận kỹ thuật chuyên môn)
- Một số nơi có thêm bài test GMAT
Như vậy, bài viết đã giúp bạn tổng hợp là bộ cheatsheet xịn khi đi phỏng vấn IT. Hy vọng sau bài này, các bạn có thể tự tin trả lời những câu hỏi từ cơ bản đến “hóc búa” mà hội đồng tuyển dụng đặt ra nhé!