[Tìm việc không khó] Một buổi phỏng vấn gồm những gì?

Để có được một việc làm tốt, việc có được sự chuẩn bị tốt cho buổi phỏng vấn là điều rất cần thiết. Buổi phỏng vấn là sự kiện mà bạn và nhà tuyển dụng gặp gỡ để trao đổi với nhau về kĩ năng và công việc. Cũng giống như bất kì một cuộc gặp đỡ 2 bên nào khác, ấn tượng trong buổi gặp gỡ này rất quan trọng, chúng ta sẽ có cơ hội để thể hiện những kiến thức và kĩ năng và mình có, cũng như những thái độ và định hướng tương lai của bản thân. Về phía công ty, đây cũng là dịp để họ nói chi tiết hơn về công việc họ có cho bạn. Để có một sự chuẩn bị chu đáo, thiết nghĩ chúng ta cần phải biết nội dung của buổi gặp gỡ này gồm những phần nào, từ đó lên kế hoạch chuẩn bị cho phù hợp.

Thông thường, về mặt thời gian, mỗi buổi phỏng vấn sẽ kéo dài khoảng 60 phút, tuy vậy cũng có thể kéo dài hơn hoặc ngắn hơn tùy công ty. Một số công ty mình có đi phỏng vấn hoặc từng biết qua thường có hai vòng phỏng vấn, hoặc cũng có thể gộp chung làm một. Dẫu vậy, nội dung chính của những buổi này có thể được gói gọn trong những mục sau đây.

Giới thiệu bản thân

Mở đầu của mọi buổi gặp gỡ vẫn luôn là như vậy, đôi bên sẽ giới thiệu về bản thân, trong tình huống này người cần tập trung nhiều hơn là bạn – ứng viên. Theo kinh nghiệm thì phần giới thiệu này thường kéo dài khoảng 5 phút. Bạn không nên nói dài hơn vì nhà tuyền dụng cũng khó mà nhớ được hết mọi ý bạn nói. Bạn chỉ nên tập trung vào những điều thực sự nổi bật của bản thân.

Ở phần này, bạn nên giới thiệu cả những thông tin cơ bản (ví dụ: tên, tuổi, học trường nào / đang làm vị trí gì, …) đến những thông tin chuyên sâu hơn như kĩ năng mà bạn có, kinh nghiệm mà bạn đã trải qua hoặc những project mà bạn từng tham gia phát triển. Phần giới thiệu này nên chủ yếu tập trung vào bản thân bạn và những thứ xoanh quanh công việc, tránh nói lang man (ví dụ: nói về gia đình, về tình hình hôn nhân, …)

Bạn có thể nhấn mạnh tới những project hoặc môn học mà bạn có được kết quả tốt (vd: điểm cao, project nhiều người dùng, …), những vai trò đặc biệt mà bạn từng có cơ hội thử sức (vd: trưởng nhóm, người phân chia task, …) để tạo được một bước đà tốt trước khi đi tới những phần tiếp theo.

Kiểm tra kĩ thuật

Đây có lẽ là phần quan trọng và chiếm tỉ lệ thời gian nhiều nhất của buổi phỏng vấn (trừ khi bạn ứng tuyển vào vị trí quản lí chứ không phải lập trình). Nội dung phần này rất rộng, và còn tùy thuộc vào tính chất công việc mà bạn đang ứng tuyển vào nữa. Tuy vậy, cũng có một số điểm chung mà các bạn có thể lưu ý.

