Apakah ada yang namanya programmer super? [Tutup]

14

Apakah Anda menemukan programmer super? Apa yang mengidentifikasi dia seperti itu, dibandingkan dengan programmer "berpengalaman" / hebat?

Juga. bagaimana Anda berurusan dengan seseorang di tim Anda yang percaya bahwa ia adalah seorang programmer super? Baik dalam kasus dia sebenarnya atau jika dia tidak?

Sunting : Input menarik semua, terima kasih. Beberapa hal dapat diperoleh:

Beberapa definisi muncul. Mengabaikan definisi terlalu lokal (yang mengidentifikasi penulis atau kenalan mereka sebagai programmer super), saya menyukai beberapa definisi:

  1. Definisi Thorbjørn : seseorang yang melakukan hal yang sama dengan tim yang baik secara konsisten untuk waktu yang lama.

  2. Elektron Gratis, ditautkan dari jawaban Henry . Orang yang sangat produktif, dengan kemampuan luar biasa. The penjelasan adalah membaca yang baik.

    Elektron Gratis dapat melakukan apa saja dalam hal kode. Mereka dapat menulis aplikasi lengkap dari awal, belajar bahasa di akhir pekan, dan, yang paling penting, mereka dapat menyelami tumpukan kode spaghetti yang luar biasa, memahami hal itu, dan benar-benar membuatnya bekerja. Anda dapat membangun seluruh bisnis di sekitar Elektron Gratis. Itu bagus.

    Berbeda dengan definisi terakhir, adalah poin yang dihubungkan oleh James tentang mitos programmer genius ( video ). Gagasan yang sama diekspresikan sebagai pemrograman tanpa ego dalam komentar rwong. Mereka menyajikan pendapat yang berlawanan sebagai apakah akan mengoptimalkan untuk programmer yang unik atau untuk tim.

Definisi-definisi ini jelas berbeda, jadi saya akan sangat menghargai jika Anda memiliki input yang lebih baik. Atau tambahkan milik Anda sendiri jika Anda menginginkannya, walaupun akan membantu untuk mengatakan mengapa itu berbeda dari itu.

Muhammad Alkarouri
sumber
3
Ya, dan namanya adalah John Carmack .
Gary Willoughby
1
Saya memiliki daftar 4 Elektron Gratis di selembar kertas yang terkunci dalam undian di meja saya.
Henry
Jika 'super programmer' == 'genius programmer' click_this google.com/events/io/2009/sessions/MythGeniusProgrammer.html
James
Lihat respons Jeff pada pemrograman tanpa ego .
rwong
Saya hanya ingin menambahkan pemikiran dari buku The Mythical Man-Month, en.wikipedia.org/wiki/The_Mythical_Man-Month , sebuah makalah penelitian dikutip yang mengindikasikan seorang programmer hebat beberapa kali lebih baik daripada yang oke. Saya tidak ingat semua detail tetapi jelas ada banyak nilai dalam seseorang yang dapat menghasilkan di tim, pesanan lebih besar daripada yang lain.
Travis

Jawaban:

17

Saya akan mempertimbangkan istilah "super programmer" hanya untuk mereka yang dapat melakukan pekerjaan yang biasanya membutuhkan tim programmer yang baik, dan melakukannya secara konsisten untuk waktu yang lama.

Ini berlaku baik untuk menulis kode berkualitas tinggi (dokumentasi, tes dll) dan memecahkan masalah yang sangat sulit yang membutuhkan banyak pengetahuan dan bakat untuk dipecahkan.

Tapi itu membutuhkan kinerja tinggi pada semua akun untuk waktu yang lama. Bagi mereka yang menulis banyak kode yang tidak dapat dipahami dan dipelihara oleh orang, istilah ini tidak berlaku.

Bagaimana mengatasi? Jika Anda benar - benar memiliki orang seperti itu maka lakukan semua yang Anda bisa untuk menyediakan perancah yang diperlukan agar orang tersebut unggul. Ini berarti memindahkan barang-barang yang tidak relevan keluar dari jalan, dan menyediakan sumber daya yang dibutuhkan orang. Harap dicatat bahwa saya telah menemukan bahwa pemain yang sangat tinggi cenderung rendah hati.

