İyi bir programcı olup olmadığımı nasıl bilebilirim?


301

Çoğu insan gibi ben de kendi alanımda ortalamanın biraz üzerinde olduğumu düşünüyorum. İyi para alıyorum, terfi aldım ve hiçbir zaman iyi referans alma veya iş bulma konusunda gerçek bir problem yaşamadım.

Ancak, birlikte çalıştığım en kötü programcıların çoğunun en iyisi olduklarını düşünecek kadar etraftaydım. Diğer kötü programcılar tarafından çevrelenmiş kötü programcılar, en çok kendi kandırılmışları gibi görünmektedir.

Ben kesinlikle mükemmel değilim. Hata yapıyorum. Son teslim tarihlerini özlüyorum. Ama sanırım "diğer iyi programcılar" ın yaptığı gibi aynı sayıda kemik alma hareketi yapıyorum. Sorun şu ki, "diğer iyi programcılar" ı "benim gibi olan insanlar" olarak tanımlamam.

Öyleyse merak ediyorum, bir programcının bir nevi makul öz değerlendirme yapması mümkün mü? İşlerimizde iyi ya da kötü olup olmadığımızı nasıl biliyoruz?

Veya, iyi ve kötü gibi terimler çok iyi tanımlanmamışsa, programcılar kendi güçlü ve zayıf yönlerini dürüst bir şekilde nasıl tanımlayabilirler ki, birincisinden faydalanabilsinler ve ikincisini geliştirmek için çalışırlar?


Neden bilmek istiyorsun? Kimse "iyi" nin ne olduğunu tanımlayamaz. İşi beklendiği gibi yaparsanız ve iyi para alırsanız, bu yeterlidir.
Mert Akcakaya,

Yanıtlar:


325

İyi bir programcı öğrenmeye ve büyümeye devam etmeleri gerektiğini anlar. Her türlü çabada elinden gelenin en iyisini yapmaya, başarısızlığa itiraf etmeye ve onlardan bir şeyler öğrenmeye çalışıyorlar.

Olağanüstü iletişimseldirler. Sadece karmaşık teknik terimleri bir uzmana açıklamakla kalmazlar, aynı zamanda müşterisine en iyi seçenekleri sunduklarından emin olmak için şeytanın savunucusu olarak davranma yolunda giderler.

En iyi programcılar bir şeyi yapmanın birden fazla yolu olduğunu bilir ve kabul eder, her sorunun bir çivi olmadığını ve her zaman bir şeyi yapmanın daha iyi bir yolu olduğunu çünkü sürekli olarak yeni teknikleri öğrenmeye çalıştıklarını düşünürler. , teknolojiler ve anlayış.

İyi bir programcı programlamayı sever ve zaten haftada 80+ saat harcansalar bile boş zamanlarında yaparlar.

İyi bir programcı, iyi bir programcı olmadığını bilir. Gerçekten de harika programcılar mevcut değil, sadece mükemmel olduğunu iddia edenler ve onların iyi olmadığını bilenler var.


5
Bunu kafana soktun! IMO!

13
Ve bence daha genel bir sonuç, ne yaptığınızı önemserken yaptığınız işte iyi olduğunuzdur.

7
İyi dedi. Ego / alçakgönüllülükle ilgili olarak, 70'li yıllarda MIT AI Lab'ı gördüm. En iyi kodlayıcıların alçak gönüllü bir güveni vardı. Önemli bir şey yaptığınızı düşünüyorsanız, yanlış olabilirsiniz, ancak yapmazsanız muhtemelen haklısınızdır.
Mike Dunlavey,

4
2. paragrafa kısmen katılıyorum, "Sadece karmaşık teknik terimleri bir mesleğe açıklayamıyorlar ..." Bazı iyi programcılar biliyorum. Ancak çevrelerinin dışındaki hiç kimseye bir şey açıklayamadılar. Görevlinin ne söylemeye çalıştığını da anlayamadılar. Her ikisi de birbirlerine "farlardaki geyik" gözleriyle bakıyorlar. Olağanüstü iletişimsel olduklarını söyleyeceğim. Puanlarınızın geri kalanında, iyi bir programcının alçak gönüllü olduğunu ve bilgisini bildiği şekilde paylaşmaya istekli olduğunu söyleyerek onları özetleyeceğim.
IABstract