Nếu bạn là một junior hoặc fresher mới ra trường, đa phần các câu hỏi sẽ dành để kiểm tra kiến thức nền của bạn. Một số kiến thức nền mà hầu như hướng đi nào cũng cần như:

  • Lập trình hướng đối tượng: các tính chất căn bản của OOP, kiểm tra lí thuyết hoặc thông qua một vài ví dụ về code, tính đa hình, sự khác biệt của abstract class và interface, …
  • Mô hình phần mềm căn bản: Web thì có MVC, desktop app truyền thống thì có MVP hoặc MVVM, Mô hình client-server, API (cái này thì hơi nâng cao), …
  • Cơ sở dữ liệu căn bản: Khả năng thiết kế mô hình quan hệ (hoặc không quan hệ – nonSQL), các dạng chuẩn trong thiết kế DB, các loại liên kết bảng, … Nâng cao hơn thì có kĩ thuật đánh chỉ mục (index), partition / sharding, ….
  • Kiểm tra giải thuật hoặc cấu trúc dữ liệu: stack, queue, duyệt cây nhị phân, thuật toán ứng dụng (sort, tìm kiếm, …), quy hoạch động, … Các phần này thường gặp ở những công ty lớn, ở Việt Nam cũng không quá chú trọng cái này.
  • Bảo mật căn bản: Sql injection, XSS, CSRF …

Ngoài ra, tùy thuộc vào lĩnh vực và bạn ứng tuyển mà người phỏng vấn sẽ kiểm tra những kiến thức sâu hơn của bạn:

  • Lập trình mobile: Kiểm tra lập trình trên Android hoặc iOS, các mô hình chứng thực trên mobile, mô hình gửi nhận dữ liệu với server, …
  • Lập trình web: mô hình MVC trong lập trình web, xác thực người dùng với session hoặc token, xác thực thông qua ứng dụng bên thứ 3 (OAuth), kĩ thuật scale DB, phân tải với load balancer, mô hình Restful API,
  • Các kiến thức nâng cao: các framework lập trình, cách tối ưu source code, các nguyên lí lập trình nâng cao (STUPID, SOLID, …), clean code, cách design hệ thống để phục vụ scale-up sau này, thiết kế server phục vụ cả web lẫn mobile, các tool hỗ trợ lập trình Javascript, mô hình micro services, …
  • Các kiến thức liên quan tới ngôn ngữ lập trình: PHP, Java, C#, NodeJS, Javascript, Ruby, …

Nếu bạn không biết hết những thứ được liệt kê ở trên thì cũng không cần phải lo lắng, không nhiều người nắm được hết những kĩ thuật đó. Tuy nhiên, những gì bạn đã làm qua thì cần nắm chắc về nó, việc này sẽ là một điểm cộng cho bạn dù bạn không biết nhiều.

Kiểm tra kĩ năng mềm

Mặc dù lập trình viên là một công việc thiên về kĩ thuật, nhưng không vì thế mà các yếu tố liên quan tới kĩ năng mềm bị xem nhẹ. Hơn nữa, việc phát triển phần mềm là công việc của tập thể – nhóm nhiều người, bạn không thể phát triển sản phẩm hoàn chỉnh nếu như chỉ có một mình, chính vì vậy mà kĩ năng làm việc nhóm là cực kì quan trọng.

Nhà tuyển dụng sẽ hỏi về quá trình làm việc của bạn trước đây, để xem bạn là người có xu hướng hòa đồng làm việc nhóm, hay thuộc loại “một mình cân team”. Mặc dù kĩ năng của những người cân team có thể rất cao, nhưng có thể nhà tuyển dụng sẽ không ưu tiên chọn lựa bằng một người cân bằng giữa kĩ thuật và khả năng làm việc nhóm.

Họ có thể hỏi bạn về việc phân chia công việc của các dự án cũ, hoặc của các project môn học mà bạn từng tham gia, để kiểm tra khả năng lên kế hoạch cũng như dự đoán và đối mặt với vấn đề phát sinh như thế nào. Khi có một vấn đề phát sinh, khi có xung đột về mặt giải pháp (nhiều người đề xuất nhiều giải pháp khác nhau) thì mọi người sẽ giải quyết như thế nào.

Có thể thấy, làm lập trình viên không chỉ đơn thuần là cắm mặt vào viết code, những kĩ năng giải quyết vấn đề cũng rất cần thiết trong thực tế.

Kiểm tra sự phù hợp với công ty

