Có gì khác biệt giữa Kiến trúc sư phần mềm, Kỹ sư phần mềm và Nhà phát triển phần mềm (Lập trình viên)? [đóng cửa]


24

Tôi đang đọc qua bài báo của CNN về các công việc được trả lương cao nhất ở Mỹ. Một kiến trúc sư phần mềm được liệt kê là # 1 . Một kỹ sư phần mềm được liệt kê là # 9 . Và một nhà phát triển phần mềm (lập trình viên) được liệt kê ở # 35 . Tôi nghĩ rằng nó hợp lệ để thay thế nhà khoa học máy tính bằng lập trình viên, phải không?

Trước đó, tôi luôn thấy "Kỹ sư phần mềm" là danh hiệu dành cho các lập trình viên và trưởng nhóm có kinh nghiệm. Nhưng khi đó "Kiến trúc sư phần mềm" phù hợp với điều gì và chính xác họ làm gì? Tôi đã đọc các mô tả CNN nhưng chúng không thực sự làm tôi hài lòng vì vậy tôi cho rằng tôi có thể nhận được các mô tả kỹ lưỡng và có kinh nghiệm hơn từ cơ sở người dùng tuyệt vời ở đây.

Cảm ơn trước cho bất kỳ và tất cả các phản hồi nhận được.


1
rất nhiều câu hỏi liên quan đến chức danh công việc , đây có thể là quá cục bộ hoặc trùng lặp.
Josh K

1
Những dường như có liên quan như bản sao tiềm năng: programmers.stackexchange.com/questions/13439/... , programmers.stackexchange.com/questions/22124/... . Mặc dù vậy, tôi không nhìn thấy một thứ mang tất cả lại với nhau.
Adam Lear

9
Một kiến ​​trúc sư phần mềm muốn được trả nhiều tiền hơn :-)
Stephen C

4
Hmm, cắt tóc?
Pawka

7
@Rob S, một nhà khoa học máy tính KHÔNG phải là nhà phát triển phần mềm (lập trình viên).
systemovich

Câu trả lời:


24

Cảnh báo : Bằng chứng giai thoại sau ....

Theo kinh nghiệm của tôi, ít nhất là tại thị trường Úc - các thuật ngữ Lập trình viên, Nhà phát triển phần mềm và Kỹ sư phần mềm ít nhiều có thể thay thế cho nhau (Tôi đã giữ cả ba để thực hiện cùng một công việc thực tế).

"Giám đốc kỹ thuật phần mềm" được mô tả trong liên kết CNN của bạn không giống như "Kỹ sư phần mềm". Nó thực sự giống như một vai trò quản lý dự án kỹ thuật cấp cao. Loại người này thực sự sẽ không lập trình nhiều, nếu có. Vai trò này ít liên quan đến "Kỹ sư phần mềm" điển hình của bạn - thường chỉ là một tiêu đề được tôn vinh cho một lập trình viên trung cấp đến cao cấp.

"Kiến trúc sư phần mềm" được mô tả trong liên kết về cơ bản nghe giống như một trưởng nhóm cấp cao, kiểu người thiết kế cấu trúc tổng thể của một hệ thống phần mềm và sau đó có thể loại bỏ một số công việc nặng nề cho nhiều lập trình viên cơ sở hơn. Đây là loại người đứng đầu một dự án và có thể báo cáo cho "Giám đốc kỹ thuật phần mềm" - trong một công ty lớn nơi có rất nhiều nhóm viết các sản phẩm khác nhau, đặc biệt là cần phải tích hợp giữa chúng.

Phiên bản TL; DR :

  1. Kỹ sư phần mềm thường chỉ là một danh hiệu vinh quang cho "lập trình viên", có thể cho thấy có phần cao cấp.
  2. Kiến trúc sư phần mềm có lẽ gần như phù hợp với một nhóm trưởng cấp cao, người có trách nhiệm thiết kế kiến ​​trúc tổng thể của dự án.
  3. Giám đốc kỹ thuật phần mềm là một người quản lý dự án cấp cao, loại người có thể báo cáo lên các cấp cao nhất và có thể không chạm vào mã nào cả.

0,02 đô la


22
Thật là một tên người dùng tuyệt vời, "Bàn Bobby."
Josh K

2
$ 0,02 là bao nhiêu ???
Sarawut Positwinyu

10
@Sarawut: "Hai xu của tôi". Nó chỉ có nghĩa là "đây là ý kiến ​​của tôi". :)
Bàn Bobby

7

Tôi đã học nó theo cách này:

  • Kỹ sư phần mềm là người biết tất cả các khía cạnh của quy trình phát triển phần mềm (yêu cầu, đặc điểm kỹ thuật, thiết kế, kiến ​​trúc, thiết kế, triển khai, v.v.) để họ có thể đạt được các công việc quản lý hoặc làm việc ở bất cứ đâu trong quy trình, cải thiện nó, v.v.
  • Kiến trúc sư phần mềm là người chỉ làm việc trong giai đoạn Kiến trúc, sau bước thiết kế, là công việc kỹ thuật cao nhất mà người ta có thể hướng tới. Bạn vẫn cần lập trình, trái ngược với Kỹ sư phần mềm có thể trở thành quản lý. Đó cũng là một loại công việc bậc thầy.
  • Cũng không so sánh với Khoa học máy tính, Nhà khoa học máy tính có thể lập trình nhưng cũng có thể làm rất nhiều thứ khác, vì vậy chúng không giới hạn trong lĩnh vực lập trình.

Còn một "nhà phát triển phần mềm" thì sao?
Adam Lear

Tôi thực sự không biết làm thế nào để xác định vai trò đó. Tôi nghĩ đó là một lập trình viên, nhưng tôi không chắc. Tôi muốn nói rằng bạn không nên so sánh nó với Nhà khoa học máy tính. Xin lỗi về điều đó: s
Osukaa

"Nhà khoa học máy tính" chỉ đơn thuần là một danh hiệu học thuật, không hơn không kém. Hầu hết các lập trình viên nơi tôi làm việc là "Nhà khoa học máy tính", vì họ đã học "Khoa học máy tính" - một môn học họ dạy bạn rất nhiều về cách làm việc với các hệ thống kỹ thuật số và máy trạng thái, và toán học đằng sau nó. "Kỹ thuật máy tính" là nghề có "nhiều hơn lập trình" trong đó, bởi vì họ cũng dạy cho bạn rất nhiều về vật lý và điện.
Yam Marcovic

6

Ở bang Great Texas, nhiều công ty có xu hướng né tránh thuật ngữ 'Kỹ sư phần mềm', bởi vì ở Texas, chúng tôi cấp phép cho các kỹ sư, và trên thực tế có một thứ như 'Kỹ sư chuyên nghiệp, Phần mềm ( http: // www .tbpe.state.tx.us / eng_Vq.htm ).

Tôi chưa bao giờ gặp một người, tôi cũng không có ai biết. Tất nhiên, Hội kỹ sư rất muốn hạn chế cạnh tranh bằng cách yêu cầu giấy phép viết 'xin chào thế giới' nhưng điều đó chưa xảy ra.

'Nhà phát triển phần mềm' được sử dụng phổ biến hơn cho người có công việc chính là viết phần mềm.

Các công ty cũng có một chút thời gian dễ dàng hơn để xử lý các vấn đề về Visa cho 'Nhà phát triển phần mềm' thay vì 'Kỹ sư phần mềm'.

Tôi chỉ làm việc trong các công ty mới khởi nghiệp trong 15 năm qua, vì vậy tôi không quen với một loạt các chức danh công việc khác biệt, nhưng nói chung, một phần mềm 'Kiến trúc sư' là một nhà phát triển cao cấp, người rất giỏi trong việc đưa ra 'bức tranh lớn 'thiết kế một dự án phần mềm. Mỗi kiến ​​trúc sư mà tôi từng biết đều dành rất nhiều thời gian để viết mã, giống như mọi người khác, đặc biệt là sau khi thiết kế chính được thống nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.