Khám Phá Các Công Việc Trong Ngành Công Nghệ Phần Mềm

Tác giả: Đoàn Văn Tuyển

Ngành công nghệ thông tin (CNTT) đang ngày càng phát triển mạnh mẽ, và nhiều sinh viên thường băn khoăn về tương lai nghề nghiệp của mình sau khi tốt nghiệp. Thực tế, lĩnh vực CNTT rất đa dạng với hàng trăm công việc khác nhau, đặc biệt là trong ngành công nghệ phần mềm. Dưới đây, mình sẽ giới thiệu một số công việc phổ biến trong ngành này cùng với những kỹ năng cần thiết cho từng vị trí.

Cần lưu ý rằng trong các công ty nhỏ, một cá nhân có thể đảm nhận nhiều vai trò khác nhau, trong khi ở các công ty lớn, các vị trí thường được phân chia rõ ràng hơn. Mình cũng sẽ đề cập đến những kỹ năng quan trọng cho mỗi vị trí, mặc dù không chỉ giới hạn ở những kỹ năng đó.

Người viết: Tuyền Đoàn

Đầu tiên, không thể không nhắc đến lập trình viên. Đây là vị trí mà bạn có thể lựa chọn từ hàng chục ngôn ngữ lập trình khác nhau như Java, .Net, PHP, Python, Swift, Kotlin, NodeJS, GoLang, JavaScript… Bên cạnh đó, có nhiều loại hình lập trình khác nhau như lập trình backend, frontend, kỹ sư dữ liệu, lập trình cơ sở dữ liệu… Ở Việt Nam, nhiều người thường nghĩ rằng lập trình viên chỉ làm việc đến tuổi 30 và sau đó chuyển sang quản lý. Tuy nhiên, trên thế giới, lập trình viên có thể tiếp tục làm việc lâu dài và trở thành chuyên gia trong lĩnh vực của họ. Nhiều Giám đốc Công nghệ (CTO) vẫn tham gia vào các công việc lập trình phức tạp. Vị trí này yêu cầu kỹ năng giải quyết vấn đề và khả năng trừu tượng hóa.

Trong các công ty Việt Nam, vị trí lập trình viên thường được kiêm nhiệm bởi CTO hoặc Tech Lead. Để thành công trong vai trò này, bạn cần có kiến thức sâu về lập trình, cơ sở dữ liệu, máy chủ và phát triển sản phẩm. Bạn cũng cần hiểu rõ các vấn đề ngắn hạn và dài hạn có thể phát sinh trong quá trình phát triển, cũng như nắm vững ưu nhược điểm của từng ngôn ngữ lập trình, cơ sở dữ liệu và máy chủ. Một người có trí tưởng tượng tốt sẽ dễ dàng hình dung ra các vấn đề có thể xảy ra trong tương lai. Vị trí này đòi hỏi kỹ năng lập kế hoạch và chiến lược.

Tiếp theo là vai trò của nhà thiết kế trải nghiệm người dùng (UX Designer). Họ là những người hiểu rõ cách mà người dùng tương tác với sản phẩm. Họ cần mô tả cho nhóm phát triển về các thành phần của phần mềm, cách người dùng sẽ tiếp cận sản phẩm, và thiết kế giao diện người dùng. Họ cũng cần nắm vững khái niệm về hành trình của khách hàng (customer journey mapping). Tương tự như kiến trúc sư hệ thống, UX Designer ở Việt Nam thường kiêm nhiệm vai trò của Product Manager hoặc UI Designer. Đối với UX Designer, sự tỉ mỉ và khả năng tưởng tượng là rất quan trọng.

Vị trí tiếp theo là Business Analyst (BA) hoặc Product Owner (PO). Đây là những người chịu trách nhiệm về yêu cầu công việc và thường là cầu nối giữa các bộ phận phi kỹ thuật như Marketing, Bán hàng, Giám đốc điều hành với các bộ phận kỹ thuật. Họ cần có khả năng giao tiếp tốt để chuyển tải yêu cầu của các nhóm khác sang ngôn ngữ kỹ thuật mà các nhà phát triển và UX Designer có thể hiểu và thực hiện. BA/PO cũng có thể là người đề xuất hướng đi cho dự án. Kỹ năng phân tích và đánh giá nhu cầu của các bên liên quan là rất cần thiết cho vị trí này.

Quản lý dự án (Project Manager – PM) là một vị trí quan trọng khác. Họ chịu trách nhiệm phân công công việc cho các thành viên trong nhóm và đảm bảo rằng dự án đi đúng hướng. PM cần hiểu rõ điểm mạnh và điểm yếu của từng thành viên để bố trí công việc hợp lý. Họ là người biến những mong muốn của BA/PO thành hiện thực thông qua việc làm việc với các thành viên khác. Tuy nhiên, trong một số trường hợp, PM có thể kiêm nhiệm cả vai trò của BA/PO, thậm chí cả kiến trúc sư hệ thống và UX Designer. Điều này có thể dẫn đến tình trạng tắc nghẽn trong quy trình làm việc. Ở Việt Nam, PM thường được coi là “sếp”, nhưng thực tế họ chỉ là một phần trong đội ngũ, không phải là người đứng đầu. Kỹ năng giao tiếp và khả năng lập kế hoạch là rất quan trọng đối với PM.

Tester/QA là những người đảm bảo rằng sản phẩm do lập trình viên phát triển đáp ứng đúng yêu cầu của BA/PO. Họ kiểm tra sản phẩm để đảm bảo chất lượng và tính hợp lý. QC là người kiểm soát quy trình, đảm bảo rằng quy trình được thực hiện đúng cách, từ đó gián tiếp đảm bảo chất lượng sản phẩm. Đối với QA, sự tỉ mỉ và cẩn thận là những yếu tố quan trọng nhất.

Quản trị hệ thống là những người đảm bảo môi trường phát triển cho nhóm. Họ thực hiện việc cài đặt máy chủ, sao lưu dữ liệu, thiết lập môi trường phát triển và vận hành hệ thống. Đối với những người không chuyên về công nghệ, họ có thể được coi là những người chỉ biết cài đặt Windows và khởi động lại modem khi cần thiết. Kỹ năng ra quyết định và sự cẩn thận là rất quan trọng trong vai trò này.

Trong ngành công nghệ phần mềm, các vị trí liên quan đến dữ liệu cũng đang ngày càng trở nên quan trọng. Data Engineer là người biết lập trình và có khả năng phân tích dữ liệu, họ viết các chương trình phần mềm để xử lý dữ liệu và tạo ra báo cáo. Data Analyst sử dụng các công cụ hoặc kết quả từ Data Engineer để đưa ra hành động hoặc kết luận phục vụ cho các bộ phận khác trong doanh nghiệp. Data Scientist là người có kiến thức sâu hơn về thuật toán xử lý dữ liệu và hướng dẫn Data Engineer trong việc xử lý dữ liệu theo các thuật toán mà họ đề xuất. Đối với các vị trí này, khả năng hiểu và phân tích dữ liệu là rất cần thiết.

Cuối cùng, Product Manager là vị trí tương tự như Project Manager nhưng tập trung nhiều hơn vào sản phẩm. Họ cần có kiến thức đa dạng và kinh nghiệm trong nhiều lĩnh vực, bao gồm UX Design, BA, System Architect, Developer và cả kinh doanh. Để đảm nhận vị trí này, bạn cần có nhiều kỹ năng, từ phân tích đến tư duy chiến lược, cũng như sự tỉ mỉ trong từng chi tiết.

Trên đây là một cái nhìn tổng quan về các vị trí chính trong ngành công nghệ phần mềm. Tùy thuộc vào từng công ty, các vị trí này có thể được chia nhỏ hoặc phát sinh thêm nhiều vai trò mới. Đây là những chia sẻ dựa trên kinh nghiệm cá nhân, mong nhận được ý kiến đóng góp từ mọi người.

Viết một bình luận