Có đôi khi, bạn vượt qua tất cả những câu hỏi kĩ thuật mà người phỏng vấn đưa cho bạn, bạn có kĩ năng trao đổi và làm việc nhóm tốt, nhưng người phỏng vấn vẫn không chọn bạn. Điều này nghe thì hơi vô lí nhưng thật ra cũng rất có lí.

Cuộc phỏng vấn, cũng giống như cuộc gặp gỡ giữa 2 người (ví dụ như mối quan hệ yêu đương nam nữ), mục đích cuối cùng vẫn là tìm ra một người phù hợp, chứ không nhất thiết phải là tìm ra người giỏi nhất. Bạn rất giỏi, bạn muốn xây dựng và phát triển những sản phẩm chất lượng cao tới người dùng, nhưng công ty lại chuyên làm outsource với một mức giá cạnh tranh, hoặc như bạn muốn thay đổi công nghệ thường xuyên nhưng công ty lại chuyên làm product đã chạy ổn định trên một công nghệ và ít có khả năng chuyển đổi công nghệ, thì có lẽ bạn và công ty không thể hợp tác với nhau được.

Chính vì lí do này mà có một lời khuyên rằng: ứng viên nên tìm hiểu về công ty trước khi nộp hồ sơ ứng tuyển, hoặc trước khi phỏng vấn, để tránh những hiểu lầm không đáng có cũng như lãng phí thời gian của nhau khi mà bạn và công ty đã quá khác biệt.

Phần dành cho ứng viên hỏi về công ty

Ở cuối buổi phỏng vấn, thông thường ứng viên sẽ có một vài phút để đưa ra những câu hỏi cho công ty. Việc làm này đem lại lợi ích cho cả 2 bên: ứng viên được hỏi và làm rõ những thắc mắc của mình, trong khi công ty thì hiểu thêm về mong muốn của ứng viên.

Có rất nhiều bạn khi đi phỏng vấn đánh mất đi quyền lợi này của mình khi không đưa ra câu hỏi nào cả. Thật ra, bất kể việc bạn có đậu hay rớt phỏng vấn ở công ty đó, thì bạn cũng có quyền được hỏi mà. Bạn có thể hỏi cụ thể hơn về vai trò cũng như công việc nếu như bạn được tuyển, khả năng thăng tiến như thế nào, các chính sách và phúc lợi (ngoài lương) của công ty, việc hỗ trợ nhân viên học thêm để nâng cao trình độ, …

Lương không phải là tất cả những gì bạn nhận được từ công ty nếu bạn làm việc ở đó, việc có được nhiều thông tin cũng giúp ích cho bạn trong quá trình lựa chọn công ty phù hợp hơn với mình, đưa ra các so sánh khi bạn nhận được nhiều lời đề nghị, … Tóm lại, hãy tận dụng cơ hội được hỏi.

Tóm lại

Việc phát triển phần mềm không chỉ là việc của viết code, chúng ta còn cần phải biết phối hợp hoạt động với nhau, biết cách phân chia công việc, lên kế hoạch, ..v.v. chính vì vậy, chỉ chăm chăm vào kĩ năng code là điều không nên, lập trình viên chúng ta cũng cần trang bị thêm các kiến thức về trao đổi cũng như xử lí vấn đề.

Một buổi phỏng vấn cũng vậy, người tuyển dụng không chỉ chăm chăm tới kiến thức cứng của bạn, họ sẽ kiểm tra thêm nhiều kĩ năng của bạn nữa. Việc hiểu rằng phỏng vấn là tìm ra người phù hợp, không phải tìm ra người giỏi nhất cũng sẽ giúp bạn lên kế hoạch phù hợp cho từng vị trí mà mình sẽ ứng tuyển vào. Kiến thức không phải là tất cả, thái độ và sự tin của bạn cũng sẽ giúp ích cho bạn rất nhiều. Hãy luôn tin rằng, vẫn luôn có một công việc thực sự phù hợp với bạn còn chờ bạn ở ngoài kia, và bạn sẽ tìm được công việc dành riêng cho mình.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s