101
"ve zaten haftada 80+ saat harcansalar bile boş zamanlarında bunu yapardı." Bu aptalca ifadeden kurtul ve geri kalanıyla tamamen aynı fikirdeyim. Gerçekten 'iyi bir programcı', programlamadan başka bir şey yaparken 80+ saat haftada çalışırken (boş zamanlarda) fiziksel ve zihinsel sağlık ve işyerinde verimlilik için gerekli olduğunun farkına varır.

91

Paul Graham'ın bu seçkin oyuncu kadrosunda dikkat çektiği gibi , yapamazsınız. Sadece iş arkadaşlarınız size söyleyebilir.


4
Bu cevap, kabul edilenden çok daha iyi ...

125
İş arkadaşlarınız, beceriksizlerse yetkin olup olmadığınızı söyleyemezler. Sadece garip görüşleriniz olduğunu düşünecekler ve ilgisiz konular hakkında tutkuyla tartışacaklar.

2
Katılıyorum, keyersoze. O zaman kimse size söyleyemez ve kendinize yeni iş arkadaşları edinmediğiniz sürece asla bilemeyeceksiniz. Yetkili olan kimseyle çalışmamanın uzun vadede faydalı olmadığını düşünüyorum.

1
@keysersoze, ama aslında yetersiz kaldığım takdirde meslektaşlarım yetkin olabilir ve bunu gerçekleştirmek için çok aptalım;)

1
Paul Graham ayrıca harika programcılar hakkında bir makale yazdı, harika olanları adlandırmada bir kayıp olduğunu belirtti, çünkü aslında bariz seçeneklerle hiç çalışmadı (Richard Stallman, Linus Torvalds, vd.).
David Thornley,

59

İki şeyi yaparak performansınızı değerlendirmenin en kolay olduğunu her zaman buldum.

  1. Kendinizi diğer iyi programlayıcılarla kuşatın
  2. Yazdığınız kod hakkında ne kadar şikayet ettiklerini görün.

Elbette mesele iyi programcılar bulmak ve daha sonra iyi bir programcı olmak da sadece kodlamayla ilgili değil. Gruplarda iyi çalışabilmeniz gerekir, ancak aynı zamanda kendiniz de iyi çalışabilirsiniz.

Şimdi konuya girme uğruna, Robert A. Heinlein ve konuyla ilgili görüşlerini alıntılayacağım:

"Kick-ass bir programcı] bir bebek bezi değiştirebilmeli, bir istila planlayabilmeli, bir domuz besleyebilmeli, bir gemiyi bağlayabilmeli, bir bina tasarlayabilmeli, bir sonnet yazabilmeli, hesapları hesaplayabilmeli, bir duvar kurabilmeli, bir kemik kurabilmeli, ölmeyi rahatlatabilmelidir. , emir almak, emir vermek, işbirliği yapmak, yalnız hareket etmek, denklemleri çözmek, yeni bir problemi analiz etmek, gübre hazırlamak, bir bilgisayar programlamak, lezzetli bir yemek pişirmek, verimli bir şekilde mücadele etmek ve cesurca ölmek.
- Lazarus Long'un Defterinden.


12
Bana biraz şunu hatırlatıyor: "Aptal insanlar kendilerini akıllı insanlarla çevreliyor. Akıllı insanlar kendilerini kendileriyle aynı fikirde olmayan akıllı insanlarla çevreler."
Sam Hasler

Bunun SO hakkındaki en iyi Heinlein teklifi olduğunu söylemeye teşebbüs ediyorum.

1
Sorun şu ki, diğer programcılar seviyenizin üstünde veya üstünde olmayabilir, ancak size hakaret etmek istemeyebilirler. Çalıştığım üç programcının geri

4
... anti-sosyal olduğumuz için sınırlandırılmış olmamıza rağmen, diğer programcılar, onunla ilgili sorunların geri bildirimini sağlayarak kod savunmasını önleyebilirler. Bu aslında sosyal problemleri yaratmamak için gerçek problemleri görmezden gelebilir.

55

Bu sadece sizin için Programcı Yetkinlik Matrisidir: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm


Bu eşyaların% 90'ı için 3-4 yaşındayım ve kod yazamıyorum. En azından çok hızlı değil.

Alışveriş listesi için -1.

6
-1 - algoritmaların bilgisi iyidir, ancak birisi sizinle röportaj yaparken bu şeylerin kafanızda saklanmasına imkân yoktur. Bu wikipedia, google ve stackoverflow içindir.

1
Bu listenin çoğunlukla yararsız olduğunu kabul etmek; Egzersiz yapmak istiyorsanız bu güzel bir fikir kaynağıdır, ancak sizin “iyi bir programcı” olduğunuzu belirleme açısından çok yararlı değildir. "İyi programcı", keyfi listeden daha fazla tutumdur.

2
+1. Yukarıda söylenenlere katılmıyorum, ancak bunun çok iyi bir liste olduğunu düşünüyorum. Gönderdiğiniz için teşekkür ederiz. Bunlar kesinlikle iş başvurusunda bulunan bir programcıyı değerlendirebileceğim türden kriterler. Ve @macnnicken, sadece seviye 3'e gidiyor. :)
EMP

38

Jeff bu konuda en sevdiğim blog yayınlarından birine sahip ... Neden Dünyadaki En İyi Programcıyım?

“... bizim işimiz herkesten daha iyi olmak değil; sadece bir yıl önce olduğumuzdan daha iyi olmamız gerekiyor.”


3
Bu alıntıyı beğendim, çok iyi. Ve bunun programlama ile ilgili olduğu şey. "Yaptıklarında daha iyi ol ve günden güne bil."

1
Son 12 yıl boyunca her yıl, bir yıl önce yazdığım koda tekrar baktım ve bunun çok kötü olduğunu düşündüm. Belki de doğru bir şey yapıyorumdur! Durağan bir programlayıcıdan daha kötü bir şey yoktur.

28

Bence soruyu sormakta olduğun gerçeği, kötü bir programcı olmadığını kanıtladığına göre, bence, yarı yoldasın. :)

Kötü programcılar her zaman deneyimlerime göre harika programcılar olduklarını düşünüyorlar.


ne kadar tecrüben var?

1
Tecrübelerim tecrübelerinize katılıyor, bu yüzden iyi olduğumu düşündüğümde endişeleniyorum.
Kristopher Johnson

21

@ Nick'in açıklamada "Kötü programcıları hep onlar büyük programcılar olduğunu düşünüyorum ..." ile açıklanabilir Dunning Kruger Etkisi tahmini ekonomik ömrü boyunca sık sık bir konu hakkında biraz tanıyanlar aslında ne kadar bilgili olduğunu genelleştirir.

Biraz moral bozucu olmak ... ne kadar azını bildiğini sanıyorsan o kadar çok şey yaparsın .... tabii ki gerçekten kendini bilen bir aptal değilsen.

Orijinal soruyu cevaplamakla birlikte, sahip olduğunuz daha fazla etkinin (kontrol etmeme) genelde iyi bir gösterge olduğunu düşünme eğilimindeyim. Başkasının sizi takip ettiğini veya uygulamalarınızı geliştirdiğini görürseniz, doğru yoldasınız demektir.


Dunning-Kruger etkisi korkunç derecede alçakgönüllü. Yaptığım bir şey hakkında iyi hissettiğimde aklımda kalmaya çalışmayı seviyorum!

İyi programcılar soru sormazlar ve sonra cevapları oylarlar çünkü beğenmezler. Yeni bir konudaki her şeyi biliyormuş gibi davranmıyorlar ve bir uzman kendileri için bir soruya cevap verdiğinde oy kullanmıyorlar çünkü istedikleri o değil.

Keşke kolejde DK hakkında bir ipucum olsa, spektrumun bir sonunun iyi bir örneğindeydim!
DarenW

18

En fazla oyu alan cevap gerçekten üzücü. Temel olarak, programlama dışında bir ömrünüz olmadığını söylüyor. Peki ya aile? Topluluk? Hobiler? Ne tür bir meslekteyiz, sadece "iyi" olarak kabul edilmek için saplantı noktasına yoğunlaşmanız gerekir. Burada bir bakış açısı bulmamız gerektiğini düşünüyorum.


2
Katılıyorum. Harika bir programcı olmadan önce harika bir insan olmaya çalışmalıyız.

501 programcı terimini ifade etmek için iyi bir yer: hanselman.com/blog/…
ChrisFletcher


9

Mükemmel değilim. Hatalar yapıyorum. Son teslim tarihlerini özlüyorum. Ama sanırım "diğer iyi programcılar" ın yaptığı gibi aynı sayıda kemik alma hareketi yapıyorum.

Bu gerçekleştirme tek başına sizi kötü programcıların çoğundan daha iyi bir programcı yapar.

