Có gì sai khi là một con khỉ mã? (Hoặc, một con khỉ mã là gì?) [Đóng]


35

Các lập trình viên có xu hướng nói về việc trở thành một "con khỉ mã" theo cách xúc phạm. "Đừng làm việc ở đó , bạn sẽ chỉ là một con khỉ mã!".

Tôi có hai lời mời làm việc, một ở một công ty nhỏ, một ở một công ty rất lớn (cùng mức lương). Bạn tôi chỉ nói với tôi rằng tôi sẽ là một con khỉ mã ở công ty lớn, và từ kinh nghiệm đầu tiên rằng công ty nhỏ sẽ có ích hơn là giảm tôi thành một "con khỉ mã".

Tôi không thực sự hiểu sự khác biệt giữa một "khỉ mã" và một lập trình viên "thực sự". Xin hãy giải thích. Tôi thích lập trình, vì vậy với tôi ý tưởng ngồi vào một chương trình máy tính (ví dụ, khỉ mã) có vẻ không tệ. Một lập trình viên có nghĩa là gì bởi "khỉ mã" nếu anh ấy / cô ấy thích lập trình?


Jonathan Coulton thực hiện Code Monkey Unplugged youtube.com/watch?v=7s8S7QxpjeY
Adam



hmmmmm .... Code Monkey- oh chờ đã, không, tôi đang nghĩ về Chunky Monkey.
dietbuddha

Khỉ không phải là lập trình viên giỏi trừ Babun!
Arun Sangal

Câu trả lời:


32

Code Monkey có nghĩa là thực hiện mã hóa đơn giản để một con khỉ có thể làm điều đó

Nó thường được dùng để chỉ các công việc lập trình cấp thấp nhất, nhưng cũng có thể được sử dụng để chỉ một người không làm gì khác ngoài mã hóa. Không thiết kế giao diện người dùng, không có đầu vào kiến ​​trúc, không có quyết định phát triển, v.v.

Không có gì sai khi là một con khỉ mã (đôi khi tôi tự gọi mình là một con khỉ), nhưng rất có thể là nếu tất cả những gì bạn đang làm là mã hóa, bạn sẽ không bao giờ đi lên trong chuỗi và nhìn thấy những con số lương cao hơn có thể nhìn thấy và hiểu toàn bộ chu trình phát triển phần mềm.


21

"Mã khỉ" mô tả coder từ đó không cần sáng tạo. Lập trình viên như vậy sẽ thực hiện các nhiệm vụ lặp đi lặp lại, nhàm chán, thường tẻ nhạt, như hình thức nhân bản và thay đổi một nộp, v.v.

Những gì bạn gọi là "lập trình viên thực sự", sẽ là một người, người thực sự tham gia thiết kế logic của ứng dụng và thực sự sử dụng sự sáng tạo làm cho công việc.


Tôi không chắc liệu tôi có nói đúng không, nhưng đây có phải là công việc "lập trình viên thực sự" để làm việc theo logic kinh doanh của sự phát triển phần mềm không? Ví dụ: giả sử chúng tôi có một ứng dụng web, trách nhiệm của nhà phát triển là thiết kế (logic của) một tiện ích để hiển thị một số thống kê hoặc ai đó sẽ cung cấp tất cả thông tin bắt buộc cho nhà phát triển (nghĩa là những gì chúng tôi cần hiển thị, sẽ là mọi người đều có thể truy cập hoặc người dùng được ủy quyền, v.v.) và sau đó devewloper sẽ thiết kế lược đồ cơ sở dữ liệu, mã, v.v.? Tôi có thể nói những gì tôi đang cố nói không? -Xin lỗi vì tiếng Anh không tốt của tôi-
ltdev

15

Đối với tôi, ít nhất, sự khác biệt là một con khỉ mã chỉ tạo ra mã mà không thực sự nghĩ về nó, nơi mà một lập trình viên "đúng đắn" là một chuyên gia . Họ sử dụng các kỹ thuật kỹ thuật để tạo ra mã chất lượng cao hơn và có nhận thức về toàn bộ hệ thống, lên kế hoạch tốt hơn và thiết kế kỹ lưỡng hơn.

