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:
Udemy kurslarının hepsi birbirinin içeriğini kopyalıyor. Eski kursları "güncel" diyerek satıyorlar ya da. Kitaplar üzerinden ilerleyin.

Belirtmek istediğim diğer husus ise, C veya C++ ile başlayarak bilgisayar bilimlerini öğrenin, atlayacaksanız sonra başka dile atlarsınız.

Hayır, bu diller eski değil ve eskimeyecekler de. Bu diller üzerinde ilerleyebilirsiniz de, 50 senedir kullandığınız işletim sistemlerinin neredeyse tümünde çalışan C dilinden bahsediyoruz. Veya oyun sektörünün vazgeçilmezi olan C++'tan. Kullanım alanına göre dil seçin, pazar payına bakarak değil.
 
Bilgiye ulaşacak kişi burada "yazılıma veya programlama nasıl başlanır" diye konu açmaz. Gidip eğitim alır, araştırır. İstediğini elde etmek için interneti altına üstüne getirir. En küçük bir zorlukta pes eden yazılıma başlamadan bıraksın.

Aklı olan şu zamandan sonra C++ veya C# dilleriyle vakit kaybetmez. Yenilikçi olun. React, Angular, Node öğrenin. Bunlar yeri geldiğinde programlamaya da girebiliyor. Türkiye için konuşmayacağım, hep arkadan geliyor Türkiye fakat dünya çapında pazarın %80'i artık bu dillere ait.

Dediğin JS Framework'leri? C tabanlı diller ile kıyaslamak pek akıl kârı değil gibi :D
 
Bilgiye ulaşacak kişi burada yazılıma veya programlama nasıl başlanır diye konu açmaz. Gidip eğitim alır, araştırır. İstediğini elde etmek için interneti altına üstüne getirir. En küçük bir zorlukta pes eden yazılıma başlamadan bıraksın.

:D?

Dediğin JS Framework'leri? C tabanlı diller ile kıyaslamak pek akıl karı değil gibi :D
Günaydın, artık JS Framework'leri ile masaüstü programlar yazılabiliyor. Üstelik tek bir kod ile bütün sistemlerle duyarlı programlar.
 
Udemy kurslarının hepsi birbirinin içeriğini kopyalıyor. Eski kursları "güncel" diyerek satıyorlar ya da. Kitaplar üzerinden ilerleyin.
Bu kursları küçümsemek için demiyorum ama ben o kursları gözüm kapalı çekerim. Sırf para kazanmak için yapılan şeyler Udemy kursları, şu ana kadar gördüğüm tüm Türkçe kurslar öyle.

Belirtmek istediğim diğer husus ise, C veya C++ ile başlayarak bilgisayar bilimlerini öğrenin, atlayacaksanız sonra başka dile atlarsınız.
C ailesi öğrenilmesi gereken bir dil ailesi. %100 katılıyorum.

Hayır, bu diller eski değil ve eskimeyecekler de. Bu diller üzerinde ilerleyebilirsiniz de, 50 senedir kullandığınız işletim sistemlerinin neredeyse tümünde çalışan C dilinden bahsediyoruz. Veya oyun sektörünün vazgeçilmezi olan C++'tan. Kullanım alanına göre dil seçin, pazar payına bakarak değil.
Eskiseler de biz görmeyiz büyük ihtimal. Ayrıca kıyaslayan arkadaşın JS Frameworkleri ile kıyaslaması cidden garip ve mantıklı değil.

Günaydın, artık JS Framework'leri ile masaüstü programlar yazılabiliyor. Üstelik tek bir kod ile bütün sistemlerle duyarlı programlar.
Her dili alanında kullanmakta fayda var. Ayrıca web alanı için konuşuyorum: Vanilla JS varken Framework kullanmaya gerek yok, bu güne kadar çalıştığım birçok Senior da bu şekilde düşünüyor. Bilgine...
 
Her dili alanında kullanmakta fayda var. Ayrıca web alanı için konuşuyorum: Vanilla JS varken Framework kullanmaya gerek yok, bu güne kadar çalıştığım birçok senior da bu şekilde düşünüyor. Bilgine...
Stackoverflow'da tagı bulunmayan frameworkten mi bahsediyorsun? Yani bir de imzalarınıza geliştirici falan yazıyorsunuz nasıl yazıyorsunuz anlamış değilim.
 
Stackoverflow'da tagı bulunmayan frameworkten mi bahsediyorsun? Yani bir de imzalarınıza geliştirici falan yazıyorsunuz nasıl yazıyorsunuz anlamış değilim.
Vanilla ne demek biliyor musun? :D
 
Tonlarca güzel eklentiyi kullanmak varken saf hali pek akıl kârı değil.
O tonlarca güzel eklentiyi saf JS ile yazabilirsen; kullanmana gerek kalmaz. :) Ayrıca saf JS ile her şeyi yapabiliyorsun zaten.

Hız ve optimizasyonu bozan şeylerin başında eklentiler gelir. Normal bir kullanıcı için farkı anlamak zor olabilir.
 

Geri
Yukarı