Bir programcının yaptığı şeyde kötü olduğunu nasıl düşünürsünüz?
Mümkünse ... Nasıl gelişmeli?
Bir programcının yaptığı şeyde kötü olduğunu nasıl düşünürsünüz?
Mümkünse ... Nasıl gelişmeli?
Yanıtlar:
Hatalarından ve meslektaş eleştirilerinden ders almakta başarısız olduklarında.
Bir noktada hepimiz yeşiliz; Ancak, iyileşmiyorsanız veya iyileşmeye çalışıyorsanız, o zaman kötü bir programcısınız.
Ne bilmediğini bilmeyen ve öğrenmek için hiç ilgilenmediği bir programcı.
Büyük bir uyarı işareti, eğer bir "kargo kültü" programcısıysa - yani bir şeyleri yaptıkları anlamına gelir, ancak bu şeyleri neden yaptıklarını bilmiyorlar (sadece "sihir"). Eric Lippert tarafından Büyük yazılan buraya .
Makaleden:
Kodun ne yaptığını anlayan, ancak nasıl yaptığını anlamayan programcılar.
Benim için büyük bir ipucu, size veya diğer programcılara, kendi başlarına çözmek için kesinlikle sıfır çaba sarf ettiklerini açıkça gösteren soruları sormalarıdır.
Bunun bir sonucu, aynı programlama sorusunu defalarca sormalarında, bilgiyi içselleştirmediklerini belirten bir durumdur.
FizzBuzz problemini çözmek uzun zaman alırken.
Yeni teknolojiler / diller öğrenmeyi reddeden ve bildikleri şeye bağlı kalmakta ısrar eden programcılar.
Zeyilname: (Yorumlara aşağıda belirtilenlere çizgi eklenmesi)
Bunun bir uzantısı, bazı teknolojilerin işlevselliğinin bir alt kümesini bilen ancak bunun hakkında daha fazla bir şey öğrenmek istemeyen insanlardır. Programlama dili, editör, diğer araçlar ...
Bir ekip üyesi negatif üretici geliştirici olduğunda .
|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0
Yani, ekibin geri kalanının kötü geliştirici nedeniyle daha fazla iş yapması gerekiyor. NNPP
Günlük WTF'ye ait olan şeyleri düzenli olarak ürettikleri zaman .
Bildikleri zaman bir şeyler yapmanın daha iyi yolları vardır fakat zaman elverdiği zaman bile yapmayı reddederler.
Şahsen ben bir süre önce yazdıkları kendi kodlarına bakabilen ve yanlış bir şey bulamayan herhangi bir programcının iyi olmadığını düşünüyorum. "Bir süre" deneyimle ölçeklendirebilir ... Birkaç hafta ile bir yıl arasında.
Ufacık bir dükkanda ekip lideriyken, atamam gereken birkaç millet vardı (ne ben ya da doğrudan amirimin tonlarca bürokrasi ve bir yığın belge olmadan fesih yapma yetkisi vardı .) Ya da sözleşmenin yenilenmesi yoktu. Mevcut sözleşmenin sonunda. Numaralanan türlerin bazıları diğer takım liderleri için de işe yaradı ve hemen hemen aynı görüşü aldılar. İnsanları kitabımda "Kötü Programcı" kategorisine sokan şeyler:
Bunlar çalışmak zorunda olduğum kötü karakterlerden sadece birkaçı ...
/ s / BezantSoft
Belirgin bilgi / yetenek eksikliğinden ayrı olarak, kodları olması gerekenden daha zor okunması ve / veya bakımı zorsa, bir programcı kötüdür.
Başka hiç kimse kodunu okuyamadığında. Ne kadar parlak olduğun önemli değil; hiçbir programcı bir ada değildir.
Benim için programcılar için iki kategori var - solo ve takım.
Kötü solo programcılar
Kötü takım programcıları da dahil olmak üzere kötü solo programcılar kategorisine girenlerden.
Cevabını bilmediklerini ve / veya bazı şeyleri arama isteksiz olduklarını kabullenmeye istekli değiller.
Eğer bilmiyorsanız, pes etmeyin - anlayın ve halledin.
Deneyimlerimdeki büyük bir uyarı işareti, bilgisayar korsanlarına yorum yapmadıklarında ...
Ne demek istediğimi biliyorsun: çok kötü bir şey yapmak zorunda kaldığın zaman çünkü bunu yapmanın daha iyi bir yolu yok.
İyi programcılar bunu yapmak zorunda kalmaktan nefret eder ve bu tür bir kesmeyi yapmaktan ne kadar nefret ettiklerini söyleyen satır içi yorumlar eklerler, ancak başka seçenek yoktur. Kötü programcılar sadece kesmek ve yorum yapmazlar.
Cevabımı buraya, sorulan kötü bir programcı olup olmadığınızı anlayabilen , sorulan kapalı bir konudan alıyorum. Cevabımı oluştururken diğer konu kapanıyordu. Cevabım daha doğrudan, diğer asker tarafından yazıldığından soruyu ele alıyor ve eğer anlarsanız daha iyi okuyacak.
İç çekmek! Bir kısmım zaten bu yoğun konuyu eklemek istemiyordu, ama diğer tarafım kazandı! Neden kazandı? neden bu çoklu diline daha fazla kelime eklemek için can atıyorum? Çünkü, bir dereceye kadar, bu konuyu daha önceki yorumculardan biraz daha farklı olabilir.
İkili bilgisayarlarda harika çalışıyor: '1' veya '0', "açık" veya "kapalı". Bu ünlü iki devleti kullanarak birçok bilgiyi soyutlayabilir ve kodlayabiliriz. Ancak, insan meseleleri için çok iyi çalışma eğilimi yoktur: "iyi" veya "kötü", "aklı başında" veya "deli", "iyi" veya "kötülük", "akıllı" veya "aptal" "şişman" veya "zayıf", "canlı" veya "ölü" mü? Bu tür kutuplaşmış değerlendirmeler her zaman şefkatli insanı bir parçası olduğum için korkunç derecede tatmin etmedi. Hangi ölçüm şemasını uygulamamı seçsem seçmeliyim, genellikle bu kadar keskin kontrastlara verilen cevapların aslında her iki ucunda değil, böyle bir kutup ile diğeri arasındaki bir süreklilik boyunca bir yerde bulunduğunu tespit ediyorum.
Kutuplaşma eğilimi ile oldukça uzun bir süredir mücadele ettim ve şimdiki kişisel çözümüm, böyle bir değerlendirmeye üç kelimeyi uygulamanın çok daha faydalı olduğunu düşünüyorum: " ne dereceye kadar!"
Öyleyse, sorunuza cevabım, onu tekrar söylemenizi önermek ve kendinize şunu sormak: "Ne derece kötü bir programcıyım?" Ya da daha iyisi, diğer yönde sormak için: "Ne derece iyi bir programcıyım?" Eğer gerçeği takip ediyorsanız, muhtemelen kendinizi "kötü" bir programcı ve "iyi" olan bir süreç boyunca bir yere yerleştirirsiniz. Ardından, bu yol boyunca yaklaşık olarak nerede bulunduğunuzu belirlemeyi başardığınızda, muhtemelen "iyi" son noktasına biraz daha yakın olan bir nokta tanımlayabilirsiniz - yakın bir gelecekte kendinizi bulmak istediğiniz bir nokta.
Bu noktayı çok fazla ayarlamazsanız, muhtemelen arka ucunuzu vitese takıp bu yönde hareket etmeye başlayabilirsiniz. Bu oldukça basit sezgisel algoritmayı birkaç kez yinelemeyi başarırsanız, kısa süre sonra tekrar bu soruyu tekrar sormak için çok meşgul programlamaya başlayabilirsiniz! Oh, ve muhtemelen bir klavyede kod vurma işlemine olabildiğince hızlı ve sık şekilde başlarsanız daha hızlı ilerleme kaydedersiniz; ve şimdi biraz mola verirseniz, meslektaşlarınız tarafından yazılmış bazı yüksek kaliteli kodları okuyun! Dinamik Açık Kaynak geliştirme bu günlerde, öğrenmek için ücretsiz ve zarif kod sıkıntısı yok!
Bu yüzden, üç küçük kelimemi "ne dereceye kadar" denemeni ve seni ne kadar iyi yönde götürebileceklerini görmeni şiddetle tavsiye ediyorum!
"Bu yapılamaz" diyen biri.
Bence bu tamamen problem çözme ile ilgili, araç gerçekten işin yapılmasından daha az alakalı olmalı. MS-Access veya assembly dili kullanarak çözmek zorunda kalırsam, bu "Yapılamaz" meselesi değil, zaman ve para meselesidir.
Bir uyarı işareti, işleri yapmanın akademik ve "uygun" yoluna çok fazla odaklanmak ve işlerin yapılmasına yeterince odaklanmamaktır.
Sadece bir dilin sözdizimini biliyorsa, ancak algoritmaların temel kavramlarını bilmiyorsa.
Hemen bir tanıma sinyali şöyle diyebilir: "Neden işe yaramadığını anlamıyorum. Her şeyi doğru yaptım."
Kötü bir programcıyı yeni başlayan programcılardan ayıran bir şey, en sevdikleri sistemi, hangi dilde ve hangi API'de çalıştıkları konusunda uygulamak konusunda inatçı ısrardır.
Bir zamanlar önceki geliştiricinin (Java'da) büyük bir set Tate Tate DBase III + api'yi özel dbf erişim kütüphanesinin üzerine yerleştirdiği bir sistem miras aldım. Java koleksiyonları çerçevesinin hiçbiri kullanılmadı.
Bu yüzden DBase III + (ya da muhtemelen kesme makinesi) uygulaması gibi görünen ve hareket eden bir Java / Swing uygulaması yazabiliyordu.
Bu sistemde yazdığı uygulamaların lite-bar menüleri vardı ve lite-bar'ı bir seçeneğe yönlendirdiğinizde altta bir dizi buton ile tam bir pencere formu açacaktı. 1980'lerde küçük bir zaman makinesi gibiydi.
Adam açıkça yetenekli bir geliştiriciydi. Tüm sistemin kendisini bu projenin zaman dilimi içinde yazabildiğini biliyordu. Ayrıca birkaç iç sistemde tekrar kullanabildi.
Fakat kodunda çalıştığı sistemlerin özelliklerini kötüye kullanması konusunda korkunç bir programcıydı. Java / Swing / SQL'i öğrenmek yerine, 3 ay boyunca özel bir şüphe uyandıran özel kütüphaneye harcamaya istekliydi.