3. Baskı için hazırlıklar

Merhaba arkadaşlar, bildiğiniz gibi buradaki yazılardan oluşan “Projelerle PHP7” kitabımın 2. baskısı tükendi. Yaklaşık 2 yıldır yeni baskı için örnekler hazırlıyorum ve çalışmalarıma devam ediyorum. Örneklerin hepsini bugün tamamladım.

Şimdi sırada bu örneklerin tek tek açıklanarak anlatılması olacak, ancak şu anda yazılardan da güncellenmesi gereken işler var. Kısaca bu yazıda 2020 yazacağım yazıları listeleyeceğim.

  • Windows ile PHP, MYSQL Kurulumu (Bitnami sürümü, bunun için windows kuruyorum şu anda).
  • Hali hazırdaki örneklerin güncellenmesi ve dil anlatımı kısmındaki örneklerin güncellenmesi.
  • Bilgisayarlar nasıl düşünür? (Kodlama mantığı hakkında yeni yazı).
  • Temelden HTML örneği. Özgeçmiş, kişisel site.
  • Kişisel site için örnek galeri.
  • Kişisel site için örnek blog. (Sadece HTML)
  • Kişisel sitenin özgeçmiş, blog ve galeri kısmı için backend yazılması. Bu kolay olmalı.
  • Bootstrap ile şirket sitesi örneğinin yeniden yazılması
  • Nesne yönelimli programlama örneğinin güncellenmesi. (Meraklı Framework diyeceğiz adına)

Daha sonraki aşamada PHP ile Nesne yönelimli programlama yazılarını elden geçireceğim. Bunun için:

  • Nesne mantığı ve felsefesi
  • Test odaklı geliştirme
  • Örnek sözlük uygulaması (Framework kullanmadan)
  • Laravel ile örnek gerçek uygulama (Vue ve Bootstrap kullanabiliriz.)

Sizin de burada/kitapta olmasını istediğiniz bilgiler varsa, yazarsanız sevinirim.

Sevgiler
Midori

2018 yılında hala PHP öğrenmeye değer mi?

https://dev.to/mporam/is-php-relevant–1np

Dev.to platformunda Mike Oram tarafından yayınlanan “Is PHP relevant?” adlı yazının Türkçe çevirisidir.

Bana akademisyenler, iş başvurusu yapanlar hatta diğer geliştiriciler tarafından en sık sorulan sorulardan biri “Neden PHP öğretiyorsun?” hatta bazen “PHP ölü bir dil değil mi?” sorusudur.

En başından bu konuda gayet açık olayım. PHP ÖLÜ BİR DİL DEĞİLDİR.

2017 yılının aralık ayında, PHP internette server tarafında kullanılan programlama dillerinin %83’ünü oluşturuyordu. Bu sonucu PHP tabanlı WordPress gibi içerik yönetim sistemlerine borçluyuz, ama bu hazır içerik yönetim sistemlerini bu orandan çıkarsak dahi, PHP web’in %54’ünden fazlasına güç vermekte. Zaten, aşağıdaki grafiğe bakarsanız, PHP’nin market payı 2017 yılında gayet tutarlıymış hatta artış göstermiş.


Eylül ayında ‘IT endüstrisi için uygun’ yetenek ve teknolojiler hakkında bir blog yazısı yazmıştım. O blog yazısını yazdığım sırada, PHP ve Javascript iş pazarında açık ara aranan özelliklerdendi. Hala da böyledir. Tesadüfi olmayan bir şekilde, akademide en çok vakit ayırdığımız iki dil de PHP ve JavaScript’tir.

