Bagaimana Anda menganggap bahwa seorang programmer buruk dalam apa yang dilakukannya?
Jika memungkinkan ... Bagaimana cara meningkatkannya?
Bagaimana Anda menganggap bahwa seorang programmer buruk dalam apa yang dilakukannya?
Jika memungkinkan ... Bagaimana cara meningkatkannya?
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.
Seorang programmer yang tidak tahu apa yang tidak dia ketahui dan tidak tertarik untuk mencari tahu.
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:
programmer yang mengerti apa yang dilakukan kode, tetapi tidak bagaimana melakukannya.
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.
Ketika mereka membutuhkan waktu yang lama untuk menyelesaikan masalah FizzBuzz.
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)
Perpanjangan dari ini adalah orang-orang yang tahu sebagian dari fungsionalitas beberapa teknologi tetapi tidak menunjukkan keinginan untuk belajar lebih banyak tentang itu. Bahasa pemrograman, editor, alat lain ...
Ketika seorang anggota tim adalah pengembang penghasil negatif .
|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0
Berarti sisa tim Anda harus melakukan lebih banyak pekerjaan karena pengembang yang buruk. NNPP
Ketika mereka menghasilkan hal-hal yang bersandar pada The Daily WTF secara teratur.
Ketika mereka tahu ada cara yang lebih baik untuk melakukan sesuatu tetapi masih menolak untuk melakukannya bahkan ketika waktu mengizinkan.
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.
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:
Ini hanya beberapa karakter buruk yang harus saya kerjakan ....
/ s / BezantSoft
Terlepas dari kurangnya pengetahuan / kemampuan, seorang programmer adalah yang buruk, jika kode mereka lebih sulit untuk dibaca dan / atau dipelihara dari yang seharusnya.
Ketika tidak ada orang lain yang bisa membaca kodenya. Tidak masalah seberapa pintar Anda; tidak ada programmer yang menjadi pulau.
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
Tidak mau mengakui bahwa mereka tidak tahu jawabannya dan / atau tidak mau mencari sesuatu.
Jika Anda tidak mengetahuinya, jangan menyerah - cari tahu dan selesaikan.
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.
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.
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!
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.
Jika dia hanya tahu sintaks suatu bahasa tetapi tidak tahu konsep dasar algoritma.
! (pintar dan menyelesaikan sesuatu)
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.
Sinyal pengenalan langsung adalah seseorang berkata, "Saya tidak mengerti mengapa itu tidak berhasil. Saya melakukan semuanya dengan benar."
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.