it-swarm-vi.com

Sự khác biệt giữa "nhà phát triển" và "lập trình viên" là gì?

Sự khác biệt trong thuật ngữ này là gì? Là một người được coi là chuyên nghiệp hơn so với người khác?

40
Brandon

Mặc dù các thuật ngữ có thể và thường có thể thay thế cho nhau, tôi xem nhà phát triển là người tham gia vào toàn bộ quá trình từ thu thập yêu cầu, thông qua đặc tả và mã hóa đến thử nghiệm và, vâng, hỗ trợ. Họ có thể không tham gia đầy đủ vào tất cả các giai đoạn mọi lúc.

Một lập trình viên là người chỉ tập trung vào mã hóa và ít tham gia vào phần còn lại của quá trình. Đây có thể là sự lựa chọn của họ trong khóa học.

Như @sunpech chỉ ra trong bình luận của ông, hầu hết mọi người viết phần mềm ngày nay là (hoặc nên là) nhà phát triển. Bạn phải biết nhiều hơn là cách viết mã để viết phần mềm tốt.

57
ChrisF

Nó phụ thuộc vào người mà tôi đang đoán. Nếu tôi đang nói chuyện với Joe trung bình, tôi chỉ nói tôi là một lập trình viên bởi vì họ thường có một bức tranh rõ ràng hơn "nhà phát triển".

25
Marcel Lamothe

Như Kenny Tilton nói:

Tôi thực sự đã có một danh thiếp chỉ nói "Lập trình viên". Mọi người khá khó chịu, họ muốn "Nhà phân tích hệ thống" hoặc "Kỹ sư phần mềm" hoặc "Quản trị viên cơ sở dữ liệu" hoặc một cái gì đó. Quan điểm của tôi là người ta không thể lập trình máy tính hiệu quả mà không làm tất cả những việc đó, vì vậy "Lập trình viên" là đủ.

Nhưng điều quan trọng hơn nhiều không phải là những gì bạn nghĩ rằng Word có nghĩa là gì, mà là người khác nghĩ rằng Lời có nghĩa. Nếu khỉ nhân sự nhìn vào CV của bạn không phải là Ken Tilton, rất có thể họ nghĩ rằng lập trình viên == mã khỉ == người đánh máy được tôn vinh. Ý tôi là, "Kiến trúc sư" ở đâu trong tiêu đề công việc?!

12
Frank Shearar

Tôi thường coi "lập trình" là hành động viết mã. Một "lập trình viên" sẽ dành phần lớn hoặc toàn bộ thời gian của mình trước một mã hóa màn hình.

Mặt khác, một nhà phát triển là bất kỳ ai tham gia vào việc phát triển phần mềm - họ phát triển nó từ ý tưởng đến sản phẩm. Theo định nghĩa này, một nhà phát triển sẽ là bất kỳ ai từ một con khỉ mã đến một người thử nghiệm đến một PM. Như vậy, 'lập trình viên là một tập hợp con của "nhà phát triển".

Tất nhiên, đây chỉ là ý nghĩa chung mà tôi có, không phải là một định nghĩa kỹ thuật.

10
Fishtoaster

Nó lại là một câu hỏi về bối cảnh. Hai anh chàng bia, một người nói anh ta là nhà phát triển, và một người nói anh ta là lập trình viên ... không có sự khác biệt có ý nghĩa. Nhưng chắc chắn rằng các công ty có thể có vị trí với những chức danh có ý nghĩa cụ thể đối với họ.

3
GrandmasterB

Tôi không biết bất kỳ sự khác biệt thực sự trong ý nghĩa. Chủ yếu là sự chỉ định công việc khác nhau giữa các cửa hàng phần mềm. Tôi đã thấy những người về cơ bản làm những việc tương tự được gọi là "lập trình viên", "nhà phát triển", "kỹ sư CNTT", v.v ... Rất nhiều người sử dụng những điều này và các thuật ngữ tương tự khác có thể hoán đổi cho nhau.

