Kata kodunun sakıncaları


41

Code kata , her yinelemede kodu geliştirmeye çalışırken birçok kez küçük problemler yaparak programcının becerisini geliştirmeyi öneren bir kavramdır. İsim, bir analojiden dövüş sanatı katasına, yani formların (aka kata) iyileştirmelere yol açan uygulamaların yapıldığı bir isimdir .

Bu konudaki son soruma verdiğim tepkiden , bu yaklaşımın dezavantajlarının ne olduğunu bilmek istiyorum.


+1 uygulanan verimsiz -1'i dengelemek için. Code kata hakkında şüphelerim olduğu gibi geçerli bir soru gibi görünüyor, ancak nedenini belirleyemiyor.
mattnz

9
Bugüne kadar bu kata olayının ne olduğu hakkında hiçbir fikrim yoktu. Şimdi sadece kontrol ettim ve bu, her aklı başında programcının yaptığı ve geliştirirken otomatik olarak öğrendiği bir şey için süslü bir isim. Bu yüzden benim için dezavantajı şu olurdu: Aksi takdirde kullanılabilecek fazladan zaman alır.
stijn

11
Hmm ... görünüşe göre, kod kata bir büyük dezavantajı insanlar kod kata :-) ne anlamadan kod kata eleştiren sunulması olduğu görünüyor
Jörg W Mittag

19
@ JörgWMittag - Çünkü 'kata' terimi, gerçek dünya durumlarında çok az pratik anlamı olan katı formların uygulanmasını ima ettiği için kötü bir benzetme olduğu için. "Kara kuşak" veya "kata" gibi dövüş sanatları kelimelerini programlama veya iş durumlarına uygulamak beni çok üzüyor.
jfrankcarr

Yanıtlar:


22

Prensip olarak kata kodunda sakıncaları göremiyorum. Aynı görevi farklı yaklaşımlarla ve farklı dillerle birçok kez başarmaya çalışıyorsunuz. Fakat

  1. bir işyerinde tanıtmak oldukça zordur. Genelde uzman veya makul derecede üretken olmanız beklenir. Yararlı olmayacağını söylemiyorum (yeni bir işe alım becerisini geliştirmek için biraz zaman harcamak, gelecek zamanda yazacak kadar iyi olmayan bir kod için ödeme yapmaktan daha iyi).
  2. Eğer actuallu gerekir deneyin bir bakıma geliştirmek. Aynı kodu bin kere aynı şekilde yazmak sizi geliştirmez (aksine sizi sıkar). Önceki hatalarınızı, neyin yanlış gittiğini veya beklendiği gibi çalışmadığını anlamalısınız. Bu en önemli kısım. Bu öz çalışmanın bir şeklidir, bu yüzden olmalı çalışma.

1
Bu cevabı kabul ettim çünkü soruyu doğrudan ele alıyor ("kata" terminolojisi yerine) ve kod kata uygulamasının olası sorunlarına odaklanıyor. Bu, diğer cevapların iyi olmadığını söylemek değildir - aslında birden fazla kabul etmekten mutlu olurum!
Sardathrion

43

Kata'yı dövüş sanatları kata gibi programlamanın temelde işlevsellikten ibaret olduğunu düşünüyorum. Size zarif bir kod yazmayı öğretebilir, ancak size kodu yazdığınız sorunları çözmeyi öğretmeyecektir. Bir programcı olarak gelişmenin daha iyi bir yolunun, gerçek problem çözmeyi gerektiren bulmacaları çözmek ve size iyi faktörlü kodun değerini kata'nın size öğretemeyeceği şekilde öğretecek daha büyük projeler üzerinde çalışmak olduğunu düşünüyorum.

Bunun yanı sıra, 'kod kata' ve 'yazılım işçiliği' gibi terimler, mesleğimizi romantikleştirmekle ilgili, yeni veya faydalı bir şeyi tanımlamaktan daha fazla olduğunu düşünüyorum.


4
Bu cümle için +2 yap.
Erik Dietrich

6
Problem çözmenin bir programcı olarak gelişmenin iyi bir yolu olduğu konusunda hemfikir olsam da, zarif kod yazmayı öğrenmek de faydalı olabilir. Şu anda koruduğum orijinal kod geliştiricilerin bazılarının, sadece işleri düzeltmek için kopyalayıp yapıştırmak yerine zarif kod yazma konusunda biraz zaman ve çaba harcamasını diliyorum.
Mike Partridge

1
Mike'nin yorumu için +3. Genel olarak, kodu korumak için başlangıçta harcanan harcanandan daha fazla zaman harcanır. Birisi evinizi kurarken işçiliğin uygulanmasını beklersiniz, çünkü uzun süre yaşayacağınız için. Birisi bir yazılım oluştururken de aynı şekilde uygulanmalıdır - fakat çoğu zaman değildir.
Kaleb Brasee

@KaptajnKold: Tecrübelerinden mi bahsediyorsun? CodeKata aracılığıyla yeteneklerini geliştirmeye çalışan ve başarısız olan birinden bazı yorumlar almayı çok isterim.
dzieciou

2
@dzieciou: Karate'yi birkaç yıldır uygulayan dövüş sanatları kata konusunda deneyimim var. Ve kata'dan öğrenilebilecek savaşın bazı yararlı yönleri olduğuna inanıyorum, bununla birlikte bunun eğitim için çok verimli bir yol olmadığına inanıyorum. Söyledikleri gibi dövüşürken antrenman yapmalısın. Amacınız daha iyi bir savaşçı olmak ise. Bazı insanlar kata pratiğini kendi içinde eğlenceli bir arayış olarak buluyor. Bunda yanlış bir şey yok. Sonunda bazıları çok iyi olur. Kata'da.
KaptajnKold

20

Kod kata sadece zaman alıyor.

Tam zamanlı geliştirici ve baba olarak bilgisayar hobisi yapmak istemiyorum.

Ve patronumun şu anki projemle ilgili olmayan uygulamalar geliştirmek için bana para ödeyeceğini hayal etmiyorum.


10
Zaman almayan bir öğrenme türü var mı? Greenfield projeleri üzerinde her zaman çalışacak kadar şanslı olmadığınız sürece.
Den

38
Programlama becerilerinizi düzenli olarak geliştirmek için en az boş zamanınızı en az miktarda harcamazsanız, profesyonel kariyeriniz büyük tehlike altındadır.
Ladislav Mrnka

7
Buna +1. Programlamayı çok seviyorum ve yapmayı sevdiğim bir şeyden para kazanabildiğim halde, iş dışında DAHA FAZLA programlama yapmanın gereğini görmüyorum. O kadar çok hobim var (örneğin, DJ yapmak, müzik yapmak, ağırlık kaldırmak, çizim yapmak ve sokak dansı yapmak), zaten haftada 40 saat yaptığım bir şeye daha fazla saat harcamayı düşünmüyorum.
Andreas Johansson,

7
@mouviciel: Ve bu tam olarak sorun: patronunuz projeye ihtiyaç duyuyorsa , mesleki gelişiminiz için para ödemeye isteklidir, ancak mevcut projenizle ilgili olmayan yeteneklerinizi geliştirmek için istekli olmalısınız - belki de şu anki projenizle ilgili olmayabilir. hiç platform. Kariyer / sosyal güvenliğinizi geliştiren şey budur.
Ladislav Mrnka

6
@LadislavMrnka - Sana katılıyorum. Yine de, Code Kata bu sorunun cevabı değil.
mouviciel

13

Bir boksör olarak, kata'nın arkasındaki prensibe katılmıyorum. Aslında faydalı olamayacak kadar katı. Halkada, öğrendiğiniz ilkeleri serbest bir ortamda nasıl uygulayacağınızı anlamanız gerekir.

Bu, tekniğin öğrenilmesi ve iyileştirilmesinin yapılması gerektiği anlamına gelmez. Çanta üzerinde pratik yapmak, bir kata kullanarak aynı şekilde bir zımba kullanarak ve onu nasıl attığınızı hisseterek çalışmanıza olanak tanır. Ama bu kadar katı değil. Aynı anda birçok şey uyguluyorsunuz, çantanın etrafında dolanıyorsunuz, istikrarlı bir platformdan atıyorsunuz, hedefliyorsunuz, nefes alıyorsunuz, liste devam ediyor.

En önemlisi, her şey birlikte kullanılacağı şekilde birlikte öğrenilir. Döngü için şimdiye kadarki en güzel yazıyı yazabiliyorsanız, ancak bir programa nasıl sığabileceğini anlayamıyorsanız, o zaman ne faydası var?

Pratik yapmak istiyorsanız yapmanız gereken daha iyi bir şey, kendiniz araçlar geliştirmek veya kullandığınız araçlar üzerinde çalışmaktır. Tüm becerilerinizi kullanmanız gerekiyor ve sonunda yararlı bir şeyiniz olabilir.


farkına varmak. Ben de bir boksör / programcıyım :).
Paul Sanwald

1
Kod katalar katı tekrarlarla ilgili değildir; Bir problemi çözmek için çalışmak, daha sonra memnun kalana kadar çözümünüzü geliştirmek için çalışmaktan daha fazlasıdır. Kata One'dan: "Bu kata'nın amacı, daha gevşek bir deneysel modelleme tarzı uygulamaktır. Sorunları mümkün olduğunca ele almanın farklı yollarını araştırın. Her birinin farklı değişimlerini düşünün. Bu modelleri keşfetmek için en iyi hangi teknikleri kullanın? Onları nasıl kaydeder? Makul bir modeli nasıl doğrulayabilirsiniz? "
Mike Partridge

4
'Kata' teriminin kusurlu olduğu konusunda hemfikir olduğumuzu, ancak ismini anladıklarına dair görüşlerini kaybetmediğini kabul ediyorum. Ayrıca, hepsi kelime problemi değil; Kata Two'dan: "Seçtiğiniz dilde ve teknikte ikili arama yordamı uygulayın (aşağıdaki spesifikasyonu kullanarak). Yarın, tamamen farklı bir teknik kullanarak yarın tekrar uygulayın. Ertesi gün, tamamen beş benzersiz olana kadar aynısını yapın İkili bir kesmenin uygulamaları (Örneğin, bir çözüm, geleneksel yinelemeli yaklaşım olabilir, biri özyinelemeli olabilir, biri etrafındaki dizi dilimlerini geçiren fonksiyonel bir stil kullanabilir, vb.).
Mike Partridge

3
@MikePartridge Bu benim açımdan örnek. Bir kata, örneğin daha az satırla veya sıfırdan yazmak için daha az zaman harcayarak, her gün iyileştirilen bir ikili arama yöntemi içerecektir. Bir kavramın nasıl tanımlandığı onu tanımlamak için önemlidir. Yanlış bagaj getirmeden, makalelerin ne olduğu ile ilgili pratik programlama adını verebilirdi. Onus, yazarın fikrini doğru tanımlayan kelimeleri ve kavramları seçmesi, izleyicisinin metafor seçimi nedeniyle yanlış çağrışımlar çekmesinden şikayet etmesi değil.
Spencer Rathbun

3
@MikePartridge Benim durumumda, tüm programcıların her zaman öğrendiklerini / geliştirdiklerini ya da olması gerektiğine inanıyorum. Bu nedenle, kata kodu bu amaca ulaşmada yardımcı olacak bir tekniktir ve cevabım, gördüğüm gibi tekniğin faydası olmadığıydı. Hedefe tamamen katılıyorum, ancak soru bu değildi.
Spencer Rathbun

11

Benim bakış açıma göre en büyük dezavantajı korkunç derecede sıkıcı olmasıdır. Ayrıca programcılar, faydalı ya da harika bir şey yapan yazılım geliştirmeye başlamış görünmektedir. Kata yaklaşımı, bunun tam tersi gibi görünüyor.


2
Katas sana yeni şeyler öğretiyor. Bu, programcıların yapmayı amaçladıklarının tam tersi nasıl olabilir? Aynı zamanda bir bilmece çözüyor, iyi programcıların çoğunluğunun “sıkıcı” olarak algılayacağı bir şey değil. Aslında bu, hacklemenin tam kalbidir.
Konrad Rudolph

4
@KonradRudolph Tekrarlamanın kataların kalbi olduğunu sanıyordum? Böylece bir problemi bir kez çözersiniz (belki de yeni ve heyecan verici) ama aynı problemi tekrar tekrar çözmeye devam edersiniz . Yanılmam için Kataş'a zar zor baktım.
Kevin D

@Kevin Bunun aptalca göründüğüne katılıyorum (özellikle sorunu çözmenin farklı yollarını bulmaya çalışmadığın sürece). Asla böyle "katas" yapmadım, sadece genel programlama bulmacaları yaptım.
Konrad Rudolph

Aynı şeyi tekrar tekrar "sana yeni şeyler öğretmek" nasıl yapıyor?

Cevabınızda, soruda verilen bağlantıyı okumadığınız açıktır.
Mike Partridge

8

Kata, uğraşman gereken şeyin tam tersi anlamına geliyor .

Bir dövüş sanatının belirli hareketlerinin bir dizisinden oluşan, eğitimde kullanılan ve teknikte beceri göstermek için tasarlanmış bir egzersiz

Kata (Kökeni: 1950–55; <Japonca: şekil, kalıp) terimi, dövüş sanatlarında kullanılan ve sorunuz, dokunma yazma gibi kas hafızasının ezber ezberlenmesi ile ilgilidir .

Orijinal Karate Kid'de arabaları cilalamak, zemini zımparalamak, telleri boyamak, bunların hepsi öğretilmiş Kata'lardı, tamamen bağlam dışı ve bu durumda sadece kas hafızası sağlamak için açıklama yapmadan. Bir duyu gelene ve bu boş faaliyetlere bir anlam ifade ettikleri bağlamını verinceye kadar değildi .

Aynı şeyin burada da geçerli olduğunu düşünüyorum, bağlamda işleri tekrarlamak için bir akıl hocası olmadan , birden çok dilde yanlış çözme problemini tek bir dilde kullanmaktan daha iyi değildir. Mentor olmadan size nerede iyileştireceklerini söylemeleri zaman kaybıdır.

Bir dilin veya platformun yeni deyimleri ve anlamlarını öğrenerek problemleri yaratıcı bir şekilde çözmenin tam tersidir.

System.out.println()Mümkün olduğunca zahmetsizce yazabilmek istiyorsanız , o zaman pratik yapmak bir Kata olacaktır.

Farklı bir uygulamadaki bir soruna bir çözüm geliştirmek , zaman ve / veya alan gereksinimlerini azaltmak veya daha aptalca ilkeler uygulamak istiyorsanız, bu Kata'nın size yardımcı olacağı bir şey değildir .

Zaten küçük artımlı iyileştirmeler ve mükemmelliğin sorgulanabilir faydaları için çaba sarf ettikten sonra, aynı şeyi tekrar tekrar uygulamak için kabul edilmiş bir endüstri terimi var, buna Altın Kaplama !

Kullanmaları gereken terimler , aynı dile / çalışma zamanına / platforma uygulandığında Yeniden Yönlendirme şeklindedir . Ve Taşıma İşlemi farklı bir dil / çalışma zamanı / platformuna bir çalışma programı taşırken. Kata muhtemelen hatalı bir şekilde seçilmişti çünkü semantiği tam olarak anlamadan yenilikçi, havalı ve mistik görünüyor.

Farklı zor problemleri küçük planlama, deneyim ya da rehberlikle çözmek çoğu geliştiricinin, özellikle de genç geliştiricilerin her gün yapması gereken şeydir.

Sadece akademisyenler, sadece belirli bir çözümü kazanma uğruna aynı egzersizi tekrar ederler. Bir geliştirici olarak başarılı bir kariyere sahip olma becerisi tekrarlama değil , uyum içindedir.

İşten sonra ders çalışmak zorunda olmayan, bilmeleri gereken her şeyi ve bazen 8 saat işte öğrenebileceklerini bilen zeki insanlar olmadığını kim söylüyor?


Uyguladığınız şey, tasarımı yeniden tasarlamak ve geliştirmek ise - tasarım sürecini tekrarlamak, terim geçerli olmazsa? Daha iyisini bulabilir misin?
Bill K,

Mevcut bir sistemin yeniden tasarlanması ve iyileştirilmesi terimi yeniden canlandırılıyor (Kod yeniden düzenleme, "mevcut davranış kodunu yeniden yapılandırmak, dış yapısını değiştirmeden iç yapısını değiştirmek için disiplinli bir tekniktir"). Onlar aldı Kata o anlambilim anlamadan, serin ve mistik sesler çünkü.

Yeniden yapılanma terimi, yeniden yapılanmada iyi olmak için pratik yapmaktan çok farklı bir terimdir. Herkes kodu yeniden gözden geçirebilir, bu hiçbir şekilde iyi yaptıklarını veya iyi yeniden değerlendirme fırsatlarını tanıma konusunda pratik yaptıklarını göstermez. Her ne kadar "Refactoring Uygulaması" inişçi bir terim olsa da, Kata'nın yaptığı özveriyi ifade etmiyor, bu yüzden Kata'nın biraz daha iyi bir seçim olabileceğini düşünüyorum, ancak daha iyi bir ifade olduğu teorisine açık olsam da.
Bill K,

1
Aslında Altın Kaplama , "... ek veya daha fazla cilalanmış özellik" anlamına gelir. Açıkladığınız şey, daha sonra olmasına rağmen Erken Optimizasyona benziyor .
Joshua Drake

5

"Kata" metaforunun en iyisi olamayacağı konusunda hemfikirim. Karate'de bir kata, kusursuz, net ve otomatik olarak gerçekleştirilinceye kadar belirli, ayrık bir hareket uygulamak amacıyla gerçekleştirilir. Bu, eleştirel düşünme ve yaratıcılığın gerekli olduğu bir faaliyete dönüşmez. (Yazarak yazmak daha iyi olur).

Bununla birlikte, adın başarısız olması faaliyetin başarısız olması değildir. Birisinin daha iyi olmak istediği bir şeyi uygulamak için ne gibi sakıncalar olabilir? Sanırım birileri bunu yapmak için harcanan zamanın fırsat maliyeti açısından bir dezavantaj olduğunu söyleyebilir, ama gerçekten bu bir yatırım. Bu nedenle, yazılım geliştirme zanaatini uygulamak için harcanan zaman, yazılım geliştiricileri için, hisse senetleri veya tahvillere harcanan para uzun vadeli bir tasarruf / yatırımcı içindir. Bu bir 'dezavantaj' değil - bu masadaki para.


3

Zor olan ve yeteneklerinize ulaşamayan şeyleri deneyerek daha iyi olursunuz; Kendine meydan okuyor. Aynı "kata kodunu" tekrar tekrar yapmak, bir dövüş sanatları formu gibi, bunu yapmaz. Bence yeteneklerinizi geliştirmeye yardımcı olmak yerine yeteneklerinizi durgunlaştırıyor.

İlk defa bir pratik yöntemi olarak kullanımına sahiptir, ancak sınırlıdır. İnsanlara bunun yerine Euler projesini kullanmalarını söylüyorum . Daha fazla sorun ve daha zorlu.


Aynı programı tekrar tekrar yazmak, örneğin her seferinde farklı bir algoritma ve / veya farklı bir dilde yaparsanız, yararlı ve ilginç olabilir. Ama muhtemelen bir kata değil.
9000

2
Soruda verilen bağlantıyı okuyun; fikir isminden varsaydığınız gibi akılsız bir tekrarlama değildir.
Mike Partridge

@ 9000 Aslında Code Katas'ı tam olarak böyle anlıyorum. Genellikle yeni bir dil öğrenirken veya daha önce çözülmüş bir problem için yeni bir yaklaşım denerken kullanılır.
Joshua Drake

3

Bana göre tekniğin gördüğüm en büyük dezavantajı, zamanınızın en iyi şekilde kullanılması.

Bu alıştırmanın öğrenme değeri de sorgulanabilir: Bu konuda daha iyi olabilmek için bir şeyden fazla bir şey yaptığınızda, uzman geri bildirimi esastır. Yüksek kaliteli geribildirim olmadan da bir şeyler öğreneceksiniz, ancak çok yanlış bir şeyi öğrenme şansı var.

Beni yanlış anlama, pratik yapmak programlamada iyi olmanın tek yolu olmaya devam ediyor ve kata kesinlikle bir uygulama şekli. Ancak kodlama rekabet problemlerini çözmek, kendi "eğlenceli projelerinizi" yazmak, yeni programlama dilleri öğrenmek vb. Sonuç olarak, en rahat olduğunuz tekniği seçmeniz ve yol boyunca net bir rehberlik yaptığınızdan emin olmanız gerekir.


Rehberliği nasıl buldunuz? Aynı konuda mücadele ediyorum.
CodeYogi

1

Bir çeşit Kata olmadan asla harika bir kodlayıcı olamayacağınıza inanıyorum. Kata pratiktir, tam olarak anlamı budur. Bunu örnek olarak alın: Bir atlet "Ben sadece 100 metrelik çizgi göstereceğim, vida çalışmasını göstereyim" der. Bu kazanan bir strateji gibi görünüyor mu? O mi hiç bu şekilde yapılması?

