Programlama öğrenmek isteyenlere altın tavsiyeler

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;
  1. Patika. Dev.
  2. BTK akademi (sertifikalı)
  3. Udemy (ücretli-ücretsiz / sertifikalı-sertifikasız)
  4. Engin demiroğ (YouTube üzerinde Bootcamp'ler düzenliyor bakmanızda fayda var. Kodlama. IO kurucusu)
  5. Murat yücedağ.
  6. Folksdev(YouTube üzerinde Java Bootcamp'i devam etmekte ve çok verimli bir kanal. Topluluğu da harika)
Araştırma yapmaya özen gösterin. Gelip forumlarda programlama nasıl öğrenilir diye konu açmadan önce, forumlarda bu şekilde açılmış konuları okuyun. İnanın daha hızlı ve verimli ilerleyeceksiniz.

Aklıma geldikçe buraya ekleyeceğim, faydalı olması ümidiyle.
 
Son düzenleme:
Merhabalar, programlama öğrenmeye yeni başlayanlar ve ilerletmek isteyen arkadaşlara bu yollardan geçmiş, bu alanda teknik dersler vermiş biri olarak tavsiyelerim;

Ö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.

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.

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.

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;
  1. Patika. Dev.
  2. BTK akademi (sertifikalı)
  3. Udemy (ücretli-ücretsiz / sertifikalı-sertifikasız)
  4. Engin demiroğ (YouTube üzerinde Bootcamp'ler düzenliyor bakmanızda fayda var. Kodlama. IO kurucusu)
  5. Murat yücedağ.
  6. Folksdev(YouTube üzerinde Java Bootcamp'i devam etmekte ve çok verimli bir kanal. Topluluğu da harika)
Araştırma yapmaya özen gösterin. Gelip forumlarda programlama nasıl öğrenilir diye konu açmadan önce, forumlarda bu şekilde açılmış konuları okuyun. İnanın daha hızlı ve verimli ilerleyeceksiniz.

Aklıma geldikçe buraya ekleyeceğim, faydalı olması ümidiyle.

Eyvallah.
 
Araştırma yapmaya özen gösterin. Gelip forumlarda programlama nasıl öğrenilir diye konu açmadan önce, forumlarda bu şekilde açılmış konuları okuyun. İnanın daha hızlı ve verimli ilerleyeceksiniz.
Bu yazıyı alıp forumda "Programlama" bölümünün en üstüne asmak lazım.
 
Verebileceğim en büyük tavsiye:
Hataları ve hata mesajlarını okuyun. Üzerinde uğraşın. Programlamanın verdiği zevkin %50-60'ı hatayı çözebilmekte benim için. Yaşadığınız sorunu %99 ihtimalle dünya üzerinde başka yaşayan insanlar da vardır ve çözümü bulunmuştur. Biraz ilerledikten sonra hata görme ve onları iyileştirme sıklığınız projenin size bir şey kattığı an sıklığını temsil eder. Hataları sadece google'a ctrl c+v yapmak yerine önce okuyup ne demek istediğine bakın. Eğer çok açık bir şekilde bulamazsanız sonra internete yönelip araştırın. Eğer hata gördüğünüzde vazgeçecekseniz hiçbir zaman ilerleyemezsiniz. Çünkü kaç yıllık tecrübeniz olursa olsun yaptığınız bir şeyin ilk anda hatasız çalışma ihtimali ya yüzde %10 ya da daha az.
 
Programcı olacak adam zaten ihtiyacı olacak bütün bilgiyi it gibi araştırıp google üzerinden sömürür, yani bir şekilde yolunu bulur. Bunun dışındakilerden bir cacık olmaz, net!

Programcı olacak adam keşfetme, araştırma ruhuyla yanıp tutuşur, burada zevzek zevzek hangi udemy kursunu alsam acaba diye konu açmaz ya da python mu c++ mı diye sormaz, bunları soran kişiden programcı olmaz.
 
Programcı olacak adam zaten ihtiyacı olacak bütün bilgiyi it gibi araştırıp google üzerinden sömürür, yani bir şekilde yolunu bulur. Bunun dışındakilerden bir cacık olmaz, net!

Programcı olacak adam keşfetme, araştırma ruhuyla yanıp tutuşur, burada zevzek zevzek hangi udemy kursunu alsam acaba diye konu açmaz ya da python mu c++ mı diye sormaz, bunları soran kişiden programcı olmaz.
Bence de araştırır ama buralarda hangi kursu alsam diye konu açan insanları da ben anlıyorum. Bir kursa 30-40 saatini gömecek insanlar ki gerçekten daha önce epey dandik kurslar aldığım oldu. Hani onca zamanın sonucunda bir şeyler olsun istedikleri için tavsiye almak isteyebilirler bence. Ama bence de bir şekilde için içine kendini ne şekilde olursa olsun atmak lazım çok çok fazla araştırıp en iyisini bulacağım diye uğraşmaktansa
 
@ParastyleV bu tür konu açan kişiler şu ana kadar bir gelişme kaydettiklerini görmedim zaten. Araştırma ruhu olmadan programcı olunmaz. "Programlama" nedir ne değildir bilmeden girmek istiyorlar direkt, böyle olunca da işler çığırından çıkıyor. Bir de hiçbir bilgisi olmadan her konuya gelip "Python" yazanlar var. Bir dili syntaxı kolay diye tavsiye etmenin mantığını hala çözemedim.
 
Bence de araştırır ama buralarda hangi kursu alsam diye konu açan insanları da ben anlıyorum. Bir kursa 30-40 saatini gömeyecek insanlar ki gerçekten daha önce epey dandik kurslar aldığım oldu. Hani onca zamanın sonucunda bir şeyler olsun istedikleri için tavsiye almak isteyebilirler bence. Ama bence de bir şekilde için içine kendini ne şekilde olursa olsun atmak lazım çok çok fazla araştırıp en iyisini bulacağım diye uğraşmaktansa.

Aslında bu işin de kültürü sanırım bu. Birkaç kere paranızı çöpe atmadan kurs seçimi yapmayı öğrenemiyorsunuz.

Kurs seçimi yaparken dikkat edilecekler;
  1. Kursun eğitmenini araştırın. Daha önce ne yapmış, nerelerde çalışmış, insanlar hakkında ne diyor, diksiyonu ve anlatım tarzı size uyuyor mu? Bunlara bakın.
  2. Kursun başlıklarını inceleyin, Google'da birkaç tanesini araştırın. Çok mu karmaşık? Çok mu basit? İnceledikten sonra kafanızda bazı cevaplar oluşmaya, kursun sonunda neleri öğreneceğinizi kestirmeye başlarsınız.
  3. Kursun yorumlarını okuyun ama hepsini de dikkate almayın. Bu son zamanlarda çok canımı sıkmaya başlayan bir konu. Sırf eğitmene saygıdan, ya da eğitmene yakın olabilmek için herkes 5 yıldız veriyor. Halbuki eğitmen, eğitim berbat. Kötü yorumları daha çok dikkate alın.
  4. Kursun içeriğinin ücretsiz versiyonlarının olup olmadığına bakın. Boşuna para vermeyin.
  5. Sertifika var mı yok mu buna da dikkat edebilirsiniz. Bazı orta ölçekli firmalar sertifikaları çok değerli zannedip önem veriyorlar. Halbuki yazılım alanında sertifikaya değil Repository'e, çalıştığı projelere bakmak gerek.
  6. Kursun ne zaman çekildiğine bakın. Eski kurslar genellikle acemilik döneminde yapılmış, ya da az kaynaktan yararlanılarak yapılmış oluyorlar.
Aklınıza başka şeyler geliyorsa siz de ekleyin bir şeyler 😄
 

Yeni konular

Geri
Yukarı