En kötü programcıların çoğu bilecekleri her şeyi bildiklerini ve sınırlarının farkında olmadıklarını düşünme eğilimindedir. Sonuç olarak, asla becerilerini geliştirmezler.


9

Bir yıl önce diyelim ki kodunuza bakarsanız ve düşünün, tanrım, bunu çok daha iyi yapabilirdim, muhtemelen iyisinizdir :).


Merhaba dünya programıma baktım ve düşündüm ki, şimdi çok daha verimli, iyi miyim? jks jks

9

İşte kötü programlama bazı gerçek hayat örnekleri. Tabii ki, benzer kod 100 yerde kopyalanıp yapıştırılan yerin her tarafındaydı. Adam kovuldu, ama tekrar iyi iş çıkardığını duydum. Keyfini çıkarın:

a)

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();
    }
}

Bu tür bir kod yaparsanız, programlamayı durdurun. Bu kodda garip bir şey görmüyorsanız, programlamayı durdurun. Aksi takdirde fena değilsin, o yüzden bile iyi olabilirsin :)

EDIT: Yorumlara cevap vermek için: Mezun olmadan önce iş buldum ve bu adam zaten birkaç yıllık programlama tecrübesine sahipti. İşe alındıktan birkaç ay sonra kovuldu, ben de kimseyi eğitecek pozisyonda değildim. Yukarıdaki örnekler kafamın en tepesinden gelmekteydi - dokunduğu her kod rahatlığı çeşitli ve yaratıcı şekillerde hatalıydı. Maddelerin çoğu şirketten çıktıktan sonra kaymaya başladı, çünkü sadece o zaman diğer insanlar kodun bazı bölümlerini gördü. Genelde hoş biri, konuşması hoş biriydi ama asla iyi bir ressam ya da bir yazar ya da her neyse, asla iyi bir programcı olmayacak.

Bunu başka bir örnekle karşılaştırmak yerine, onun yerine gelen adam da o zamanlar işe yaramıştı. Programlama ve yönetim için daha ünlü olan kolej okudu. Eğlence için herhangi bir şey programladığı veya evde oturup java ya da programlama hakkında okuyacağı bir anlamda çok meraklı değil, ancak gayet iyi durumda. Hızlı bir şekilde ayarladı ve kullanışlı ve sürdürülebilir bir kod üretmeye başladı. Bazı insanlar bunu yapabilir, bazıları bunu yapamaz - sadece dailywtf'e sorabilir.


11
Herkes rasgele kod yayınlayabilir ve anlamayanların aptal olduğunu iddia edebilir. Ben aptal çizgide duracağım.

20
İyi bir programcı meslektaşına bununla ilgili neyin yanlış olduğunu açıklamak için zaman alabilir (belki 2 dakika?).

4
Kabul edildi, iyi bir programcı bu kodun neden “kötü” olduğunu ve meslektaşının kendisiyle alay etmek yerine daha iyi hale gelmesine yardımcı olacağını söyledi.

7
Umarım bu adam iş arkadaşlarının onu dolandırmak yerine büyümesine yardım ettiği bir iş bulmuşlardır.
Robert S.

8
@Morph: instancealan hiçbir zaman bir Typeörneğe atanmaz ve bu nedenle daima kalır null=)
missingfaktor

8

Nasıl yığıldığınızı daha iyi ölçmek için deneyebileceğiniz birkaç şey var.

  • Kod incelemelerini karşılaştırın. Kimin incelemesinde daha fazla sorun olduğunu görün.
  • En son ne zaman normal çalıĢmalarının bir parçası olan kitapları okuduklarını sorun. O zaman kendinize de aynı şeyi sorun.
  • Şirkete yeni fikirler getirenları (ve ne kadar iyi çalıştıklarını) kendinize sorun.
  • Son (ve en az), bir tür şirket tanıma var mı?

(Ben O kodu geliştirdi. Gittikten sonra biz en az 20 TDWTF layık kod parçacıkları bulundu. Üç yıl içinde iki kez son bir benim son firmasında, bir programcı "Yılın geliştirici" aldı çünkü koymak hızlı , ama mutlaka iyi Yönetim sadece farkı bilmiyordu.)


1
"Kod incelemelerini karşılaştır" için +1. Bu yapmak için yeni ve çok pratik bir şey gibi görünüyor.
j_random_hacker

6

Çalıştığınız veya kodunuzu gördüğünüz diğer geliştiricilere izin verin.

