Seperti kebanyakan orang, saya menganggap diri saya sedikit di atas rata-rata di bidang saya. Saya dibayar dengan baik, saya mendapat promosi, dan saya tidak pernah memiliki masalah nyata untuk mendapatkan referensi yang baik atau mendapatkan pekerjaan.
Tetapi saya sudah cukup dekat untuk memperhatikan bahwa banyak programmer terburuk yang pernah bekerja dengan saya berpikir mereka adalah yang terbaik. Programmer yang buruk yang dikelilingi oleh programmer yang buruk tampaknya merupakan yang paling menipu diri sendiri.
Saya tentu saja tidak sempurna. Saya memang melakukan kesalahan. Saya melewatkan tenggat waktu. Tapi saya pikir saya membuat jumlah gerakan yang sama seperti yang dilakukan "programmer lain yang baik". Masalahnya adalah bahwa saya mendefinisikan "programmer lain yang baik" berarti "orang yang seperti saya."
Jadi, saya bertanya-tanya, adakah cara seorang programmer dapat membuat semacam evaluasi diri yang masuk akal? Bagaimana kita tahu apakah kita baik atau buruk dalam pekerjaan kita?
Atau, jika istilah seperti baik dan buruk terlalu tidak jelas, bagaimana programmer dapat dengan jujur mengidentifikasi kekuatan dan kelemahan mereka sendiri, sehingga mereka dapat mengambil keuntungan dari yang pertama dan bekerja untuk meningkatkan yang terakhir?
sumber
Jawaban:
Seorang programmer yang baik memahami bahwa mereka harus terus belajar dan tumbuh. Mereka berusaha melakukan yang terbaik dalam setiap usaha, mengakui kegagalan dan belajar dari mereka.
Mereka sangat komunikatif. Mereka tidak hanya mampu menjelaskan istilah-istilah teknis yang rumit kepada orang awam, tetapi mereka juga bertindak sebagai penasihat setan untuk ide mereka sendiri untuk memastikan mereka memberikan pilihan terbaik kepada klien mereka.
Pemrogram terbaik tahu dan menerima bahwa ada lebih dari satu cara untuk melakukan sesuatu, bahwa tidak setiap masalah adalah paku, dan bahwa karena selalu ada cara yang lebih baik untuk melakukan sesuatu daripada bagaimana mereka berencana, mereka terus-menerus mencari untuk mempelajari teknik-teknik baru , teknologi, dan pemahaman.
Seorang programmer yang baik suka memprogram, dan akan melakukannya di waktu luang mereka bahkan jika mereka sudah menghabiskan 80 + jam pemrograman seminggu.
Seorang programmer yang baik tahu bahwa dia bukan programmer yang hebat. Pemrogram yang benar-benar hebat tidak ada, hanya ada orang yang mengaku hebat, dan mereka yang tahu mereka tidak hebat.
sumber
Seperti yang ditunjukkan Paul Graham keluar fasih dalam hal ini cor pod , Anda tidak bisa. Hanya rekan kerja Anda yang bisa memberi tahu Anda.
sumber
Saya selalu menemukan bahwa paling mudah untuk menilai kinerja Anda dengan melakukan dua hal.
Masalahnya tentu saja adalah menemukan programmer yang baik, dan kemudian menjadi programmer yang baik juga bukan hanya tentang coding. Anda harus dapat bekerja dengan baik dalam kelompok, namun juga bekerja dengan baik sendiri.
Sekarang demi keluar dari topik, saya akan mengutip Robert A. Heinlein dan pandangannya tentang masalah ini:
sumber
Ini adalah Matriks Kompetensi Programmer hanya untuk Anda: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
sumber
Jeff memiliki salah satu posting blog favorit saya tentang topik ini ... Mengapa Saya Programmer Terbaik Di Dunia
"... itu bukan tugas kita untuk menjadi lebih baik daripada orang lain; kita hanya perlu lebih baik dari kita setahun yang lalu."
sumber
Saya pikir fakta bahwa Anda mengajukan pertanyaan membuktikan Anda bukan programmer yang buruk, jadi, menurut saya, Anda setengah jalan ke sana. :)
Pemrogram yang buruk selalu berpikir bahwa mereka adalah pemrogram yang hebat, menurut pengalaman saya.
sumber
Pernyataan Nick, "Pemrogram jahat selalu menganggap mereka pemrogram hebat ..." dijelaskan oleh Dunning Kruger Effect , yang menyamaratakan bahwa orang-orang yang sedikit tahu tentang suatu subjek sering kali memperkirakan berapa banyak sebenarnya yang mereka ketahui.
Menjadi sedikit jenaka ... semakin sedikit Anda berpikir Anda tahu semakin banyak Anda mungkin lakukan .... kecuali tentu saja Anda benar-benar idiot.
Menjawab pertanyaan awal, meskipun saya cenderung berpikir bahwa semakin banyak pengaruh (bukan kontrol) yang Anda miliki umumnya merupakan indikator yang baik. Jika Anda melihat orang lain mengikuti petunjuk Anda, atau mengambil latihan Anda maka Anda berada di jalan yang benar.
sumber
Jawaban yang mendapat suara terbanyak plus sangat menyedihkan. Pada dasarnya dikatakan bahwa Anda tidak memiliki kehidupan di luar pemrograman. Bagaimana dengan keluarga? Masyarakat? Hobi? Profesi seperti apa kita di mana kita harus disibukkan sampai titik obsesi hanya untuk dianggap "baik"? Saya benar-benar berpikir kita perlu mendapatkan perspektif di sini.
sumber
Anda dapat mencoba bersaing dalam kontes algoritma TopCoder .
sumber
Realisasi itu saja membuat Anda seorang programmer yang lebih baik daripada kebanyakan programmer yang buruk di luar sana.
Banyak programmer terburuk cenderung berpikir bahwa mereka sudah tahu segalanya yang perlu diketahui dan tidak menyadari keterbatasan mereka. Akibatnya, mereka tidak pernah meningkatkan keterampilan mereka.
sumber
Jika Anda melihat kode Anda dari katakanlah setahun yang lalu, dan berpikir, ya ampun, saya bisa melakukan itu jauh lebih baik, Anda mungkin baik :).
sumber
Berikut adalah beberapa contoh nyata pemrograman buruk. Tentu saja, kode yang sama ada di semua tempat, disalin / ditempel di 100 tempat. Guy dipecat, tetapi saya pernah mendengar bahwa dia mendapatkan pekerjaan yang bagus lagi. Nikmati:
Sebuah)
b)
c)
d)
Jika Anda membuat kode semacam ini, hentikan pemrograman. Jika Anda tidak melihat sesuatu yang aneh dalam kode ini, hentikan pemrograman. Kalau tidak, Anda tidak buruk, jadi Anda mungkin baik :)
EDIT: Untuk menjawab komentar: Saya mendapat pekerjaan sebelum lulus, dan orang ini sudah memiliki pengalaman pemrograman selama beberapa tahun. Dia dipecat beberapa bulan setelah saya bekerja jadi saya tidak dalam posisi untuk mengajari siapa pun. Contoh di atas hanya dari atas kepala saya - setiap ketenangan kode yang disentuhnya cacat dalam berbagai cara yang imajinatif. Sebagian besar barang mulai merayap keluar setelah dia pergi dari perusahaan, karena hanya kemudian orang lain melihat beberapa bagian kode. Dia umumnya pria yang baik, menyenangkan untuk diajak bicara, dll. Tetapi dia TIDAK akan pernah menjadi programmer yang baik, sama seperti saya tidak akan pernah menjadi pelukis yang baik atau penulis atau apa pun.
Untuk membandingkan ini dengan contoh lain, pria yang datang untuk menggantikannya juga undergrad pada saat itu. Dia belajar di perguruan tinggi yang lebih terkenal dengan manajemen daripada pemrograman. Dia tidak terlalu culun dalam arti bahwa dia memprogram sesuatu untuk bersenang-senang atau akan duduk di rumah dan membaca tentang java atau pemrograman, namun dia baik-baik saja. Dia menyesuaikan dengan cepat dan mulai memproduksi kode yang berguna dan dapat dipelihara. Beberapa orang dapat melakukan itu, yang lain tidak dapat - hanya bertanya dailywtf.
sumber
instance
bidang tidak pernah diberikanType
contoh dan selalu tetapnull
=)Ada beberapa hal yang bisa Anda coba, untuk mendapatkan ukuran yang lebih baik tentang bagaimana Anda menumpuk.
(Saya menempatkan yang terakhir karena di perusahaan terakhir saya, satu programmer menerima "pengembang tahun ini" dua kali dalam tiga tahun. Setelah dia pergi, kami menemukan setidaknya 20 cuplikan kode yang layak TDWTF. Dia mengembangkan kode dengan cepat , tetapi tidak harus dengan baik Manajemen hanya tidak tahu bedanya.)
sumber
Izinkan pengembang lain yang Anda hormati bekerja dengan atau melihat kode Anda.
Suruh orang menggunakan apa yang Anda suka dan lihat apa yang mereka pikirkan.
- Kevin Fairchild
sumber
Bisakah kamu mengerti ini?
:-)
sumber
Pikiran belaka yang perlu Anda evaluasi sendiri membuat Anda lebih unggul.
Salah satu cara saya selalu menilai diri sendiri adalah mendengarkan apa yang dikatakan rekan kerja saya tentang saya. Trik dalam menemukan orang yang tepat.
sumber
Selalu subyektif yang merupakan programmer yang baik. Saya setuju dengan Nick bahwa mengajukan pertanyaan adalah langkah ke arah yang benar. Saya pikir keinginan terus-menerus untuk belajar lebih banyak dan meningkatkan adalah apa yang membuat seorang programmer yang baik.
sumber
Bagi saya programmer terbaik tidak pernah mencari pekerjaan. Mereka memiliki penawaran berdiri untuk posisi baru hanya berdasarkan reputasi mereka. Jadi programmer yang baik mungkin memiliki tawaran dari majikan sebelumnya untuk kembali, jika mereka mau. Atau seorang programmer yang baik akan memiliki pertanyaan dari mantan rekan kerjanya tentang datang bekerja untuk mereka di perusahaan baru.
Dalam hal kekuatan / kelemahan, Anda mungkin sudah mengetahuinya. Jika tidak, tanyakan orang yang lebih senior di tim Anda. Bahkan tidak harus menjadi pengembang. Seorang manajer proyek yang baik mengetahui kekuatan / kelemahan programmer. Selain itu, sifat-sifat yang mendefinisikan programmer yang baik tidak hanya terbatas pada kode. Memahami bisnis, keterampilan komunikasi, penilaian, dll. Semuanya dilakukan di luar IDE Anda.
sumber
Saya pikir ini tentang seperti bertanya-tanya bagaimana Anda bisa tahu jika Anda orang yang baik.
Saya kira, sayangnya, jawabannya adalah bahwa hanya orang-orang kredibel lainnya yang dapat memberi tahu Anda. Saya tidak berpikir itu adalah sesuatu yang dapat Anda tentukan secara akurat untuk diri sendiri (setidaknya itu sangat sulit - tapi saya pikir itu tidak mungkin).
sumber
saya hanya akan mengatakan: jika Anda bersemangat (maksud saya BENAR-BENAR bersemangat) tentang apa yang Anda lakukan, jika Anda fleksibel (bahasa lain, teknologi baru, remake lengkap dari proyek lama - mari kita lakukan!), jika Anda terus belajar dan meningkatkan keterampilan Anda dan tidak pernah, tidak pernah berpikir Anda cukup baik untuk berhenti - maka Anda seorang programmer yang baik!
sumber
95% dari semua programmer berpikir bahwa mereka adalah top 5% programmer, 5% lainnya adalah manajer. Jadi jika Anda seorang manajer, Anda mungkin bukan programmer yang baik, jika tidak, Anda mungkin seorang programmer.
sumber
Saya pikir ini lebih merupakan masalah apa yang Anda lakukan dengan keterampilan pemrograman Anda. Menjadi seorang programmer hebat tidak masalah, tetapi apa bedanya jika Anda mengkode perangkat lunak bank sepanjang hari (jangan tersinggung). Itu tidak bertambah.
Untuk benar-benar membuktikan kepada diri sendiri bahwa Anda seorang programmer yang baik, ambil proyek sampingan yang menarik dan sulit. Ini menunjukkan beberapa hal: Anda tertarik memprogram waktu luang Anda sendiri dan benar-benar menikmati subjek - ini penting untuk menjadi programmer yang baik. Ini menunjukkan keserbagunaan dalam hal Anda dapat memperluas keterampilan Anda di luar apa yang Anda lakukan di lingkungan kerja Anda. Ini menunjukkan motivasi dan kreativitas juga: Anda telah mendefinisikan masalah Anda sendiri dan mengambil langkah-langkah untuk menyelesaikannya.
Semua aspek ini mendefinisikan programmer yang baik untuk saya.
sumber
Jawaban saya secara politis salah. Namun, saya sebenarnya adalah pendiri pemula dan pekerjaan saya adalah untuk merekrut programmer terbaik.
Bagaimana saya tahu orang mana yang akan menjadi programmer yang baik atau yang bisa menjadi programmer yang baik?
1 kata: IQ.
IQ untuk pemrograman karena tinggi untuk pemain bola basket.
Saya akan menempatkan keterampilan Matematika sebagai indikator lain yang lebih tepat secara politik. Guru sains komputer saya memberi tahu saya bahwa ada satu kriteria yang memprediksi dengan tepat siapa yang akan berhasil dalam kursus pemrograman. Skor Matematika SMA. Lagipula itu adalah IQ yang efektif.
Ini mungkin mengejutkan. Kami diberitahu bahwa pemrograman adalah pekerjaan gelar sarjana. Coba tebak, saya tidak peduli tentang gelar. Saya hanya peduli 3 hal.
Sayangnya IQ hanya mengukur satu hal. Jadi saya melakukan beberapa tes.
Saya mengajukan pertanyaan kepada orang-orang. Pertanyaan sederhana yang saya harapkan anak sekolah dasar harus bisa menjawab.
Saya mengajukan pertanyaan seperti:
Jika Anda perhatikan baik-baik pertanyaan itu tidak membutuhkan kreativitas sama sekali. Hanya akal sehat. Setiap anak sekolah dasar dengan IQ dapat menjawabnya.
Kebanyakan lulusan perguruan tinggi tidak bisa. Sekarang bayangkan jika seseorang tidak bisa menjawabnya? Bisakah dia memprogram? Pikirkan tentang itu. Seberapa sering Anda harus menentukan apa yang harus ia lakukan?
Anda juga dapat mengajukan pertanyaan seperti Microsoft yang memang membutuhkan kreativitas. Anda dapat mengajukan pertanyaan tentang cara menimbang 8 bola dalam skala keseimbangan untuk mengetahui mana yang paling berat. Masalah dengan pertanyaan semacam itu adalah bahwa itu melibatkan keberuntungan. Namun, ada juga yang cukup mudah, harus persyaratan minimum.
Mendapatkan programmer yang hebat dapat meningkatkan moral programmer lain. Mendapatkan satu pemrogram yang bisa mengurangi moral orang lain.
Setelah orang dapat menjawab pertanyaan seperti itu, yang sangat mudah, saya akan membuat mereka menulis beberapa kode google jam.
Pemrogram yang baik dapat memecahkan kode google jam dan dapat memprediksi masalah mana yang lebih mudah.
sumber
Iho Anda adalah programmer yang baik jika
-Anda memiliki latar belakang teori suara. menciptakan kembali roda serta algoritma atau kerangka kerja adalah buang-buang waktu, sebagian besar waktu.
-Anda kadang-kadang dapat melihat berbagai hal dan masalah dari sudut pandang miring. ini dapat membawa Anda untuk menemukan solusi inovatif.
-Anda menghabiskan waktu dan upaya untuk memiliki alat terbaik dan keterampilan terbaik yang diperbarui.
-Kode Anda mudah dimodifikasi. jika Anda mendesain kode yang bersih, elegan, dan mudah dipahami, modyfing tidak akan menyakitkan.
-Jika kode / tingkat bug Anda cukup tinggi. Saya tahu ini mungkin tampak sepele, tetapi saya tahu banyak pengembang kreatif dan terampil yang sangat rentan melakukan bug sepele. ini sangat merusak keefektifan dan kegunaannya.
-orang-orang di sekitar Anda tahu bahwa Anda dapat membantu memutuskan pilihan apa yang harus dilakukan
-Anda dapat memecahkan masalah menggunakan alat yang berbeda. programmer buruk terus menggunakan alat yang sama (baik itu bahasa atau teknologi atau arsitektur dan sebagainya) untuk masalah apa pun yang mereka dapatkan
-Anda terus belajar, Anda penasaran.
-Anda memiliki pemrograman yang menyenangkan, setelah bertahun-tahun
sumber
... kesimpulan saya adalah bahwa pemrogram yang baik memerintahkan gaji yang rendah dan membuat sedikit kebisingan ... :)
sumber
Programmer Terbaik: Selesaikan tugas dengan jumlah kode pernyataan terendah tepat waktu.
sumber
Berapa banyak bug yang dimiliki kode Anda per metrik? (mis. bug per baris) Berapa banyak kode Anda harus dikodekan ulang ketika fitur baru perlu ditambahkan? Apakah rekan kerja Anda memiliki masalah dalam memodifikasi kode Anda?
Pada akhirnya, pertanyaannya hampir tidak mungkin dijawab mengingat bahwa pertanyaan "apa itu kode kualitas" masih menjadi topik yang hangat diperdebatkan setelah bertahun-tahun.
sumber
Saya sangat suka apa yang dikatakan Adam V di atas.
Selain apa yang dikatakan orang lain, lihatlah rawatan dan riwayat dukungan pekerjaan Anda. Jika kode Anda memiliki persyaratan pemeliharaan yang berat dan terus-menerus diperbaiki, atau sulit untuk diubah, itu bisa menjadi indikator kualitasnya. Tetapi ini juga bisa menjadi indikator persyaratan yang buruk.
sumber
Sangat sulit untuk menilai sendiri. Orang yang tidak kompeten cenderung memiliki penilaian yang meningkat secara liar atas kemampuan mereka sendiri.
Metrik yang baik adalah apakah orang lain yang Anda hormati sebagai programmer sendiri ingin mengerjakan / dengan kode yang Anda tulis. Jika diberi kesempatan untuk bekerja secara langsung dengan Anda, atau untuk mewarisi kode yang telah Anda tulis, apakah akan menolaknya? Setuju dengan enggan? Atau lompat pada kesempatan untuk belajar dari pekerjaan Anda? Teknik ini bekerja lebih baik jika itu teman sebaya, bukan bawahan atau seseorang yang berpikir mungkin ada manfaatnya bagi mereka dari membuat Anda merasa baik.
sumber
Jika Anda benar-benar ingin mengetahuinya, kirimkan beberapa kode ke rekan-rekan Anda, dan minta ulasan kode (konstruktif). Dalam kasus terburuk, Anda belajar sesuatu. Fakta bahwa Anda berada di sini di situs ini untuk mencari pencerahan sudah membedakan Anda dari massa yang tidak dicuci. (Kecuali Anda hanya di sini untuk membelai ego. :-)
sumber