Programlama: Nasıl Başlanmalı?

İçimden Gelenler, Neler Yaptıysam

Programlama: Nasıl Başlanmalı?

“Programlama”ya Nasıl Başlanmalı? Kısa cevabı vereyim de okumak istemeyen okumasın. Cevap: ALGORİTMA öğreneceksiniz. Yani bilgisayar gibi düşünmeyi öğreneceksiniz. Aksi takdirde hiçbir programlama bilgisi işe yaramaz.

Merak etmeyin, bu yazıda en başından sonunda nasıl bir yol izlemeniz gerektiğini anlatıyorum. 

Son 10 yıldır yükselişine bakıldığında tüm dünyada inkar edilemeyecek bir artış olan programlama/yazılım, artık hayatımızın bir parçası haline geldi. Endüstri 4.0 ile hayatımızda kullandığımız birçok ürünün üretim bandı tamamen otomatikleşiyor ve her şey program ile çalışır hale geldi. Hal böyle olunca başta gençler olmak üzere birçok insan bu işe girmek istiyor. Kimisi para kazanmak (iyi bir geliştirici haftada 2000-4000$ maaş alır) istiyor kimisi hayatını kolaylaştıracak icatları kendi yapmak istiyor, kimisi sınıfında teknolojiyi nasıl etkili kullanabileceğini merak ediyor, kimisi ise doğuştan yazılımcı ama ortak paydaları, hepsinin programlama öğrenmek istemesidir.

Bu yazıda, bu işe hiçbir ön bilgisi olmayanlar bu okyanusa atlayıp boğulmasınlar diye kendi tecrübelerim ve araştırmalarımın sonucunda elde ettiğim bilgileri paylaşıyorum. Umarım yardımı dokunur.

Başlamadan önce söyleyeyim, bu yazıda her şeyi detaylıca anlatmam mümkün değil, az evvel yaptığım okyanus benzetmesi son derece yerinde bir benzetmedir ve ben sadece sizin okyanusta yaşam mücadelesi vermeniz ve sağ salim çıkmanız için bazı ipuçları verebilirim. 

Madde 0: Başlangıç
Bilgisayar sistemleriyle ilgili çok temel de olsa bir bilgiye sahip olmanız gerekir öncelikle. Programlama yapmak için de programlar gereklidir ve bunları yüklemek silmek güncelleme vs işler için biraz tecrübe gerekebilir. Öte yandan bilgisayarın nasıl çalıştığını bilmek ona bir iş yaptırmak için doğru mantığı kurmak için gereklidir yani bunu tartışmaya gerek yok 🙂 

Diyelim ki siz önden biraz bilgi sahibi oldunuz. Peki şimdi ne yapacaksınız? “Siz nereye ne uygulaması geliştirmek istiyorsunuz?” ya da “Bir uygulama geliştirmek istiyor musunuz?” Çünkü programlama dediğimiz şey herkesin boş vakitlerinde uğraşacağı bir şey değildir. Çoğu insan bunu böyle algılayıp bu mantıkta başlıyor ve çok kısa bir süre sonra sıkılıp bırakıyor. Bunun sebebi zorluktan ziyade ilgi ve alakadır.

Madde 1: Neden?
Öncelikle nedeniniz olmalı, sağlam bir neden. Burada bir örnek vereyim. Ben şahsen yıllardır bir robot yapmak veya telefonumda kendi yaptığım uygulamayı kullanmak istiyordum. Beni bu işe sevk  eden şeyler bunlar oldu. Ama sizin derdiniz farklı olabilir elbette. Mesela bir firmada iş istiyorsunuzdur, firmayı sevdiğiniz için sadece. Firma da Python dilinde yazılım geliştiren bir firma olsun. Bu yüzden sizin Python öğrenmeniz lazım ki istediğiniz konuma gelebilesiniz. Örnekler artabilir fakat temel mantık bir sebeptir.  Onu bulursanız gerisi gelecektir. Peki buna neden ihtiyaç var? Çünkü programlama dediğimiz şey başı sonu belli bir iş değildir. Bir okyanustur. Hiç bilmeyen birisi ben programlama öğrenmek istiyorum diyip direkt dalamaz.

Madde 2: Nasıl Başlamalı? Asıl sorumuza geldik! Cevap: ALGORİTMA…
Başlamadan önce bu konunun önemine binaen bir haberi paylaşıyorum. Geçtiğimiz günlerle liselere yerleşemeyen öğrencilerin derdi de MEB’in algoritma hatası idi. Bakın ülke çapında ne kadar büyük sorunlara yol açıyor algoritma bilmeyen şahsın programlama yapması! İlgili haber için tıklayın.

Ben bu yazıda size algoritma öğretemem. Bu işin videoları, kitapları, kursları, dersleri var. Burada olmaz. Google’a algoritma nedir derseniz milyonlarca kaynak çıkar. Güzel alıştırmalar için yazının sonunda linkini verdiğim Blockly Games’e bakın.

Madde 3: Nasıl Devam Etmeli?
Önce algoritmayı mükemmel şekilde öğrenmelisiniz. Bakın algoritma Youtube videosu izledim anladım tamam başlıyorum değildir. O nedenle algoritma diyorum. Benim birçok arkadaşım algoritmayı anlamadığı için Java, C# gibi programlama dillerine dair birçok kavramı, kodu bilmesine rağmen program yazamıyor. Yazsa da ne oldu nasıl oldu bilmiyor. Bu gerçekten çok mühim bir kavram. Bu konuda kitaplar vs de var. Önümüzdeki günlerde beğendiğim kitapları sizlerle paylaşıyor olacağım. Paylaşınca buraya link koyarım zaten. Ama şimdilik internetten bakının bunlara.

Madde 4: Gerçekten Nasıl Devam Edilmeli?
Burada yine bir yol ayrımı söz konusu… Ne yapmak istiyorsunuz? Yapacağınız işe göre öğrenmeniz gereken programlama dili farklılaşacak çünkü. Bu linkten bu işin nasıl bir piyasa olduğunu görebilirsiniz. Unutmadan söyleyeyim, az da olsa İngilizce öğrenin. İngilizce artık herkes için standart haline geldi. İngilizce bilirseniz ulaşıp yararlanabileceğiniz kaynak sayısı bir anda yüzlerce kat artıyor.

Buraya bir not eklemek istiyorum. Şimdi birileri şöyle düşünebilir. “Ya kardeşim sen de İngilizce öğren onu yap bunu satın al diyorsun para nereden gelecek acaba? Bunu söyleyen kişiler Anadolu’da küçük bir şehirdeyse lafım yok lakin İstanbul gibi bir metropolde İsmek ücretsiz onlarca kurs veriyor. Ben de yararlanıyorum, siz de yararlanın bunlardan. Eğer bilgiye ulaşmak isterseniz her türlü ulaşırsınız. Ücretli kurs merkezlerine gidip sizin işinizi gücünüzü yapayım karşılığında da para yerine eğitimlere katılayım diye yalvarın. Ben yaptım bunu, her şey para değil!

Neyse, konumuza devam edelim. Programlama dilinden bahsediyorduk, şimdi biraz örneklendireyim ki mevzuyu daha iyi anlayabilesiniz. Bir Android telefon uygulaması yazacaksanız en uygun dil “Java”dır. Ama Apple ürünlerine uygun bir program yapacaksanız Xcode ile geliştirme yapmanız lazım. Bunun için C ve C++ tecrübeniz varsa Xcode’a kolaylıkla geçiş yapabilirsiniz. Aslında birçok kişi programlamaya C veya C++ ile başlıyor. Ben de öyle başladım ama bu şart değil elbette. Web üzerine çalışacaksanız Python daha iyi bir seçim olacaktır. Bilgisayara uygulama/oyun vs yapacaksanız veya Windows platformuna uygun bir şeyler yapacaksanız C#’tan şaşmayın. Bu saydıklarım en çok kullanılan, en popüler, programlama dilleridir. Tabii ki yukarıda da bahsettiğim gibi onlarca dil var. İstediğinizden veya işinize yarayacak olandan başlayabilirsiniz.

