ile

Kodlama öğrenmek istiyorum. Nerden başlamalıyım?


Uzun zamandır içinizde bu isteği hissediyordunuz. Ama korkuyordunuz, çünkü nereden başlamanız gerektiğini bilmiyordunuz. Kod yazan artist arkadaşınız iyi para kazandığını iddia ediyordu ama “Ya Selman, bana da öğretsene şu işi.” dediğinizde, he deyip, hı deyip geçiştiriyordu. Doktor ayağınıza geldi. Kafanızdaki nereden başlamalıyım sorusuna bu yazıda yanıt vermeye çalışacağım.

Kodlama yaparken amacımız program yazmaktır. Peki program ne? Program, belli bir girdiyi alıp, işe yarar bi çıktıya dönüştüren varlıktır. Yani bir amacı olacak. Örneğin resim paylaşacağım (instagram), video paylaşacağım (youtube), saçma sapan şeyler paylaşacağım (facebook), milleti trolleyeceğin (twitter) programlar yazabilirim. Şimdi revaçta oyun meselesi var, millet çatır çatır tavla, okey oyunu yazıp para kazanıyormuş, ayrı.

Şu yazının şu paragrafına gelene kadar öğrendiğimiz şeyleri gözden geçirelim;

  1. Programın bir girdisi olacak.
  2. Program bu gelen girdileri işleyecek.
  3. Sonuç olarak, işe yarar, elle tutulur çıktılar üretecek.

Buraya kadar okuduğunuza göre bir kod parçasının aşağı yukarı ne yaptığını anladınız demektir.

Programlama dahi işi değildir arkadaşlar.


Hatta bence örgü örmek falan daha zor. Programlamayı ben resim yapmaya benzetiyorum. Aklınızda büyük bir resim var ve o büyük resime ulaşana kadar, küçük küçük parçaların resimlerini çizmeye çalışıyorsunuz. Tıpkı resim yapmak gibi, alıştırma yaptıkça konuyu daha iyi anlıyorsunuz ve daha güzel resimler yapmaya başlıyorsunuz. Ama daha güzel resimleri yapana kadar tüm o sıkıcı alıştırmaları yapmak zorundasınız.

Peki ya Matematik?

Programlamanın temelinde matematik olduğunu duymuşsunuzdur. “Ayyy, aman benim hiç matematik temelim yok demeyin.” Minibüste verdiğiniz para üstünü hesaplarken, dolar bozdururken, “Ay, buna fiş kesmeseniz kaç para olur?” derken, “Bulgur pilavına, 1 ölçek su, 1 ölçek bulgur, 1/3 ölçek et suyu” derken, “Ya şimdi bu çocuğa mesaj atsam, cevap verdiğinde 15 dakika geç cevap versem, tepkisine göre beni sevip sevmediğini anlarım.” derken zaten tıkır tıkır matematik hesabı yapıyorsunuz. Matematiğin zor diye düşünülmesinin sebebi, matematiğin değil, anlatmasının zor olması. Anladıktan sonra herşey kolay.


Şu yazıda anlattığım kahve baristası eleman gaza gelip programlama hocası olduysa, Türkiye’nin en büyük hackeri, bilgisayarla zerre alakası olmadığı halde okey puanları çalındığı için delirip, Türkiye’nin hatta dünyanın en büyük hacker’larından biri olduysa, siz de bence aklınıza koyduğunuz şeyi başarırsınız. Yeter ki kendinizi korkutmayın.

O ne demek?

Şu demek; programlama öğreneceğim diye piyasadaki en zor kitabı alıp satır satır okursanız duman olursunuz. Onun yerine minik minik adımlarla başlayın, anlamadığınız yeri sorun, küçük küçük şeyler yapmaya çalışın. Bu konuyla ilgili ipuçları da vereceğim.

Hangi dil?


Bence önce HTML, sonra JavaScript sonra da keyfe göre Python, Ruby ya da PHP. Bunlar kesmedi derseniz, C#, Java ve en son C ve C++.

Peki öğrenmek için ne yapayım?

Tutorial, tutorial, tutorial. Yani adım adım öğreten makaleler okuyacaksınız. İnsanımız okumayı pek sevmediğinden video tutorial daha çok seviyor ama ben ileriye saramadığım için sıkıntılar basıyor ama tabiki tercih meselesi.

Başka?

Önce HTML öğrenin dedim. HTML aslında bir programlama dili değil, ama konuya ısınmanızı sağlar. HTML web sayfası yapmaya yarayan dil. Piyasada benim kitabım dahil bir sürü kitap var. Hepsi birbirinden değerli kaynaklar. Ama en önce, örneğin, kendinizi, adınızı, soyadınızı, kendiniz hakkında kısa bir paragrafı, twitter, instagram, facebook linklerinizi içeren minik bir site yapabilirsiniz. Dandik olsun, sonra zaten CSS ile güzelleştirmeye kasacaksınız.