İnsanların gerçekte ne istediğini kullanmalarını ve ne düşündüklerini görmelerini sağlayın.

- Kevin Fairchild


6

Bunu anlayabiliyor musun?

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

:-)


Aşağı modda ??!?!?!?! Birisi tarihini bilmiyor. :-)
Iain Sahibi

5
Bunu anlamanız beklenmez

Bu bir şeye referans mı? Her durumda, eğer C / C ++ koduysa, muhtemelen 2. satırda "= &" yerine "& =" demek istediniz. ("Muhtemelen" diyorum çünkü C ++ 'da aşırı işleç ~ () ile yukarıdaki derlemeyi yapabilirsin ... Ama istediğin şeyin bu olmadığından eminim.)
j_random_hacker

1
@j_random_hacker Bu kodun Dennis Ritchie tarafından yazıldığı için = & 'nin doğru olduğundan şüpheleniyorum. Bkz cm.bell-labs.com/who/dmr/odd.html
Iain Tutucu

1
@IainMH, dmr da buggy olduğunu itiraf ediyor.

4

Sadece kendi kendini değerlendirmek zorunda olduğun düşüncesi seni diğerlerinin üstünde kesiyor.

Kendimi her zaman yargılamamın bir yolu, çalışanlarımın benim hakkımda söylediklerini dinlemektir. Hile doğru insanları bulmakta.


4

İyi bir programcı olan her zaman özneldir. Nick ile sadece soruyu sormanın doğru yönde bir adım olduğu konusunda hemfikirim. Bence daha fazla öğrenme ve iyileştirme arzusunun sürekli bir programcı olduğunu söyler.


4

Bana göre en iyi programcılar asla iş aramazlar. Sadece itibarlarına bağlı olarak yeni pozisyonlar için teklifler var. Öyleyse, iyi bir programcı, önceki işverenlerden istedikleri takdirde geri dönmelerini önerebilir. Ya da iyi bir programcı, eski iş arkadaşlarından yeni bir şirkette onlar için çalışmaya gelmeleri konusunda sorular alabilirdi.

Güçlü / zayıf yönleri açısından, muhtemelen onları zaten biliyorsunuzdur. Değilse, ekibinizden daha kıdemli bir kişiye danışın. Bir geliştirici olmak zorunda bile değil. İyi bir proje yöneticisi, programcıların güçlü / zayıf yanlarını bilir. Ayrıca, iyi bir programcı tanımlayan özellikler sadece kod ile sınırlı değildir. İşi anlama, iletişim becerileri, yargılama vb. IDE'nizin dışında gerçekleştirilir.


2
Harika bir programcı ve korkunç bir insan olabilirsiniz. Çok fazla şey bilmeyen ama öğrenmeye istekli olan ya da her yönden harika bir programcı olan toplam bir pislikle çalışmak ister misiniz? Yani tarif ettiğiniz şey iyi bir programcı değil, iyi bir çalışandır. ;)

2
Bu yorumun nereden geldiğini anlamıyorum. Ele aldığım iki ana soru 'İyi bir programcıysam nasıl bilebilirim?' ve 'Güçlü ve zayıf yönlerimi nasıl bilebilirim?' Bütün bu gerizekalılar ve korkunç insanlar hakkında ne konuşur. Bu şeyler hakkında düşüncelerim var ama cevaplarımla ilgili olduklarını sanmıyorum.

2
İtibar kazanmak, çoğunlukla gerçek yeteneklerden daha çok PR ve güven meselesidir.
David Thornley,

“Yetenek” in teknik yetenek olduğunu varsayarsak, iyi bir programcı olmak “gerçek yetenekten” daha fazlasıdır. Teknik yetenek sadece bulmacanın bir parçası.

3

Bunun iyi bir insan olup olmadığınızı nasıl bildiğinizi merak etmekle ilgili olduğunu düşünüyorum.

Bence, ne yazık ki, cevabı sadece diğer güvenilir insanların size söyleyebileceği. Bunun kendiniz için doğru bir şekilde belirleyebileceğiniz bir şey olduğunu sanmıyorum (en azından çok zor - ama imkansız olabileceğini düşünüyorum).


3

basitçe şunu söylerim: Yaptığınız şey hakkında tutkulu iseniz (gerçekten GERÇEKTEN tutkuluysanız), esnek olursanız (başka bir dil, yeni teknoloji, eski bir projenin tamamen yeniden yapılması - haydi yapalım!), öğrenmeye devam ederseniz ve yeteneklerinizi geliştirmek ve asla, asla durduracak kadar iyi olduğunuzu düşünmeyin - o zaman iyi bir programcısınız!