Sayangnya, jauh lebih mungkin bahwa Anda memiliki seseorang yang menganggap dirinya seorang programmer super dan bukan. Cara untuk menghadapinya adalah dalam pengalaman saya untuk membuat kinerja mereka terukur. "FindBugs mungkin tidak menemukan masalah", "Semua kode harus memiliki tes yang sesuai dengan kasus penggunaan", "Peer review".

Jika kode ini benar-benar sulit dipahami, pertimbangkan pertemuan mingguan di mana programmer yang tidak terlalu hebat menjelaskan kode apa pun yang ditulisnya sejak pertemuan terakhir yang dapat diminta oleh siapa pun dijelaskan secara anonim oleh siapa pun, dan siapa pun dapat menolak secara anonim untuk menerima di basis kode untuk itu tidak dapat dipelihara. Maka setidaknya Anda telah berbagi pola pikir dan mengizinkan pengelola masa depan untuk memveto sepotong kode. Ini juga akan sangat menunjukkan kepada programmer jenis kode apa yang akan memicu dia harus melakukan pekerjaan ekstra.

(EDIT: Alasan untuk bit anonim, adalah untuk menghindari programmer yang tidak begitu super membalas mereka yang menentangnya).


sumber
2
Poin luar biasa, kecuali untuk input anonim. Jika tim ingin benar-benar bersatu, dan "super-programmer" memahami apakah ia benar-benar memenuhi definisi tersebut, mereka akan perlu mempelajari kekuatan, kelemahan, untuk saling bekerja sama demi keberhasilan tim dan perangkat lunak , dan untuk membangun kepercayaan. Ini masalah membuka diri terhadap kritik orang lain (seperti yang dilakukan pada tingkat tertentu di sini) bagi seseorang untuk menemukan dan memperbaiki kedatangan pendek mereka sebagai super-programmer.
Huperniketes
@Huper, anonimitas adalah untuk menghindari masalah pribadi ini pada awalnya. Jika Anda yakin Anda manusia super, Anda mungkin tidak akan menerima kritik terlalu baik (atau pertanyaan ini tidak akan ditanyakan sejak awal).
2
@Thor, itu sudah pribadi ketika Anda berurusan dengan apa yang seseorang yakini tentang dirinya sendiri. Anonimitas membuat kepercayaan jauh lebih sulit untuk dikembangkan. Anggota tim harus percaya bahwa mereka bisa jujur, bahwa kritik diterima, dan bahwa pendapat penting terbuka.
Huperniketes
Akankah seorang programmer super merasa lebih mudah atau lebih sulit untuk menjelaskan kode kepada seorang programmer junior? Jika perbedaannya besar, penjelasannya mungkin sulit. Bukan?
Muhammad Alkarouri
1
@ Muhammad, mengingat bahwa definisi saya adalah bahwa seorang programmer super menulis kode yang bersih, dapat dipelihara dengan dokumentasi yang baik, yang bahkan seorang programmer junior dapat mengerti (kecuali untuk algoritma yang sangat kompleks yang jarang dibutuhkan di Jawa karena hal-hal yang tersedia di runtime, jadi saya tidak menganggapnya). Saya akan berpikir bahwa itu akan mudah, tetapi mungkin perlu waktu lebih lama, untuk menjelaskan kepada seorang programmer junior.
5

Superprogrammer adalah setiap orang yang dapat menghasilkan kode lebih cepat daripada kompiler yang mempercepat, lebih kuat daripada fungsi rekursif, dan mampu melompati tumpukan FIFO dalam satu ikatan.

Cara Anda berurusan dengan seseorang di tim Anda yang percaya bahwa ia adalah seorang superprogrammer adalah dengan mengeksposnya pada satu-satunya kelemahannya - sinar matahari.