Daha sonra zırt pırt içeriği elle güncellemek istemiyorum dediğiniz anda gerçek bir programlama diline geçeceksiniz. Ben PHP uzmanıyım, ama şimdi başlayanlara Python, Ruby, JavaScript de öneririm. Gerçi programlamanın temelini öğrendikten sonra hepsi aynı.

Programlamanın temeli?

Evet. Programlamanın temeli genellikle aynı. Sırayla anlatayım.


  1. Değişken. Yani bir isme sahip olup, farklı değerlere sahip olabilen varlık. Mesela yaş gibi. Yaş değişkeni her insan için bir sayıyı temsil eder. Adamın biri sana gelip 28 dese, tuhaf tuhaf yüzüne bakarsın ama “yaş=28” derse, daha az tuhaf tuhaf bakarsın. “Ayol, deli mi ne?” dersin ama yaşının 28 olduğunu da anlarsın.
  2. Eğer, değilse. Yani koşula bağlı bıdı bıdı. Mesela tekel bayiinden bira alacaksın. Tekelci abi “Yaş?” diye sordu. 17 dersen o birayı alamazsın. Yani yaşın 18’den büyükse, birayı alırsın, 18’den küçükse babayı alırsın.
  3. Koşula bağlı döngü. “Ay, bu ne şimdi?” diyorsun. Şu; Beden dersinde lak lak yaptın, gıcık beden hocası sana kalkıp, 100 kere şınav çek derse bu döngü oluyor. Koşul da 100. Ya da git, okulun bahçesinin etrafını 10 kere koş derse yine aynı şey.
  4. Metod, fonksiyon. Fonksiyon diyince daha afilli duruyor ama aslında değişkene benzer bi muhabbet. Annen sana “Kızım kalk odanı topla dediği anda odanı toplaman gerektiğini anlarsın.” Senin için odanıTopla emri, yerdeki bütün eşyaları dolaba özenle tıkıştırmak da olabilir, tek tek bütün kıyafetleri katlayıp, çekmecelere dizip, yerleri viledayla silmek de olabilir. Eğer annen odanıTopla emrinin iyi uygulanmadığını görürse, terlikFırlat metodunu uygulayabilir. Bu da senin için hiç iyi olmaz. Sonuç olarak odanıTopla kelimesinin, yapman gereken eylemlerin bütününü temsil ettiğini biliyorsun. Artı annen odanıTopla(‘hem de hemen’) dediyse, sen bu emri 3 saat sonra yerine getirmeye karar verirsen, o terlik kafana anan odanı toplamadığının farkına vardığı anda yapışacaktır.


Sonuç olarak?


Sonuç olarak, lisedeyken birşeyleri öğrenmenin ezberlemenin rezalet derece zor olduğunu, eziyet olduğunu düşünürdüm. Sonra uçakların kokpitini düşündüm, binlerce düğme, gösterge… Bu adamlar bu kadar nasıl şeyi akıllarında tutuyorlar ki diye sordum kendi kendime. Sonra bizim evin mutfağını düşündüm. En az 10 tane dolap, 4–5 tane çekmece, her çekmecede ayrı bir alet, toplamda binlerce parça eşya, çatal bıçak, tribüşon, servis tabağı, çay bardağı, demlik ve hepsini aklımızda tutabiliyoruz.


Hatta “Kalk kızım çay demle.” dendiğinde, “Annneaa, çaydanlık nerdea?” diye sormuyoruz, çünkü terlik geliyor. Hatta, tek tek tüm o aletler ve elli çeşit yemek malzemesiyle, değişik değişik bin türlü yemeği aklımızdan uydurup hızlıca yapabiliyoruz. Demek ki beynimize de programlar gibi bunları yüklemişiz.


Konuya bu açıdan baktığımızda, yapamayacağımız, öğrenemeyeceğimi ve başaramayacağımız hiç bir şey yok. Özellikle ev hanımları olarak.


Eleştiri, yorum ve önerilerinizi bekliyorum. Sevgiyle kalın.


Projelerle PHP 7

Ben Mutlu Koçak, Bilgisayar Mühendisiyim, ZCPE Sertifikasına sahibim ve “Hiç Bilmeyenler İçin İnternet Programlamaya Giriş — PHP 7” adlı kitabın yazarıyım. Kitabım: https://www.seckin.com.tr/kitap/911934237
Özgeçmişim:
http://represent.io/mtkocak.pdf 
Websitem:
http://mynameismidori.com

Yorumla

Yorum