Mengapa programmer yang baik disebut sebagai Ninja? [Tutup]

36

Bagaimana seorang programmer Ninja didefinisikan? Jika itu hanya pengembang berpengalaman, maka apakah benar-benar tidak ada cara yang lebih baik untuk menggambarkan itu? Ninja terdengar seperti taktik pemasaran kekanak-kanakan yang dirancang untuk menarik pengembang dengan delusi kemegahan. Atau apakah saya melewatkan sesuatu? Secara khusus saya ingin tahu kualitas apa yang diinginkan seorang Ninja dalam programmer yang membuat perbandingan itu valid (selain faktor kesejukan)?

Saya memang menemukan artikel ini yang membuat perbandingan yang baik antara karakteristik Ninja dan pengembangan Agile. Namun, saya ingin mendengar dari orang-orang yang menggunakan kata Ninja untuk tujuan perekrutan dan apa motivasi mereka di baliknya.

Pembaruan: Ada beberapa poin bagus yang diajukan di kedua sisi argumen. Saya sudah mencoba meringkas ini di posting blog saya . Saya memilih jawaban JB sebagai jawaban yang diterima karena meringkas semua alasan yang sah untuk membuat perbandingan.

Alinium
sumber
3
Ninja adalah ahli dalam seni bela diri. Pemrogram yang baik ahli dalam pemrograman.
5
Belum pernah disebut Ninja. Guru atau Guru di sisi lain ...
noone
40
Ini mengingatkan saya pada 'metode Ninja' ketika bekerja dengan pointer: Cukup lempar bintang (*) di sekitar sampai berfungsi. ^^
gablin
10
Istilah yang benar adalah "pembunuh pengkodean ninja monyet guru tampan pahlawan sexmachine."
Maks.
2
@maxpm, semoga label "sexmachine" tidak relevan saat pemrograman?

Jawaban:

33

Menurut saya ada beberapa persamaan antara Ninja dan programmer yang baik:

  1. Tersembunyi senjata / gaya tidak ortodoks - Jika Anda pernah melihat kartun GI Joe dari tahun 1980-an Anda mungkin ingat karakter Storm Shadow . Dia memiliki pedang dan beberapa bintang lempar tetapi dengan urutan pukulan dan tendangan yang tepat berhasil membongkar sebuah tank dalam sebuah episode. Dengan cara yang sama, pemrogram dapat dipanggil untuk melakukan beberapa pekerjaan yang mengharuskan mereka untuk mengeluarkan senjata yang mungkin tidak Anda pikirkan. Ini adalah kerabat titik "Peretas" yang telah disebutkan di beberapa tempat.

  2. Kehormatan / rasa hormat - Tentu saja saya telah melihat ini lebih banyak dalam penggambaran ninja Barat seperti GI Joe atau Teenage Mutant Ninja Turtles, tetapi tampaknya ada sikap menghormati musuh seseorang, mungkin diambil dari "Seni Perang". Pemrogram yang baik dapat menghargai bahwa mungkin ada yang lebih baik di luar sana. Kerendahan hati juga dalam arti tertentu.

  3. Penguasaan tersirat - Mungkin ada asumsi bahwa semua ninja adalah penguasa dan karenanya benar-benar mengasah keterampilan mereka untuk tahu bagaimana bertarung dengan baik. Pemrogram yang baik mungkin juga sama-sama menguasai beberapa keterampilan yang cukup bermanfaat dalam menyelesaikan pekerjaan.

Itu adalah beberapa di luar yang dangkal, "Oh kedengarannya keren," implikasi karena harus ada daging untuk menempel. Walaupun saya setuju bahwa Samurai mungkin adalah gelar yang lebih tepat, setelah beberapa saat keluar dalam bentuk yang salah, seseorang harus merekonsiliasi hal-hal di sini karena TMNT tidak benar-benar apa yang kebanyakan orang anggap sebagai tentara bayaran terselubung, itulah yang ninja. secara teknis. Namun, bagi kita yang tumbuh dengan penggambaran kartun Ninjas dalam cahaya positif ini, inilah yang mungkin melekat pada kita dan juga ada unsur nostalgia di sini.