Một điều khác mà tôi nhận thấy, có lẽ là một hiện tượng cục bộ và có thể không áp dụng ở nơi bạn sống, đó là một số người cố gắng tránh liên kết bản thân với thuật ngữ "lập trình viên" hoặc "lập trình viên". Đôi khi, vì họ nhận thấy rằng thực sự viết mã giống như lao động thủ công, trong khi tự gọi mình là "nhà phát triển" hoặc một cái gì đó khác mang lại cho họ cảm giác cổ trắng hơn. Đôi khi chỉ vì mọi người thực sự không biết cách viết mã rất tốt - và họ sẽ cảm thấy xấu hổ nếu ai đó bắt đầu một cuộc trò chuyện về lập trình, và muốn tránh tự giới thiệu mình là một "lập trình viên" vì lý do đó. Hầu như luôn luôn nó là một hỗn hợp của cả hai trường hợp.

2
MAK

Ngày nay, nhà phát triển nghe có vẻ hấp dẫn giới tính hơn so với lập trình viên - nhà phát triển tạo ra những ứng dụng sáng bóng tuyệt vời cho iPhone, lập trình viên tạo ra phần mềm kế toán. ;)

2
firusvg

Tôi nghĩ đó là một câu hỏi về thời trang. Hiện tại, thuật ngữ "mát" có xu hướng trở thành "nhà phát triển" hơn.

Dù sao, tôi thích thuật ngữ "nhà phát triển" hơn vì tôi nghĩ nó ngụ ý rằng công việc có thể là lập trình, nhưng cũng có những thứ khác, như tích hợp và cấu hình một công cụ hiện có trong hệ thống của bạn. Hoặc chịu một số trách nhiệm về quản lý dự án. Hoặc thậm chí thực hiện một số thiết kế giao diện người dùng ... Nhưng đó chỉ là cách tôi hiểu Lời, không nhất thiết là ai đó tự xác định mình là lập trình viên, họ không làm những việc đó ...

1
Khelben

Câu trả lời ngắn gọn là có rất ít sự khác biệt (nhận thức hoặc thực tế) giữa hai nhãn chung này giữa những người chúng ta kiếm sống trong miền này. Tuy nhiên, như nhiều người đã nói, một số cá nhân hoặc tổ chức áp dụng các định nghĩa rất cụ thể cho các danh từ chung này ... và điều đó đôi khi có thể gây ra sự khác biệt về nhận thức hoặc thực tế, đặc biệt là các loại phi kỹ thuật.

Về cơ bản, nếu hai thuật ngữ này có ý nghĩa khác biệt với bạn, thì bạn hoặc a) đã ở trong bối cảnh áp dụng các định nghĩa cụ thể khác nhau cho các nhãn đó hoặc b) bạn hiểu được công nghệ của mình khi đọc InfoWeek (không có ý xúc phạm đối với sự đáng yêu người tại InfoWeek) và Dilbert thỉnh thoảng.

Cá nhân tôi cũng có xu hướng nghĩ rằng thuật ngữ "lập trình viên" đã được sử dụng sớm hơn trong lịch sử so với thuật ngữ "nhà phát triển". Ví dụ: bạn luôn nghe về "Lập trình viên COBOL" ... không bao giờ là "Nhà phát triển COBOL". Thuật ngữ "nhà phát triển" không được sử dụng rộng rãi trong ngày. Nếu bạn nhìn vào các chức danh công việc tại các tổ chức công nghệ xuất hiện từ đầu của máy tính (NASA, IBM, Unisys, Boeing), bạn có "lập trình viên" hoặc "kỹ sư phần mềm" ... không bao giờ là "nhà phát triển". Và tôi cá là nếu bạn troll các trang web của các công ty cho biết ngay bây giờ bạn sẽ thấy kết quả có tiêu đề rất giống nhau trong cơ hội việc làm của họ.

1
Ed Lucas