Meseleyi biraz şöyle düşünmekte fayda var. Mesela ortaokulu bitirmiş herhangi bir öğrenci muhtemelen kendini ifade edecek bir kompozisyon yazabilir. Bunu yaparken noktalama işaretleri hatalar, cümleleri de anlatım bozukluğu içerir vb.
Herhangi bir yazılım dilini ilk öğrendiğimizde işte o çocuk gibiyizdir. Kendimizi ifade etmenin yeterli olduğunu düşünürüz.
Şimdi biraz daha ilerleyelim ve üniversite bitirmiş ama kurallarına göre yazıp çizmeyi dert edinmemiş, cümlelerinde "belki şöyle olabilir" gibi anlatım bozukluğu barındıran birini düşünelim. Evet ortaokul öğrencisine göre derdini anlatmaya baya daha yakın olacaktır ama ortaya budur diyebileceğimiz bir şey çıkmayacaktır.
Bir de bir edebiyatçı çıksın sahneye, kelimeleri ardarda öyle bir dizecektir ki yaptığı işi okuduğumuzda sadece derdini anlamakla kalmayacağız kendisini okurken haz alacağız.
Yazılım dilleri üzerinden anlatmak gerekirse OOP sadece class ve o classın içine fonksiyon yazmak değildir. Öyle yapar ama içine spagetti yazarsanız siz OOP yazmamışsınızdır, OOP kalıbıyla spagetti yazmaya devam etmişsinizdir. Ortaokul seviyesindesinizdir.
Eğer biraz daha güzel bir şey kullanıyorsanız üniversiteli ya da liseli gibi biraz daha anlamlı işler çıkarıyor olabilirsiniz ama hala alacak çok yolunuz vardır. Mesela bilirsiniz public nedir, protected nedir, private nedir ama hangisini ne zaman kullanacağınızı bilmezsiniz. Bunları da öğrendikten sonra baya bir gelişmiş olursunuz.
Tasarım desenlerini, kendinizi tekrar etmemeniz gerektiğini (DRY) öğrenirseniz artık bir edebiyatçısınızdır. Tabii edebiyatçılar da farklı farklıdır. Çok iyi yazan nesir yazarları vardır. Bir de Melih Cevdet vardır. Eğer SOLID prensiplerini bilirseniz Nazım Hikmet bile olabilirsiniz.
Anlattıklarım saçma gelebilir ama biraz zamana yaymak bol pratik yapmak lazım. Sabrederseniz zamanla hepsini kavrarsınız. Öğrenmek demiyorum, teorik olarak hemen öğrenilecek şeyler ama kavramak baya farklı bir şey.
Yolunuz açık olsun.
elinize sağlık çok güzel anlattınız +10r