Şimdi, yeni programcılara en çok öğretilen diğer dillerin kullanım istatistiklerine bir göz atalım. Üniversiteler Java veya C’ye odaklanmaya yatkınlar. Bunun sonucunda bir çok girişim uygulamalarını bu dilleri kullanarak geliştirmekte. Tüm bu çabaların sonucunda Java server tarafındaki uygulamaların %2.5’una güç veriyor. C hiç bir yerde görülmemekle beraber, bazen üniversitelerde öğretilen ASP.NET %14.2 oranına ulaşabilmiş. Programlama workshoplarında en popüler olan Python, Ruby veya sunucu tabanlı JavaScript dillerinin hepsini birden topladığımıza, internettin sadece %1.2’sine güç verebilmişler. Sunucu taraflı JavaScript (node.js) en hızlı artan sunucu taraflı teknoloji olmasına rağmen halen az kullanılıyor ancak tabiiki öğrenilmeli. (Biz akademik takvimimizde Node.js öğretmeye 1 hafta ayırıyoruz)

Techrepublic kısa bir zaman önce 2018 yılında öğrenilmesi gereken “top” dilleri sıraladığı, PHP ve JavaScipt’in ilk 6 ya girdiği, PHP’nin 2017 yılında 9’unculuktan 6’ncılığa yükseldiği bir makale yayınladı.

Peki neden bir sürü kişi PHP’nin uygunsuz ya da ölü bir dil olduğunu iddia ediyor?

Bunun, benim gördüğüm iki ana nedeni var. Birincisi, bu geliştiriciler arasında dolaşıp duran bir söylentiden ibaret. PHP, ilk zamanlarında görece olarak yavaş, nereye gittiği belli olmayan ve bir sürü tutarsızlığa sahip bir dildi. Yıllar boyunca PHP bayağı bir gelişti, hatta 2009 yılında 5.3 sürümünün yayınlanmasından beri, eski şikayetlerin çoğu düzeltildi. En son sürüm (7.1) son derece hızlı, modern ve güçlü bir şekilde nesne yönelimliliğe odaklanan bir dildir.

İkincisi, PHP esnek ve “loosely typed” yani kesin tür belirtilmemiş bir dildir. Bu, metin editörünü açıp hızlı yazılım geliştirmeye olanak verse de, kolayca kötü kod üretmeye de yol açmakta. Yani kendi başarısının bir kurbanı olduğunu söyleyebilirsiniz. Ancak, düzgün bir şekil yazıldığında, ve DRY, SOLID ve MVC gibi (bizim de akademide öğrettiğimiz) metodolojiler kullanıldığında, PHP gerçekten güçlü, iyi bir çeşitliliğe sahip, bir çok şeyleri sunabilecek hızlı bir dildir.

Yani, PHP ölmedi. Her dilde olduğu gibi kendine özgü kusurları olsa da, bırakalım istatistikler bizim yerimize bu iddialara cevap versin.

Açık Standartları neden savunmalıyız?


Şöyle bir okur mektubu geldi.

Merhaba,

Medium’da ki yazılarını severek okuyorum, yalnız gözden kaçırdığın bazı şeyler olduğunu düşünüyorum.

Endüstriye ucuz iş gücü yapmak amacıyla hazırlanan müfredatın bilginin oluşma diyalektiğine aykırı biçimde oluşması ve kakalanmasıyla, yazılım mimarilerinin mutlak doğruymuşçasına kabul edilmesi gerçeğinin benzerliğini fark edemediğini düşünüyorum.

Yıllar önce gazeteler çok farklı konuları barındırırdı ama teknolojinin gelişmesi ve mobil cihazların yaygınlaşması insanların ilgi alanlarını ve önceliklerini hedeflenmesinin yolunu açtı, bu durum aldıkları telefon arayüzlerini sadeleştirme eğilimlerini tetikledi, teknoloji insan ihtiyaçlarına paralel olarak gelişti, hep de öyle olacak gibi görünüyor.

Bilginin oluşma diyalektiğini görmezden gelen kapitalizm, bugün inovasyon adı altında workshoplar düzenliyor, dev şirketler kodlarını geliştiricilere açıyor.

Kalıplarla öylesine meşguller ki insanların ihtiyaç ve amaçlarını artık anlamakta zorlanıyorlar, bunun sebebini yazılım teknolojilerinin mutlak doğruymuşçasına kabul edilmesine ve geliştiricilerin bu teknolojileri öğrenmek için büyük zaman harcamasına bağlıyorum.

