Tôi viết bài này vì tôi cũng từng là sinh viên, và cho tới giờ cũng vẫn là sinh viên. Ha Ha. Thú thực là tôi chưa ra trường, vì tôi đi làm sớm và cũng lận đận với con đường học vấn. Không sao cả, chính vì chưa ra trường, và đi làm từ khá sớm nên tôi mới đủ tự tin viết bài này để chia sẻ với bạn kinh nghiệm những lần đi phỏng vấn của tôi khi tôi quyết định rời ghế nhà trường tham gia vào thị trường lao động IT Việt Nam. Trong quá trình đi làm tôi cũng có cơ hội được tham gia vào hội đồng phỏng vấn ứng viên của công ty, nên tôi nghĩ rằng mình cần chia sẻ những điều dưới đây với các bạn chuẩn bị đi làm trong ngành IT, hy vọng giúp ích cho các bạn trong việc tìm kiếm một công việc tốt và cũng đồng thời giảm Stress cho nhà tuyển dụng.

Phần 1. Chuyện tôi đi phỏng vấn.

(Bài viết sử dụng văn phong hồi tôi bắt đầu đi phỏng vấn xin việc) Thực sự thì mình cũng chưa ra trường, nhưng hiện tại cũng gần như là ra trường rồi do môn học cũng gần hết, còn mỗi đồ án kì sau làm. Cho nên mình cũng có đi phỏng vấn 5-6 chỗ trong tuần vừa rồi, và cũng may mắn pass đuợc 4/6 chỗ với mức lương đủ ăn đủ ở và đủ kiếm gấu từ giờ tới lúc ra trường mà không cần xin bố mẹ (nếu không có biến gì). Sau khi phỏng vấn 5-6 chỗ đó xong thì mình thấy có nhiều điều có thể chia sẻ với các bạn đã, đang, và sắp đi phỏng vấn, dù các bạn ra trường rồi, hay chưa ra trường.

Tạm thời thì mình sẽ tạm không chia sẻ mấy chỗ mình đi phỏng vấn là chỗ nào, ở đâu, bạn nào muốn biết thì Inbox riêng nhé 🙂

Do mỗi chỗ phỏng vấn 1 kiểu và nhiều loại kiến thức nên mình sẽ tổng hơp lại tất cả các Case mình đã gặp, chia làm 3 phần là kiến thức (kỹ năng cứng khi phỏng vấn), kỹ năng mềm và các bài test thương gặp.

1. Kiến thức

Đa số các công ty mình tuyển đều hỏi rất cơ bản như sau

– Kiến thức chuyên môn về ngôn ngữ và công nghệ mình làm. Cực kỳ cơ bản, nếu như bạn lập trình C# họ sẽ hỏi các hàm xử lí trong C#, các vấn đề về khai báo và xử dụng biến, phạm vi biến, cách truyền tham số, tham trị. Với lập trình Android thì sẽ hỏi về Java… Nói chung cực kì cơ bản về ngôn ngữ và tư duy lập trình.

– Cấu trúc dữ liệu và giải thuật, cái này có hỏi nhưng cũng khá cơ bản, cần nắm vững một số cấu trúc và giải thuật cơ bản, ban đầu có thể làm sẽ không cần thiết nhưng sau này làm sẽ biết dùng nó để làm gì, và truớc mắt thì bạn giải món này hơn bạn sẽ dễ pass hơn những người khác. Một số bài cũng khá đơn giản như làm việc với mảng (tim kiếm hoặc sắp xếp), hoặc bài liên quan tới Stack và Queue, giải thuật đệ qui…hiếm gặp bài nào về cây này cây kia.

