Programlama Dili Öğrenmenin Adımları
- Batuhan Önder
- October 16, 2021
- 0 Yorum
Herkese merhabalar arkadaşlar ? Bu yazımda sizlere, bir dili öğrenmenin adımlarını verdim. Neyi ne zaman öğrenmeliyiz, bunu kendi çapımda açıklamaya ve yol göstermeye çalıştım. Sürekli internette, sosyal yaşamımda ve okul hayatımda karşıma, nerden başlamalıyım diye gezinen, istekli ama bir türlü karar veremeyen arkadaşlar için güzel olacağını düşünüyorum. Hangi dili öğrendiğinizin bir önemi yok, ne öğrenirseniz sizin için iyi olacaktır. Fakat bir önerim olacak ilk olarak Java, C# ve C/C++ öğrenmeye çalışın. Python gibi dillere, ilk olarak başamanızı önermem. Temeli öğrenmelisiniz. Fakat C ve C++ için bu yol haritasında olmayan bir çok konu var. Ben Java ve C# bildiğim için onlara göre bir yazı yazmaya çalıştım. Çok konuşmadan başlayalım.
Başlamadan önce sizlere bir şey belirtmek istiyorum. Başlangıçta video izleyebilirsiniz. Udemy ve Youtube üzerinde bir çok video da var. Bu konuları oralarda bulabilirsiniz. Lakin sizlere önerim her konuyu İngilizce kaynaklardan, doküman okuyarak yapın. Mesela Java document şeklinde aratın gidin bir okumaya çalışın. Olmuyorsa sayfayı çevirin size anlamsız gelen yeri kendiniz çevirin. Bu size 1 şey ararken 10 şey öğretecek harika bir yöntemdir. Kodlamak zor bir şey değildir. Gözünüzde büyütmeyin. Ufak bir çocuğa basit cümlelerle bir şey anlatmak gibidir. Ayrıca konularda ilerlerken yeni kütüphaneler öğrenmeye çalışın. Bilmediğiniz her şeyi araştırın. Misal olarak, kütüphane dedim. Bunu biliyor musunuz? Bilmiyorsanız gidin bir bakın nedir bu program dili kütüphanesi. Ben elimden geldiğince her adımı açıkladım. Fakat bu yeterli değildir. Amacınız hızlıca öğrenmek olmamalıdır. Sindirerek öğrenmelisiniz. Girişime son vermeden son bir isteğim de olacak github nedir? Araştırın kullanımını mutlaka öğrenin ve en basit projenizi bile burada paylaşmaya özen gösterin. Şimdi yavaştan başlayalım.
Genel olarak, ilk defa dil öğrenmeye başlayan kişiler tarafından es geçilen bir konudur. Eğer bir üniversitede yazılım alanında bir eğitim almıyorsanız hayatınızda duymamış olabilirsiniz. Fakat algoritma öğrenmek sizleri gelecek programlama hayatında yükseltebilecek harika bir donanım olacaktır. Algoritmaya girişi gelecek paylaşımlarda örneklerle anlatacağım. Fakat internette bir çok kaynak olduğunu unutmamalıyız. Üniversitelerin algoritma sorularına bakabilirsiniz. Algoritma gösterimlerine de bakarsanız iyi olur (Flow Chart, Kaba kod, Kara kutu vb.)
Java nedir? Java hangi alanlarda kullanılır? Java ile ilgili araştırma yaparken bilmediğiniz terimlere bir bakmanızı öneririm. Büyük ihtimalle Java nedir? diye arattığınızda orada JVM, OOP, Garbage Collector gibi terimlerle karşılaşacaksınız. Bunları ayrıca araştırıp bilgi sahibi olmanız sizlerin dile karşı yaklaşımınızı etkileyecektir.
İnternette java variable types olarak aratırsanız, bir çok kaynağa erişebilirsiniz. Örneğin bunları öğrenmek sizlere şunları öğretecektir:
Daha sonra bu veri tipleri arasında çeşitli işlemler yapmayı öğrenmelisiniz. Matematikten farksızdır. Toplama, çıkarma, çarpma, bölme vb. Yine ingilizce olarak operatörleri de aratırsanız her birini deneyip ne işe yaradıklarına bakarsanız, çok iyi olacaktır. Bunları ezberlemenize gerek yoktur. Yeri geldiğinde nasıl yapılıyor diye araştırarak zamanla öğrenirsiniz. Sonrasında bir ekrana yazdırın bunları ve dışardan yani klavyeden giriş nasıl alınır bunları da yine burada öğrenin. Hello World geleneğini devam ettirelim ?
Elimizde veriler var fakat bize bu verileri kontrol edecek bir yapı lazım. Bu yapı da karşımıza koşul ifadeleri olarak çıkar kısaca if-else. Kafanızda şöyle şekillensin;
Kapıdan geçen batuhan ise batuhanı içeri al değil ise alma.
Yani kafanızda somutlaşmıştır az çok. Gidin ve bunu verilere değişik koşullar belirleyin. Mesela bir not değişkeni 0 ve 100 arasında olmalıdır. Bu şekilde şart yapılarını bir kullanın. Mesela ilk kez bunu öğrendiğimde sadece şart yapıları ile kendime cevaplı oyun yapmıştım. Gayet basit ama öğretici etkinlikti.
Şuana kadar sadece bir tane veri tutmayı öğrendik ama biz hep bir tane veri ile işlem yapmayız. Düşünün bir sınıftaki öğrenci isimlerini kaydetmek istiyorsunuz. 100 tane değişken tanımlamak ne kadar mantıklı olabilir ki bu nedenle dizi ve listeleri öğrenin bu iki arasındaki farklara bakın. Bunlar dışında da veri yapıları vardır. Mesela öncelikle gidip, veri yapısı ile veri tipi arasında ne fark varmış ona bir bakın.
Döngüleri her zaman kullanacaksınız. Tıpkı koşul yapıları gibi. Bu yüzden bu konulara azami dikkat etmelisiniz. Javada döngü nasıl oluşturulur? İteratif döngüler? Java For nedir? Java for each nedir? While nedir? Java döngüler?
şeklinde aratın ve nedir bu döngü neden kullanılır öğrenin. Bol bol örnek çözün. Bunun için en iyi örnekler, sıralama algoritmalarıdır.
Metotlar başlangıçta size garip gelebilir. Ya noluyor ne ara buralara geldik demeyin. Lisede hepimiz fonksiyonları gördük değil mi? Aynısı. x veriyorsunuz, y yeriyorsunuz sizlere toplama yapıp sonuç veriyor veya ekrana yazıyor. Şöyle düşünün, sizin iş yapan bir çalışanınız var bu kişiye bir kitap veriyorsunuz okuyor özetini yazıyor ve size bu özeti veriyor. İşte bu kişi metot oluyor. Main de bir metottur. Başlangıç olarak hesap makinesi ile başlarsanız. Sizler için iyi olacaktır. Rekürsif (recursive) metotlara mutlaka ama mutlaka günlerinizi ayırın. For ve While gibi döngülerle yaptığınız soruları bir de recursive methodlarla deneyin. Kesinlikle kaybınız olmayacaktır. Aksine bu sizi iyi bir programcı yapacaktır. Bunun için maksimum örnek olarak merge sort algoritmasına bir bakın derim.
İş mülakatlarının vaz geçilmez konusu OOP. Kesinlikle bu sınıfların mantığını kavrayın. Olmazsa olmazdır. Yani bir dili biliyorum, demek için kesinlikle bilmelisiniz. Bunu da kavrayabileceğiniz en iyi uygulama veri yapılarıdır.
Şuana kadar pek çok hata aldınız. Her hatada ortak bir noktamız var. Hata ismini ve bazen açıklamasını verir ve program sonlanır. Düşünsenize oyun oynuyorsunuz bir anda hata verip kapanıyor. İstenmeyen durumları yakalamak lazımdır. Bunun için de yine araştırma yapmalı ve error kodlarına hakim olmalısınız. İyi bir yazılımcı benim gözümde her hata ile karşılaşmış ve bunun bir şekilde üstesinden gelen kimselerdir. Hata almaktan korkmayın. Yeter ki o hatayı neden aldığınızı öğrenin.
Biz bilgisayara işlem yaptırıyoruz. Çalışıyor. Sonucu görüyoruz. Lakin program kapanınca gidiyor. Çünkü ramde saklanıyor. Şuana kadar değişkenleri dizileri listeleri gördük biz bunları hiç saklamadık. Bu verileri kaydetmek lazım. Bu sebeple de dosya okuma ve yazmayı öğrenin şimdilik. Daha sonra veri tabanı öğrenirsiniz.
Threadler, öğrenirken zordur. Hatta kafa karışıklığı yaratır. Bu yüzden acele etmeden çalışmalısınız. Bununla ilgili bir çok örneğe bakmalısınız. Şöyle ki bir klimayı düşünün. Klima aynı anda kaç iş yapıyor? Sıcaklık ölçecektir. Havayı nemlendirmesi gerekiyor mu? Soğutmalı mı? Isıtmalı mı? Bunları aynı zamanda yapıyor. İşte bunun mimarı threadlerdir. Sizin aynı anda birden çok kod parçacığı çalıştırmanıza izin verir. Bununla ilgili örnek olarak da bir oyun yapabilirsiniz. Konsolda oyun örneklerine bakabilirsiniz.
Yukarıdaki bahsi geçenler bitmiş olduğunuzu varsayarsak, en zevkli yere geldik. Java ile görsel programlama veya C# ile görsel programlama oldukça keyiflidir. Bu öğrendiğiniz tüm şeyleri uygular, bir yandan da bir ürününüz olacaktır. Gözle görmek, artık masaüstü programı yazabiliyor olmak inanılmaz bir duygudur. Yine ilk örneğiniz hesap makinesi olsun. Başta zorlansanız da araştırarak halledemeyeceğiniz bir şey yoktur. Bunu da unutmamak lazım.
Hayır, yanlış yazmadım ? Yazılımda; öğrenmenin sonu yoktur ? Umarım güzel bir yol haritası olmuştur. Her dilde öğrenim haritası farklılık gösterebilir, eğer JS gibi bir dil için veya daha derin öğrenmek için google' da "<Programlama adi> roadmap" şeklinde arama yapabilirsiniz. Fakat Java ve C# için, aşağı yukarı bu konular vardır. Şimdiden kolay gelsin ve geçmiş olsun.
Gelişmelerden daha hızlı haberdar olmak için sosyal medya hesaplarımızı takip edin.