Yeni başlayan birine C yi tavsiye etmek bana sanki ilk defa bisiklete binecek bir çocuğa destek tekerlekleri vs olmadan 18 vitesli bir bisiklet verip, al istediğin gibi kafanı gözünü yarabilirsin demeye benziyor. Çünkü, herşeyden önce kişi bir derleyici (compiler) konusuyla karşı karşıya. Bilgisayarlar konusunda çok fazla teknik bir bilgiye sahip olmayan birisinin derleme konusunu anlaması en başta zor. Kişinin amacı bir program yazıp çalıştırmak, ekranda kendi yaptığı şeyleri görmek vs. İşi biraz ilerletmeye çalıştığında, karakter dizileriyle işlem yapması için gerekli basit fonksiyonların standart kütüphanede olmayışı, onun yerine oturup kendisinin yazması gerekliliği, en başta çok moral bozucu olabilir.
Denebilir ki, şu anda Internet var, Google da basit bir aramayla her şey bulunabilir. Doğru, bulunabilir ama bu bilgilerin yeni başlayan birisi için ne kadar sıkıcı ve kafa karıştırıcı olabileceğini göz önünde bulundurmak gerek. Eğer birebir ilgilenip, her sorduğu soruya cevap vermeyecek veya doğru cevapları bulması için yön göstermeyecekseniz, C yi tavsiye etmek bana göre yanlış olur.
Peki Java veya C#? Her ne kadar C ye göre üst seviye olsalar da, nesneye dayalı programlamayı zorlamak, yine basit işler için de bir çok paket kullanmak zorunda kalmak yine yeni başlayan birisini sıkıcı ve birçok teknik terim içeren kitap/makale okumak zorunda bırakmak demek.
Eğer söz konusu kişi bir bilgisayar programcılığı, bilgisayar mühendisliği veya bilgisayar bilimleri öğrencisi olsaydı, belki C, Java veya C# öğrenilmesi gereken ilk dil olabilirdi. Zaten diğer derslerde ihtiyaç duyacağı birçok bilgiyi alan kişiden bu dilleri öğrenirken karşılaşacağı zorlukların üstesinden gelmesi beklenebilir. Ancak bir hevesle birşeyler öğrenmeye çalışan, amacı eğlenceli birkaç program ve belki de basit oyunlar yazmak olan bir kişiyi, ileride programlamaya profesyonel olarak devam edecek olsa da en başlarda teknik konulara boğmanın işin tüm eğlencesini kaçıracağını düşünüyorum.
Bence yeni başlayan birisinin ilk öğrenebileceği ve çeşitli denemeler yapabileceği dil, kolay anlaşılabilir, herhangi bir programlama tekniğini zorlamayan, yazılan bir programı çalıştırmak için onlarca şey indirmeye ihtiyaç duymayan, gerektiğinde küçük bir betik, gerektiğinde web uygulaması, gerektiğinde masa üstü uygulaması geliştirmeyi sağlayan pratik bir dil olmalı. Bu yüzden hiçbir teknik bilgiye sahip olmayan birine tavsiye edilebilecek programlama dili bence Python.
Internette her dil ile ilgili olduğu gibi Python ile ilgili birçok kaynak mevcut. Ayrıca Python un interaktif konsolu ve IDLE bir deneme yanılma tahtası olarak kullanılabiliyor.
Evet, biliyorum, Python ile GUI ye sahip bir program yazmak istendiğinde hangi toolkit i kullanmalı? sorusu ortaya çıkıyor ama yine de oraya kadar kişi birçok programlama terimine aşinalık kazanacak ve birşeyler üretebiliyor olacaktır.


