1. programa yeni başladığım sıralarda acaba hangi dili öğrensem diye düşünüyordum hep. herkes yapmıştır bunu bir kere tabi.

    o aralar da programlamadan anlayan bir arkadaşım bana kendi yazdığı janjanlı c# kodunu göstermişti. içinde lambda fonksiyonlardan foreach dongulerine kadar ilk bakışta insana zor gelebilecek her türlü naneden koymuştu. şöyle bir bakıp "abi yok ya c# öğrenemem ben" demiştim... sonra da delphi öğrenmiştim.

    programlamaya yeni başlayacak biriyseniz kesinlikle kodun karmaşık olduğunu, anlayamayacağınızı düşünmemelisiniz. zira en kolay denen diller, ileride size en çok zorluk çıkaracak diller oluyorlar. (bkz: dynamic typing) .

    mesela python ve c# için konuşalım. pythonda fonksiyon tanımı:

    def ekle(elemanlar):
    ...

    sade görünüyor değil mi, gayet açık. iyi de kardeşim; ekle fonksiyonunun dönüş tipi ney? hatta bir değer döndürüyor mu? elemanlar değişkeninin tipi ney? sayı mı, liste mi, string mi ney? hele bir de sizden önce kodu yazan kişi (hatta belki 2 ay önce yazıp unuttuğunuz kod olabilir) commentları güzel yazmamışsa, kod güzel dokümente edilmemişse öeh.

    şimdi c#'a bakalım

    public int ekle(int[] elemanlar) {
    ...
    }

    ohoo bu ne ya, bi fonksiyon tanımlamak için bir sürü kod karmaşası? öyle değil işte... ilk bakışta python daha sade, daha anlamlı geliyor ama iş hiç öyle değil. sadece tanımlaması sayesinde fonksiyonun geri dönüş tipini, parametrelerinin tipini anlayabiliyoruz. hatta public de bir şeyleri tanımlıyor orada, o da anlamlı.

    projeler ve kod hacmi büyüdükçe, kodlamayı daha iyi kavramaya başladıkça aslında karmaşık görünen c#'ın (ve tabiki genel olarak c, c++, java vb) çok çok çok daha anlaşılır olduğunu anlıyor insan.