Những điều chưa biết về công việc của lập trình viên

Những điều chưa biết về công việc của lập trình viên

Công việc của lập trình viên là một ngành nghề trong ngành công nghệ thông tin, mà công việc liên quan đến các loại dòng mã lệnh (code). Tuy vậy, thế giới việc làm của lập trình viên cũng chia làm nhiều cấp độ khác nhau dựa theo kỹ năng và kinh nghiệm.

Bạn dâng trào cảm xúc với con robot hay bị hỏng hóc Wall-E trong phim, bạn thấy tuyệt vời với chiếc điện thoại thông minh Iphone, SamSung với các app cực hay trên đó. Và những gì bạn có thể giao tiếp với máy tính, với internet. Đều bắt nguồn từ những dòng mã lệnh Code, do các lập trình viên tạo ra. Tất cả mọi người đều biết rằng cuối cùng các lập trình viên có thể trở thành người quản lý (manager) hoặc lãnh đạo (leader). Nhưng nhiều lập trình viên không hiểu được kỳ vọng và yêu cầu công việc của một nhà quản lý. Chắc chắn, tất cả chúng ta đều có những người quản lý, việc trở thành một người quản lý có ý nghĩa gì? Có những kỳ vọng gì?

Vị trí Fresher/Junior Developer

Thường thì các sinh viên mới tốt nghiệp, người mới vào nghề lập trình chưa có kinh nghiệm và kỹ năng cần thiết được xếp vào làm việc tại vị trí Fresher/Junior Developer.

Khi lập trình bằng dòng mã lệnh code, dù là người lập trình ở trình độ nào đi nữa, vẫn luôn xuất hiện các lỗi lập trình. Cũng giống như người viết văn cũng thường xuyên gặp các lỗi chính tả, lỗi ngữ pháp, chấm phẩy. Các lỗi lập trình này thuật ngữ chuyên mô gọi Bug. Và các Fresher/Junior Developer tham gia xem lại các đoạn mã lập trình và chỉnh sửa các lỗi trong mã lập trình. Việc sửa lỗi lập trình này thường được gọi là Debug hoặc fix bug.

Bạn nghĩ rằng lập trình viên phải đảm nhận viết những đoạn mã lệnh khủng khiếp dài loằng ngoằng như bài văn từ đầu đến cuối. Nhưng thực tế là trong kỹ thuật lập trình, người ta phân chia các dòng lệnh thành các đơn vị chức năng đơn giản với các dòng mã lệnh cơ bản và đơn giản nhất có thể. Các Fresher/Junior Developer sẽ tham gia viết các chức năng đơn giản này và giao cho các vị trí cao hơn ráp nối vào dự án.

Developer

Đây là vị trí lập trình viên chính thức. Lúc này bạn có khả năng lập trình mã lệnh tốt, có kinh nghiệm để ráp nối các đoạn mã chức năng đơn giản để hoàn thành các chức năng phức tạp hơn. Và tiếp tục ráp nối các khối chức năng phức tạp để hoàn thiện một chức năng phần mềm. Và ráp nối toàn bộ để hoàn thành một dự án phần mềm.

Trong quá trình làm việc, developer cần có khả năng hiểu rõ các yêu cầu của dự án đề ra, biết phối hợp với các developer khác, có tầm hiểu biết công nghệ để chọn lựa công nghệ thực hiện phù hợp. Công việc của Developer liên quan mật thiết với toàn bộ khối mã lệnh của phần mềm.

Lập trình viên

Các vị trí công việc cấp cao với người theo nghề lập trình viên

Bạn đã thấy rằng toàn bộ phần mềm đã được các developer xây dựng rồi, vậy thì còn công việc gì nữa. Nhưng thực tế với các dự án phần mềm lớn mà các công ty đảm nhận, khối lượng công việc lớn tới mức phải huy động cả một đội ngũ nhân sự khá lớn. Điều này nảy sinh các vấn đề công việc mới liên quan đến sắp xếp quy trình làm việc, quy trình công nghệ, quản lý nhân sự.

Và các yêu cầu phần mềm, yêu cầu chức năng, yêu cầu thi công không đơn giản mà có được. Đây là những công việc liên quan đến khách hàng, liên quan đến giải pháp, kiến trúc hệ thống.

Team Leader

Là trưởng nhóm, chịu trách nhiệm giao theo dõi tiến độ công việc của từng thành viên trong nhóm. Nhận lại các kết quả công việc từ các thành viên, sắp xếp và giao lại cho các bộ phận khác.

Project Manager

Là vị trí quản lý thực hiện dự án. Ví trí này phân chia một dự án lớn thành các đơn vị công việc mà cần được hoàn thành bởi một nhóm nhân viên, với thời gian yêu cầu phải hoàn thành.

Lập trình viên

Technical Lead

Vị trí này quyết định lớn về kết cấu chức năng phần mềm, về kiến trúc chức năng mã lệnh, đưa ra các giải pháp và phương pháp giải quyết.

Manager/Director

Tham gia quản lý cao cấp trong tổ chức. Thường thì một công ty tại mỗi thời điểm không chỉ gia công một phần mềm, một dự án, mà họ thực hiện rất nhiều dự án khác nhau cùng lúc. Manager/Director đảm bảo hoạt động thông suốt ở mọi bộ phận.

Software Architect

Vị trí này nắm được toàn bộ tổng quan về hệ thống phần mềm cần thi công. Đưa ra các thiết kế yêu cầu tổng quan về hệ thống. Software Architect quyết định đến khả năng phát triển, bảo dưỡng, mở rộng trong tương lai.

Để tìm hiểu rõ hơn, hãy đến blog của lập trình viên Phạm Huy Hoàng, một lập trình viên được khá nhiều người biết đến với blog Tôi Đi Code Dạo, chuyên chia sẻ các kiến thức dành cho những người đang theo ngành lập trình viên với tiêu đề tìm kiếm là CON ĐƯỜNG PHÁT TRIỂN SỰ NGHIỆP (CAREER PATH) CHO DEVELOPER

Bạn có thể tìm hiểu thêm về định hướng ngành nghề khác như gia công CNC, thiết kế rập, điện tử viễn thông …