Làm Project IT không chỉ cần code chạy được. Điều quan trọng là hiểu bài toán, biết rõ phần mình phụ trách, giải thích được lựa chọn công nghệ, khó khăn đã gặp và cách xử lý để có thể trình bày Project tốt hơn khi phỏng vấn.
“Project của em sử dụng Spring Boot, JWT, MySQL, ReactJS…”
Đây là cách khá nhiều sinh viên hoặc Fresher bắt đầu khi được hỏi về Project trong một buổi phỏng vấn. Những công nghệ này cho người phỏng vấn biết bạn đã tiếp xúc với công cụ nào, nhưng chưa cho thấy bạn thực sự hiểu Project đến đâu.
Một Project có giá trị không nằm ở việc sử dụng càng nhiều công nghệ càng tốt. Quan trọng hơn là bạn hiểu bài toán, biết mình đã làm phần nào, tại sao lựa chọn giải pháp đó, gặp khó khăn gì và đã xử lý ra sao.
Vì vậy, nếu mục tiêu của bạn là sử dụng Project để hỗ trợ CV và phỏng vấn, quá trình làm Project nên được tiếp cận ngay từ đầu theo hướng: không chỉ làm cho chạy, mà phải hiểu để có thể giải thích.
Với sinh viên hoặc Fresher chưa có nhiều kinh nghiệm làm việc thực tế, Project là một trong những phần giúp nhà tuyển dụng hình dung rõ hơn về khả năng áp dụng kiến thức của ứng viên.
Thông qua một Project, người phỏng vấn có thể tìm hiểu bạn đã từng làm việc với loại bài toán nào, hiểu quy trình phát triển phần mềm đến đâu, sử dụng công nghệ như thế nào và có khả năng tự phân tích vấn đề hay không.
Ví dụ, hai ứng viên đều ghi trong CV:
“Xây dựng website thương mại điện tử bằng Spring Boot, MySQL và JWT.”
Nhưng khi được hỏi sâu hơn, một người chỉ có thể liệt kê các công nghệ đã sử dụng. Người còn lại có thể giải thích vì sao hệ thống cần phân quyền, luồng đăng nhập hoạt động như thế nào, dữ liệu được tổ chức ra sao, lỗi từng gặp ở đâu và đã sửa bằng cách nào.
Dù cùng một Project, mức độ thể hiện năng lực sẽ rất khác nhau.
Một lỗi thường gặp khi làm Project là bắt đầu bằng câu hỏi: “Project này nên dùng công nghệ gì?”
Trong khi câu hỏi nên đặt trước đó là: “Project này giải quyết vấn đề gì?”
Chẳng hạn, thay vì đặt mục tiêu chung chung là “làm website bán hàng bằng Java”, bạn có thể xác định rõ hơn hệ thống cần hỗ trợ người dùng đăng ký, đăng nhập, tìm kiếm sản phẩm, đặt hàng và theo dõi đơn hàng; phía quản trị có thể quản lý sản phẩm, tài khoản và trạng thái đơn.
Khi bài toán rõ, bạn mới xác định được những chức năng cần xây dựng và lựa chọn công nghệ phù hợp.
Cách tiếp cận này cũng giúp bạn dễ trả lời những câu hỏi trong buổi phỏng vấn như: “Tại sao Project lại có chức năng này?” hoặc “Tại sao em chọn giải pháp đó?”
Project nhóm thường xuất hiện trong CV của sinh viên IT. Điều này hoàn toàn bình thường, nhưng khi trình bày cần phân biệt rõ đâu là chức năng của toàn bộ hệ thống và đâu là phần bạn trực tiếp tham gia.
Nếu Project có 5 thành viên, bạn không cần cố tạo cảm giác mình đã làm toàn bộ hệ thống. Thay vào đó, hãy xác định cụ thể:
Ví dụ, thay vì nói:
“Project có chức năng đặt hàng, thanh toán, quản lý sản phẩm và phân quyền.”
Bạn có thể trình bày:
“Trong Project, em phụ trách phần đăng nhập, phân quyền người dùng và quản lý tài khoản. Em xây dựng các API liên quan đến authentication và sử dụng JWT để xử lý xác thực.”
Cách trình bày thứ hai giúp vai trò của bạn rõ ràng hơn và tạo cơ sở để người phỏng vấn đặt câu hỏi đúng vào phần bạn thực sự hiểu.
Spring Boot, JWT, MySQL, Redis, Docker hay bất kỳ công nghệ nào cũng chỉ là công cụ.
Vì vậy, đừng chỉ ghi tên công nghệ vào CV. Với mỗi thành phần quan trọng của Project, bạn nên biết mình sử dụng nó để giải quyết vấn đề gì.
Nếu Project sử dụng JWT, bạn nên hiểu JWT tham gia vào luồng xác thực như thế nào, token được tạo khi nào, client gửi token ra sao và hệ thống kiểm tra quyền truy cập như thế nào.
Nếu sử dụng MySQL, hãy hiểu ít nhất cách những bảng quan trọng liên kết với nhau, tại sao dữ liệu được thiết kế như vậy và một số truy vấn chính của hệ thống hoạt động ra sao.
Nếu sử dụng Spring Boot, hãy hiểu cấu trúc của ứng dụng, vai trò của Controller, Service, Repository cũng như cách một request được xử lý từ lúc client gửi lên đến khi trả response.
Không nhất thiết phải trả lời mọi thứ ở mức chuyên gia. Với Fresher, điều quan trọng là những gì đã đưa vào Project thì bạn cần hiểu đủ để giải thích được.
Một Project chạy hoàn chỉnh chưa chắc là phần thú vị nhất đối với người phỏng vấn.
Những câu hỏi như “Phần nào trong Project khiến em mất nhiều thời gian nhất?”, “Em từng gặp lỗi gì?” hay “Em xử lý như thế nào?” thường giúp người phỏng vấn nhìn rõ hơn cách ứng viên suy nghĩ.
Trong quá trình làm Project, bạn có thể ghi lại một số vấn đề thực tế như:
Sau đó, hãy nhớ lại quá trình xử lý: bạn phát hiện vấn đề như thế nào, đã kiểm tra những gì, thử những phương án nào và cuối cùng lựa chọn giải pháp nào.
Đây chính là chất liệu rất tốt để trình bày Project trong buổi phỏng vấn.
Đây là một câu hỏi rất đáng luyện sau khi hoàn thành Project.
Project đầu tiên hiếm khi được thiết kế tối ưu ngay từ đầu. Sau quá trình code, bạn có thể nhận ra một số phần nên tách nhỏ hơn, database có thể thiết kế tốt hơn, logic đang đặt sai tầng hoặc một chức năng có thể triển khai theo hướng dễ bảo trì hơn.
Việc nhận ra những điểm chưa tốt không làm Project của bạn kém đi. Ngược lại, nó cho thấy bạn có khả năng nhìn lại sản phẩm và rút kinh nghiệm sau khi thực hiện.
Khi phỏng vấn, thay vì nói “Project của em không có vấn đề gì”, một câu trả lời có phân tích thường thể hiện tư duy tốt hơn.
Ví dụ: “Nếu làm lại, em sẽ tách phần xử lý này thành một service riêng vì ở phiên bản hiện tại logic đang tập trung khá nhiều vào một service, khiến việc bảo trì khó hơn.”
Nếu có thể, Project nên được hoàn thiện thành một sản phẩm có thể chạy và demo thay vì chỉ tồn tại dưới dạng source code.
Một Project tốt cho portfolio có thể bao gồm:
README không cần quá dài nhưng nên giúp người xem nhanh chóng hiểu Project làm gì, sử dụng công nghệ nào, các chức năng chính là gì và cách khởi chạy hệ thống.
Quá trình hoàn thiện phần này cũng giúp chính bạn hệ thống lại kiến thức trước khi đưa Project vào CV.
Bạn không nên đợi đến buổi phỏng vấn mới nghĩ xem sẽ giới thiệu Project như thế nào.
Có thể chuẩn bị theo flow:
Bài toán → Vai trò → Công nghệ → Phần đã làm → Khó khăn → Cách xử lý → Điều học được.
Ví dụ:
“Project của em là một website thương mại điện tử. Nhóm có 4 thành viên và em phụ trách phần backend liên quan đến tài khoản, đăng nhập và phân quyền. Backend được xây dựng bằng Java Spring Boot, dữ liệu lưu trên MySQL và sử dụng JWT cho authentication.
Phần em gặp khó nhất là xử lý phân quyền cho từng nhóm người dùng. Trong quá trình làm em phải kiểm tra lại flow request và cách cấu hình security. Sau Project, em hiểu rõ hơn cách một request đi từ Controller đến Service, Repository cũng như cách tổ chức authentication trong một ứng dụng backend.”
Chỉ trong một đoạn ngắn, người phỏng vấn đã có khá nhiều thông tin để tiếp tục trao đổi.
Sau khi hoàn thành một Project IT, hãy thử tự trả lời những câu hỏi sau:
Nếu chưa thể trả lời phần lớn những câu hỏi này, bạn nên dành thêm thời gian review Project trước khi đưa nó vào CV hoặc buổi phỏng vấn.
Không nhất thiết.
Một Project có 20 chức năng nhưng ứng viên không giải thích được cách hoạt động chưa chắc có giá trị hơn một Project nhỏ nhưng được làm tương đối hoàn chỉnh và người thực hiện hiểu sâu.
Với sinh viên hoặc Fresher, có thể ưu tiên một Project có bài toán rõ ràng, một số nghiệp vụ đủ thực tế, database được thiết kế hợp lý, code có cấu trúc và có những phần để bạn thể hiện khả năng xử lý vấn đề.
Quan trọng nhất là độ sâu hiểu biết của bạn đối với những gì mình đã làm.
Nếu đi theo Java Backend, Project nên giúp bạn kết nối kiến thức Java Core với những thành phần thực tế của một ứng dụng web như RESTful API, database, authentication, authorization, xử lý exception và tổ chức code theo từng tầng.
Thay vì học riêng từng công nghệ, hãy thử đặt chúng vào cùng một bài toán. Khi đó, bạn sẽ hiểu rõ hơn Java Core được sử dụng ở đâu, Spring Boot hỗ trợ xây dựng backend như thế nào và database kết nối với logic nghiệp vụ ra sao.
Nếu đang tìm hiểu lộ trình từ Java Core đến Spring Boot và xây dựng Project Backend, bạn có thể tham khảo lộ trình Java Spring Boot tại DevPro để hình dung rõ hơn các phần kiến thức cần chuẩn bị.
Làm Project IT để phục vụ phỏng vấn không có nghĩa là phải cố đưa thật nhiều framework, thư viện hay công nghệ mới vào sản phẩm.
Một Project thực sự có giá trị khi bạn biết mình đang giải quyết bài toán gì, hiểu phần mình thực hiện, giải thích được các quyết định kỹ thuật và có khả năng nhìn lại những điểm còn có thể cải thiện.
Khi được hỏi về Project, câu trả lời tốt không dừng ở:
“Em dùng Spring Boot, JWT, MySQL…”
Phần đáng nói hơn nằm ở phía sau:
Tại sao dùng? Bạn đã làm gì? Khó ở đâu? Bạn xử lý như thế nào? Và nếu làm lại, bạn sẽ thay đổi điều gì?
Công nghệ là công cụ. Tư duy sử dụng công nghệ để giải quyết bài toán mới là điều giúp Project thực sự thể hiện năng lực của bạn.