Programmer, Coder, Developer và Engineer khác nhau như thế nào?

Programmer, Coder, Developer và Engineer khác nhau như thế nào?

“Developer”, “Programmer”, “Coder” và “Engineer” thường được dùng để chỉ những người làm việc trong ngành công nghệ, phát triển phần mềm. Nhưng làm cách nào để phân biệt được Developer, Programer hay Coder? Đặc thù công việc riêng biệt của từng vị trí là gì? Làm sao để từ Coder phát triển thành Programer, Developer?

Tác giả: Lê Tuấn Anh dịch lại câu trả lời của Aideen NasiriShargh trên Quora.

Chúng ta thường sử dụng ba thuật ngữ: “Developer”, “Programmer”, “Coder” và “Engineer” để ám chỉ những người làm việc trong ngành công nghệ phát triển phần mềm. Nhưng đã bao giờ bạn tự hỏi họ là ai? Làm cách nào để phân biệt được Developer, Programer hay Coder?  Cùng xem câu trả lời trên Quora của Aideen NasiriShargh nhé.

CODERCoder Là Gì? Theo Đuổi Nghề Coder Bạn Cần Trang Bị Những Gì - Glints  Vietnam Blog

Nếu bạn có 1 vấn đề và giải pháp rõ ràng được mô tả trong ngôn ngữ thường hoặc ngôn ngữ giả lập thì bạn cần 1 ‪‎Coder để chuyển chúng sang ngôn ngữ máy tính (Chỉ code).

Coder – Thợ lập trình, khi được giao việc code một chương trình nào đó thường cần phải kèm theo một bản mô tả chi tiết chương trình. Họ rất thạo việc viết mã và làm cho chương trình chạy đúng như mô tả. Nhưng hầu hết trường hợp sản phẩm họ tạo ra nhìn khá lộn xộn. Dù vậy, bạn cũng không thể đòi hỏi nhiều hơn ở các Coder.

Bất cứ ai khi viết code thường được những người không biết nhiều về công nghệ gọi là Coder. Tuy nhiên, thuật ngữ này chỉ được dùng cho những ai có công việc chính là viết chương trình ứng dụng. Coder thường được xem là những Programmer có ít kinh nghiệm, chưa được đào tạo nhiều. Họ thường không có đủ kiến thức về các thuật toán như Programmer hay Developer và thường là người mới bắt đầu vào nghề, chỉ biết một ngôn ngữ lập trình duy nhất như C, Java, PHP… 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”.

PROGRAMMER

Nếu bạn có 1 vấn đề nhưng không có giải pháp rõ ràng, bạn cần một ‪‎Programmer để giải quyết vấn đề đó, rồi mới đến việc Code. (Giải quyết vấn đề + Code).

Programmer – Viết code, am hiểu các thuật toán, tập trung chuyên sâu ở một số hệ thống và ngôn ngữ lập trình. Với các kỹ sư này, chỉ cần nói rõ tên chương trình, hoạt động của chương trình, còn lại họ có thể tự tiến hành thực hiện.

DEVELOPER

Nếu bạn cảm thấy mình có vấn đề cần giải quyết nhưng không thể định nghĩa nó rõ ràng được, bạn cần 1 ‪Developer để giúp bạn tìm ra vấn đề trước, sau đó xử lý nó. (Phân tích + Giải quyết Vấn Đề + Code).

Developer có tầm nhìn khái quát vấn đề, có khả năng sử dụng nhiều hệ thống khác nhau, nhiều ngôn ngữ lập trình, phối hợp những kiến thức trên để giải quyết vấn đề. Những người này thường không chỉ làm về code mà cả với con người, thường là giao tiếp, tiếp nhận vấn đề, phân tích và xây dựng giải pháp. Sau đó Developer sẽ đưa ra thiết kế của các chương trình, cũng như cung cấp các mô tả chi tiết cho Programmer và Coder.

TECHNICAL ARCHITECT

Nếu bạn gặp vấn đề và bạn biết rằng đó chỉ là vấn đề đầu tiên của 1 chuỗi dài những vấn đề nối tiếp nhau và bạn không thể dự đoán trước các khả năng có thể xảy ra trong tương lai, bạn cần 1 ‪Software Architect. Tương tự, nếu bạn có rất nhiều vấn đề và các Developer làm việc trong những vấn đề khác nhau nhưng không ai trong số họ nắm được bức tranh tổng quan, bạn cũng sẽ cần đến Architect.

SOFTWARE ENGINEER

Thuật ngữ “Engineer” hay “Software Engineer” (Kỹ sư phần mềm) thường dành riêng cho những lập trình viên ở 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 đó họ sẽ 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ế.

Phân biệt Programmer, Coder, Developer và Engineer

Vì vậy ta có thể đúc kết được cơ sở để phân biệt các thuật ngữ Coder, Programmer, Developer, Software Engineer 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 làm việc thực tế. Điều này có thể quy bằng số năm như 1 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 tại những công ty trước đây.

Tìm hiểu thêm về những vị trí riêng biệt trong ngành IT qua những bài viết của Spiderum nhé!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *