Öncelikle bazı bahaneleri yok edelim. X yaşına geldim artık bu yaştan sonra öğrenilmez demeyin. Okulunu okusaydık öğrenirdik artık olmaz demeyin. Kursa gitmek lazım şimdi bir sürü para lazım demeyin. Hepsi bal gibi de olur. Kitap mitap ohoo çok zor işler bunlar diyenler, Googleın dövemeyeceği kitap kaldı mı? Umudunu yitirmeyenler için bazı tavsiyelerim olacak.
Emekleme Sürecinde Keyif Alabilen Erken Yürür
Hesap makinesi yapabiliyor olmak size zevk veriyorsa programlama dili öğrenmeye yatkınsınız demektir. Emekleme sürecinde olabildiğince gereksiz programlar üretmekten kaçınmayın. Mesela şu tarz şeyler yapmaya çalışın;
Yazdığınız kelimenin sessiz harflerini silen program
52 iskambil kağıdını 4 oyuncuya rasgele dağıtan program
Girilen metinde kaç kelime olduğunu hesaplayan program
Bilgisayarın rasgele ürettiği sayıyı tahmin etme oyunu
Ben programlama öğrenirken (emekleme aşamasında) eşim için bir program yazmıştım. İsim girme yerine kendi ismini yazdığında ekranda Kadir Eceyi Çok Seviyor yazacaktı. Başka birinin ismini yazdığında Kadir Ayşeyi Sevmiyor yazacaktı. Ancak çalıştırınca eşim Ece yerine eCe yazdı, eCE yazdı; dolayısıyla program orada patladı. Bir hafta sonra aynı programın kusursuz çalışan versiyonuyla karşısına çıkmak paha biçilemezdi. Sizin de böyle ufak çılgınlıklarınız olsun.
Işığı Görmeden Yürüyemezsiniz, Bir İdealiniz Olmalı
Emekleme sürecinden sonra gelen yürüme sürecinde programlamayı hakkını vererek öğrenmek istiyorsanız, onu bir hobi olarak öğrenme fikrinden vazgeçmelisiniz. Önce ayakları yere basacak bir proje bulmalısınız ve hiç tereddüt etmeden geliştirmeye çalışmalısınız. Yüzlerce noktada takılacaksınız, ancak bunları ne kadar atlatırsanız o kadar geliştiğinizi göreceksiniz. Korkmadan, üşenmeden üreteceksiniz. Burada kilit soru şu; iyi de, ne üreteceğimizi nasıl bulacağız?. Bu konuya da farklı bir yazımda açıklık getirmeyi düşünüyorum. (Güncelleme: Getirdim, şuradan okuyabilirsiniz)
Her Şeyi Bilmek Zorunda Olmadığınızı Fark Edin
En büyük hatalardan biri olan ancak kimsenin dile getirmediği bir konu da şu; programlayabilmek için her şeyi ezberlemek, her şeyi bilmek ve her şeyi okumak zorunda değilsiniz. Aklınıza takılan konuyu araştırıp uygulayabildiğiniz sürece programlamaya hakimsiniz demektir. Hiçbir yerden yardım almadan bütün işlerini halledebilen programcı yoktur. En baba tarihçi bile olsanız, bir deniz savaşının tarihinden emin olamayabilirsiniz. Dolayısıyla programlama dili öğrenmenin önemli bir adımı da, aradığını bulabilmektir.
Kalın Kitaplar Gözünüzü Korkutmasın
Kalın kitaplarda yazan şeylerin çoğunu programlama maceranız boyunca hiç kullanmayacaksınız bile. Dolayısıyla okurken veya göz gezdirirken sadece neler yapılabildiğini görmüş olun, ezberlemeye çalışmayın. Genel bir fikir versin, çok detaya takılmayın.
Öğrendiğiniz Dilin Fanatiği Olmayın
İlk etapta büyük ihtimal bu dil bana yeter, zaten zor öğrendik düşüncesine sahip olacaksınız. Sakın, sakın, sakın böyle bir hataya düşmeyin. Zaten bir dili hakkını vererek öğrendiğinizde diğerini öğrenmeniz bir hafta falan sürecek. Gerisi tamamen gör-uyarla mantığı. Bu arada kesinlikle hepsini birden çok iyi bilmek zorunda değilsiniz. Zaten genelde bir veya iki dilde ustalaşacaksınız. Rahat takılın.
İngilizcenin Kilit Rolü
Bir noktada takıldığınızda Türkçe kaynakların yetersiz olduğunu göreceksiniz. Kafanıza takılan şeyi İngilizce sorabilmekte sıkıntı yaşamamalısınız. Mesela öğrencileri sınıfın not ortalamasına ne kadar yakın not aldığına göre nasıl sıralayabilirim? sorusunu İngilizcede en doğru kelimelerle nasıl sorardınız?
Programlama problem çözme sanatıdır. Bir problemi çözme konusunda ne kadar istekliyseniz programlama dilini de o kadar iyi öğrenirsiniz.
Emekleme Sürecinde Keyif Alabilen Erken Yürür
Hesap makinesi yapabiliyor olmak size zevk veriyorsa programlama dili öğrenmeye yatkınsınız demektir. Emekleme sürecinde olabildiğince gereksiz programlar üretmekten kaçınmayın. Mesela şu tarz şeyler yapmaya çalışın;
Yazdığınız kelimenin sessiz harflerini silen program
52 iskambil kağıdını 4 oyuncuya rasgele dağıtan program
Girilen metinde kaç kelime olduğunu hesaplayan program
Bilgisayarın rasgele ürettiği sayıyı tahmin etme oyunu
Ben programlama öğrenirken (emekleme aşamasında) eşim için bir program yazmıştım. İsim girme yerine kendi ismini yazdığında ekranda Kadir Eceyi Çok Seviyor yazacaktı. Başka birinin ismini yazdığında Kadir Ayşeyi Sevmiyor yazacaktı. Ancak çalıştırınca eşim Ece yerine eCe yazdı, eCE yazdı; dolayısıyla program orada patladı. Bir hafta sonra aynı programın kusursuz çalışan versiyonuyla karşısına çıkmak paha biçilemezdi. Sizin de böyle ufak çılgınlıklarınız olsun.
Işığı Görmeden Yürüyemezsiniz, Bir İdealiniz Olmalı
Emekleme sürecinden sonra gelen yürüme sürecinde programlamayı hakkını vererek öğrenmek istiyorsanız, onu bir hobi olarak öğrenme fikrinden vazgeçmelisiniz. Önce ayakları yere basacak bir proje bulmalısınız ve hiç tereddüt etmeden geliştirmeye çalışmalısınız. Yüzlerce noktada takılacaksınız, ancak bunları ne kadar atlatırsanız o kadar geliştiğinizi göreceksiniz. Korkmadan, üşenmeden üreteceksiniz. Burada kilit soru şu; iyi de, ne üreteceğimizi nasıl bulacağız?. Bu konuya da farklı bir yazımda açıklık getirmeyi düşünüyorum. (Güncelleme: Getirdim, şuradan okuyabilirsiniz)
Her Şeyi Bilmek Zorunda Olmadığınızı Fark Edin
En büyük hatalardan biri olan ancak kimsenin dile getirmediği bir konu da şu; programlayabilmek için her şeyi ezberlemek, her şeyi bilmek ve her şeyi okumak zorunda değilsiniz. Aklınıza takılan konuyu araştırıp uygulayabildiğiniz sürece programlamaya hakimsiniz demektir. Hiçbir yerden yardım almadan bütün işlerini halledebilen programcı yoktur. En baba tarihçi bile olsanız, bir deniz savaşının tarihinden emin olamayabilirsiniz. Dolayısıyla programlama dili öğrenmenin önemli bir adımı da, aradığını bulabilmektir.
Kalın Kitaplar Gözünüzü Korkutmasın
Kalın kitaplarda yazan şeylerin çoğunu programlama maceranız boyunca hiç kullanmayacaksınız bile. Dolayısıyla okurken veya göz gezdirirken sadece neler yapılabildiğini görmüş olun, ezberlemeye çalışmayın. Genel bir fikir versin, çok detaya takılmayın.
Öğrendiğiniz Dilin Fanatiği Olmayın
İlk etapta büyük ihtimal bu dil bana yeter, zaten zor öğrendik düşüncesine sahip olacaksınız. Sakın, sakın, sakın böyle bir hataya düşmeyin. Zaten bir dili hakkını vererek öğrendiğinizde diğerini öğrenmeniz bir hafta falan sürecek. Gerisi tamamen gör-uyarla mantığı. Bu arada kesinlikle hepsini birden çok iyi bilmek zorunda değilsiniz. Zaten genelde bir veya iki dilde ustalaşacaksınız. Rahat takılın.
İngilizcenin Kilit Rolü
Bir noktada takıldığınızda Türkçe kaynakların yetersiz olduğunu göreceksiniz. Kafanıza takılan şeyi İngilizce sorabilmekte sıkıntı yaşamamalısınız. Mesela öğrencileri sınıfın not ortalamasına ne kadar yakın not aldığına göre nasıl sıralayabilirim? sorusunu İngilizcede en doğru kelimelerle nasıl sorardınız?
Programlama problem çözme sanatıdır. Bir problemi çözme konusunda ne kadar istekliyseniz programlama dilini de o kadar iyi öğrenirsiniz.