Câu hỏi phỏng vấn Fullstack Developer
Có thể bạn cảm thấy hồi hộp vì không biết nhà tuyển dụng sẽ hỏi bạn những gì, những câu hỏi đó có khó không, bạn có thể trả lời một cách trôi chảy và tự tin không? Không thể phủ nhận được rằng việc dự đoán những câu hỏi sẽ được nhà tuyển dụng đặt ra cho ứng viên là một điều rất cần thiết và là một khẩu quan trọng trong quá trình chuẩn bị phỏng vấn. Nếu như bạn nhận được cuộc gọi tham dự buổi phỏng vấn vị trí Full-stack dev đây sẽ là các câu hỏi nhà tuyển dụng chắc chắn sẽ đặt ra cho bạn.
Các câu hỏi phỏng vấn cá nhân
Câu 1: Hãy giới thiệu đôi chút về bản thân bạn
Đây thực chất chỉ là câu hỏi warm-up dạo đầu mà thôi, nhưng bạn vẫn phải trả lời khéo léo. Hãy trả lời ngắn gọn nhưng phải có sự liên quan đến công việc full-stack bạn ứng tuyển. Chẳng hạn như bạn sẽ nói về các nét tính cách của mình, và các tính cách đó khiến bạn phù hợp với vị trí full-stack developer ra sao. Khi bạn đang trả lời câu hỏi, người phỏng vấn sẽ chuẩn bị những câu hỏi tiếp theo để hỏi bạn. Có một tip nhỏ ở đây là nếu bạn không thấy người phỏng vấn ghi chép nhanh câu trả lời của bạn thì rất có thể họ đang khai thác câu trả lời của bạn để đặt ra câu hỏi tiếp theo. Lời khuyên ở đây là bạn hãy chú ý đến thái độ cử chỉ của người phỏng vấn, dự đoán câu hỏi họ sẽ đặt ra tiếp theo để trả lời thật khôn ngoan nhé!
Câu 2: Bạn có những kỹ năng gì phù hợp với vị trí Full-stack developer?
Ngày nay chúng ta có rất nhiều công nghệ và ngôn ngữ lập trình. Đối với mỗi mảng của lập trình sẽ có những công cụ khác nhau.
- Công nghệ Client side:
Javascript, HTML, CSS, SAAS, jQuery, Bootstrap đều là những công nghệ bắt buộc bạn phải thành thạo
- Client side framework:
Đó là AngularJS, BackboneJS, ember.js, React.js, Meteor.js, Polymer,…
Đừng lo lắng vì có quá nhiều sự lựa chọn framework cho JavaScript. Bạn chỉ cần thật thành thạo khoảng hai framework là có thể tự tin bước vào cuộc phỏng vấn rồi. Còn nếu bạn chỉ có kỹ năng với một framework thôi thì cũng đừng lo lắng. Trong trường hợp đó, hãy dành ra 1-2 ngày để tìm hiểu một framework JavaScript mới.
- Công nghệ Server Side:
Đó là Java API, Web API, MVC, WCF, Entity Framework, Java API, ruby and rails, Python, node.js,… Nếu bạn muốn là thành viên của cộng đồng Java hay cộng đồng .NET thì phải có kiến thức về những công nghệ trên.
Công việc chính của developer ở Server Side là phát triển Web APIs và những API này sẽ cung cấp dữ liệu trực tiếp đến ứng dụng web. Vì vậy, việc có kỹ năng về một trong những công nghệ trên để phát triển API là rất cần thiết nếu bạn muốn được tuyển dụng vào vị trí Full-stack developer.
- Cơ sở dữ liệu:
Bạn cần phải có kiến thức về các cơ sở dữ liệu SQL Server, Oracle, PostgreSQL, MongoDB, NoSQL .
Chúng ta đều biết framework Hadoop với mã nguồn mở đã biến cơ sở dữ liệu relation thành các non-relation giúp lập trình viên thuận tiện hơn trong quá trình quản lý cơ sở dữ liệu. Tuy nhiên, việc có kiến thức và kỹ năng về các cơ sở dữ liệu relation vẫn vô cùng cần thiết và hữu ích, ví dụ như SQL Query Writing, Stored Procedures, Functions, Joins, Union,… Nếu bạn biết một trong những công nghệ trên thì bạn đã tự mở ra cho mình một con đường sự nghiệp xán lạn rồi đấy!
- Các công cụ Business Intelligence và các ngôn ngữ lập trình:
Những công cụ này bao gồm: Talend, Tableau, R language, SAS,…
Những công cụ này đều phục vụ cho quy trình kinh doanh thông minh, nó không liên quan trực tiếp đến việc phát triển ứng dụng web nên nếu bạn không biết về những công cụ này thì cũng đừng lo lắng, nó sẽ không phải là một điểm trừ của bạn trong mắt người phỏng vấn đâu! Tuy nhiên, phần lớn tất cả các dự án hiện nay đều tuân thủ theo quy trình kinh doanh thông minh. Vì vậy, sẽ rất hữu ích cho bạn và gây ấn tượng đối với nhà tuyển dụng nếu bạn biết thêm về những công cụ này.
Câu 3: Trước đây bạn đã từng làm việc ở đâu?
Ở câu hỏi này, nhà tuyển dụng muốn biết trước đây bạn đã từng làm những loại công việc gì, bạn có kinh nghiệm tiếp xúc với khách hàng không, bạn hiểu và đáp ứng yêu cầu của khách hàng như thế nào hay kỹ năng làm việc nhóm của bạn.
Nói chung, nhà tuyển dụng sẽ cố gắng tìm hiểu xem bạn có tích lũy được nhiều kinh nghiệm trong quá trình làm việc ở những công ty cũ không.
Để vượt qua câu trả lời này, bạn hãy trả lời theo công thức sau:
[Tên công ty bạn từng làm việc] + [Tên công ty khách hàng bạn từng hợp tác] + [Vị trí làm việc và vai trò của bạn]
Lưu ý: Khi nói về vị trí và vai trò làm việc của bạn ở công ty cũ, bạn hãy nói về thành tích nổi bật của mình trong quá trình làm việc, thành tích này càng cụ thể và gắn với số liệu chứng minh thì càng tốt. Bên cạnh đó, bạn cũng có thể gây ấn tượng với nhà tuyển dụng bằng cách nói về các tình huống khó khăn bạn gặp phải và bạn đã giải quyết nó như thế nào, và bạn rút ra được kinh nghiệm gì từ những tình huống đó.
Câu 4: Trước đây bạn đã từng tham gia vào dự án nào và những vai trò, chức năng của bạn tại dự án đó là gì?
Một Full-stack developer là người có khả năng đảm nhận nhiều vai trò và trách nhiệm trong một dự án. Ở đây, nhà tuyển dụng không chỉ muốn tìm kiếm một lập trình viên phát triển ứng dụng mà còn muốn tìm một lập trình viên có khả năng làm nhiều công việc cùng một lúc. Vì vậy, hãy trả lời với họ rằng bạn đã tiếp xúc trực tiếp với tất cả các khâu trong quy trình phát triển ứng dụng. Phát triển ứng dụng bao gồm các bước căn bản sau:
- Tiếp nhận yêu cầu từ khách hàng
- Phát triển sản phẩm
- Phát triển trên nhiều server (Dev, QA, UAT, Pre-Prod và cuối cùng là Production server)
- Hỗ trợ quá trình phát triển
Các câu hỏi phỏng vấn chuyên môn thường gặp
Câu 1: Callback trong JavaScript có thể được hiểu như thế nào?
Callback trong Javascript là một function được sử dụng như là một đối số cho function khác.
Ngoài ra, có 2 điểm chính cần lưu ý khi nói tới Callback là:
- Function này có thể gọi tới function khác
- Callback có thể được gọi sau ở function này sau khi function khác đã kết thúc.
Callback chỉ là một topic nhỏ trong danh sách các câu hỏi phỏng vấn cho fullstack developer.
Câu 2: GraphQL khác gì so với RestAPI?
Câu này dành cho lập trình viên fullstack đã có kinh nghiệm nên cần nêu bật lên được cái main core của sự khác nhau.
Cốt lõi giữa GraphQL và RestAPI nằm ở 4 ý chính, nếu nắm chắc thì trong buổi phỏng vấn chắc chắn sẽ trả lời được.
- GraphQL đi theo hướng layer server-side (lớp phía server), lúc viết queries thì sẽ thực thi ở server với data đã có sẵn, còn REST thì đi theo hướng tạo kiến trúc với các ràng buộc để phát triển Web services.
- GraphQL có thể tổ chức theo hướng schema trong khi đó REST được thiết kế để đi theo hướng endpoints.
- Quá trình phát triển sử dụng GraphQL sẽ nhanh hơn rất nhiều so với REST.
- Kiểu message trả về với GraphQL mutations luôn là string, trong khi đó với REST thì trả về kiểu gì cũng được.
Câu 3: Câu hỏi này sử dụng để xác định độ dày về kinh nghiệm của lập trình viên.
Người phỏng vấn có thể đi sâu về cách hiện thực hoặc chi tiết để chắc chắn hơn về kinh nghiệm của lập trình viên fullstack.
- Tối ưu HTTP requests.
- Sử dụng CDNs và xoá các files/scripts không sử dụng tới.
- Tối ưu files và nén các hình ảnh.
- Sử dụng caching.
- Dùng CSS3 và HTML5.
- Tối ưu kích thước của JavaScript & Style Sheets.
- Tối ưu caches.
Trên đây chỉ là một số ý chính có thể nêu ra, chi tiết hơn có thể hỏi tới như: cụ thể cache ở đây là gì, cache redis hay cache CDN hay cache trên browser?.
Loại nào tốt hơn, ví dụ như cache redis thì có lợi gì, lúc nào nên dùng?.
Người phỏng vấn cũng có thể hỏi sâu hơn về các thông số sử dụng để đo tốc độ của website
Câu 4: Giải thích chi tiết về Observer Pattern
Câu hỏi này đặt nặng về kiến thức Design Pattern của ứng viên, lập trình viên Fullstack luôn mong muốn có skill và hiểu biết tốt về design pattern (vốn là một yếu tố để phân biệt giữa Junior và Senior).
Với câu hỏi này, anh em chỉ cần nhớ main concepts của pattern (mục đích sử dụng, giải quyết được vấn đề gì), chỉ vậy là ok.
Câu hỏi phỏng vấn
"Bạn có kinh nghiệm làm việc với các ngôn ngữ lập trình front-end và back-end nào, cũng như các framework phổ biến trong phát triển web?"
"Làm thế nào bạn xử lý tình huống khi gặp khó khăn trong việc tích hợp thành công giữa front-end và back-end của một ứng dụng web?"
"Có thể nói về một dự án cụ thể mà bạn đã tham gia làm Fullstack Developer, và những thách thức chính bạn đã đối mặt cũng như cách bạn đã giải quyết chúng?"
Tại sao chúng tôi nên tuyển bạn với vị trí Fullstack Developer?
Các thành tích đã đạt được với vị trí Fullstack Developer?
Bạn nghĩ gì về việc làm tăng ca với vị trí Fullstack Developer?
Bạn mong muốn làm việc với người sếp như thế nào với vị trí Fullstack Developer?
Cách làm việc của bạn với vị trí Fullstack Developer?
Điểm yếu của bạn với vị trí Fullstack Developer?
Bạn làm thế nào để hoàn thành công việc đúng thời hạn với vị trí Fullstack Developer?
Mức lương bạn mong muốn với vị trí Fullstack Developer?
Khả năng chịu áp lực trong công việc với vị trí Fullstack Developer?
Tại sao bạn lại ứng tuyển với vị trí Fullstack Developer?
Bạn biết gì về công việc ứng tuyển với vị trí Fullstack Developer?
Bạn có nghĩ là năng lực của bạn vượt so với yêu cầu của chúng tôi với vị trí Fullstack Developer?