Lập trình viên cần chuẩn bị gì trước khi tham gia phỏng vấn xin việc?
Phỏng vấn là bước đầu tiên để bạn bắt đầu xây dựng sự nghiệp của mình. Trong khi việc thành công sẽ giúp bạn mở ra cánh cửa thành công vô cùng tươi sáng thì quá trình để đến được đó lại vô cùng gian nan. Chính vì vậy mà rất nhiều bạn sinh viên cảm thấy mình bị dưới áp lực khủng khiếp mỗi khi phải đi phỏng vấn. Đặc biệt là nếu bạn xin vào vị trí developer.
Kiến thức chuyên môn về ngôn ngữ và công nghệ
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 sẽ có hỏi nhưng cũng khá cơ bản 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.
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 là 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 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, đâ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”.
Nguồn: Techtalk
Hiện nay Bạch Long Mobile đang tìm đồng đội cho vị trí Lập trình Web, nhanh tay ứng tuyển qua: http://bit.ly/2MqYS8D