Merhabalar, programlama öğrenmeye yeni başlayanlar ve ilerletmek isteyen arkadaşlara bu yollardan geçmiş, bu alanda teknik dersler vermiş biri olarak tavsiyelerim;
Programlamanın aslında bir soruna karşılık çözüm geliştirmek olduğunu bilerek başlayın. Bu iş baştan sona sorun bulmak, sorun çözmek, çözümü daha iyi hale getirmek yani çözümü sorun haline getirip onu da çözmek derken sonsuz bir çözüm döngüsüdür. İster çok basit bir uygulama yazıyor olun, ister karmaşık bir algoritmanın karmaşıklığını hesaplıyor olun sürekli olarak hata alacak, hata çözecek, çözümü geliştirmeye çalışacak ve yine hata alacaksınız. Bu işi huşu içinde, huzurlu bir şekilde yapmak neredeyse imkansız. Kendinizi bu sürece hazırlayın.
Önce algoritma öğrenin. Giriş seviyesi bir algoritma eğitimi almak, programlamayı öğrenmenizi, adapte olmanızı inanılmaz hızlandıracaktır. Ayrıca algoritma dersleri genellikle bir programlama dili üzerinde anlatıldığı için belli başlı programlama terimlerini de öğrenmeye başlamış olacaksınız. Algoritma derslerinin içerisinde veri yapılarının da anlatıldığından emin olun. Yani kısacası programlamaya başlamanın birinci adımı bana göre algoritmalar ve veri yapılarıdır. Bu adımı geçtikten sonra artık bazı şeyleri çözebiliyor hale geliyorsunuz.
Bir alan seçin. Örneğin web programlama ya da masaüstü uygulamaları yazmak istiyorsunuz. Ya da mobil uygulamalar yazmak istiyorsunuz. Her işin farklı kültürü, yolu, yöntemi ve dili vardır. Neyi yapmaktan zevk aldığınızı bulmanız gerekiyor. Bir web sitesinin tasarımını yapmak, kullanıcının etkileşime geçtiği, gördüğü kısmı yapmak istiyor olabilirsiniz. Bu alana Front-End diyoruz yani ön yüz. Bir de kullanıcıların görmediği, sitenin sunucularla haberleştiği, API'ların olduğu, daha karmaşık ve kaotik bir ortam var. Buna da Back-End diyoruz. Bu örnekler çoğaltılabilir. Algoritma öğrenirken yavaş yavaş bunları da gözünüze kestirmeye başlıyor olacaksınız.
İstikrarlı çalışın. Programlama da tıpkı bir konuşma dili gibidir. Günlük yaşantınızda insanlarla konuşurken Türkçe konuşuyor olabilirsiniz. Bilgisayarlarla konuşurken de programlama dillerini kullanmanız gerekiyor. Biliyorsunuz ki dil konuşulmadıkça, okuyup yazılmadıkça unutulmaya müsait.
programlama dili önemli değildir. dillerin yapıları çoğunlukla birbirlerine benzerlik gösterirler. Programlama dillerini birbirinden ayıran şey dillerin paradigmalarıdır. Bir dil nesnel yaklaşımlı bir diğer dil ise yapısaldır. Ya da bir başka dil fonksiyoneldir. Dilleri birbirinden ayıran yönelimleri, yazım şekilleridir. C# dilini bilen bir yazılımcı Java kodunu rahatlıkla okuyabilir. Ya da Java bilen bir yazılımcı C# dilini birkaç gün içerisinde öğrenebilir. Geçiş sırasında zorluk yaşatan şeyler frameworklerdir. Bunlar da birbirlerine çok benzer yapıdadır. Bunlara takılmaya hiç gerek yok.
Dil seçimi yaparken popüler olana değil fazla kaynak olana yönelin. Başlangıçta ingilizcenizin seviyesi ya da teknik ingilizcenizin seviyesi yetmeyebilir. Gidin en çok Türkçe kaynak olan dili seçin.
YouTube üzerinde güncel anlatım yapan kanalları bulun. 10 yıl önce anlatılmış derslerde eski arayüzler, eski kurallar olacağından, şu an mevcut arayüzde bazı şeyleri bulamayacağınız ya da bazı kodlarda hata alacağanızdan eski olmayan dersleri izleyin.
Topluluklara katılın. Burası belli bir noktadan sonra zorunluluk haline gelmeye başlıyor. Artık yazılım toplulukları bloglar, forumlardan çok herkesin kullandığı popüler olan Discord gibi yerlere taşınmaya başladı. Bu gibi topluluklarda sorularınıza hızlı cevap alabilir, müsait kişiler tarafından bazı konularda kısa ve ücretsiz dersler alabilirsiniz.
Yazılmış projelere bakın. Örneğin github.com üzerinde insanların kodlarını inceleyin. Kim hangi programı yapmış, nasıl yapmış bunlara göz atın.
Bootcamp'lere katılın. Bootcamp'ler genellikle belli bir seviyeden sizi alıp daha yukarı bir noktaya çıkarır. Sizinle birlikte başlayan onlarca hatta yüzlerce insanla birlikte çalışma imkanı bulursunuz.
Bootcamp düzenleyen, eğitim serileri çeken kişileri ve kurumları bulup takip edin. Bunlara verebileceğim örnekler;
Aklıma geldikçe buraya ekleyeceğim, faydalı olması ümidiyle.
Programlamanın aslında bir soruna karşılık çözüm geliştirmek olduğunu bilerek başlayın. Bu iş baştan sona sorun bulmak, sorun çözmek, çözümü daha iyi hale getirmek yani çözümü sorun haline getirip onu da çözmek derken sonsuz bir çözüm döngüsüdür. İster çok basit bir uygulama yazıyor olun, ister karmaşık bir algoritmanın karmaşıklığını hesaplıyor olun sürekli olarak hata alacak, hata çözecek, çözümü geliştirmeye çalışacak ve yine hata alacaksınız. Bu işi huşu içinde, huzurlu bir şekilde yapmak neredeyse imkansız. Kendinizi bu sürece hazırlayın.
Önce algoritma öğrenin. Giriş seviyesi bir algoritma eğitimi almak, programlamayı öğrenmenizi, adapte olmanızı inanılmaz hızlandıracaktır. Ayrıca algoritma dersleri genellikle bir programlama dili üzerinde anlatıldığı için belli başlı programlama terimlerini de öğrenmeye başlamış olacaksınız. Algoritma derslerinin içerisinde veri yapılarının da anlatıldığından emin olun. Yani kısacası programlamaya başlamanın birinci adımı bana göre algoritmalar ve veri yapılarıdır. Bu adımı geçtikten sonra artık bazı şeyleri çözebiliyor hale geliyorsunuz.
Bir alan seçin. Örneğin web programlama ya da masaüstü uygulamaları yazmak istiyorsunuz. Ya da mobil uygulamalar yazmak istiyorsunuz. Her işin farklı kültürü, yolu, yöntemi ve dili vardır. Neyi yapmaktan zevk aldığınızı bulmanız gerekiyor. Bir web sitesinin tasarımını yapmak, kullanıcının etkileşime geçtiği, gördüğü kısmı yapmak istiyor olabilirsiniz. Bu alana Front-End diyoruz yani ön yüz. Bir de kullanıcıların görmediği, sitenin sunucularla haberleştiği, API'ların olduğu, daha karmaşık ve kaotik bir ortam var. Buna da Back-End diyoruz. Bu örnekler çoğaltılabilir. Algoritma öğrenirken yavaş yavaş bunları da gözünüze kestirmeye başlıyor olacaksınız.
İstikrarlı çalışın. Programlama da tıpkı bir konuşma dili gibidir. Günlük yaşantınızda insanlarla konuşurken Türkçe konuşuyor olabilirsiniz. Bilgisayarlarla konuşurken de programlama dillerini kullanmanız gerekiyor. Biliyorsunuz ki dil konuşulmadıkça, okuyup yazılmadıkça unutulmaya müsait.
programlama dili önemli değildir. dillerin yapıları çoğunlukla birbirlerine benzerlik gösterirler. Programlama dillerini birbirinden ayıran şey dillerin paradigmalarıdır. Bir dil nesnel yaklaşımlı bir diğer dil ise yapısaldır. Ya da bir başka dil fonksiyoneldir. Dilleri birbirinden ayıran yönelimleri, yazım şekilleridir. C# dilini bilen bir yazılımcı Java kodunu rahatlıkla okuyabilir. Ya da Java bilen bir yazılımcı C# dilini birkaç gün içerisinde öğrenebilir. Geçiş sırasında zorluk yaşatan şeyler frameworklerdir. Bunlar da birbirlerine çok benzer yapıdadır. Bunlara takılmaya hiç gerek yok.
Dil seçimi yaparken popüler olana değil fazla kaynak olana yönelin. Başlangıçta ingilizcenizin seviyesi ya da teknik ingilizcenizin seviyesi yetmeyebilir. Gidin en çok Türkçe kaynak olan dili seçin.
YouTube üzerinde güncel anlatım yapan kanalları bulun. 10 yıl önce anlatılmış derslerde eski arayüzler, eski kurallar olacağından, şu an mevcut arayüzde bazı şeyleri bulamayacağınız ya da bazı kodlarda hata alacağanızdan eski olmayan dersleri izleyin.
Topluluklara katılın. Burası belli bir noktadan sonra zorunluluk haline gelmeye başlıyor. Artık yazılım toplulukları bloglar, forumlardan çok herkesin kullandığı popüler olan Discord gibi yerlere taşınmaya başladı. Bu gibi topluluklarda sorularınıza hızlı cevap alabilir, müsait kişiler tarafından bazı konularda kısa ve ücretsiz dersler alabilirsiniz.
Yazılmış projelere bakın. Örneğin github.com üzerinde insanların kodlarını inceleyin. Kim hangi programı yapmış, nasıl yapmış bunlara göz atın.
Bootcamp'lere katılın. Bootcamp'ler genellikle belli bir seviyeden sizi alıp daha yukarı bir noktaya çıkarır. Sizinle birlikte başlayan onlarca hatta yüzlerce insanla birlikte çalışma imkanı bulursunuz.
Bootcamp düzenleyen, eğitim serileri çeken kişileri ve kurumları bulup takip edin. Bunlara verebileceğim örnekler;
- Patika. Dev.
- BTK akademi (sertifikalı)
- Udemy (ücretli-ücretsiz / sertifikalı-sertifikasız)
- Engin demiroğ (YouTube üzerinde Bootcamp'ler düzenliyor bakmanızda fayda var. Kodlama. IO kurucusu)
- Murat yücedağ.
- Folksdev(YouTube üzerinde Java Bootcamp'i devam etmekte ve çok verimli bir kanal. Topluluğu da harika)
Aklıma geldikçe buraya ekleyeceğim, faydalı olması ümidiyle.
Son düzenleme: