Tại sao các lập trình viên giỏi được gọi là Ninjas? [đóng cửa]


36

Một lập trình viên Ninja được định nghĩa như thế nào? Nếu nó chỉ là một nhà phát triển có kinh nghiệm, thì thực sự không có cách nào tốt hơn để mô tả điều đó? Ninja có vẻ như một mánh khóe tiếp thị trẻ con được thiết kế để thu hút các nhà phát triển với ảo tưởng về sự tự cao tự đại. Hay tôi đang thiếu một cái gì đó? Cụ thể tôi muốn biết những phẩm chất nào của một Ninja được mong muốn ở các lập trình viên làm cho sự so sánh có giá trị (bên cạnh yếu tố mát mẻ)?

Tôi đã tìm thấy bài viết này để làm cho một số so sánh tốt giữa các đặc điểm Ninja và phát triển Agile. Tuy nhiên, tôi muốn nghe từ những người đã sử dụng từ Ninja cho mục đích tuyển dụng và động lực của họ đằng sau nó là gì.

Cập nhật: Có một số điểm tốt được nêu ra ở cả hai phía của cuộc tranh luận. Tôi đã cố gắng tóm tắt những điều này trong bài viết trên blog của tôi . Tôi đã chọn câu trả lời của JB là câu trả lời được chấp nhận vì nó tóm tắt tất cả các lý do hợp lệ để thực hiện so sánh.


3
Ninja là chuyên gia về võ thuật. Lập trình viên giỏi là chuyên gia lập trình.

5
Chưa bao giờ được gọi là Ninja. Mặt khác, Đạo sư hoặc Sư phụ ...
noone

40
Điều này làm tôi nhớ đến 'Phương pháp Ninja' khi làm việc với các con trỏ: Chỉ cần ném các ngôi sao (*) xung quanh cho đến khi nó hoạt động. ^^
gablin

10
Thuật ngữ chính xác là "sát thủ mã hóa ninja khỉ guru anh hùng đẹp trai sexmachine."
Tối đa

2
@maxpm, hy vọng nhãn "sexmachine" không liên quan trong khi lập trình?

Câu trả lời:


33

Trong tâm trí tôi có một vài điểm tương đồng giữa một Ninja và một lập trình viên giỏi:

  1. Vũ khí ẩn / phong cách không chính thống - Nếu bạn từng xem phim hoạt hình GI Joe từ những năm 1980, bạn có thể nhớ nhân vật Storm Shadow . Anh ta có một thanh kiếm và một số ngôi sao ném nhưng chỉ với những cú đấm và cú đá phù hợp đã xoay sở để lấy ra một chiếc xe tăng trong một tập phim. Theo cách tương tự, các lập trình viên có thể được gọi để thực hiện một số công việc đòi hỏi họ phải rút vũ khí mà bạn có thể không nghĩ rằng họ có. Đây là một điểm họ hàng "Hacker" đã được đề cập ở một vài nơi.

  2. Danh dự / sự tôn trọng - Được cho rằng tôi đã thấy điều này nhiều hơn trong các vai diễn phương Tây của một ninja như GI Joe hay Teenage Mutant Ninja Turtles, nhưng dường như có thái độ tôn vinh kẻ thù của một người, có thể được lấy từ "Art of War". Những lập trình viên giỏi có thể tôn trọng rằng có thể có những người giỏi hơn ở đâu đó. Khiêm tốn cũng theo nghĩa này.

  3. Làm chủ ngụ ý - Có thể có giả định này rằng tất cả các ninja đều là bậc thầy và do đó đã thực sự mài giũa kỹ năng của mình để biết cách chiến đấu tốt. Các lập trình viên giỏi có thể đã thành thạo tương tự một số kỹ năng khá có lợi trong việc hoàn thành công việc.

Đó là một số ít ngoài bề ngoài, "Ồ nghe có vẻ hay đấy", ngụ ý rằng phải có một ít thịt để nó dính vào. Mặc dù tôi đồng ý rằng Samurai có thể là tiêu đề chính xác hơn, nhưng một khi mọi thứ đã được đưa ra trong một hình thức không chính xác, người ta phải điều hòa mọi thứ ở đây vì TMNT không thực sự được coi là lính đánh thuê bí mật, đó là những gì Ninjas về mặt kỹ thuật là. Tuy nhiên, đối với những người trong chúng ta lớn lên với các mô tả hoạt hình về Ninjas dưới ánh sáng tích cực này thì đây là điều có thể gắn bó với chúng ta và do đó cũng có một yếu tố hoài cổ ở đây.


19
Thế còn quần áo tối màu và không nói nhiều? :-P
JBRWilkinson