JB King
sumber
19
Bagaimana dengan pakaian gelap dan tidak banyak bicara? :-P
JBRWilkinson
Ssshhh ... sembunyi di antara senjata tersembunyi itu. :)
JB King
4
"Di antara persenjataan mereka adalah siluman, senjata tersembunyi, dan pengabdian yang hampir fanatik terhadap gaya pengkodean yang baik .... juga kurang berbicara ... bah! Aku akan masuk lagi ..."
Timothy Baldridge
Anda berpikir tentang samurai. Ninja hanyalah pembunuh berdarah. Tidak ada kehormatan dengan ninja.
BЈовић
Pernah melihat "Teenage Mutant Ninja Turtles" dalam bentuk kartun atau film?
JB King
41

Ini seperti yang Anda katakan - upaya untuk menyiratkan kesejukan dan kesopanan (sering di antara mereka yang tidak) dengan membuat perbandingan yang sangat lemah.

Secara pribadi saya benci frasa (bersama dengan "Rockstar Programmer" yang membuat kami ingin memukul orang hingga mati - Anda dapat menjadi programmer rockstar ketika Anda memiliki kebiasaan narkoba masalah alkohol dan telah menghancurkan setidaknya satu mobil dan satu kamar hotel) ).

Anda seorang programmer, jika Anda memiliki masalah dengan menjadi seorang programmer karena Anda ingin melakukan sesuatu yang Anda pikir lebih keren maka hadapi mereka (atau berhenti untuk melakukan sesuatu yang Anda pikir lebih keren). Jika Anda tidak menyukai cara orang lain melihat programmer maka pahami bahwa masalah mereka bukan milik Anda.

Anda tentu tidak akan mengubah pikiran mereka dengan frasa yang akan membuat rata-rata berusia 12 tahun berpikir Anda berusaha agak keras untuk menjadi mengesankan.

/ kata-kata kasar

Sunting: Agar jelas, kata-kata kasar tidak ditujukan pada penanya ...

Jon Hopkins
sumber
6
@Larry - Sebagian besar perbandingan dapat diterapkan secara sama pada profesional yang sangat baik di bidang lain, tetapi Anda tidak mendapatkan pengacara ninja, dokter ninja, atau staf yang dapat menerima akun ninja (kecuali mungkin Herbert Kornfeld). Bukankah pertanyaan yang menarik mengapa programmer merasa perlu melakukan ini?
Jon Hopkins
9
@Jom Hopkins, NHS di Inggris penuh dengan dokter ninja ... Anda pasti tidak pernah melihat mereka.
Kevin D
6
@Jon Hopkins: Budaya pemrograman mendorong ikatan dan humor tingkat subkultur. Banyak programmer memandang ninja sebagai hal yang keren dan ingin menjadi orang yang keren sehingga disebut ninja itu sangat mengagumkan. Tentu, ini tidak berlaku di seluruh papan dan ada programmer yang membenci hal semacam itu. Tergantung orangnya. Tetapi secara umum, pemrograman berkembang menjadi profesi utama seperti dokter, pengacara, dll. Dan membawa referensi subkultur (rockstars, ninja, dll.)
Adam Lear
3
@ Adam Lear, jika ini seharusnya menjadi bagian penting dari "budaya pemrograman", saya tidak ingin ada hubungannya dengan "budaya" tersebut. Ikatan terdalam yang pernah saya alami dengan pengembang lain didasarkan pada kemampuan dan prestasi.
jonathanconway
3
@ Adam - Saya mengerti latar belakang, saya hanya menemukan semuanya agak remaja dan saya pikir itu merendahkan programmer sebagai profesional yang serius begitu kita memasuki usia 20-an dan 30-an (dan lebih tua). Saya tidak mengatakan bahwa programmer harus meninggalkan budaya programmer tetapi ada perbedaan antara, katakanlah, membaca XKCD dan Neal Stephenson atau menghabiskan akhir pekan kami belajar tentang kriptografi (yang mungkin culun tapi juga pintar), dan ini yang agak kekanak-kanakan dan pada kenyataannya tentang sejauh yang Anda bisa dapatkan dari dingin.
Jon Hopkins
15

Satu konsep yang sama-sama dimiliki oleh para ahli seni bela diri dan programmer yang baik adalah upaya ekonomi. Ahli seni bela diri menghindari gerakan yang sia-sia; pemrogram yang baik menghindari kode yang tidak perlu.

Konsep tembus pandang diterjemahkan menjadi transparansi dalam penulisan perpustakaan. Pustaka yang baik memiliki antarmuka yang intuitif, dan Anda dapat menyambungkannya dan tidak khawatir.

