Bagaimana Saya Bisa Tahu Apakah Saya Pemrogram yang Baik?


301

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?


Mengapa kamu ingin tahu? Tidak ada yang bisa mendefinisikan apa "baik" itu. Jika Anda menyelesaikan pekerjaan seperti yang diharapkan dan dibayar dengan baik, itu cukup baik.
Mert Akcakaya

Jawaban:


325

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.


5
Kau paku ini tepat di kepala! IMO!

13
Dan saya pikir akibat wajar yang lebih umum adalah bahwa Anda mahir dalam apa yang Anda lakukan ketika Anda peduli dengan apa yang Anda lakukan.

7
Kata baik. Mengenai ego / kerendahan hati, saya datang melalui MIT AI Lab di tahun 70-an. Coders terbaik memiliki kepercayaan diri yang rendah hati. Jika Anda berpikir Anda melakukan sesuatu yang penting, Anda bisa saja salah, tetapi jika tidak, Anda mungkin benar.
Mike Dunlavey

4
Saya setuju sebagian dengan para. # 2, "Mereka tidak hanya dapat menjelaskan istilah-istilah teknis yang rumit kepada orang awam ..." Saya kenal beberapa programmer yang baik. Tetapi mereka tidak bisa menjelaskan apa pun kepada siapa pun di luar lingkaran mereka. Mereka juga tidak bisa mengerti apa yang orang awam coba katakan. Mereka berdua saling memandang dengan mata "rusa di lampu depan". Saya akan mengatakan mereka sangat komunikatif. Untuk sisa poin Anda, saya akan meringkasnya dengan mengatakan seorang programmer yang baik adalah rendah hati dan bersedia untuk membagikan pengetahuannya dengan cara terbaik yang ia tahu.
IAbtract

101
"Dan akan melakukannya di waktu luang mereka bahkan jika mereka sudah menghabiskan 80+ jam pemrograman seminggu." Singkirkan pernyataan konyol ini dan saya setuju sepenuhnya dengan yang lain. Seorang programmer yang benar-benar baik, menyadari bahwa ketika bekerja 80+ jam minggu melakukan sesuatu selain pemrograman (di waktu luang) sangat penting untuk kesehatan fisik dan mental, dan produktivitas di tempat kerja.

91

Seperti yang ditunjukkan Paul Graham keluar fasih dalam hal ini cor pod , Anda tidak bisa. Hanya rekan kerja Anda yang bisa memberi tahu Anda.


4
Jawaban ini jauh lebih baik daripada yang diterima ...

125
Rekan kerja Anda tidak dapat memastikan apakah Anda kompeten atau tidak kompeten. Mereka hanya akan berpikir Anda memiliki pendapat aneh dan berdebat dengan bersemangat tentang hal-hal yang tidak relevan.

2
Setuju, keyersoze. Maka tidak ada yang bisa memberi tahu Anda dan Anda tidak akan pernah tahu, kecuali jika Anda mendapatkan rekan kerja baru. Saya pikir itu tidak bermanfaat dalam jangka panjang untuk bekerja dengan siapa pun yang kompeten.

1
@keysersoze, tetapi jika saya benar-benar tidak kompeten rekan kerja saya mungkin kompeten dan saya terlalu bodoh untuk menyadarinya;)

1
Paul Graham juga menulis sebuah esai tentang programmer hebat, menunjukkan bahwa ia bingung menyebutkan nama programmer hebat, karena ia tidak pernah benar-benar bekerja dengan pilihan yang jelas (seperti Richard Stallman, Linus Torvalds, dkk.).
David Thornley

59

Saya selalu menemukan bahwa paling mudah untuk menilai kinerja Anda dengan melakukan dua hal.

  1. Kelilingi diri Anda dengan programmer lain yang baik
  2. Lihat seberapa banyak mereka mengeluh tentang kode yang Anda tulis.

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:

"[Seorang programmer tendangan] harus dapat mengganti popok, merencanakan invasi, memotong daging babi, menghubungkan kapal, mendesain bangunan, menulis soneta, menyeimbangkan akun, membangun dinding, mengatur tulang, menghibur orang yang sekarat , menerima pesanan, memberi perintah, bekerja sama, bertindak sendiri, menyelesaikan persamaan, menganalisis masalah baru, membuat pupuk, memprogram komputer, memasak makanan lezat, bertarung secara efisien, dan mati dengan gagah. Spesialisasi adalah untuk serangga. "
- dari The Notebook of Lazarus Long.


12
agak mengingatkan saya pada kutipan: "Orang bodoh mengelilingi diri mereka dengan orang pintar. Orang pintar mengelilingi diri mereka dengan orang pintar yang tidak setuju dengan mereka."
Sam Hasler

Saya berani mengatakan ini adalah kutipan Heinlein terbaik di SO.

1
Masalahnya adalah bahwa programmer lain mungkin atau mungkin tidak pada atau di atas level Anda, tetapi mereka mungkin tidak ingin menghina Anda. Saya belum mendapat banyak di jalan dari umpan balik dari tiga programmer Saya telah bekerja dengan, dan sangat minim dari 2 orang lain, salah satu yang saya akan mempertimbangkan "baik" ...

4
... walaupun kita sterotyped sebagai anti-sosial, programmer lain mungkin lebih dulu mempertahankan kode dengan hanya tidak memberikan umpan balik masalah dengan itu. Yang sebenarnya mungkin mengabaikan kode masalah aktual agar tidak menciptakan masalah sosial.

55

Ini adalah Matriks Kompetensi Programmer hanya untuk Anda: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm


Saya 3-4 pada seperti 90% dari barang-barang itu dan saya tidak bisa kode omong kosong. Tidak terlalu cepat, setidaknya.

-1 untuk daftar belanja.

6
-1 - pengetahuan tentang algoritma itu baik, tetapi tidak mungkin semua hal itu akan disimpan di kepala Anda ketika seseorang mewawancarai Anda. Itulah gunanya wikipedia, google, dan stackoverflow.

1
Menyetujui bahwa daftar itu sebagian besar tidak berguna; itu adalah sumber ide yang bagus jika Anda mencari latihan, tetapi tidak terlalu berguna sejauh membuat keputusan bahwa Anda adalah "programmer yang baik". "Pemrogram yang baik" lebih merupakan sikap daripada daftar yang sewenang-wenang.

2
+1. Meskipun saya tidak setuju dengan apa yang dikatakan di atas, saya masih berpikir ini adalah daftar yang sangat bagus. Terima kasih telah mempostingnya. Ini jelas merupakan jenis kriteria di mana saya akan mengevaluasi seorang programmer melamar pekerjaan. Dan @macnnicken, hanya naik ke level 3. :)
EMP

38

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."


3
Saya suka kutipan itu, sangat bagus. Dan ini tentang pemrograman. "Lebih baik dalam apa yang kamu lakukan dan ketahui hari demi hari."

1
Setiap tahun selama 12 tahun terakhir, saya telah melihat kembali kode yang telah saya tulis setahun sebelumnya dan berpikir itu sangat buruk. Mungkin saya melakukan sesuatu yang benar! Tidak ada yang lebih buruk dari seorang programmer stagnan.

28

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.


berapa banyak pengalaman yang kamu miliki?

1
Pengalaman saya setuju dengan pengalaman Anda, itulah sebabnya saya khawatir setiap kali saya mulai berpikir bahwa saya baik.
Kristopher Johnson

21

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.


Efek Dunning-Kruger sangat merendahkan. Saya suka mencoba dan mengingatnya setiap kali saya merasa senang dengan sesuatu yang telah saya lakukan!

