it-swarm-vi.com

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

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 những ả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 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 Word 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 đối số. Tôi đã cố gắng tóm tắt những điều này trong bài đăng 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.

36
Alinium

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 thấy G.I. Phim hoạt hình Joe từ những năm 1980 bạn có thể nhớ nhân vật của 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 chuỗi 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 yêu cầu họ 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 chân dung phương Tây của một ninja như G.I. Joe hoặc 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, 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.

33
JB King

Đó 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 đã 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 ...

41
Jon Hopkins

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 tốt 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 đào tạo và thực hành.

15
Larry Coleman

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, 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.

15
user281377

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ĩ rằng từ "ninja" rất tuyệt vời, vì vậy nó bị mắc 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

10
Rachel

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 hơn để tạo sự kết nối giữa ninja và các kỹ sư. Tôi sẽ giữ cho nó đơn giản như ninja vào trong, thực hiện công việc và thường ra ngoài 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 ngườ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.

2
patterns