Ở bài viết trước, các bạn đã cùng CodeGym đi qua khái niệm về nghề lập trình viên, những điều thú vị về lập trình viên. Bạn có thể đọc lại bài viết ở đây. Và trong bài viết này, CodeGym sẽ đi thêm 1 bước nữa, CodeGym sẽ chia sẻ với các bạn những công việc trong một ngày của lập trình viên.

1/ Họp hàng ngày

Họp hàng ngày (Daily Meeting) là một phần trong quy trình Scrum – một mô hình phát triển phần mềm được nhiều team áp dụng.

Daily Meeting là cuộc họp ngắn diễn ra hằng ngày (thường vào buổi sáng) và kéo dài tối đa khoảng 15 phút với mục đích báo cáo tổng quan tình hình công việc, về những việc mình đã/sẽ làm.

Cuộc họp này ví như là “Chào buổi sáng”, các thành viên trong team sẽ lần lượt báo cáo (tổng quát) về tình hình công việc của mình, như hôm qua đã làm gì, làm đến đâu rồi, có gặp khó khăn gì không, công việc hôm nay là gì…

2/ Phân tích nghiệp vụ

Phân tích nghiệp vụ (Business analyst) là công việc mà BA sẽ giao tiếp với khách hàng và lấy requirement, developer chỉ việc code. Thường thì các công ty lớn sẽ tách bạch công việc này với 1 đội ngũ riêng. Tuy nhiên, ở các công ty vừa hay nhỏ, thường thì chính developer sẽ phải nói chuyện với khách hàng để làm rõ yêu cầu, demo sản phẩm.

BA là người đứng giữa khách hàng và team phát triển sản phẩm, có nhiệm vụ phân tích yêu cầu của khách hàng. BA thường phải trả lời các câu hỏi sau:

  • Yêu cầu của khách hàng có khả thi không? Lý do là vì khách hàng đôi khi đòi những tính năng phi lý, nằm ngoài giới hạn của công nghệ.
  • Có nên làm tính năng đó hay không? Khách hàng đôi khi đưa ra các tính năng thừa mà triển khai thì tốn kém, giá trị đem lại thì không cao. BA cần phân tích và chỉ ra cho khách hàng.

Một số công việc điển hình khác của BA:

  • Chuyển đổi yêu cầu của khách hàng thành các task công việc: Yêu cầu của khách hàng thường mơ hồ, chung chung, BA cần phân tích và chuyển thành các đầu công việc cụ thể để team lập trình theo sát công việc.
  • Phân tích rủi ro khi thay đổi (bổ sung) tính năng: Khi một tính năng mới được thêm vào hệ thống, BA cần phân tích xem nó ảnh hưởng tới hệ thống như thế nào.

3/ Viết Code

Là một lập trình viên thì công việc code sẽ là một phần không thể thiếu. Phần lớn thời gian đi làm của bạn là dùng để code. Ở vị trí junior hoặc developer, bạn sẽ code những hàm hoặc chức năng nhỏ. Ở các vị trí cao hơn bạn sẽ nhận nhiều trách nhiệm hơn, code các chức năng phức tạp hơn.

Bản thân công việc code cũng được chia ra nhiều công đoạn. Trước khi bắt đầu công việc code thì bạn sẽ cần phác thảo trước lưu đồ và hướng giải quyết. Việc này cùng giống như việc bạn lập dàn ý trước khi viết 1 bài văn vậy. Chỉ khác là lần này việc phác thảo là việc bắt buộc.

Sau khi bắt tay vào code xong 1 chức năng thì bạn sẽ cần phải chạy thử và viết bài kiểm thử đơn vị (unit test) để chắc chắn chương trình chạy đúng, module đã hoàn thành.

Sau đó sẽ là fix bug, bug là những lỗi ta gặp khi code, làm chương trình chạy sai. Bug là thứ chắc chắn sẽ xảy ra dù bạn có cẩn thận đến đâu. Khi phát hiện bug, ta phải sửa code để chương trình chạy đúng.

nghề lập trình viên có những ưu nhược điểm gì

4/ Review Code

Review code là công việc xem, đánh giá một đoạn code đó có tốt hay không? Tốt hay không tốt ở điểm nào? Đã “sạch” chưa? Cần chỉnh sửa ra sao? … Để đảm bảo việc review có hiệu quả, thì công việc này thường được thực hiển bởi leader hay những người có kinh nghiệm code, hoặc cũng có thể là các developer review chéo code của nhau.

5/ Test

Bạn sẽ cần phải chạy thử hết các unit test trước khi giao lại code cho tester test lại để tìm lỗi. Cũng giống như BA, các team nhỏ thường sẽ không có vị trí tester, nên nhiều khi lập trình viên phải kiêm luôn vai trò của một tester.

Về cơ bản, vai trò của tester là nghĩ ra thật nhiều trường hợp và đảm bảo phần mềm phải chạy tốt trên tất cả các trường hợp đó.

Mặc dù các developer được khuyên là nên test chéo tính năng của nhau để kết quả test khách quan hơn, nhưng kết quả test từ một developer vẫn không thật sự “đáng tin cậy”. Vì họ thường tin tưởng đồng nghiệp, họ nghĩ rằng trường hợp này quá cơ bản nên chắc chắn đồng nghiệp của họ đã xử lý rồi, nhưng kết quả thì có thể không như vậy.

ky-su-phan-mem-va-lap-trinh-vien-6

6/ Họp

Bạn có thể nghĩ “họp” là công việc của “cán bộ”, nhưng thực tế, các lập trình viên cũng phải tham gia rất nhiều các cuộc họp khác nhau:

  • Bạn phải họp khi tiếp nhận dự án mới
  • Bạn phải họp sau khi đã hoàn thành dự án
  • Bạn phải họp khi cần thảo luận với đối tác
  • Bạn phải họp khi team có thành viên mới

Tần suất diễn ra các cuộc họp với mỗi team, mỗi công ty, mỗi thời điểm có thể khác nhau, nhưng chung quy lại họp là việc diễn ra khá thường xuyên trong một ngày của lập trình viên. Không chỉ vậy, vai trò của bạn trong mỗi cuộc họp cũng rất đa dạng, bạn có thể là người làm chủ cuộc họp, hoặc là người nêu ý kiến, đôi khi là thư ký …

7/ Tổng kết

Lập trình viên không phải lúc nào cũng chỉ code mà trong một ngày của lập trình viên sẽ còn khá nhiều việc không dính dáng tới máy tính. Thậm chí, khi bạn trở thành người có nhiều năm kinh nghiệm, công việc code của bạn sẽ càng ngày càng ít đi và dần nhường chỗ cho các công việc như thiết kế hệ thống, phỏng vấn developer nếu bạn phát triển theo hướng technical; hoặc quản lý, giao tiếp với khách hàng nếu bạn đi theo hướng management.

Tham khảo thêm: Lập trình viên và hành trang học lập trình


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.