İnsanlara Bob Amca'nın " Temiz Kodlayıcı " yı okumanı öneririm , programlama alanındaki profesyonellik konusundaki bu (ve diğer) konularda derinlemesine ilerler.

Ve Kata'yı yapamayacağınız ve bir aile yetiştiremeyeceğinize dair argümanlar basit bir bahane. Deneyimden bahsetmişken: çocuklar bir noktada uyumaya gider ...


3
kodlama! = koşma 100 metre uzunluğunda, 100 metre bir gün yoğun ormanlık bir mayın tarlasından geçmediği ve ertesi gün bir kara mayını dolgulu pirinç tarlasından ve ertesi gün ağır keskin nişancı ateşi altında iken zehirli kırıcılarla dolu bir bataklıktan geçmediği sürece ... Kata anlamsal olarak yanlış terimdir .

2
-1 Mesleğe ücretli olarak bile zaman eğitim verilebilir (insanların bunu neden unutmuş gibi göründüğünden emin değilsiniz). Her şey ya saf iş ya da saf öğrenme değildir.
joshin4colours

@ JohnRoberson az önce tasvir ettiğiniz senaryo bir askerin günlük olarak yaptığı şeydir. Yani oldukça kötü bir benzetme seçtin. Açıkçası, 9-5 işlerini yapanlar için mutlu olmalı, sonra eve gidip bana rekabet avantajı sağladığı için öğrenmeyi bırakmalıyım.
ThaDon

3
Martin Fowler bir keresinde çalışanlarınızın eğitimi için para harcamak istedi: "Onları eğitirseniz korkmazlar mı?" ve cevabı "Hayır , onları eğitmezsem korkacaklar!" . Her işveren eğitimi bir gider olarak görmez, iyi olanlar bunu bir yatırım olarak görür!

Farklı zor problemleri küçük planlama, deneyim ya da rehberlikle çözmek çoğu geliştiricinin, özellikle de genç geliştiricilerin her gün yapması gereken şeydir. Bence oldukça doğru bir benzetme. Sadece akademisyenler, sadece belirli bir çözümü kazanma uğruna aynı egzersizi tekrar ederler. Bir geliştirici olarak başarılı bir kariyere sahip olma becerisi tekrarlama değil , uyum içindedir. İşten sonra ders çalışmak zorunda olmayan daha akıllı insanlar olmadığını ve 8 saat içinde ihtiyaç duyulan her şeyi ve daha fazlasını öğrendiğini kim söylüyor.

1

Sadece dövüş sanatı bağlamında kata yapmak işe yaramaz. Daha önce de belirtildiği gibi, katalar size formu öğreten hareketlerin koreografisidir. Hareketleri biliyorsunuz ama nasıl uygulanacağını bilmiyorsunuz. Hangi durumlarda yararlı olduklarını bilmiyorsunuz. Onlarla gerçekten faydalı bir şeyler yapmak istiyorsanız, Bunkai olan uygulamalara ihtiyacınız var .

Bir yazılım bağlamında, kata kodu algoritma, araç, tasarım deseni veya başka bir teknoloji olacaktır. Bunu bilmek iyidir, ama bunu anlamak için uygulamanız gerekir. Gerçekten ustalaşmak için farklı bağlamlarda kullanmanız gerekir. Bunkalar, bu katanın veya katanın bir kısmının faydalı olduğu somut bir durum olacaktır.

Bu metodolojiyle ilgili yanlış bir şey görmüyorum, işte böyle bir şeyin ustalaşmasıyla ilgili: bir şey öğrenmek, pratik yapmak, ayrıntı eklemek, pratik yapmak, başka bir ayrıntı eklemek, pratik yapmak vb.


-1

Programlama sanat benzeri bir resim veya müziktir. Birisi para için bir müzisyen veya sanatçı olduğunda, size ilham verebilecek bir şey yok, performans gerçekten zaman ayırmaya değmez. Eğer sanatın içindeyseniz, hiçbir şey sizi uygulamamaktan ve sürekli olarak rafine etmekten alıkoyamaz - her gün tek bir tekniği arıtmak, çoğu insanın asla görmeyeceği nüansları fark etmek.

