Günümzde pek çok sektörde olduğu gibi yazılım sektöründe de yeni başlayan arkadaşlara tavsiyeler yapılmaktadır. Geçmiş tecrübelerime dayanarak en sade ve yalın haliyle kendimce çevreme sürekli kullandığım tavsiyeyi sizlerle de paylaşmak istiyorum.

Ben bu tavsiyeleri  4 ana başlığa ayırıyorum. 

Hangi Bölüm? = Hangi Dil? = Hangi Framework? = Hangi IDE?

Hangi Bölüm?

Öncelike hangi bölüm kısmını biraz açalım. Yazılımcı olmak istiyorsunuz ancak yazılım dünyasının da pek çok sektör gibi birden fazla bölümü branşı yada adına her ne derseniz bulunmaktadır. 
Ben bölümleri 5 kategoriye ayırıyorum. 

1-) Database
2-) Back-End
3-) Front-End
4-) Mobil
5-) FullStack

Database : Eğer içinizde bir kütüphaneci içgüdüsü var ise ve istiflemeyi seviyorsanız bütün bunları yaparken bir analitik düşünceyle yapabilirim diyorsanız bu bölüm tam size göre. 

Verileri saklamak, istiflemek, düzene koymak, anlamlandırmak, ilişkilendirmek gibi pek çok özelliği içerisinde barındıran Database bölümü bir binanın temeli gibidir. Temel ne kadar sağlam ve kurgusu ne derece farklı varyasyonlara hazırlıklı ise ( deprem, sel, toprak kayması, kat sayısı , kaçak kat, katlara sonradan ilave edilecek eşya ve yük vs. vs. )  o derece sağlam bir proje ortaya çıkacaktır. 

Dolayısı ile her projede database öyle yada böyle olmazsa olmazlardandır. 

Back-End : Database ile son kullanıcı arasındaki tüm işlemleri, hesaplamaları, çıktıları yapan bölümdür. CRUD dediğimiz ( Ekleme, Silme, Güncelleme, Seçme ) olaylarının tamamı bu kımıda planlanır ve kodlanır. Son kullanıcıdan gelebilecek istekleri kontrol eden ve veritabanına ileten veritabanınıdan gelen sonuçlarıda son kullanıcı tarafına ileten bir köprüdür aslında. Şu anda bilinen 1200'ün üzerinde Back-End progralama dili bulunamkla beraber en popüler kullanılan 10-15 tanesi günümüzde ve gelecek 10-15 yıl içerisinde popülerliğini koruyacağı gözüyle bakılmaktadır.

Back-End developer olan bir arkadaş hem Databse yani veritabanı ile içli dışlı olacağından hem de Front-end ile temaslı olduğundan FullStack Developer olması diğer bölümlere göre daha kolaydır. 
Ayrıca pek çok Back-End developer kendi veritabanı mimarisini inşa edebilir. 

Front-End : Türkçe karşılığı Arayüz olarak kabul edilen Front-End bölümü ise son kullanıcıya hitap eden ve arak plandı database ile back-end deryasından çıkan sonuçları sunan taraf olaraktır. Front-End 2015 yıllarına kadar sadece web tasarım olarak HTML, CSS, JavaScript olarak kabul edilse de günümüzde artık Server Client tarafında vazgeçilmez büyük bir deryadır. 

Neredeyse Back-End kısmını atlayarak doğrudan veritabanınıda yada servislerde işlem yapan ve her geçen gün daha çok dinamikleşerek Back-End statüsü kazanan ancak görsel ve kullanıcı deneyimine dayalı bir bölümden bahsediyoruz aslında. 

Mobil : Günümüzde ve önümüzdeki uzun yıllar popülerliğini koruyacak olan Mobil uygulama gelişticileri; Oyun mobil uygulama geliştiricileri ve Diğer mobil uygulama geliştiricileri olarak ikiye ayırabiliriz. 

Mobil developer arkadaşlar genellikle servisler ve local-cloud veritabanları ile çalışmaktadır. Mobil işletim sistemlerine göre iOS - Android developer olabilirsiniz. Veya günümüzde artık yaygınlaşan Native versiyonları çıkan Hybrid dediğimiz her iki hatta daha fazla platformda da çalışabilen ve ayrı ayrı dil bilmeye gerek kalmayan uygulama dillerini de öğrenebilirsiniz. 
Örn : React Native , Flutter vs. 

FullStack : Ben bu bölümü üniversitelerde Endüstri Mühendisliği ile benzetiyorum. ASlında tüm bölümlerden bilgisi olan bir kaçıyla uzmanlaşan ancak tamamen bir bölümün hakimi olmayan arkadaşlardır. Genellikle bir projeyi baştan sona kendileri yapabilirler. Product-Manager dediğimiz bir ürünün çıkarılmasında patronluk yapabilirler. Kendilerini geliştirdikleri taktirde CTO olmaları için hiçbir neden yoktur. 

Hangi Dil?

Evet hangi bölümde kendimizi koyacağımıza karar verdik ve şimdi geldi hangi dil üzerinde kendimizi geliştireceğimiz ve eğitimini alacağımız kısmına. 
Unutmayın her bölümün kendine munhasır popüle dilleri vardır o yüzden öncelikle hangi bölüme kalacağınıza doğru karar vermek çok önemlidir. 

Sanırım şu anda Düya'da 2.000'i geçkin programlama dili var. Fakar bu dillerin sadece 100 tanesi popülerdir veya değildir.
Bunların bir çoğu Back-End kısmında olmakla beraber Front-End kısmında da hatırı sayılır bir dil olduğunu biliyoruz. 
Seçeceğiniz bölüme göre popüper dillere karar vermek için araştırma yapabilirsiniz. 
Mesela : https://www.google.com/search?q=popular+backend+languages&oq=populer+bac-end+lang&aqs=chrome.1.69i57j0l7.12395j0j7&sourceid=chrome&ie=UTF-8

Hangi Framework?

Bölüme karar verdiniz, hangi dil üzerinde eğitim alacağınıza yada odaklanacağınıza da karar verdiniz diyelim şimdi sırada Hangi framework'ü ilk etapda öğreneceğinize geldi. Bana kalsa tercih edeceğiniz dili önce framework olmadan core şeklinde öğrenmeniz ancak günümüzde bu hem zaman kaybı hem de çok az güncel kaynak bulabiliyorsunuz. 

Örneğin : Back-End Developer bölümünü seçtiniz. Dil olarak PHP'ye karar verdiniz. Framework olarak ise önünüze bir çok seçenek gelecektir. Zend, Laravel, Symfony, Codeigniter vs. bunlardan popülerlik veya öğrenim kolaylığı açısından birini tercih ederek eğitimine başlayabilirsiniz. ( unutmayın tüm Framework  ufak tefek fonksiyon yada class kullanımları haricinde aynı mantık üzerine inşa edilmiştir. MVC = Model-View-Controller

Hangi IDE? 

En son sırada ise kodlama yapacağınız IDE yani editöre karar vermek olmalıdır. Not defterinde de yazan var, Dreamweaver dediğimiz programda da, NorePad++ kullanan da var mecburi kullanmak zorunda olacağınız IDE'lerde var. Örn : iOS developer için XCode, Android için Android Studio vs. 

İlerleyen zamanlarda bu makaleyi biraz daha zenginleştireceğim. Şimdilik bu kadar.
Yeni başalyacak arkadaşlara bir nebze de olsa katkısı olursa ne mutlu bana. 

Sizde yorum olarak Hangi Bölüm => Hangi Dil =>Hangi Framework  => Hangi IDE
tercihlerinizi yazabilirsiniz. Esenle kalın.