Cùng làm phần mềm, Programmer, Coder, Developer và Engineer khác nhau thế nào?

Có rất nhiều tên gọi cho những người làm trong ngành phần mềm, chẳng hạn như: Engineer (Kỹ sư), Programmer (Người viết chương trình), Coder (Người viết code), Developer (Lập trình viên), và Computer Scientist (nhà khoa học máy tính). Bạn có thật sự biết chính xác họ làm gì và trong trường hợp nào nên gọi họ là gì không?
Cùng làm phần mềm, Programmer, Coder, Developer và Engineer khác nhau thế nào?
Cùng làm phần mềm, Programmer, Coder, Developer và Engineer khác nhau thế nào?

Trên thực tế, tùy từng tổ chức mà các thuật ngữ này được sử dụng phù hợp với cơ cấu của tổ chức, các thuật ngữ này cũng được sử dụng qua lại lẫn nhau. Mỗi thuật ngữ có thể thay đổi và mang nghĩa khác nhau tùy từng trường hợp được sử dụng.

Vì vậy, làm cách nào chúng ta phân biệt những thuật ngữ này với nhau và ai hay loại chuyên gia nào sẽ được yêu cầu cho một công việc cụ thể? Trong khi đó, không có quy tắc cụ thể nào để phân biệt, chúng ta hãy cùng xem các tên gọi dưới đây và xem chúng có ý nghĩa gì:

Developer (nhà phát triển) và Programmer (người viết chương trình)

Nói chung, họ thường là những người viết code có kinh nghiệm, thông thạo ít nhất 2 đến 3 ngôn ngữ lập trình và viết code rất tốt, không có lỗi và đầy đủ các yếu tố. Họ có thể áp dụng các kiến thức về các thuật toán để tạo ra các đoạn code phần mềm với độ phức tạp cao.

Nhà phát triển đôi khi cũng được xem như người chịu trách nhiệm từ đầu cho đến khi hoàn thành một dự án, từ khâu thiết kế cho đến hoàn chỉnh ứng dụng. Trong một số công ty, developer thường giám sát một đội coder và programmer để đảm bảo thiết kế của ứng dụng thân thiện với người dùng và sản phẩm cuối cùng hoàn chỉnh được tạo ra. Developer trong các trường hợp này thường là người liên hệ trực tiếp với các yêu cầu của khách hàng, sau đó sẽ trao đổi lại với toàn đội để giải quyết các vấn đề, đảm bảo các thay đổi đáp ứng với yêu cầu, và trả lời các khúc mắc của khách hàng.

Trong một số trường hợp nhất định như các developer chuyên về lập trình phần mềm, ứng dụng hay web cũng có thể gọi là programmer.

Coder

Bất cứ ai khi viết code thì thường được người không rành công nghệ gọi là một coder. Tuy nhiên, thuật ngữ này có thể xem xét và sử dụng cho những ai sống bằng viết chương trình ứng dụng mỗi ngày. Coder thường được sử dụng cho những programmer có ít kinh nghiệm và được đào tạo ít nhất. Họ thường không có đủ kiến thức về các thuật toán như programmer hay developer, cũng như thường là người mới bắt đầu vào nghề, và chỉ biết một ngôn ngữ lập trình duy nhất. Coder thường được giao các công việc viết các đoạn mã đơn giản do các developer phân công. Trong một số trường hợp, coder còn được thay thế bằng "Junior Programmer" hoặc "Junior Developer".

Engineer

Thuật ngữ "engineer" hay "software engineer" (Kỹ sư phần mềm) thường dành riêng cho những chuyên gia viết code giỏi nhất, ở trình độ cao nhất. Engineer thường thông thạo ít nhất 3 ngôn ngữ lập trình và sử dụng nhiều kĩ năng để thiết kế và xây dựng cấu trúc tổng thể của ứng dụng. Họ kết hợp các mô-đun lại với nhau thành sản phẩm cuối cùng để hình thành nên giao diện trắng, phần cốt lõi của ứng dụng, sau đó làm việc với các programmer và developer để hoàn chỉnh tất cả tính năng theo thiết kế.

Vì vậy chúng ta có thể đúc kết được cơ sở để phân biệt các thuật ngữ này là dựa vào kĩ năng như am hiểu về công nghệ, kĩ thuật, thiết kế, về thuật toán, kĩ năng viết code…, dựa trên kinh nghiệm code thực tế (có thể quy bằng số năm như 1 năm hay 2 năm, hoặc bằng các ứng dụng đã tạo ra…), và cũng có thể dựa trên vị trí công việc của mỗi người tại một công ty.

Do đó, có thể tóm tắt bằng bảng minh họa sau:

Các bạn có tán đồng với các định nghĩa về những thuật ngữ trên hay không, hay các bạn có cách nghĩ khác? Hãy cùng nhau thảo luận để có định nghĩa phù hợp nhất.

Theo Tạp chí Diễn đàn đầu tư

http://vnreview.vn/tin-tuc-xa-hoi-so/-/view_content/content/2184013/cung-lam-phan-mem-programmer-coder-developer-va-engineer-khac-nhau-the-nao