Ví dụ, một số tính năng của một lập trình viên "phù hợp" (mặc dù biết về văn hóa hàng hóa) có thể là:

  • Một lập trình viên có liên quan, ở một mức độ nhất định, với toàn bộ vòng đời phát triển phần mềm, không chỉ mã hóa. Khỉ mã có thể được mã hóa thiết kế hoặc theo các yêu cầu được đổ vào chúng, thay vì được tạo ra khi tham khảo ý kiến ​​với chúng.
  • Các lập trình viên tạo ra các thiết kế mở rộng (bao gồm các bài kiểm tra) trước khi viết bất kỳ mã nào. Họ khá chắc chắn rằng thiết kế là tốt (nhanh, hiệu quả, vv) trước khi họ bắt đầu viết nó. Khỉ mã nhảy thẳng vào. Họ không biết thiết kế có tốt không cho đến khi họ chạy nó.
  • Các lập trình viên chịu trách nhiệm lập kế hoạch cho công việc của họ. Khỉ mã chỉ làm những gì người quản lý của chúng nói với chúng, khi chúng được bảo.
  • Các lập trình viên được coi trọng như một cá nhân vì sự sáng tạo và kỹ năng của họ. Khỉ mã được xem như các hộp đen có thể hoán đổi cho nhau tạo ra mã.
  • Lập trình viên có khả năng thích ứng; họ có thể áp dụng các kỹ năng của mình cho nhiều lĩnh vực, ngôn ngữ, v.v. Mã khỉ quá chuyên môn hóa và bị lạc nếu phải làm việc với một khung mới.
  • Các lập trình viên luôn tìm cách phát triển bản thân như một chuyên gia. Khỉ mã ở lại nơi họ đang ở về kỹ năng và kinh nghiệm.

Tôi đã sử dụng hai điểm ở hai đầu đối diện của quang phổ ở đây - Tôi nghi ngờ hầu hết các công việc sẽ nằm ở đâu đó ở giữa. Ngoài ra, không chắc rằng toàn bộ sự nghiệp sẽ ở cùng một vị trí - một công ty tốt sẽ nỗ lực để đưa nhân viên của mình tiến tới kết thúc lập trình viên thông qua đào tạo và phát triển chuyên nghiệp. Có thể đáng để nhận một công việc lập trình viên cơ sở ở cuối mã khỉ nếu nhà tuyển dụng có sơ đồ tốt nghiệp hoặc tương tự sẽ dẫn đến tình trạng lập trình viên "đúng" cuối cùng.


Ai đó rõ ràng không đồng ý với tôi, vì họ đã từ chối - tôi rất muốn biết về điều đó.
Scott

2
Tôi đã gặp hai giống khỉ mã. Một trong số họ là "con chó già" chỉ cần mã hóa, đáng tin cậy và hoàn thành công việc. Nhưng với chi phí thiết kế lộn xộn và với mã chứa đầy những mô thức cũ và nhiều năm kinh nghiệm "hành trình" đã khiến họ xem mọi thứ như một cái đinh, và "hành trình" của họ như cái búa. Có lẽ là một trong những người đã hạ bệ bạn :)
Zoran Pavlovic

Bạn có thể thêm rằng các lập trình viên cũng cố gắng tìm hiểu chi tiết về những gì người dùng cuối muốn đạt được với phần mềm của họ và có khả năng ảnh hưởng đến thế giới rộng lớn như thế nào và sử dụng kiến ​​thức đó để đóng vai trò trong quá trình đưa ra quyết định của tổ chức về sản phẩm họ phát triển. Tôi khuyên bạn nên xem video về cuộc nói chuyện của Martin Fowler 'Nhiều hơn những con khỉ mã'. Một lập trình viên đôi khi tự quyết định công việc nào là tốt để làm và tự làm hoặc cố gắng thuyết phục quản lý của họ đồng ý.
bdsl

6

"Mã khỉ" 'mã mon.key' (/ koʊd / / mʌŋki /)

"Code Monkey" là một thuật ngữ xúc phạm được sử dụng để mô tả một lập trình viên rằng:

  • Tạo ra các nhiệm vụ lập trình được coi là cực kỳ đơn giản hoặc không có thách thức thực sự.
  • Không thực sự được phép giải quyết vấn đề, hoặc tham gia thiết kế ứng dụng.

Bây giờ "thật" lập trình viên đôi khi cũng có phôi các loại mã hóa bất cứ lúc nào.

Tuy nhiên, sự khác biệt chính là "khỉ mã" không có lựa chọn làm bất cứ điều gì khác.

Một "Mã Khỉ" có thể được sử dụng cho một trong hai hàm ý của một lập trình viên vị trí HOẶC khả năng


4

Theo tập tin biệt ngữ, một con khỉ mã có thể tham khảo:

  1. Một người chỉ có khả năng nghiền mã, nhưng không thể thực hiện các nhiệm vụ linh trưởng cao hơn về kiến ​​trúc, phân tích và thiết kế phần mềm. Nhẹ nhàng xúc phạm. Thường áp dụng cho hầu hết những người trẻ tuổi trong một nhóm lập trình.

  2. Bất cứ ai viết mã để kiếm sống; người lập trình viên.

  3. Một cách tự ti từ chối trách nhiệm đối với quyết định quản lý, hoặc phàn nàn về việc phải sống với những quyết định đó. Như trong cuốn sách Đừng hỏi tôi tại sao chúng ta cần phải viết một trình biên dịch trong COBOL, tôi chỉ là một con khỉ mã.

Theo Jonathan Coulton, một con khỉ mã:

  1. Nếu phải đối mặt với những lời chỉ trích không công bằng về mã của họ, họ sẽ tạo ra một cơn thịnh nộ chống lại nhà phê bình, nhưng có nguy cơ làm tổn thương tình trạng công việc của họ sẽ khiến cơn thịnh nộ bị dồn nén và không nói gì (Họ sẽ tuyên bố rằng họ không điên, chỉ tự hào.)
  2. Thích Fritos, Tab và Mountain Dew.
  3. Có một khía cạnh nhạy cảm mà họ không muốn, hoặc nhiều khả năng là không biết cách thể hiện (họ có trái tim "bí mật" mờ ấm lớn).
  4. Họ biết họ đang làm một công việc cuối cùng và thay vì đến để nói rằng công việc sẽ thay vì thức dậy, ăn bánh cà phê, tắm và ngủ trưa.
  5. Cố gắng thuyết phục bản thân rằng công việc của họ là "hoàn thành một cách sáng tạo", nhưng sâu thẳm họ biết rằng đó là một đống nhảm nhí.
  6. Không tốt trong các tình huống xã hội.
  7. Tất cả những điều được xem xét vẫn có một triển vọng tươi sáng về tương lai của họ.

Nói một cách nghiêm túc, một công việc không thể khiến bạn trở thành một con khỉ mã chỉ có hành vi và thái độ của bạn có thể làm điều đó.


3

Có cả một chương về các loại lập trình viên trong "Code Craft" của Pete Goodliffe . Tất cả các khía cạnh của "Code Monkey" có nghĩa là gì được đề cập trong các câu trả lời khác. Điều tôi muốn nhấn mạnh (và những gì văn bản của Goodliffe thể hiện), là bạn có thể tìm thấy ưu nhược điểm cho tất cả các loại. Tùy thuộc vào công việc và tính cách, có thể là tốt / mong muốn / đầy đủ để trở thành con khỉ mã của nhóm, người biến ý tưởng / khái niệm / kế hoạch thành hiện thực bằng cách tạo ra "Mã đẹp".


Tôi không biết định nghĩa bạn đang sử dụng là gì. Nhưng một con khỉ mã gần như KHÔNG BAO GIỜ tạo ra "Mã đẹp", theo bất kỳ ý nghĩa nào khác ngoài ý nghĩa châm biếm.
Zoran Pavlovic

0

Theo như một lập trình viên giỏi, bạn sẽ là một lập trình viên rất giỏi bất kể bạn đi đâu, đề nghị của tôi sẽ là một nhà phát triển. Về lưu ý là một con khỉ mã, đó là một mối quan hệ mà bạn tự xây dựng hoặc công ty buộc bạn phải làm. Trở thành một con khỉ mã có nghĩa là tất cả những gì bạn làm là tập trung vào một công cụ hoặc công nghệ đơn giản và bạn được giữ trong một chế độ phát triển của những thứ nhỏ nhặt, bạn biết tiềm năng của bạn nằm trong việc làm những việc lớn hơn nhiều, nếu đó là công việc đầu tiên của bạn, hãy tiếp tục công ty lớn hơn, ngay cả khi nó giữ bạn ở cấp độ khỉ trong một thời gian và tin tưởng tôi nếu công ty lớn và tôi chắc chắn nếu bạn làm việc chăm chỉ, bạn sẽ trở thành một mã Godzilla !!! Nếu bạn của bạn nói rằng công ty rất lớn và bạn sẽ được giữ theo kiểu tiền mã hóa, anh ta đã sai. Các công ty phát triển lớn bởi vì họ có xu hướng giải quyết các vấn đề lớn về quy mô công nghiệp và họ làm việc trên các vấn đề thiết kế và phát triển lớn hơn. Các công ty nhỏ hiếm khi làm điều đó nhưng điều đó không có nghĩa là các công ty nhỏ sẽ không phát triển hoặc bạn sẽ là người lãnh đạo nhóm trong một vài tháng, giống như tất cả chúng ta, bạn sẽ leo lên các nấc thang.

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.