EDIT: Saya lupa hal yang paling penting: ninja dan programmer yang baik sangat terampil sebagai hasil dari pelatihan dan latihan.

Larry Coleman
sumber
1
1. Itu tergantung pada seni bela diri. Apakah Anda yakin mereka menghindari gerakan terbuang dalam kung fu atau capoeira? 2. Anda bisa menjadi ninja dan / atau programmer dan menjadi sangat buruk. Karena itu, saya menghargai jawaban Anda;) +1
@Ierre: terima kasih. Jawaban saya dapat menggunakan beberapa penyesuaian, tetapi saya ingin meletakkan sesuatu di luar sana untuk membantu menunjukkan bahwa pertanyaan itu valid. Seperti yang Anda lihat, sudah ada satu suara untuk ditutup.
Larry Coleman
15

Dalam pemahaman saya, tidak setiap programmer yang baik atau sangat baik adalah Ninja. Ninja adalah jenis khusus. Seorang programmer Ninja adalah orang yang muncul pada waktu yang tidak biasa (misalnya jam 3 pagi), melakukan hal-hal berbahaya yang orang normal enggan (seperti menggunakan hex-editor untuk memperbaiki bug yang sangat kritis dalam satu dekade, program yang diduga tidak dapat diatasi secara langsung pada server produksi) dan hilang tidak terlihat.

Jelas, meskipun seorang Ninja membutuhkan keterampilan teknis yang sangat baik untuk melakukan aksi seperti itu secara teratur dan bertahan, banyak programmer yang baik tidak cocok dengan deskripsi itu. Dengan metode yang tepat, tidak perlu bagi Ninja. Di sisi lain, jika hal yang mustahil terjadi, adalah hal yang baik untuk memilikinya.

pengguna281377
sumber
10

Selain faktor "Kedinginan" dan "Elite", ninja sering tersembunyi dan diketahui melakukan hal-hal seperti menyelinap keamanan masa lalu untuk masuk ke tempat-tempat yang seharusnya tidak mereka temukan. Karena sifat ini dibagikan oleh Peretas, saya pikir seseorang berpikir bahwa "Ninja" akan menjadi judul yang bagus untuk mereka. Bagi orang yang bukan IT, Peretas dan Pemrogram adalah hal yang sama, dan mereka pikir kata "ninja" sangat keren, jadi agak macet.

Jadi logikanya adalah:

Ninja = Orang Siluman Yang Dapat Menyelinap Ke Masa Lalu Ke Tempat-Tempat Yang Tidak Seharusnya

Orang Siluman Yang Dapat Menyelinap Keamanan Lalu Ke Tempat Mereka Seharusnya Tidak = Peretas

Hacker = Programmer

Karenanya, Ninja = Programmer

Rachel
sumber
Teorema lain yang dibuktikan melalui properti komutatif dari perbandingan yang meragukan!
qualidafial
1
@ equalidafial, saya cukup yakin maksud Anda transitif.
dan_waterworth
2

Saya akan menentang sentimen populer di sini. Saya pikir ada banyak romantisasi yang terjadi dan peregangan berlebihan untuk membuat koneksi antara ninja dan insinyur. Saya akan tetap sederhana saat ninja masuk, melakukan pekerjaan, dan keluar biasanya tanpa terdeteksi . Satu-satunya lompatan yang akan saya buat adalah bahwa dalam subkultur Anda dapat mendengar lelucon tentang Chuck Norris versus ninja dan jelas setiap programmer ingin menjadi Chuck Norris atau Jack Bauer, tetapi hanya ada satu Chuck Norris dan Jack Bauer sehingga kita masing-masing dapat menjadi ( anonim) ninja.

Kedua, ninja adalah istilah yang sering digunakan dalam WoW dan dapat memiliki konotasi negatif. Selain itu, ninja tradisional tidak terhormat dibandingkan dengan samurai. Jadi dengan semua kualitas mengagumkan dari seorang samurai, Anda akan berpikir kita akan melihat "programmer samurai" lebih sering jika itu adalah kualitas luar yang dirasakan yang dipuji. Inilah sebabnya saya berlangganan gagasan bahwa penggunaan ninja lebih untuk menekankan keterampilan misterius, jubah dan belati, yang licik. Untuk memutarnya lebih positif, ini adalah keterampilan persediaan dalam perdagangan mata-mata; penyamun, intelijen, dan agen rahasia inklusif.

pola
sumber