3

Bütün programcıların% 95'i, programcıların ilk% 5'i arasında olduklarını, diğer% 5'i ise yöneticilerin olduğunu düşünüyor. Öyleyse eğer bir yöneticiyseniz, muhtemelen iyi bir programcı değilsiniz, aksi halde muhtemelen sizsiniz.


... ve% 25'i ilk% 1'de biliyorlar;)

3

Programlama becerilerinizle ne yaptığınızla ilgili bir sorun olduğunu düşünüyorum. Harika bir programcı olmak iyidir, ancak bütün gün banka yazılımını kodlamanız önemli değil (suçsuz). Sadece toplamaz.

Kendine iyi bir programcı olduğunu kanıtlamak için ilginç ve zor bir yan projeye başla. Bu birkaç şey gösterir: kendi boş zamanlarınızda programlama yapmakla ilgilenirsiniz ve gerçekten konunun tadını çıkarırsınız - bu iyi bir programcı olmak için çok önemlidir. Becerilerinizi çalışma ortamınızda yaptıklarınızın ötesine taşıyabileceğiniz konusunda çok yönlülük gösterir. Motivasyon ve yaratıcılığı da gösterir: bir sorunu kendi başınıza tanımladınız ve çözmek için adımlar atıyorsunuz.

Tüm bu yönler benim için iyi bir programcı tanımlar.


3

Cevabım politik olarak yanlış olacak. Ancak, aslında bir başlangıç ​​kurucusuyum ve işim en iyi programcıları işe almak.

Hangi insanların iyi programcılar olacağını veya iyi programcılar olabileceğini nasıl bilebilirim?

1 kelime: IQ.

IQ, sepet topu oyuncuları için yükseklik olduğundan programlama içindir.

Matematik becerilerini daha politik olarak doğru göstergeler olarak koyardım. Bilgisayar bilimleri öğretmenlerim bana programlama derslerinde kimin başarılı olacağını tahmin etmenin doğru bir kriteri olduğunu söyledi. Lise Matematik puanları. Bunlar zaten etkili bir şekilde IQ.

Bu sürpriz olabilir. Programlamanın üniversite mezunu olduğu söyleniyor. Bil bakalım ne, umrumda değil. Sadece 3 şeyi önemsiyorum.

  1. Programlama becerileri (test edilebilir).
  2. Yetenek.
  3. Sağduyu (çok düşük değil) insanların becerileri.

Ne yazık ki IQ sadece bir şeyi ölçer. Bu yüzden bazı testler yapıyorum.

İnsanlara sorular soruyorum. Basit bir soru bence ilkokul çocuğunun cevap verebilmesi gerekir.

Gibi sorular soruyorum:

  1. Saatin kısa ve uzun eliyle 7:35
  2. Jakarta'dan Semarang'a gidip 60km / saat hızda tutmak istersem. Sonra ilk 2 saatte 100km / saat süreceğim. ORTALAMA hızım 60km / saat olacak şekilde yolculuğun geri kalanında ne kadar hızlı gitmeliyim?

Dikkatlice bakarsanız, bu sorular hiç yaratıcılık gerektirmez. Sadece sağduyu. IQ'lu tüm ilkokul çocukları buna cevap verebilir.

ÇOK üniversite mezunu olamaz. Şimdi, birisinin buna cevap veremeyeceğini hayal edin? Programlayabilir mi? Bunu düşün. Ne yapması gerektiğini ne sıklıkta belirtmeniz gerekecek?

Ayrıca, yaratıcılık gerektiren Microsoft gibi sorular da sorabilirsiniz. Hangisinin en ağır olduğunu bilmek için 8 topun nasıl bir denge ölçeğinde tartılacağına ilişkin sorular sorabilirsiniz. Bu tür sorulardaki sorun şans içermesidir. Ancak, bazıları oldukça kolaydır, minimum gereksinim olmalıdır.

Müthiş bir programcı edinmek, diğer programcıların morallerini artırabilir. Bir yasadışı programcı edinmek, herkesin moralini düşürebilir.

İnsanlar bunun gibi soruları cevapladıktan sonra, bu çok kolay, bazı Google reçel kodlarını yazmalarını sağlardım.

İyi programcılar google reçel kodunu çözebilir ve hangi sorunların daha kolay olacağını tahmin edebilir.


2

eğer iyi bir programcısın

-Sen teorik bir arka plan var. tekerleği veya algoritmayı veya çerçeveyi yeniden icat etmek çoğu zaman zaman kaybıdır.

-Bazı şeyleri ve sorunları bazen çarpık bir perspektiften görebilirsiniz. bu size yenilikçi çözümler bulmanızı sağlayabilir.

- En iyi araçlara ve en iyi becerilere sahip olmak için zaman ve para harcıyorsunuz.

-Kodunuzu değiştirmek kolaydır. temiz, şık ve anlaşılır bir kod tasarlarsanız, modyfing acı verici olmaz.

-Eğer kod / hata oranı oldukça yüksek. Bunun önemsiz görünebileceğini biliyorum, ama yine de önemsiz böcek yapmaya eğilimli olan birçok yaratıcı ve yetenekli geliştiriciyi biliyorum. Bu, etkinliklerini ve yararlarını büyük ölçüde bozar.

- Etrafınızdaki insanlar, hangi seçimlerin yapılacağına karar vermenize yardımcı olabileceğinizi biliyor

-Sen farklı araçlar kullanarak sorunları çözebilir. Kötü programcılar, ne gibi bir sorun olursa olsun, aynı aracı (bir dil veya teknoloji ya da mimarlık gibi) kullanmaya devam ediyorlar

- Öğrenmeye devam ediyorsun, merak ediyorsun.

-tüm seneler sonra, iyi eğlenceler programlama


2

"Efendim, Alpha'dan Omaha'ya kadar gittim ve size bir erkek ne kadar az bilirse yaptığı gürültü o kadar yüksek ve emrettiği maaş o kadar yüksek olur." Mark Twain

... benim sonucum iyi programcılar düşük maaş emri ve az gürültü yapmak ... :)


2

En İyi Programcı: Görevi, zamanında en düşük kod ifadesiyle tamamlayın.


1

Kodunuzda bazı metrikler başına kaç tane hata var? (satır başına hata) Yeni özelliklerin eklenmesi gerektiğinde kodunuzun ne kadarının kodlanması gerekir? İş arkadaşlarınızın kodunuzu değiştirmekle ilgili sorunları var mı?

Sonuçta, "kalite kodu nedir" sorusu tüm bunlardan sonra hala tartışılan bir konu olduğu göz önüne alındığında, sorunun yanıtlanması imkansızdır.


1

Adam V'nin yukarıda söylediklerini çok beğendim.

Başkalarının söylediklerine ek olarak, çalışmalarınızın sürdürebilirliğine ve destek geçmişine bakın. Kodunuzun ağır bakım gereksinimleri varsa ve sürekli olarak sabitleniyorsa veya değiştirilmesi zorsa, bunlar kalite göstergeleri olabilir. Ancak bunlar aynı zamanda zayıf gereksinimlerin göstergeleri olabilir.


1
"Ancak bunlar aynı zamanda zayıf ihtiyaçların göstergeleri olabilir." büyük olasılıkla burada bizim davamız. Zayıf gereklilikler bizi bütün bir modülü yeniden yazmaya zorladı.

1

Kendini değerlendirmek çok zor. Beceriksiz insanlar, kendi kabiliyetleri hakkında çılgınca şişirilmiş değerlendirmelere sahip olma eğilimindedir.

İyi bir ölçüm, programcılar olarak saygı duyduğunuz diğer kişilerin yazdığınız kodla / kodla çalışmak isteyip istemedikleridir. Doğrudan sizinle çalışma veya yazdığınız kodu devralma şansı verildiğinde, bunu geri çevirir misiniz? İsteyerek katılıyor musun? Ya da işten öğrenme şansına mı atlıyorsun? Bu teknik, eğer bir akran, bir terlik ya da iyi hissetmenizi sağlamanın bir faydası olabileceğini düşünen biri değilse bile daha iyi çalışır.


1

Gerçekten öğrenmek istiyorsanız, meslektaşlarınıza bazı kodlar gönderin ve (yapıcı) bir kod incelemesi isteyin. En kötü durumda, bir şeyler öğreniyorsun. Bu sitede aydınlanma arayışı içinde olduğunuz gerçeği, sizi zaten yıkanmamış kütlelerin dışında tutuyor. (sadece ego vuruşu için burada olmadığınız sürece. :-)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.