Programlamaya Başlamak İçin, Başlayamayanlar İçin

Programlamaya en doğru başlangıç şekli nasıldır bilmem. Ben en iyi olduğuna inandığımı yazıyorum. Ayrıca nasıl başlanamayacağıyla ilgili ilginç acı tecrübelerimi paylaşayım. Aslında bu bir başlangıcın değil, başlayamayışın öyküsü olacak. Ayrıca anlatan arkadaşlara da anlayamayan birinden feedback sağlama niyetindeyim.

Geçen yaz bu zamanlarda programlamaya başlamaya çalışıyordum. Bir arkadaşım c++ ile başlamamı söylemişti. Kendime dedim ki, tamam, başlıyoruz! Hemen internetten aramaya başladım, ardından kitaplara bakıp başlangıca uygun olanı bulmaya çalıştım. Genelde kitaplarda şöyle bir ifade gördüm:  “Tüm programcılar için, yeni başlayanlar da bundan başlayabilirler oldukça kolaydır.” Tamam, belki ifade tam olarak böyle değildi ama bu yazdığımla aynı kapıya çıkıyordu.

 

Hayatı boyunca hiç program yazmamış birisine daha ilk sayfalardan, ya da ilk derslerden her neyse, değişken türlerini anlatmaya çalışırsanız, hatta gidip hepsini bir kerede yüklemeye çalışırsanız, onu da geçtim garip isimlerle ve ilginç çevirilerle aktarmaya çalışırsanız o iş yürümüyor. Daha önce bir dile aşina olan biri zaten yazımına bakıp da az çok anlar o sayfaları. Sorun yeni başlayanlarda, ya da deneyip de başlayamayanlar.

 

Şimdi burda ne demek istediğim var. Şöyle daha doğru olacak sanırım; adam hayatı boyunca long int ile çalışmayacak olabilir. İlk 50-100 sayfada string ile çalışmayacak olabilir. İlgi alanı çok farklı olabilir ve daha da önemlisi hayatı boyunca bunları hiç görmemiş olabilir. Size hiç gitmediğiniz 10 ülkenin özellikleri bir tabloda verilse ve o özellikleri kullanarak tanıtım yazıları yazmanız istense kafanız nasıl karışırsa, kodlamada bunun onlarca katı değişken türleri tablosunu ilk sayfalarda görenlere oluyor.

 

Peki şimdi şu açıdan bakalım, siz öğrenmek istiyorsunuz, ne yapacaksınız? Belki de esas nokta bu. Yukarıda yazdıklarım size ilk önerim, kitaba önce bir bakın, PHP ile başlamak istiyorsanız değişken türü tanımlamaya bir süre girişmemeniz olasıdır. C, C++ ile başlayacaksanız stringlerle bir süre alakanız olmayabilir. Kısacası size bunları dayatan kaynaklardan uzak kalmanızı öneririm.

 

Çeviriler konusuna da geleyim. “Karakter katarı” diye bir ifade var.”Betik” diye bir ifade var. Yahu adam yeni başlamış, karakter katarı nedir. “Yazı” deyip geçin. Yazı deyince anlaşılmayan ve karakter katarı deyince anlaşılan bir ifade ben henüz görmedim. Ya adam yazı yazdırıyor, karakter katarı dese kim mutlu olacak? Betik olayına da, bir süre program deyin, kod parçası deyin. Hangisi hoşunuza giderse o deyin. Son olarak böyle bir kaynak hazırlıyorsanız, “statement” ile “expression” arasındaki farkı iyi aktarın. Ben her defasında bakmak zorunda kalıyorum, hoş olmuyor.

 

Şimdi çeviri kitaplar konusuna da el atayım. Türk’ün halinden Türk anlar diye düşünüyorum. Çeviri kitaplarda ben aradığımı bulamadım. Sorun belki bendedir ona kesin şöylelerdir diyemiyorum ama, ben sevemedim. Biz sonuca hızlı varmayı seven insanlarız. Çeviren abilerimiz, ablalarımız onu çevirirken öğrendiklerini aktarsalar çok daha iyi öğreniriz diye düşünüyorum.

Zıplamaktan korkmayın. Kitabın sayfalarını çevirirken gördüklerinizi deneyin. Ne kaybedersiniz? Çalışırsa alacağınız keyif size inanamayacağınız kadar hız kazandırabilir. Elinizdeki kaynaktaki örnekler sınırlı diye sizin de sadece onları yapmanız gerekmiyor. Aklınızda ne varsa, onu yapın.