Ben interface ve diğer mimari öğelerin gerekli olmadığına onlar yerine javascript, html de ki gelişmelerin beraber kullanıldığı ekosistemlerin işe yarayabileceğine inanıyorum bilmiyorum belki de yanılıyorumdur ama dediğim gibi bunları kullanmanın mantıklı olmadığına inanıyorum.

Yürekten soruyorum beni ikna eder misin?
Sevgilerimle.

Ben de şu şekilde cevap verdim:

Selam,

Ben yazılarımı ucuz iş gücü için müfredat oluşturmak amacıyla yazmıyorum. Ben zamanında bilişim çalışanları dayanışma ağında bilginin metalaştırılmasına karşı bilgiyi paylaşma amaçlı ücretsiz eğitimleri başlattığımda da amacım buydu. Yazılım mimarilerinin mutlak doğru olması ile ucuz işgücü kavramının veya zorlama bilgi olmasının bağlantısı olmadığını düşünüyorum. Bilgisayar Bilimleri ve mühendisliği şunun surasında 50–60 senelik uygulama alanı bulmuş, genç bir mühendislik dalıdır. Tıp gibi, Fizik veya Biyoloji gibi teorileri yoktur veya çok azdır. Standartlar oturmamıştır ve standartlaşma çabası vardır. Yazılım mimarileri olarak tasarım desenlerinden bahsediyorsunuz sanırım. Tasarım desenleri konusu Christopher Alexander tarafından bina mimarisi yani inşaat mühendisliği için 1977’de ortaya atılan bir kavram. Yazılım mühendisliğinde bugün olduğu gibi o gün de varolan anarşi ve kaos ortamından dolayı, ortak ve bilimsel bir metodoloji oluşturmak amaçlı, inşaat mühendisliği biliminden alınan bir kavramlar dizisi. Bilimsel olduğu için din gibi değiştirilmez değil tabii ki.

Gelelim ikna konusuna, biyoloji, tıp, ilaç sanayii gibi insan sağlığını ilgilendiren bilim ve mühendislik alanları gibi kurallar ve yönetim organları olmadığı için, doğal olarak kuralsız, kaotik ve cahillikten beslenen bir ortam mevcut. 1950’lerde de mevcuttu. Bu ortamın böyle olması büyük şirketlerin lehine bir durum. Büyük şirketler yapısal kodlara karşı, tabii ki prosedürel kodlamayı promote edecekler ve standartların olmamasından kendi standartlarını dayatarak faydalanacaklar. Tıpkı, MVC gibi OOP gibi, Modülerlik kavramlara tecavüz eden React teknolojisinin facebook tarafından yaygınlaştırılması veya Google’ın saçma sapan bir js çerçevesi olan Angular teknolojisini yaymaya çalışması gibi. Bu şirket bağımlı teknolojiler, internetin, web’in herkese açık, demokratik web standartlarına tam anlamıyla tecavüz ederler, ve bu standartların oluşmalarını geciktirirler. Tıpkı Adobe şirketinin ömrü dolduğu ve gericilik ürettiği halde Flash adlı berbat kapalı kaynaklı boktan teknolojiyi solunum cihazında yaşatmaya çalışması gibi. Bu konu ile ilgili şu yazıyı okumanızı öneririm. https://www.pandastrike.com/posts/20150311-react-bad-idea

Sonuç olarak, ortak, açık demokratik standartlar ile oluşturulan yapısal kodlar, allahın emri değildir tabii ki, ancak standartsızlık ortamından küçük yazılımcılar veya minik yazılım evleri değil, dev şirketler fayda sağlarlar ki, tüm yazılımcılar kendi yan-kar ortamlarını yarattıkları ekosistemlerine doluşsunlar.

Kapitalizmin ve kapitalist şirketlerin kendi geliştirdikleri sözde “açık kaynaklı” ama açık web standartlarına tecavüz eden teknolojileri yaymaya çalışmalarının nedenini sanırım yukarıdaki paragraftan anlamışsınızdır. IBM gibi iğrenç bir kapitalist şirketin Linux vakfına neden on milyarlarca dolar bağış yaptığını da başka bir yazıda açıklamam gerekiyor sanırım ama bunu yorumlamayı şimdilik size bırakıyorum. İpucu olarak burjuva bankalarından kredi çeken aristokratlara referans verebilirim.

İyi çalışmalar,
Mutlu Koçak


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/midorikocak.pdf 
Websitem:
http://mtkocak.net

Neden kodlama öğrenmeliyim?


Kodlama resim yapmak gibidir demiştim. Bu sorunun da cevabı neden resim yapmayı öğrenmeliyim? Neden bir hobi edinmeliyim? Ya da, şu yaşımdan sonra neden yeni bişiler öğrenmeliyim ki? gibi sorulara verilecek cevaplardan farklı değil aslında ama yine de ben tek tek yanıt vermeye çalışayım.

1. Herkes Programlama öğrenebilir

2011 yılında Machester’da bir yazılım konferansında bize seminer veren konularında baya ağır bilgiye sahip efsane şahıslara “Bu işe neden başladınız?” diye sormuştum. Elemanın biri “Ben Starbucks’ta barista’ydım. (Kahve koyan eleman) Bir arkadaşım bu işten iyi para yapıyordu, ben de merak ettim öğrendim.” diye cevap vermişti. Hala aklıma geldikçe anlatıyorum. Bu eleman şimdi Kanada’nın büyük yazılım şirketlerinden birinde baş yazılımcı. Öğrendiği herşeyi paylaştığı harika bir blogu var. O konferansta ben dahil bir sürü yazılım mühendisi, bu arkadaşın cevabıyla, tabiri caizse göt olmuştuk, hala unutmuyorum. Adam yazılımcı değil, alakası yok ama öğrenmek istiyor, kafaya koyuyor ve alanında en büyük uzman oluyor. Demek ki isteyince herkes programlama öğrenebilir.

2. Çünkü, birşeyler yaratmak en güzel mutluluk kaynağı


Kodlama işi resim yapmak gibi diye ikide birde söylüyorum. Bir kişi hayatı boyunca hiç resim yapmamış da olsa, doğru teknikleri öğrenir ve pratik yaparsa, güzel resimler yapabilir. Bu yüzden yazılarda Bob Ross’un resimlerini kullanıyorum. Başta bomboş tuvali yarım saat arka plan renkleriyle doldurmak, fırçayı tutmak gibi sıkıcı işlerden sonra, doğru teknikleri öğrenerek, “Şuraya minik bir ev yerleştirelim”, “Şuraya ceylanların su içtiği minik bir nehir çizelim” aşamasına geçiliyor. Bu şekilde resim çizmeye başladıktan sonra, bir şeyler yaratmaktan alınan keyif paha biçilemez ve verilen tüm emeklere değiyor. Tabii ki, herkes Rembrandt veya Van Gogh olmak zorunda değil, ama olabilirsiniz de.

3. Kazancı gayet iyi


Gerçekten öğrenmekten ve kendinizi geliştirmekten vazgeçmezseniz, sıralama, arama, veri yapıları gibi temel konuları iyice öğrenirseniz, nesne yönelimli programlamayı uygularsanız programlama işinde çok para var. Özellikle mobil uygulama geliştirme çok revaçta. En kötü mobil uygulama geliştirme işi 10bin euro’lardan başlıyor. Şu linkte maliyetleri hesaplamak için araçlar var. Üstelik freelance, home-ofis, yani 9–6 iş ortamına mahkum olmadan çalışabilme avantajları var. İyi bir çevreniz, alanınızda güzel bir itibarınız (blogunuz, açık kaynaklı yazılımlara katkınız vb.) varsa, yazılımcı kazançları gayet yüksek. Yeter ki, bedavaya çalışmayın. (Not: Bu konuda da bir yazı yazmak lazım.) Özellikle, facebook, google, amazon, microsoft gibi büyük firmalar diploma vb. aramıyorlar. Yukarıda bahsettiğim sıralama ve arama, veri yapıları gibi temel konuları çok iyi bildiğinizde çok iyi maaşla, vize desteğiyle sizi transfer etmek için yarışıyorlar. (Bu konuda hackerrank sitesini öneririm.)