Ssshhh ... tàng hình là một trong những vũ khí tiềm ẩn. :)
JB King

4
"Trong số vũ khí của họ là tàng hình, vũ khí ẩn giấu và sự tận tâm gần như cuồng tín đối với các phong cách mã hóa tốt .... cũng ít nói hơn ... bah! Tôi sẽ trở lại ..."
Timothy Baldridge

Bạn đang nghĩ về samurai. Ninjas chỉ là những kẻ giết người đẫm máu. Không có danh dự với ninja.
BЈовић

Bạn đã bao giờ nhìn thấy "Teenage Mutant Ninja Turtles" ở dạng phim hoạt hình hay phim chưa?
JB King

41

Đó là khá nhiều như bạn nói - một nỗ lực để ám chỉ sự mát mẻ và tinh hoa (thường là giữa những người không phải) bằng cách so sánh rất khó khăn.

Cá nhân tôi ghét cụm từ này (cùng với "Lập trình viên Rockstar" khiến chúng tôi muốn đánh người đến chết - bạn có thể là một lập trình viên nhạc rock khi bạn có thói quen sử dụng ma túy và uống ít nhất một xe hơi và một phòng khách sạn ).

Bạn là một lập trình viên, nếu bạn gặp vấn đề với việc trở thành một lập trình viên vì bạn muốn làm điều gì đó mà bạn cho là mát mẻ hơn thì hãy giải quyết chúng (hoặc bỏ việc để làm điều gì đó mà bạn cho là mát mẻ hơn). Nếu bạn không thích cách người khác xem các lập trình viên thì hãy hiểu rằng vấn đề của họ không phải của bạn.

Bạn chắc chắn sẽ không thay đổi suy nghĩ của họ bằng những cụm từ khiến cho một đứa trẻ 12 tuổi trung bình nghĩ rằng bạn đang cố gắng một chút để trở nên ấn tượng.

/ rant

Chỉnh sửa: Để rõ ràng, lời nói không nhằm vào người hỏi ...


6
@Larry - Hầu hết các so sánh có thể được áp dụng như nhau cho các chuyên gia thực sự giỏi trong các lĩnh vực khác nhưng bạn không nhận được luật sư ninja, bác sĩ ninja hoặc nhân viên tài khoản ninja phải thu (ngoại trừ Herbert Kornfeld). Không phải là câu hỏi thú vị tại sao các lập trình viên cảm thấy cần phải làm điều này?
Jon Hopkins

9
@Jom Hopkins, NHS ở Anh có rất nhiều bác sĩ ninja ... bạn chắc chắn không bao giờ nhìn thấy họ.
Kevin D

6
@Jon Hopkins: Văn hóa lập trình khuyến khích sự gắn kết và hài hước ở cấp độ văn hóa. Nhiều lập trình viên xem ninja là ngầu và muốn trở nên ngầu và vì thế được gọi là ninja là khá tuyệt vời. Đương nhiên, điều này không áp dụng trên bảng và có những lập trình viên ghét kiểu đó. Nó phụ thuộc vào mỗi người. Nhưng nói chung, lập trình phát triển để trở thành một nghề chính thống như bác sĩ, luật sư, v.v. và mang theo các tài liệu tham khảo văn hóa nhóm (rockstars, ninja, v.v.)
Adam Lear

3
@Adam Lear, nếu điều này được coi là một phần thiết yếu của "văn hóa lập trình", tôi không muốn làm gì với "văn hóa" đó. Mối liên kết sâu sắc nhất mà tôi từng trải nghiệm với các nhà phát triển khác dựa trên khả năng và công đức.
jonathanconway

3
@Adam - Tôi hiểu nền tảng, tôi chỉ thấy toàn bộ một chút tuổi teen và tôi nghĩ nó chê bai các lập trình viên là những chuyên gia nghiêm túc một khi chúng ta bước vào độ tuổi 20 và 30 (trở lên). Tôi không nói rằng các lập trình viên nên từ bỏ văn hóa lập trình viên nhưng có một sự khác biệt giữa việc đọc XKCD và Neal Stephenson hoặc dành những ngày cuối tuần của chúng tôi để học về mật mã (có thể là táo bạo nhưng cũng thông minh), và điều này hơi trẻ con và trong thực tế về xa như bạn có thể nhận được.
Jon Hopkins

15

Một khái niệm mà các chuyên gia võ thuật và lập trình viên giỏi có điểm chung là nền kinh tế nỗ lực. Chuyên gia võ thuật tránh lãng phí chuyển động; lập trình viên giỏi tránh mã không cần thiết.

Khái niệm về tàng hình chuyển thành tính minh bạch trong văn bản thư viện. Một thư viện tốt có giao diện trực quan, và bạn có thể cắm nó vào và không phải lo lắng về nó.

EDIT: Tôi đã quên điều quan trọng nhất: cả ninja và lập trình viên giỏi đều có kỹ năng cao do kết quả đào tạo và thực hành.


1
1. Nó phụ thuộc vào võ thuật. Bạn có chắc chắn họ tránh lãng phí chuyển động trong kung fu hoặc capoeira? 2. Bạn có thể là một ninja và / hoặc một lập trình viên và rất kém về nó. Điều đó nói rằng, dù sao tôi cũng đánh giá cao câu trả lời của bạn;) +1

@Pierre: cảm ơn. Câu trả lời của tôi có thể sử dụng một số tinh chỉnh, nhưng tôi muốn đưa một cái gì đó ra để giúp chứng minh rằng câu hỏi là hợp lệ. Như bạn có thể thấy, đã có một phiếu bầu để đóng.
Larry Coleman

15

Theo hiểu biết của tôi, không phải mọi lập trình viên giỏi hay xuất sắc đều là Ninja. Ninjas là một giống đặc biệt. Một lập trình viên Ninja là người xuất hiện vào những thời điểm khác thường (ví dụ 3 giờ sáng), có một số thứ nguy hiểm mà người bình thường không muốn (như sử dụng trình soạn thảo hex để sửa lỗi cực kỳ nghiêm trọng trong một chương trình được cho là không thể khắc phục được trong một thập kỷ trên máy chủ sản xuất) và biến mất không nhìn thấy.

Rõ ràng, mặc dù một Ninja cần các kỹ năng kỹ thuật xuất sắc để loại bỏ các pha nguy hiểm như vậy và tồn tại, nhiều lập trình viên xuất sắc hoàn toàn không phù hợp với mô tả đó. Với các phương pháp thích hợp tại chỗ, không cần Ninja. Mặt khác, nếu điều không thể xảy ra, đó là một điều tốt để có một cái.


10

Ngoài các yếu tố "Mát mẻ" và "Ưu tú", ninja thường lén lút và được biết là làm những việc như lén lút bảo mật để đến những nơi họ không nên đến. Bởi vì đặc điểm này được chia sẻ bởi Hacker, tôi nghĩ ai đó nghĩ rằng "Ninja" sẽ là một tiêu đề tốt cho họ. Đối với một người không phải là IT, Hacker và Lập trình viên là như nhau, và họ nghĩ từ "ninja" rất tuyệt, vì vậy nó bị kẹt

Vì vậy, logic là:

Ninja = Người lén lút có thể lén lút bảo mật vào những nơi họ không nên

Người lén lút có thể lén lút bảo mật vào những nơi họ không nên = Hacker

Hacker = Lập trình viên

Do đó, Ninja = Lập trình viên


Một định lý khác đã được chứng minh thông qua tính chất giao hoán của các so sánh đáng ngờ!
Qualidafial

1
@qualidafial, tôi khá chắc chắn rằng bạn có nghĩa là bắc cầu.
dan_waterworth

2

Tôi sẽ đi ngược lại với tình cảm phổ biến ở đây. Tôi nghĩ rằng có rất nhiều sự lãng mạn hóa đang diễn ra và kéo dài quá mức để tạo ra sự kết nối giữa ninja và các kỹ sư. Tôi sẽ giữ cho nó đơn giản khi ninja vào, làm việc và ra ngoài thường xuyên mà không bị phát hiện . Bước nhảy vọt duy nhất tôi sẽ làm là trong văn hóa nhóm bạn có thể nghe những câu chuyện cười về Chuck Norris so với ninja và rõ ràng mọi lập trình viên đều muốn trở thành Chuck Norris hoặc Jack Bauer, nhưng chỉ có một Chuck Norris và Jack Bauer để mỗi chúng ta có thể là một ( nặc danh) ninja.

Thứ hai, ninja là một thuật ngữ được sử dụng thường xuyên trong WoW và có thể có ý nghĩa tiêu cực. Ngoài ra, ninja truyền thống không được tôn vinh so với samurai. Vì vậy, với tất cả những phẩm chất đáng ngưỡng mộ của một samurai, bạn sẽ nghĩ rằng chúng ta sẽ thấy "lập trình viên samurai" thường xuyên hơn nếu đó là những phẩm chất nhận thức bên ngoài đang được ca ngợi. Đây là lý do tại sao tôi đăng ký ý tưởng rằng việc sử dụng ninja là để nhấn mạnh các kỹ năng bí ẩn, áo choàng và dao găm, lén lút. Để quay vòng tích cực hơn, đây là những kỹ năng chứng khoán trong giao dịch gián điệp; rogues, tình báo, và các điệp viên bí mật bao gồm.

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.