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:
@die C dillerine eski diyorsun..
Her ne olursa olsun C ailesi bitmez. C dillerin atası gibidir. Burada hala JS Framework'leri savunmanın bir anlamı olduğunu düşünmüyorum.
 
Son düzenleme:
Açtığınız konu için teşekkür ederim.

Ben IT alanına yönelmek istiyorum, Udemy üzerinden birkaç kurs ile temel attıktan sonra ingilizce dili üzerine yoğunlaşıp daha fazla kaynak bularak bilgiye olan erişimimi kolaylaştırmak istiyorum.
Ayrıca Google da ücretli olarak IT dersi ve lisans veriyor.

Bu süreçte şunu bunu yap diyeceğiniz bir şeyler var mıdır?
 
Bu tartışmalardan bıkmış biriyim. Bu yüzden görünce karışmıyorum ama etiketlendiğim için 2 kelam edeceğim.

Her ne kadar C# C ailesinde sayılsa da özellikle syntax olarak Java'ya çok yakın. Genel yapısı da öyle. C ile C++ ikisinden farklı şeyler. C köylü işi iken (Geçen hafta ödev olarak system call ve kernel modülü yazdım. Hiç hoş şeyler değiller. O çok sevdiğiniz (özellikle JS'ciler) OOP'yi mumla aradığınız gün başınıza gelirse programlamanın ne olduğunu anlarsınız.) C++ arada, C# ise OOP'dir. Direkt kıyaslanmalarını doğru bulmuyorum. Bu çoğu dil için geçerli. Gidin kullanım alanına göre kıyaslayın. Android için Java vs Kotlin deyin.

Günümüz teknolojisi sağ olsun performans eskisi kadar önemli değil. Daha doğrusu amele işi yaptırdığınızda elinizdeki donanım bunu kaldırabilecek durumda. Gidip sevdiğin teknolojiler ile AAA bir oyun yaparsan o zaman vakimi ayırıp bir şeyler diyebilirim.
 
Bu tartışmalardan bıkmış biriyim. Bu yüzden görünce karışmıyorum ama etiketlendiğim için 2 kelam edeceğim.

Her ne kadar C# C ailesinde sayılsa da özellikle syntax olarak Java'ya çok yakın. Genel yapısı da öyle. C ile C++ ikisinden farklı şeyler. C köylü işi iken (Geçen hafta ödev olarak system call ve kernel modülü yazdım. Hiç hoş şeyler değiller. O çok sevdiğiniz (özellikle JS'ciler) OOP'yi mumla aradığınız gün başınıza gelirse programlamanın ne olduğunu anlarsınız.) C++ arada, C# ise OOP'dir. Direkt kıyaslanmalarını doğru bulmuyorum. Bu çoğu dil için geçerli. Gidin kullanım alanına göre kıyaslayın. Android için Java vs Kotlin deyin.

Günümüz teknolojisi sağ olsun performans eskisi kadar önemli değil. Daha doğrusu amele işi yaptırdığınızda elinizdeki donanım bunu kaldırabilecek durumda. Gidip sevdiğin teknolojiler ile AAA bir oyun yaparsan o zaman vakimi ayırıp bir şeyler diyebilirim.
Aslında sizi böyle bir tartışmaya çağırmak istemezdim, bu tartışmaları sevmediğinizi biliyorum. Biz arkadaşa anlatıyoruz ama anlamıyor. Hatta sonradan bu işi tartışmadan çıkartıp laf atmaya çevirdi. Ben de bu işlerin uzmanı birisinden bir görüş almayı tercih ettim, kendi söylediklerimin doğru olduğunu biliyorum ama arkadaş inadına ısrarcı ve yanlışını kabul etmek yerine laf atma yöntemine başvuruyor.

Söylediğiniz şeylere %100 katılıyorum, etiketlediğim için gelip açıklama yaptığınız için teşekkür ederim. Eğer rahatsız ettiysem kusura bakmayın.
 
Son düzenleme:
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.
Bir Web Developer olarak şu mesaja güldüm. C# Benim en sevmediğim dil olmasına rağmen her sektörde kullanılan bir dil. C++ için yorum bile yapmayacağım, zaten kendisi dillerin GOAT'ı. O saydığın React, Angular ve Node'un asıl ait olduğu sektör Web programlama. "Ama PWA'lar yaygınlaşıyor" veya "Nodejs artık her yerde kullanılıyor" gibi saçma argümanlara da 10 20 yıl sonraki sektörün durumuna göre cevap veririm artık.
 

Technopat Haberler

Yeni konular

Geri
Yukarı