Her zaman mutlu insanlar için bar müzisyenler ve ev ressamları olmak için yer vardır, ancak bunlar tamamen farklı bir yetenek sınıfıdır. Sanırım çoğu ev ressamı pratik yapma fikrine gülerdi, ama ben teknik olarak araştırma yapan ve uygulayan bir ressamdan bahsediyorum - esasen işlerini bir sanat olarak tanımak, evinizi boyamak kadar sıradan bir şeyde bile gözle görülür derecede daha iyi bir iş yapacaktır. .

Bazı insanlar uygulamanın değerini anlar, bazıları alışmaz. Değerlendirme yapmak durumundaysanız ve sanat yapabilecek insanları (yalın, basit, anlaşılabilir kodlar) ve yalnızca bir çözümü değil, tek başınıza değerli olmalıdır.

ps. Kendimi çok sanatsal veya başka bir şey olarak adlandırmıyorum - soyut problemlerde Kata yapmıyorum, ancak değeri tanıyorum ve üretim kodumu biraz düzeltmeye çalışıyorum.


özellikle aşırı eğitimli müzisyenler teorik mükemmellik tarafından olumsuz olarak ön-işgal edilebilirler, bu yazılım geliştirmede bir kariyer için son derece tehlikelidir . Müziğin bir ifade unsuru vardır , programlama yazılımı buna sahip değildir. Apple ürünlerinin bu ifadeye sahip olduğunu iddia edebilirsiniz, ancak bu tasarım ifadesidir, kod asla doğrudan görülmez veya algılanmaz . Müzik ve Sanat, yazılım geliştirme için kötü analojilerdir. Ve mavi yakalı çalışanlara karşı işlerinde gurur duymadıklarını veya kalitelerde değer görmediklerini varsaydığınızdan dolayı belirgin bir önyargı sergiliyorsunuz.

Eğitimi uygulama ile karıştırmayın. Aşırı eğitimli olmak, aşırı uygulamalı eğitimden çok farklıdır ve kodunuzdaki ifade düzeyinin teslim sürelerinde ve kod istikrarında göründüğünü düşünmüyorsanız, tartışma için ortak bir temelimiz olup olmadığını gerçekten bilmiyorum.
Bill K,

Ne düşündüğümün önemi yok, çoğu müşterinin tanımadığını ve dikkatle hazırlanmış kodla ilgilenmediğini ve uygulama çoğu zaman çalıştığı sürece ne kadar şık üretildiğini biliyorum. Nüfusun çoğunluğunun VHS'nin ses ve görüntü kalitesi ve yüksek oranda sıkıştırılmış internet video veya kaset kasetleri ile şüphe duymadan tüm bu endişeleri ortadan kaldıran yüksek oranda sıkıştırılmış mp3'lerle hiçbir zaman ilgilenmediği şekilde. Aşırı eğitimli olmak, aşırı uygulanmaktan daha kötüdür, aşırı eğitimli biri, yazılım endüstrisinde "yeterince iyi" sayılmaz ve mutsuzdur.

Programlama bir sanat değil bir sanattır. Her ikisinde de işçilik ve estetik seviyeleri var, ancak sanat doğada mesleki değil, yazılım geliştirme mesleki. Daha fazla insan, uzun atışlarla sanatçılardan daha fazla para yazma yazılımı kazanıyor. Yazılım öznel değildir ve yalnızca kendi varoluşu uğruna varolmaz, yaratıcınızı memnun etmek için yukarıdaki resimlerdeki ifadeler farklılaşma olarak gösterilmediğinden daha fazla sıkça yer alacak resimler ve müzik vardır. Sanat üniversitesine giden biri olarak, size söyleyebilirim ki, programlama bir meslek sanatıdır ve bir sanat eseri yaratmakla ilgisi yoktur.

İyi hazırlanmış bir yazılımın daha hızlı, daha ucuz ve ustaların ürettiği yazılımlardan daha iyi olduğunu düşünmüyorsanız, doğru yapıldığını görmediniz. Pek olası değil, kaç kişinin bir usta sanatçı, müzisyen ya da profesyonel bir sporcuya karşı / onunla oynadığını izledim - onlar sadece o kadar yaygın değiller ve bizim endüstrimizde tanımak daha zor, ama yetenekler arasındaki fark aynı. sonuçları olduğu gibi. Bir sanatçı 5 ustayı hız ve kalitede geride bırakabilir, ancak çok azı bunun var olduğuna inanmadıklarını görecek kadar şanslı.
Bill K,
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.