– Lập trình hướng đối tượng. Phần này có rất nhiều bạn bị miss do bị hỏi lý thuyết mà không nhớ. Đa số các bạn đang code mò, code mà không hiểu tại sao nó lại như vậy và code không có quy tắc đúng. Đây là một phần khá quan trọng không chỉ trong lúc bạn đi phỏng vấn mà nó còn quyết định bạn có phải là 1 Dev giỏi sau này hay không. OOP cực sâu và cực rộng, nhưng mình nghĩ các bạn đọc và hiểu hết được giáo trình ở truờng là đi phỏng vấn ngon rồi. Ok. Ngoài ra thì có thể mở rộng một số kiến thức về OOP ở mức nâng cao hơn bằng việc học Phân tích thiết kế hướng đối tượng, UML. Một số sách có thể không đề cập nhưng bạn nên biết một vài Design Pattern cơ bản, nó không quá khó và có thể áp dụng được luôn trong công việc. SOLID cũng là một khái niệm mà bạn cần quan tâm, thường chỉ để hỏi mấy anh 2-3 năm kinh nghiệm, còn bạn mới ra trường đã biết hiểu cặn kẽ nó rồi thì chúc mừng "Bạn đã được nhận".

– Luồng dữ liệu. Bất cứ phần mềm nào cũng đêu có luồng dữ liệu, ngưoi ta sẽ hỏi xem bạn có hiểu luông của ứng dụng bạn viết không. Tỉ dụ như hỏi khi người dùng nhập địa chỉ web vào trình duyệt và tới lúc trang Web hiển thị ra thì trải qua những bước nào, thằng nào làm nhiệm vụ nào…Hoặc phần nào sẽ giao tiếp với phần nào. Hoặc như Android sẽ có mấy câu như vòng đời của các Activities, đại loại vậy. Mình không giỏi Android lắm nên không dám chém.

– Cơ sở dữ liệu: Phỏng vấn đa số người ta không hỏi bạn làm sao chuẩn hóa dữ liệu và sẽ hỏi bạn các câu truy vấn. Một vài ví dụ như làm sao đếm được số bản ghi trong 1 bảng, phân biệt các loại hàm Join, phân biệt WHERE và HAVING, và trong trường hợp này thì dùng cách truy vấn nào, trường hợp kia dùng truy vấn nào…Đại loại bản phải vững về SQL thì mới trả lời được. Tạm thời hãy nhớ cách sử dụng các hàm và câu lệnh, quên viêc tối ưu đi. Thực tế không phải lúc nào CSDL thực tế cũng đạt chuẩn này chuẩn kia, và người phỏng vấn có thể cũng đã quên cách tối ưu rồi nên không thể hỏi được bạn. Ha Ha. Câu hỏi về phân biệt các kiểu JOIN hoặc nâng cao hơn sẽ là phân biệt JOIN và Subquery, hiếm gặp ai hỏi về View và Store Procudure, có thể bên .NET thì hỏi nhiều hơn, mình phỏng vấn PHP thì thường thực tế ít dùng. Không sao, bạn cứ chắc những thử được học ở trường là được. Môn SQL là môn mình thấy ứng dụng nhiều nhất lúc đi làm.

– Một số thứ râu ria theo chuyên ngành của bạn, ví dụ lập trình Web thì sẽ hỏi kỹ về HTML/CSS/JS. Lập trình Mobile thì ko biết. Kaka. Nói chung bạn chuyên cái nào thì nên học kỹ những cái đó, và nên nhớ là học kỹ cho mình thôi chứ đừng để chống chế khi đi phỏng vấn. Mình viết ra đầy để các bạn còn thiếu thì học thêm. Vì thực sự mình cũng không biết hết và nhớ hết chỗ kia, đây là những gì mình đuợc hỏi khi phỏng vấn nên các bạn cũng tự mà học chứ đừng hỏi mình.

2. Kỹ năng mềm

Kỹ năng mềm thì cũng là 1 phần quan trọng. Kinh nghiệm của mình là hít thở sâu 3 cái truơc khi buớc vào phỏng vấn. Tự tin là bạn đã thắng 50% rồi. Đừng lo lắng gì cả, cứ tự tin mà nói.

Giới thiệu bản thân: Phần này đa số mọi người sẽ bị hỏi, bạn có thể giới thiệu về bản thân, gia đình, quá trình học tập, kinh nghiệm làm việc, các sản phẩm bạn đã làm… Nói chung phần này không quan trọng lắm nhưng cố gắng nói trôi chảy, chứ đừng ấp a ấp úng là được.

Trả lời thẳng và thật, không quanh co. Nhà tuyển dụng người ta sẽ không thích các bạn chém gió và ảo tưởng chút nào, bạn biết gì nói đó, đừng có nói dối. Một kinh nghiệm nhỏ cho các bạn nếu trả lời sai mà đột nhiên nhớ ra đáp án đúng thì chứ nói là em phân vân 2 cái này, tại lâu không dùng nên quên. Còn không nhớ thì cứ bảo không nhớ, người ta sẽ next qua câu khác, đỡ làm mất thời gian của bạn và nguời khác.

Với mỗi văn hóa công ty thì các bạn nên thể hiện theo cách của họ. Tỉ dụ công ty Nhật thì họ ưa lễ nghĩa, công ty Âu Mỹ thì xề xòa hơn. Nhưng nhìn chung cũng không quá tiểu tiết vì đa số người phỏng vấn mình là người Việt mà, chứ có phải ông Nhật ông Tây nào đâu. Kaka. Miễn lịch sự là đuợc rồi, nhất là ngành IT, anh em vào nói chuyện với nhau hợp gu lại chém cả mấy tiếng. Mình với 1 ông CTO ngồi nói chuyện 3 tiếng đồng hồ và cuối cùng mình pass. Cho nên cách nói chuyện, dẫn chuyện hay cũng có ích. Đôi khi đơn giản là anh thích tính của chú, chú về làm cho anh, còn kiến thức của chú chưa tốt thì bọn anh sẽ đào tạo thêm. Ok. Nguời giỏi hay không, không quan trọng, quan trọng là phải bắt nhịp đuợc với các thành viên khác, nó giống như cái ổ cắm và phích cắm. Tát nhiên còn hội tụ nhiều thứ, chứ không chỉ đơn giản là thế nhưng càng có nhiều điểm cộng thì khả năng pass cao hơn.

3. Các bài Test.

Có một số bài test mình đã làm

  • 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ữ, mình bị dính 1 phát test tiếng Anh đầu vào, và phỏng vấn bằng tiếng Anh với bên HR. Còn bên kỹ thuật thì nói tiếng Việt, đấy là công ty làm Âu Mỹ, còn làm Nhật thì họ chả hỏi đâu.
  • Một số nơi có test cả GMAT nữa.

