Bence bu senin yeteneklerinin çok olumlu bir işareti. Bir takımda 'daha iyi' bir tasarımla gelmekte zorluk çeken insanlar için, başka bir tasarımın neden daha iyi olduğunu anlamada tamamen yetersiz kalması çok daha yaygındır.
Sizin için iki büyük (ve şaşırtıcı derecede nadir) güçlü yanlarınız var:
- Tasarımlarınızı başkalarına karşı objektif olarak değerlendirebilirsiniz
- Tasarımlarınızı optimum hale getirmek için arzu ve çaba sarfedersiniz
Siz sadece birkaç yıl içinde kalacaksınız ve gidecek çok yolunuz var, ama bu tavırla kesinlikle oraya varacaksınız, pes etmeyin; hepimiz böyle zihinsel engellerle uğraşıyoruz. Bir şansım olduğu sürece, Tasarım İlkelerini takmayı seviyorum (tasarım desenleriyle aynı DEĞİL) ve bunun kullanışlı oldukları yerlere mükemmel bir örnek olduğunu düşünüyorum. Onları inceleyin ve tasarımlarınıza uygulayın, bu konuda bir adım daha attığınızı bilmeden önce öğreneceksiniz.
Günün sonunda, tasarımın zor olduğunu hatırlayın. Her gün karmaşık üst düzey soyutlamalar ile uğraşıyoruz, bunları ince havadan oluşturmak, iyi çalışmalarını sağlamak ve meslektaşları tarafından kullanımı kolay, son derece zor bir iştir. Yıllarca pratik alır .
Öyleyse çeneni aç ve sadece hatırla: dışarıda iki tasarımı değerlendiremeyen ve aslında bir tanesini diğerlerinden daha iyi olarak tanıyan bir grup insan var, sence iyi tasarımlar yaratırken ne kadar başarılı olduklarını düşünüyorsunuz?
Düzenleme:
'ipucunu, kafanızı ilkeler etrafında dolaştırdıktan ve uygulamalarını biraz uyguladıktan sonra, burada farklı amaç ve kuralları olan çeşitli dilleri öğrenmenin değerine değinen başka bir sorudan başka bir cevher olduğunu düşünüyorum:
İdeal olarak, her programcının her sınıftan bir dil bilmesi gerekir. Ne öğrenebilirsin:
- Statik yazılmış bir OOP ana dili: Java, C # (çoğunlukla kurumsal yazılımda kullanılır) ve C ++ (sistem programlama ve karmaşık masaüstü uygulamaları)
- Prototip tabanlı bir OOP dili: Javascript (istemci tarafı web programlama)
- Bir prosedür dili: C (gömülü yazılım ve sistem programlama)
- İşlevsel bir dil: Haskell, ML veya Lisp (işlevsel diller yüksek derecede paralelleştirilmiş yazılımlar için iyidir).
Mantıksal bir programlama dili (Prolog) büyük olasılıkla AI araştırmalarında kullanılan, endüstride pek kullanışlı değildir.
Bu, bir çözüm tasarlamaya çalışırken akla gelen fikir çeşitliliğinin genişletilmesine yardımcı olacaktır.