Chetan
sumber
5
@ Chetan: Apa itu tumpukan FIFO?
rwong
3
@ Chetan: ini adalah jawaban yang tidak membantu. Mungkin Anda belum pernah bekerja dengan programmer yang begitu luar biasa, Anda mulai bertanya-tanya apakah Anda layak sama sekali.
JBRWilkinson
Program super harus hidup di cloud dan menyediakan API publik untuk Bahasa Mind Query -nya .
rwong
@memulai tumpukan masuk pertama keluar, juga dikenal sebagai antrian.
alternatif
1
@ mathepic: jika Anda dapat memanggil tumpukan antrian, apakah itu berarti LIFO dan FIFO adalah hal yang sama? (untuk parafrase Lincoln)
rwong
3

Minta orang tersebut untuk menulis bab tentang dirinya sendiri dalam gaya Coders at Work . Kirimkan ke penerbit. Jika ditolak, maka orang tersebut bukan programmer super.

rwong
sumber
Apakah kebalikan dari pernyataan Anda benar? (Jika diterima, dapatkah Anda berasumsi bahwa ia adalah seorang programmer super?) Saya pikir ini bisa menggunakan klarifikasi.
alternatif
Saya kehilangan rasa hormat yang mungkin saya miliki untuk penulis buku itu segera setelah saya membaca bahwa ia pernah menjadi "arsitek sistem pesan transaksional berbasis Java". Oh, well, setidaknya dia punya akal untuk berhenti dari pekerjaan itu.
Dan Moulding
1
@Dan Moulding: Selama dia tutup mulut dan membiarkan programmer yang dia wawancarai di buku itu melakukan semua pembicaraan, saya tidak peduli apa yang dia katakan. (Saya baru saja membeli buku itu dan berharap untuk membacanya. Semoga buku ini sebagus yang saya kira). =)
gablin
Idenya bagus, tetapi penerbit cenderung menerima programmer terkenal daripada programmer super. Benar?
Muhammad Alkarouri
@Alkarouri: jika super memiliki arti yang sama dengan di superstar , maka ya, menjadi super-programmer berarti menjadi terkenal juga.
rwong
2

Ada yang bisa menghasilkan lebih banyak output daripada yang lain.

Ada orang yang dapat menghasilkan output dengan tingkat cacat lebih rendah daripada yang lain.

Mereka yang secara konsisten dapat menghasilkan lebih banyak output, dengan tingkat cacat yang lebih rendah dari normal, mungkin layak disebut sebagai Super-Programmer.

Dikenal atau dipikirkan seperti itu biasanya hanya tampak bagi seorang manajer yang tercerahkan dengan manfaat dari penglihatan belakang.

Seseorang yang menganggap mereka super-programmer mungkin memiliki ego yang besar dan menganggapnya bagus. Itu tidak membuat mereka baik.

Sikap <> Kemampuan.

dengan cepat_now
sumber
1

Super programmer: seseorang dengan kecerdasan di atas rata-rata dengan dedikasi yang kuat untuk pemrograman. Saya berbicara tentang seseorang yang menghabiskan banyak waktunya untuk pemrograman, tidak berhenti dengan mudah dan bertekad untuk memecahkan masalah tertentu. Orang ini jarang tidur jika ada masalah / bug yang tertunda. Super programmer menulis kode yang efektif, cepat dan dapat diandalkan. Super programmer memiliki pengetahuan yang luas dan mendalam tentang setidaknya satu bahasa pemrograman (dan teknologi), terampil dalam beberapa bahasa lainnya dan dapat dengan cepat mempelajari hal lain yang diperlukan.

Maggie
sumber
0

Apakah Anda menemukan programmer super? Apa yang mengidentifikasi dia seperti itu

Dari program / proyek yang telah dibuat , kode sumbernya, studi yang telah dilakukan.

percaya dia adalah seorang programmer super

Seperti yang Anda katakan dia percaya, ini sangat sulit untuk membuatnya tidak mempercayainya. Pikiran terburuk adalah bahwa orang itu telah berhenti menjadi programmer yang lebih baik karena dia berpikir bahwa semua sudah siap adalah super, dan dia menghentikan evolusi dirinya. Apa yang lebih buruk dari itu dalam pemrograman. Bagaimanapun, Anda selalu dapat meminta bukti ... dan bertanya kepadanya dengan siapa ia membandingkan dirinya sendiri untuk membuat asumsi bahwa ia super.

Aristos
sumber