4. Một số câu hỏi khác

  • Câu hỏi em biết gì về công ty. Cái này thì phải nhớ tìm hiểu công ty đó trước.
  • Câu hỏi về những thứ mình biết: Có công ty thì thích ứng viên biết nhiều (full stack) có công ty thì muốn ứng viên chuyên sâu 1 mảng. Theo kinh nghiệm của mình thì các công ty làm cho Âu, Mỹ thuờng thích ứng viên biết nhiều và rộng (tất nhiên phải sâu 1 thứ) còn các công ty làm cho Nhật thì thích ứng viên biết sâu 1 thứ. Cho nên tùy công ty mà bạn trả lời sao cho hợp.
  • Câu hỏi về lương. Cái này thì mình có công thức riêng của mình. Luơng sẽ bằng các chi phí ăn ở, sinh hoạt + 2 triệu, đó là với sinh viên mới ra truờng. Nếu bạn lựa mức đó mà họ không chấp nhận thì do quá trình bạn học hành ở truờng có vấn đề rồi và giờ nên chấn trình ngay đi truớc khi quá muộn. Đừng yêu cầu một mức lương quá cao so với năng lực và chờ nhà tuyển dụng hạ nó xuống, họ sẽ nghĩ bạn có vấn đề đấy.
  • Câu hỏi về các sách em đã đọc gần đây, vơi bạn nào chăm đọc sách thi không sao còn bạn nào mà ít đọc thì là một vấn đề đấy. Nó đánh giá sự chăm chỉ, ham tìm hiểu và khả năng tự nghiên cứu của bạn. Hãy nhét vào đầu một vài cuốn sách về IT và cả kỹ năng trước khi đi phỏng vấn, và nhớ phải đọc cho cẩn thận chứ đừng qua loa, nhỡ ông nào đọc quyển đó rồi ông ấy hỏi thì húp cháo.
  • Câu hỏi về các tạp chí công nghệ, trang web em hay đọc, rất hay được hỏi. Thực tế nhiều anh em không có thói quen này mà chỉ quen đi hỏi và tìm Google. Với mình đó là cách học tốt nhưng trong thực tế nhà tuyển dụng họ cũng không đánh giá cao nguời cứ gặp vấn đề là đi tìm Google và đi hỏi khắp nơi. Nó cũng liên quan tới bảo mật thông tin dự án…Có một câu chuyện là nguoì sáng lập trang web buôn bán ma túy quá Deep web bị bắt vì hắn đi hỏi 1 câu trên trang web chuyên hỏi đáp IT là Stackoverflow. 😀 Việc đọc tap chí, báo, các blog công nghệ nổi tiếng thể hiện mình là người tiếp thu những kiến thức mới, chịu khó tim hiểu. Nếu bạn chưa biết trang web nào nổi tiếng trong lãnh vực mà mình đang làm thì hãy tìm hiểu ngay đi. Từ khóa cho bạn " best website for learning XXX" or "best blog for XXX developer" sẽ có rất nhiều 😀
  • Câu hỏi về mục tiêu cá nhân: Mỗi nguời có một mục tiêu riêng nhưng nhà tuyển dụng họ muốn ứng viên có mục tiêu rõ ràng, vì khi đó thì bạn mới biết cách học, cách làm việc sao cho hiệu quả và cũng để họ đáp bạn vào vị trí hợp lí với công việc.
  • Câu hỏi về mong muốn gì khi làm tại công ty: Cái này thì tùy người trả lời, đa số vẫn là mong muốn phát triển bản thân, tìm kiếm môi truờng phù hợp đê gắn bó lâu dài…hoặc em thích môi trường làm việc với khách hàng Nhật Bản, hoặc thích làm vơi Tây vì gái Tây nó xinh, khoai Tây nó dài…

5. Một vài lưu ý khác:

  • Hãy xác định loại công ty mà mính muốn làm, công ty Product hay công ty Outsource, và nếu làm Product thì làm cho khách hàng ở đâu, Mỹ Âu hay là Nhật Bổn, và Outsource cũng vậy.
  • Hãy đặt ra kế hoạch và dự tính từ khi còn là sinh viên, vì sẽ ít áp lực hơn so với những người sắp hoặc đã ra truờng.
  • Trang bị cho mình khả năng ngoại ngữ tốt. Nhất là tiếng Anh, nên học cho tốt và cẩn thận. Mình rất tiếc nuối hồi còn năm 1, năm 2 không chịu học tiếng Anh. Giờ mình bắt đầu học lại và hy vọng là ra truờng sẽ đủ điều kiện đầu ra . Hehe. Tạm là thế.
  • Nên phỏng vấn cẩn thận ở mọi công ty, vì họ có liên minh HR với nhau đó. Bạn bị Blacklist ở công ty này mà sang công ty cùng liên minh thì xác định tạch từ vòng gửi xe nhé. Nhất là mất công ty làm cho Hàn, Nhật. Còn nhiều thứ để chia sẻ nhưng đây là 1 số cái cơ bản. Nếu có dịp mình sẽ chia sẻ nhiều hơn. Cảm ơn đã đọc.