Bir dile başlarken bir hedefiniz olsun. “Ben şu dil ile şu özelliklere sahip şu programı yapmak için öğreniyorum.” derseniz ne öğreneceğinizi, hangi bilginin size yarayacağını çok daha iyi anlayabilirsiniz. Sonuçta Python üzerine Django çalışacaksanız matplotlib bilmeniz pek de işinize yaramayacak, tabii grafik çizecek ya da bilimsel video hazırlayacak ilginç bir projeniz yoksa.

2 dile aynı anda başlama fikri kişiden kişiye farklı sonuçlar verebiliyor. Bende pek etkili olmadı. Uygulayıp oldukça iyi sonuçlar alabilenler var. Bir denemenizi öneririm. Başarırsanız 2 dilin kod dizimine hakim olur, geçişleri çok daha rahat yaparsınız.

 

Aklınıza şöyle bir soru gelebilir: “O kitaplar boşuna mı yazıldı her yerde onlardan var?” Tabii ki boşuna yazılmadı ve hepsi oldukça iyi kaynaklar. Ama ne demiştim? Bu yazı yeni başlayanlar ya da başlayamayanlar için. Ayrıca onlara anlatan kişiler için. Bir dili hallettikten sonra o kitaplarda çok daha hızlı ilerleyebilirsiniz. Çok daha az takılırsınız ve çok daha iyi anlarsınız. Tabii ki isterseniz bunlardan başlayın. Zoru seçmek sizin tercihiniz.

 

 

Son olarak, başlanacak dil konusuna takılan çok insan gördüm. X dilini bilmek size ne kaybettirecek? Yani başlayacağınız dilin eksiklerini araştıracağınız sürede zaten alacağınız yolu kaybettiğinizi düşünürsek buna girişmenin pek mantıklı olmadığını görürüz. Şahsi önerim, Python’dur. İlle programlama dili olmasa da olur derseniz, Matlab da bu iş için iyi bir başlangıç olabilir. Ama onun için biraz matematik ve matris-determinant olayına hakimiyet etkili oluyor.

Google’da “Başlayamayanlar için C” başlıklı bir PDF’ye denk gelmiştim. 19 sayfa idi. Bulursanız faydası olabileceğini düşünüyorum zira anlatımı oldukça yalındı.

Matlab ile başlamak isterseniz, muhendisforum.net üzerinden izleyebileceğiniz oldukça iyi anlatılmış videolar var.

C ile başlamak isterseniz, biraz tanıdığa yönlendirmek olacak ama, recepcelikkaya.com da oldukça yeterli videolar var.

Javascript ile başlamak istiyorsanız bugünlerde oldukça hoşuma giden bir site var: Codeacademy. Site İngilizce ama dili oldukça sade. Ayrıca eğitim mantığı interaktif olduğu için oldukça eğlenceli bir şekilde Javascript öğrenebilirsiniz.

PHP için bir site söylemiyorum çünkü internette dolaşırken birinin yeni başlayanlara anlatarak portal yazdığı bir video seti vardı. Kendisi ücretsiz dağıtıyordu. İsmini hatırlamıyorum ama videolar sesli değildi yazarak anlatıyordu. Araştırırsanız sanırım bu kriterlerle bulabilirsiniz. Bu konuda site önerisi olan varsa iletsin, eklerim.

Ve tabii ki Python. Size önerim Python ile başlamanızdır. En azından C, C++, Matlab, PHP ile geçen bir 3 ayın sonunda Python ile bunların hepsinde yaptığımın daha fazlasını 3-4 günde yaptığım gerçeğini göz önünde bulundurarak(belki çok ufak şeylerdi ama, diğerlerinde onları yapmak bana işkence gibi geliyor) başlangıç adresinizin Python olmasının size faydalı olacağını düşünüyorum. Onun için de şu ana kadar gördüğüm en sağlam kaynak istihza.com‘da PDF olarak indirilebiliyor, isterseniz basılı halini de satın alabilirsiniz ki elinizin altnıda bulunmasının faydalı olacağını düşünmekteyim.

 

Ufak bir de ekleme yapayım, asal sayı hesabı neredeyse her yeni başlayanın döngüleri öğrenmeye başladığı andaki hayalidir. Ben aylarca yapamadım, olmazsa çok takmayın, bir yerde kodları zaten var:)

 

 
comments powered by Disqus