4. Kimse sizi kandıramaz

Çaresiz yönetici kadrosu

Kodlama bilen kişilerde gördüğüm en büyük gıcıklık bilgilerini paylaşmaktan kaçmaları. Bunun egoistlik, iş kaybetme korkusu gibi saçma sapan sebepleri olabilir. Hatta bazı kodcuları evimin kapısından içeri sokmam. Soruna cevap vermez, günaydın demez, bilerek yanlış bilgi verir, kötü rekabet eder vb. Çoğu yalan söyler. Örneğin yazılımla uğraşan bir şirkette yönetici ekipteyseniz, kodcularla uğraşmak baş ağrıtabilir. Bu absürd, gelişmemiş insan türüne muhtaç olmamak için ve “memory çok şişti, ondan hata oldu, bug çıktı” gibi yalanlara aldanmamak “E adam gibi veri yapısı oturtaydın” diye cevabı yapıştırmak için temel de olsa kodlama öğrenmekte yarar var.

5. Çılgın paralar dökmeye gerek yok. El kadar bilgisayar yeter


Kodlama yapmak için 35$’lık Raspberry Pi bilgisayar yeter. Öyle ahım şahım bilgisayarlara deli paralar akıtmanıza gerek yok. Hatta bilgisayarın kaynakları kısıtlı olduğunda yapacağınız yazılımın performansına da dikkat etmiş olursunuz ki, bu da sizin diğer kodculardan ayrılmanızı sağlar. İhtiyaç duyacağınız bir çok araç, açık kaynaklı yazılım geliştirdiğinizde ücretsizdir. İnternette dünya kadar kaynak ücretsiz bir şekilde önünüze serilmiş vaziyettedir. BilgeAdam vb. gibi dershane usülü eğitim veren ticari kurumları tavsiye etmiyorum. Bunun yerine, youtube üzerinden videolu anlatımlar, piyasada insan gibi konuşan, dilinden kolayca anlayacağınız kitaplar mevcut. (Mesela benim kitabım, di mi ama?) İngilizceniz de varsa, ki kesinlikle olmalı, internette istediğiniz teknolojiyi öğrenmek için ulaşamayacağınız kaynak yok. Tüm insanlığın bilgisi elinizin altında. Kodlama yapmak, hali hazırda bir sanat olduğu, standartları tam oturmadığı için, alanda çalışmak için bir diplomaya sahip olmak zorunda da değilsiniz. Mesela, diş hekimliği fakültesi olmadan diş çekemezsiniz, ya da makine mühendisi değilseniz, doğalgaz tesisatı kuramazsınız, ancak böyle kısıtlamalar kodlama alanında yok. Bu aslında, biz bilgisayar, yazılım mühendisleri için kötü bir durum. Ancak bilgisayar bilimleri şunun şurasında 50 yıllık bir bilim dalı olduğu, ve halen bilimsel standartları oturmadığı için, sanat dalı olarak düşünülebildiği için, kodlama sanatını iyi bilen birisi gayet bu alanda profesyonelce çalışabilir.

Sonuç


Sonuç olarak, yeni şeyler öğrenmekten keyif alıyorsanız, bir şeyler yaratmak hoşunuza gidiyorsa, yeni bir meslek edinmeye ve bu alanda çalışma ve para kazanma olanakları size cazip geliyorsa kesinlikle ama kesinlikle kodlama öğrenmelisiniz.


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/midorikocak.pdf 
Websitem:
http://mtkocak.net

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/midorikocak.pdf 
Websitem:
http://mtkocak.net