Pemrogram yang baik tidak mengajukan pertanyaan dan kemudian memilih jawabannya karena mereka tidak menyukainya. Mereka tidak bertindak seolah-olah mereka tahu segalanya dalam subjek baru dan ketika seorang ahli menjawab pertanyaan untuk mereka, mereka tidak memilihnya karena itu bukan yang mereka inginkan.

Saya berharap saya memiliki petunjuk tentang DK di perguruan tinggi, ketika saya adalah contoh yang baik dari salah satu ujung spektrum!
DarenW

18

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.


2
Saya setuju. Kita harus berjuang untuk menjadi orang hebat sebelum kita menjadi programmer yang hebat.

Tempat yang bagus untuk merujuk pada istilah 501 programmer: hanselman.com/blog/…
ChrisFletcher


9

Saya tidak sempurna. Saya membuat kesalahan. Saya kehilangan tenggat waktu. Tapi saya pikir saya membuat jumlah gerakan yang sama seperti yang dilakukan "programmer lain yang baik".

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.


9

Jika Anda melihat kode Anda dari katakanlah setahun yang lalu, dan berpikir, ya ampun, saya bisa melakukan itu jauh lebih baik, Anda mungkin baik :).


Saya baru saja melihat program hello world saya dan berpikir bahwa, sekarang ini jauh lebih efisien, apakah saya baik? jks jks

9

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)

if (! TableObject.loadList("sql condition").isEmpty()) {  
    List<TableObject> myList = TableObject.loadList("sql condition");  
    ...  
}

b)

public static Type getInstance() {  
    if (instance == null) {  
        return new Type();  
    }  
    return instance;  
}

c)

getForeignKeyObjectProperty1() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty1();  
}  

getForeignKeyObjectProperty2() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty2();  
}  

...

getForeignKeyObjectPropertyN() {
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getPropertyN();
}

d)

public boolean isHasImage() throws SQLException {
    StringBuilder query = new StringBuilder();
    query.append("select user_name");
    query.append(" from user");
    query.append(" where has_image = 1");
    query.append(" and user_name ='"+getUserName()+"' and user_image is not null");
    Connection c = Database.getInstance().getConnection();
    Statement st = c.createStatement();

    try {
        ResultSet rs = st.executeQuery(query.toString());
        if (rs.hasNext()) {
            return true;
        } else {
            return false;
        }
    } finally {
        st.close();
    }
}

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.


11
Siapa pun dapat memposting kode sewenang-wenang dan mengklaim bahwa mereka yang tidak memahaminya bodoh. Saya akan berdiri di garis bodoh.

20
Seorang programmer yang baik akan meluangkan waktu (mungkin 2 menit?) Untuk menjelaskan kepada rekannya apa yang salah dengan kode seperti ini.

4
Setuju, seorang programmer yang baik akan menunjukkan mengapa kode ini 'buruk' dan akan membantu rekannya menjadi lebih baik daripada mengejeknya.

7
Saya berharap pria itu menemukan pekerjaan di mana rekan kerjanya membantunya tumbuh dan bukannya mencaci dirinya.
Robert S.

8
@Morph: instancebidang tidak pernah diberikan Typecontoh dan selalu tetap null=)
missingfaktor

8

Ada beberapa hal yang bisa Anda coba, untuk mendapatkan ukuran yang lebih baik tentang bagaimana Anda menumpuk.

  • Bandingkan ulasan kode. Lihat ulasan siapa yang mengungkapkan lebih banyak masalah.
  • Tanyakan kapan terakhir kali mereka membaca buku yang tidak sesuai dengan program studi normal mereka. Kemudian tanyakan pada diri Anda hal yang sama.
  • Tanyakan pada diri sendiri siapa yang membawa ide-ide baru ke perusahaan (dan seberapa baik mereka bekerja).
  • Terakhir (dan paling tidak), apakah ada semacam pengakuan perusahaan?

(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.)


1
+1 untuk "bandingkan ulasan kode". Itu sepertinya novel dan hal yang sangat praktis untuk dilakukan.
j_random_hacker

