Làm đồ án, project demo thì code cái gì?
Có một số bạn hỏi mình là anh ơi em đang làm đồ án, em đang làm project demo xin việc, thế thì phải code cái gì? Web bán hàng, app đặt đồ ăn hay quản lý bệnh viện… Vậy nên mình viết bài này xin chia sẻ chút góc nhìn cá nhân của mình.
Thật ra thì code cái gì không quan trọng:
Web bán hàng, được, app đặt đồ ăn, cũng được, app quản lý lái xe, cũng được nốt. Bởi vì code đấy cũng có dùng đâu, vậy nên code cái gì không quan trọng bằng cách bạn code nó như thế nào. Cách bạn code, cách bạn hiểu nghiệp vụ, tổ chức code, đặt tên class, tên hàm, tên biến, cách thiết kế database… mới là cái nhà tuyển dụng quan tâm.
Một project demo khi xin việc nên thể hiện nhiều nhất những kiến thức bạn biết, mà đây là project tự làm thôi nên bạn thoải mái vẽ ra các tính năng mà bạn có thể làm được. Bạn biết cái A, thì bạn nên làm thêm tính năng B để áp dụng cái A bạn biết. Ví dụ bạn biết về queue, hãy làm cái gửi mail, bạn biết design partern nào đó, hãy thử áp dụng.
Làm cái gì đó lạ lạ chút:
Xem code một project mà 100% chỉ thêm xoá sửa thì chán lắm, theo mình là vậy, các tác vụ lặp đi lặp lại trông có vẻ đầy đủ nhưng hàm lượng kỹ thuật trong đó quá ít. Ừ thì cũng phải có, nhưng ít thôi, mạnh dạn bỏ đi các tính năng thừa, dành thời gian làm các tính năng show được kỹ năng của bạn. Đến lúc phỏng vấn còn có cái để người ta hỏi, chứ chả ai lại đi hỏi mấy chỗ thêm xoá sửa kia cả.
Anh em nên làm cái gì đó lạ lạ chút, kiểu như kéo thả, báo cáo, tracking, crawl data, xuất excel, bản đồ realtime, thanh toán online chẳng hạn. Khác những cái mà ai cũng làm đi. Ví dụ code trang web ghi chép giống Apple note chẳng hạn, rất ít thêm xoá sửa, nhưng khi đang note mà mất mạng thì thế nào? Tự động lưu thế nào? Mất mạng mà muốn note thì sao? Web truy cập offline được không?
Tạo ra và giải quyết vấn đề:
Tự mình đặt ra các vấn đề có thể xảy ra với người dùng và giải quyết nó. Làm một cái player nghe nhạc khá đơn giản phải không? Nhưng khi bấm nút play thì không play luôn, mà tăng dần âm lượng lên trong 0.5 giây để đang mở nhạc dance thì user khỏi giật mình chẳng hạn, thì chỉ có bạn mới nghĩ ra và làm được. Làm phần mềm quản lý bệnh viện cũng phải biết bác sĩ họ sẽ thao tác trên phần mềm của mình như thế nào? Xử lý một ca cấp cứu gồm những bước gì? Thể hiện rằng mình cũng hiểu và biết tự phân tích nghiệp vụ chứ không phải chỉ biết mỗi code.
Hãy deploy code của bạn lên:
Anh em cũng nên deploy code lên, cho nó chạy thật. Bạn có thể tin một người là pro web developer mà không có cái web nào không? Bạn là mobile dev mà không có cái app nào trên store? Đồng ý rằng các cty có thể có devops engineer làm điều đó cho bạn, nhưng với project demo xin việc, người ta có thể xem trước rồi mới xem code cũng tiện hơn chứ. Nó thể hiện rằng bạn cũng biết cách deploy, có kiến thức về hosting, server, domain. Mình đã từng thấy có bạn frontend loay hoay không biết vì sao router không hoạt động trên hosting rồi. Hiện nay có nhiều nhà cung cấp server, hosting giá khá tốt.
Tổng kết:
Chốt lại, nên chọn project nào mà thể hiện được nhiều nhất các kiến thức mà bạn biết, hoặc tự vẽ ra tính năng để thể hiện kiến thức mà bạn biết. Tự phân tích đưa ra các việc cần phải làm và làm cho ứng dụng của bạn có thể chạy được. Chuẩn bị kỹ các kiến thức liên quan đến các phần mình đã làm để đi phỏng vấn. Chúc các bạn thành công.