Şimdi burada size bir öneri yapmayı doğru bulmuyorum fakat mutlaka soranlar/net yanıt bekleyenler olacaktır. O nedenle söyleyeyim. Bence hiç C’ye bulaşmayın. Herhangi birini öğrenince diğerine geçişiniz kolay olacak zaten. Ben C ile başladım ama asıl öğrenme ve çalışmamı Java üzerine yaptım. Hala da Java’ya devam ediyorum. Python ve C# ise daha temel seviyede. Siz de kendi yaşamınıza veya ihtiyaçlarınıza göre ne öğreneceğinizi seçmelisiniz.

Bonus Madde: Eğitimde Nasıl Kullanılır

Eğer siz de benim gibi bir eğitimciyseniz programlama işi biraz daha farklılaşabilir. Tabii ki normal bir programlama dilini kullanarak geliştireceğiniz programlar ile sınıflarınızı şenlendirmeniz mümkün. Fakat eğitim için planlanmış platformları kullanmak daha doğru bir karar olacaktır. Çünkü gereksiz şeylerle uğraşmak yerine bu platformlardan yararlanarak zamanınızı daha etkili kullanabilirsiniz. Üstelik birçoğunu kullanmak için programlama bilgisine sahip olmaya gerek yok. Algoritma mantığına sahip herkes bunları kullanarak sınıf ortamında farklı çözümler üretebilir. Ek olarak bu araçlar, programlamaya daha eğlenceli bir şekilde başlamak ve algoritmayı çözmek için doğru bir seçenek olacaktır.

Elbette eğitim için üretilen birçok araç var. Ben de bir araç ürettim. O kadar çok var yani 🙂 Burada en çok kullanılanları göstererek sizlere yol göstermek istiyorum.

1- Bu günlerde yeni sürümü çıkarılmaya hazırlanan Scratch en çok sevdiğimiz blok tabanlı programlama idesi.
2- Kolayca android uygulaması geliştirmek isteyenlere AppInventor
3- Blok tabanlı kodlama için çok güzel bir başlangıç seti. Blockly Games (Dikkat: Bu oyunlar algoritma mantığı için mükemmel alıştırmalardır.)

4- Google, bir robotu nasıl yönetirsiniz diye soran bir site (MadeWithCode) yapmış. Algoritma ve blok tabanlı kodlamayı eğlenceli bir arayüz bile öğretiyor. 
5- Bonus: 3D Çizim yapmak için Tinkercad‘i öneriyorum. Bu sitede aynı zamanda elektronik devlerin simulasyonunu görebilir, elinizde kit olmasa bile onlarla uğraşıp öğrenebilirsiniz.

Bu liste uzar gider, ben sadece birkaç tane yazdım. Web2.0 araçları vaarrr, mobil ve masaüstü araçlar var, okullara özel olarak geliştirilenler vaarrr. Var yani, devamını araştırıp öğrenmek biraz size kalıyor. Çünkü bir yazıda her şeye değinemem. Algoritmaya giriş diye kitaplar basılıyor. Benim bir blog yazısında her şeyi anlatmam mümkün değil. Ama zamanla yeni konulara, farklı ve detaylı olarak değinebilirim elbette. .

Tüm örneklere ek olarak cep telefonlarınıza indireceğiniz bir dünya uygulama mevcut. Sizler için arattım ve ben de baktım. Yıllar önce severek kullandığım birçok uygulama hala marketlerde. Sizler de indirip ücretsiz bir şekilde alıştırma yaparak kendinizi geliştirebilirsiniz. Saçma sapan oyunumsu lüzumsuz uygulamalarla vakit kaybedeceğinize problem çözme kabiliyetinizi geliştirecek, mantıksal ve matematiksel düşünmenize destek sağlayacak uygulamaları(oyunları) kullanabilirsiniz. Gelecekte bu söylediklerimi daha iyi anlayabileceksiniz. Nereden başlasanız kârdır diyerek bir yerden bu işe girmenizi istiyorum.

Umarım bu yazı sizlerin aklındaki bazı soruları cevaplamıştır. Yine de sorularınız varsa sorabilirsiniz. İletişim bölümünden form doldurarak kolaylıkla iletişime geçebilirsiniz.

Yazıyı paylaşarak daha çok insana ulaşmasını sağlayabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir