Bagaimana Anda menganggap bahwa seorang programmer buruk dalam apa yang dilakukannya?
Jika memungkinkan ... Bagaimana cara meningkatkannya?
self-improvement
Tom Wijsman
sumber
sumber
Jawaban:
Ketika mereka gagal belajar dari kesalahan mereka dan dari ulasan rekan.
Kita semua hijau di beberapa titik; namun, jika Anda tidak menjadi lebih baik atau berusaha menjadi lebih baik maka Anda adalah programmer yang buruk.
sumber
Seorang programmer yang tidak tahu apa yang tidak dia ketahui dan tidak tertarik untuk mencari tahu.
sumber
Tanda peringatan besar adalah jika mereka adalah programmer "pemujaan kargo" - yang berarti mereka melakukan hal-hal tetapi tidak tahu mengapa mereka melakukan hal-hal itu (itu hanya "sihir"). Pos bagus oleh Eric Lippert di sini .
Dari artikel:
sumber
Sebuah tip-off besar bagi saya adalah ketika mereka menanyakan kepada Anda atau programmer lain pertanyaan pengembangan yang jelas menunjukkan bahwa mereka telah benar-benar berusaha untuk mengatasinya sendiri.
Akibat wajar adalah ketika mereka mengajukan pertanyaan pemrograman yang sama beberapa kali yang menunjukkan mereka tidak menginternalisasi informasi.
sumber
Ketika mereka membutuhkan waktu yang lama untuk menyelesaikan masalah FizzBuzz.
sumber
Programer yang menolak untuk mempelajari teknologi / bahasa baru, dan bersikeras untuk tetap berpegang pada apa yang sudah mereka ketahui.
Tambahan: (menambahkan tanda hubung di bawah di komentar)
sumber
Ketika seorang anggota tim adalah pengembang penghasil negatif .
Berarti sisa tim Anda harus melakukan lebih banyak pekerjaan karena pengembang yang buruk. NNPP
sumber
Ketika mereka menghasilkan hal-hal yang bersandar pada The Daily WTF secara teratur.
sumber
Ketika mereka tahu ada cara yang lebih baik untuk melakukan sesuatu tetapi masih menolak untuk melakukannya bahkan ketika waktu mengizinkan.
sumber
Secara pribadi saya berpikir bahwa setiap programmer yang dapat melihat kode mereka sendiri yang mereka tulis beberapa waktu lalu dan tidak menemukan sesuatu yang salah dengan itu bukan yang baik. "Beberapa saat" dapat ditingkatkan dengan pengalaman ... saya akan mengatakan antara beberapa minggu hingga satu tahun atau lebih.
sumber
Mereka yang mengabaikan peringatan pada kode mereka dan hanya peduli pada kesalahan.
sumber
Ketika saya adalah seorang pemimpin tim di sebuah toko yang bertubuh kecil, ada beberapa orang yang harus saya tugaskan kembali (baik saya atau penyelia langsung saya tidak memiliki kemampuan pemutusan tanpa satu ton Pita Merah dan setumpuk dokumen.) Atau tidak memiliki perpanjangan kontrak. di akhir pertunangan saat ini. Beberapa tipe yang disebutkan juga bekerja untuk pemimpin tim lainnya, dan mereka cukup banyak mengambil pandangan yang sama. Hal-hal yang membuat orang masuk dalam kategori "Programmer Buruk" di buku saya:
Ketika 'programmer' tampaknya tidak dapat menyerap sistem baru, alat baru atau apa pun yang sedang digunakan, tidak peduli bagaimana pelatihan / pendidikan dilakukan. Harus mengulangi pelatihan tersebut secara rutin.
Ketika 'programmer' hanya tahu teknologi atau paradigma pengkodean yang mereka gunakan 10 atau 15 tahun yang lalu. Itu sudah cukup bagus, jadi mengapa mereka harus berubah?
Orang yang pertama-tama membuat kode, tanpa rencana. 'Programmer' yang membuat perubahan yang belum teruji pada kode produksi dan / atau data "karena kita harus memperbaikinya sekarang" dan kemudian terkejut ketika "perbaikan" gagal.
Si Koboi juga jelas bukan pemain tim. Tidak perlu tim menyebalkan.
'programmer' ini terpikat dengan "teknologi du jour " dan melihat setiap kerangka kerja baru, bahasa, metodologi atau apa pun yang baru dan panas sebagai
'programmer' ini sangat yakin dengan bakat dan kemampuannya sehingga banyak hal dilakukan yang tidak membuat banyak proyek masuk akal. mis. Menulis ulang perpustakaan standar "karena tidak efisien untuk sistem kami" atau memperkenalkan alat dan teknik yang tidak sesuai untuk masalah yang dihadapi. misalnya Memperkenalkan Lisp atau Keempat dalam lingkungan mainframe.
'Programmer' ini menggunakan kebingungan dan salah arah untuk meningkatkan a. LOC: Baris Kode yang dibayar. Saya telah melihat kode dalam situasi ini yaitu halaman demi halaman, layar demi layar dari struktur dan logika duplikat, dengan hanya paragraf atau nama variabel kontrol yang diubah untuk memompa jumlah baris.
'Programmer' yang memiliki pengetahuan domain untuk menyelesaikan masalah yang ada, tetapi karena mereka "tahu" segalanya tentang hal itu. Faktanya, jika mereka ditabrak bus, maka seluruh organisasi akan runtuh. { Pengamatan: Mereka yang berpikir mereka sangat diperlukan biasanya. (Adakah yang mendapat sumber tentang pepatah ini?)}
'programmer' ini mengkhususkan diri dalam kode spaghetti, dibumbui dengan pengidentifikasi yang terlalu sulit untuk diikuti tanpa IDE yang diimplementasikan secara sintaksis. mis. IndexI1O0, Index1I0O, dll.
Toko lama saya dulu mempekerjakan beberapa karyawan magang sekolah menengah atas atau perguruan tinggi. Suatu kali suatu departemen membutuhkan basis data kecil untuk melacak beberapa penggunaan peralatan, (sekarang ini sudah kembali, dan menggunakan dBase III). Pria itu berkode sepanjang musim panas, tetapi tidak dilakukan ketika kuliah dimulai pada musim gugur. Dia mendapat perpanjangan satu minggu kemudian minggu kedua. Pada akhir minggu kedua, saya dikirim untuk mengambil alih proyeknya dan membawanya kembali ke Pengembangan Sistem untuk diselesaikan. Dia menunjukkan kepada saya hal-hal yang telah dia lakukan, dan kemudian bagian yang belum selesai. Apa yang berhasil memiliki eye candy yang bagus, tetapi aplikasi itutidak lengkap. Ketika saya membuka kotak baru disket berformat untuk mendapatkan salinan, dia berkata, "sebentar, biarkan saya menghapus file pengujian saya ..." dan sebelum saya bisa mengatakan apa-apa, dia telah menghapus banyak file.
Menjadi orang yang mencurigakan, dan mendapati bahwa aplikasinya hampir tidak lain adalah eye candy ketika saya kembali ke toko saya, saya kembali ke departemen dan mengeluarkan Norton dan menghapus file-file yang telah dia hapus, mencoba mencari beberapa logika tambahan, bahkan jika tidak lengkap.
Saya menemukan, bukan logika buruk, tetapi perilaku buruk. Printer yang terpasang pada PC yang ia gunakan adalah printer roda daisy. Set karakter yang biasanya dipasang adalah varian swiss. Keluaran dari program yang dihapus mengeluarkan nama, alamat, DOB, beberapa kode surat dan beberapa jenis nomor id. Format dan tata letaknya mengganggu saya. Semua tanggal lahir untuk banyak orang adalah usia minum yang legal. Sebagian besar alamat tidak ada di sana, ketika saya mencari di direktori silang kami. Ketika saya menunjukkan cetakan itu kepada atasannya, dia menatap saya dan berkata, "Surat izin mengemudi, bukan?" Saya katakan saya melakukannya. Dia mengatakan itu sebabnya dia menemukan stok transparansi terpotong di tempat sampah di sebelah Xerox. Bocah kami telah membuat overlay untuk menyesuaikan umurnya dan teman-temannya pada SIM mereka. Kami melaporkannya ke pihak berwenang.tidak dibayar untuk dua minggu terakhirnya.
Ini hanya beberapa karakter buruk yang harus saya kerjakan ....
/ s / BezantSoft
sumber
Tidak dapat menyesuaikan diri dengan teknologi yang akan datang
sumber
Terlepas dari kurangnya pengetahuan / kemampuan, seorang programmer adalah yang buruk, jika kode mereka lebih sulit untuk dibaca dan / atau dipelihara dari yang seharusnya.
sumber
Ketika tidak ada orang lain yang bisa membaca kodenya. Tidak masalah seberapa pintar Anda; tidak ada programmer yang menjadi pulau.
sumber
Seseorang yang tidak memperhatikan detail dan selalu dalam "itu bekerja, jadi saya meninggalkannya sendiri. Semua pengecualian dalam log tidak masalah" mode.
sumber
Ada dua kategori untuk programmer untuk saya - solo dan tim.
Pemrogram solo yang buruk adalah
Pemrogram tim yang buruk adalah mereka yang termasuk dalam kategori pemrogram solo yang buruk, termasuk
sumber
Tidak mau mengakui bahwa mereka tidak tahu jawabannya dan / atau tidak mau mencari sesuatu.
Jika Anda tidak mengetahuinya, jangan menyerah - cari tahu dan selesaikan.
sumber
Tanda peringatan besar dalam pengalaman saya adalah ketika mereka tidak mengomentari peretasan mereka ....
Anda tahu apa yang saya maksud: ketika Anda dipaksa untuk melakukan sesuatu yang sangat gila karena tidak ada cara yang lebih baik untuk melakukannya.
Pemrogram yang baik akan benci harus melakukannya dan memasukkan komentar sebaris mengatakan betapa mereka benci melakukan hacking seperti itu, tetapi tidak ada pilihan. Pemrogram yang buruk hanya akan melakukan hack dan tidak berkomentar.
sumber
Tenang jelas ketika seorang programmer menulis BANYAK kode. Fungsi yang sangat besar, mungkin menyalin / menempelkan baris atau blok kode, menggunakan cara lebih banyak jika diperlukan, dll. Ini bisa jadi karena programmer tidak tahu fungsi standar untuk melakukan apa yang dia inginkan tetapi sebagian besar waktu tidak.
sumber
Diperlihatkan dengan benar cara yang benar untuk melakukannya, dan berulang kali melakukannya dengan cara yang mudah.
sumber
Saya memindahkan jawaban saya ke sini dari topik duplikat tertutup yang bertanya Bisakah Anda mengenali jika Anda seorang programmer yang buruk? Topik lain sedang ditutup ketika saya menyusun tanggapan saya. Jawaban saya lebih langsung menjawab pertanyaan seperti yang diungkapkan oleh penanya lain dan akan membaca lebih baik jika Anda memahaminya.
Mendesah! Sebagian diriku tidak ingin menambah topik yang sudah sibuk ini, tetapi bagian lain dari diriku menang! Mengapa itu menang? mengapa saya repot-repot menambahkan lebih banyak kata ke multilog khusus ini? Ya, karena, sampai taraf tertentu, saya mungkin memiliki pandangan yang sedikit berbeda dari banyak komentator sebelumnya.
Biner bekerja sangat baik di komputer: ini '1' atau '0', "hidup" atau "mati." Kita dapat abstrak dan menyandikan banyak informasi menggunakan dua negara terkenal itu. Tapi, itu tidak cenderung bekerja dengan baik untuk masalah manusia: "baik" atau "buruk," "waras" atau "gila," "baik" atau "jahat," "pintar" atau "bodoh," "gemuk" atau "kurus," "hidup" atau "mati?" Evaluasi terpolarisasi semacam ini selalu membuat manusia yang peduli bagian dari saya sangat tidak puas. Dengan skema pengukuran apa pun yang saya pilih untuk diterapkan, saya biasanya menemukan bahwa jawaban untuk kontras yang begitu mencolok sebenarnya terletak di suatu tempat di sepanjang rangkaian antara satu kutub tersebut dan yang lainnya, bukan di kedua ujungnya.
Saya telah berjuang dengan kecenderungan polarisasi ini untuk beberapa waktu, sekarang, dan solusi pribadi saya adalah bahwa saya merasa jauh lebih berguna untuk menerapkan tiga kata pada evaluasi semacam itu: " sampai taraf apa!"
Jadi, jawaban saya untuk pertanyaan Anda adalah menyarankan agar Anda mengulanginya dan bertanya pada diri sendiri: "Sejauh mana saya seorang programmer yang buruk?" Atau, bahkan lebih baik, menanyakannya ke arah lain: "Sampai sejauh mana saya seorang programmer yang baik?" Jika Anda mengejar kebenaran, Anda mungkin akan menemukan diri Anda di suatu tempat di sepanjang rangkaian antara menjadi programmer "buruk" dan yang "baik". Kemudian, setelah Anda berhasil menemukan kira-kira di mana Anda berada di sepanjang jalan ini, Anda mungkin dapat mengidentifikasi suatu titik yang agak lebih dekat ke ujung "baik" - titik di mana Anda ingin menemukan diri Anda dalam waktu dekat.
Jika Anda tidak mengatur titik itu terlalu jauh, Anda mungkin bisa mendapatkan gigi belakang dan mulai menggerakkannya ke arah itu. Jika Anda berhasil mengulangi algoritme heuristik yang agak sederhana ini beberapa kali, Anda mungkin akan mendapati diri Anda terlalu sibuk memprogram untuk menanyakan pertanyaan ini lagi! Oh, dan Anda mungkin akan membuat kemajuan lebih cepat jika Anda mulai menumbuk kode pada keyboard secepat dan sesering mungkin; dan, jika Anda beristirahat sejenak sekarang, baca beberapa kode berkualitas tinggi yang ditulis oleh rekan-rekan Anda! Saat ini pengembangan Open Source yang dinamis, Anda tidak kekurangan kode gratis dan indah untuk dipelajari!
Jadi, saya sangat menyarankan kepada Anda agar Anda mencoba tiga kata kecil saya, "sampai sejauh mana," dan melihat seberapa jauh ke arah yang baik mereka dapat membawa Anda!
sumber
Seseorang yang mengatakan "Itu tidak bisa dilakukan".
Menurut saya ini semua tentang pemecahan masalah, alat ini seharusnya jauh lebih tidak relevan daripada benar-benar menyelesaikan pekerjaan. Jika saya harus menyelesaikannya menggunakan MS-Access atau bahasa assembly, ini masalah waktu dan uang, bukan masalah "Itu tidak bisa dilakukan"
Tanda peringatan terlalu banyak fokus pada cara akademis dan "tepat" dalam melakukan sesuatu, dan tidak cukup fokus untuk menyelesaikan pekerjaan.
sumber
Jika dia hanya tahu sintaks suatu bahasa tetapi tidak tahu konsep dasar algoritma.
sumber
Ketika mereka melakukan banyak pontificating tetapi menghasilkan sangat sedikit.
sumber
! (pintar dan menyelesaikan sesuatu)
sumber
Mereka yang tidak tahu prinsip-prinsip seperti SOLID, KERING, OOP dan sebagainya. Sangat penting untuk memiliki pemahaman yang baik tentang prinsip dan dasar pemrograman daripada mengetahui teknologi tertentu. Mereka yang memiliki dasar yang kuat akan dapat mempelajari topik baru dengan mudah dan akan menghasilkan kode yang lebih baik.
sumber
Programmer tertanam yang tidak mengerti mengganggu dengan sangat baik atau multitasking. Juga programmer yang perlu bekerja dengan bidang bit tetapi tidak memahami operasi logis pada mereka dan bergeser.
sumber
Sinyal pengenalan langsung adalah seseorang berkata, "Saya tidak mengerti mengapa itu tidak berhasil. Saya melakukan semuanya dengan benar."
sumber
Satu hal yang membedakan programmer buruk dari programmer pemula adalah desakan keras kepala untuk menerapkan sistem favorit mereka dalam bahasa dan API apa pun yang mereka gunakan.
Saya pernah mewarisi sistem di mana pengembang sebelumnya kembali menerapkan (di Jawa) satu set besar Ashton Tate DBase III + api berlapis di atas perpustakaan akses dbf kustom. Tidak ada kerangka koleksi Java yang digunakan.
Ini agar dia bisa menulis aplikasi Java / swing yang terlihat dan bertindak seperti aplikasi DBase III + (atau mungkin clipper).
Aplikasi yang ia tulis dalam sistem ini memiliki menu lite-bar dan akan membuka formulir jendela penuh dengan deretan tombol di bagian bawah ketika Anda menavigasi lite-bar ke opsi. Itu seperti mesin waktu kecil kembali ke tahun 1980-an.
Pria itu jelas merupakan pengembang yang terampil. Dia cukup tahu bahwa dia mampu menulis seluruh sistem itu sendiri dalam kerangka waktu proyek itu. Dia juga dapat menggunakannya kembali pada beberapa sistem internal lainnya.
Tetapi dia adalah seorang programmer yang buruk karena kodenya menyalahgunakan fitur dari sistem yang dia kerjakan. Dia lebih bersedia untuk menghabiskan 3 bulan di lib kustom manfaat yang meragukan daripada belajar Java / Swing / SQL.
sumber