6

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


6

Bisakah kamu mengerti ini?

if(rp->p_flag&SSWAP) {
	rp->p_flag =& ~SSWAP;
	aretu(u.u_ssav);
}

:-)


Dimodifikasi ??!?!?!?! Seseorang tidak tahu sejarah mereka. :-)
Iain Holder

5
Anda tidak diharapkan untuk memahami ini

Apakah ini referensi ke sesuatu? Bagaimanapun, jika itu adalah kode C / C ++, Anda mungkin bermaksud "& =" daripada "= &" di baris ke-2. (Saya katakan "mungkin" karena dengan melakukan overloading operator yang ~ () di C ++ Anda bisa membuat kompilasi atas ... Tapi aku cukup yakin itu bukan apa yang Anda inginkan.)
j_random_hacker

1
@ j_random_hacker Saya menduga bahwa = & benar karena kode ini ditulis oleh Dennis Ritchie. Lihat cm.bell-labs.com/who/dmr/odd.html
Iain Holder

1
@IainMH, dmr juga mengakui itu buggy.

4

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.


4

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.


4

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.


2
Anda bisa menjadi programmer yang hebat dan orang yang mengerikan. Apakah Anda lebih suka bekerja dengan orang baik yang mungkin tidak tahu banyak tetapi bersedia untuk belajar atau dengan brengsek total yang merupakan programmer hebat dalam segala hal? Jadi apa yang Anda gambarkan menjadikan karyawan yang baik, bukan programmer yang baik. ;)

2
Saya tidak mengerti dari mana komentar ini berasal. Dua pertanyaan utama yang saya ajukan adalah 'Bagaimana saya TAHU jika saya seorang programmer yang baik?' dan 'Bagaimana saya tahu kekuatan / kelemahan saya?' Apa semua ini berbicara tentang tersentak dan orang jahat. Saya punya pendapat tentang hal-hal itu, tetapi saya pikir itu tidak berhubungan dengan tanggapan saya.

2
Mendapatkan reputasi sering kali lebih merupakan masalah PR dan kepercayaan diri daripada kemampuan yang sebenarnya.
David Thornley

Dengan asumsi "kemampuan" adalah kemampuan teknis maka menjadi programmer yang baik lebih dari "kemampuan aktual". Kecakapan teknis hanya sebagian dari teka-teki.

3

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).


3

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!


3

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.


... dan 25% TAHU mereka ada di 1% teratas;)

3

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.


3

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.

  1. Keterampilan pemrograman (yang dapat diuji).
  2. Bakat.
  3. Akal sehat (tidak terlalu rendah) keterampilan orang.

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:

  1. Berapa jarak antara jam tangan pendek dan panjang pada jam 7:35
  2. Jika saya pergi dari Jakarta ke Semarang dan ingin mempertahankan kecepatan 60km / jam. Kemudian pada 2 jam pertama saya mengemudi 100km / jam. Seberapa cepat saya harus pergi selama sisa perjalanan sehingga kecepatan RATA-RATA saya 60km / jam?

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.


2

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


2

"Tuan, saya telah melewatinya dari Alpha ke Omaha, dan saya katakan kepada Anda bahwa semakin sedikit orang yang tahu, semakin besar kebisingan yang ia buat dan semakin tinggi gaji yang ia perintahkan." Mark Twain

... kesimpulan saya adalah bahwa pemrogram yang baik memerintahkan gaji yang rendah dan membuat sedikit kebisingan ... :)


2

Programmer Terbaik: Selesaikan tugas dengan jumlah kode pernyataan terendah tepat waktu.


1

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.


1

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.


1
"Tapi ini juga bisa menjadi indikator persyaratan yang buruk." kemungkinan besar kasus kami di sini. persyaratan yang buruk membuat kami menulis ulang seluruh modul.

1

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.


1

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. :-)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.