Yazılımcılar, bilgisayar programları, uygulamalar veya sistemler geliştirerek, yazılım süreçlerini yöneten ve sorunları çözen profesyonellerdir. Genellikle algoritmalar oluşturur, kod yazar, hata ayıklar ve sürekli olarak yazılım geliştirme süreçlerini iyileştirmeye çalışırlar. Bu yazılımlar, işletim sistemlerinden web sitelerine, mobil uygulamalardan oyunlara kadar çok çeşitli alanları kapsayabilir. Peki yazılımcı olmak için ne yapmamız gerekiyor? Hangi eğitimleri almalıyız? Nasıl iş buluruz?
Nasıl yazılımcı olunur?
Yazılımcı olmak için en yaygın yol, üniversitelerin Bilgisayar Mühendisliği veya Yazılım Mühendisliği bölümlerinde eğitim almaktan geçiyor. Ayrıca Açık Öğretim Fakültelerinden Bilgisayar Programcılığı veya Web Tasarım gibi alanları da seçebilirsiniz. Bu bölümler, yazılımın temellerini ve farklı yazılım geliştirme süreçlerini öğretiyor. Ayrıca, yazılımcılara gerekli olan matematik ve problem çözme becerileri de kazandırıyor.
Fakat üniversite eğitimi dışında, yazılımcı olmak için dışarıdan da eğitim alınabilir. Bunun için birçok kurs, bootcamp ve online platform (Udacity, Coursera, edX gibi) mevcut. Üstelik bu eğitimler, genellikle daha kısa sürede ve daha az maliyetle sonuç veriyor.
Hangi yazılım dillerini öğrenmek daha kolaydır? Ne işe yararlar?
- Python:
- Öğrenmesi kolay ve çok yönlü bir dil. Veri bilimi, yapay zeka, web geliştirme gibi birçok alanda kullanılıyor. Syntax(yazım dili) basit olduğu için birçok yazılımcı adayının ilk dili olmak için ideal bir dil olarak öne çıkıyor.
- Birçok alanda kullanılabilme esnekliğini sağlayan Python, genel olarak veri bilimi ve yapay zeka alanında sağladığı kütüphanelerle tanınır ve bu yüzden bu alanlarda yoğun olarak kullanılır.
- JavaScript:
- Web geliştirme için temel bir dil. Front-end (React, Angular, Vue) ve Back-end (Node.js) geliştirmelerde kullanılıyor. Core JavaScript direkt olarak birçok kurumsal firma veya start-up tarafından kullanılmasa da React, Angular, Vue gibi JS tabanlı kütüphanelerin altyapısı JavaScript olduğundan dolayı ilk olarak JavaScript ile başlayıp daha sonra sektörde popüler olan ReactJS, AngularJS’e geçiş yapılabilir.
- Java:
- Büyük ölçekli projelerde yaygın olarak görüyoruz. Android uygulama geliştirme süreçleri de Java ile yapılıyor. Uzun süredir Java öldü mü ölecek mi tartışmaları sürerken Java’nın sahibi Oracle Java’ya desteğini bitirecek gibi durmuyor.
- Java “WORA” prensibini baz alıp oluşmuş bir dildir. WORA: Write Once, Run Anywhere şeklinde açılır ve Türkçe olarak bir kere yaz ve her yerde çalıştır anlamına gelir. JVM(Java Virtual Machine) sayesinde JRE(Java Runtime Environment) yüklü her cihazda çalışabilir. Bu da onu platform bağımsız yapar.
- Ayrıca birçok kurumsal firmanın altyapısında Java kullanıldığı için Java şehir efsanelerinde söylendiği gibi bir gün “ölecek” olsa bile ki böyle bir durum yakın gelecekte söz konusu değil, bu büyük ölçekli firmalar sistemlerini yenileyene kadar Java canlı kalmaya devam edecektir. Bu da tüm firmalar aynı anda Java’dan vazgeçiyoruz dese bile, sistemlerini tamamen yenilemeleri on yıllar sürebileceği için Java Geliştiricilerine ihtiyaç duyulacaktır. Fakat daha önce de bahsettiğimiz gibi, Sun firması tarafından oluşturulan Java dili şuan Oracle bünyesindedir bu da ona sürekli destek ve mali güçlülük sağlar.
- C#:
- Microsoft ekosistemi için idealdir. Oyun geliştirmeden (Unity) Windows uygulamalarına kadar birçok alanda kullanılıyor. Arkasında Microsoft bulunduğu için sürekli güncel tutulan bir dil olmasının dışında Microsoft tarafından sürekli desteklenir ve bu yüzden büyük firmalar tarafından kullanılır.
- SQL:
- Veritabanı yönetimi için kullanılır. Tüm veri odaklı pozisyonlarda önem arz ediyor.
- Öncelikle İlişkisel Veritabanlarının mantığı oturtulduktan sonra NoSQL diye bildiğimiz ilişkisel olmayan veri tabanlarına geçilebilir.
- İlişkisel veritabanlarında MySQL, MSSQL, PostgreSQL öne çıkarken, NoSQL’de ise Cassandra, MongoDB, Redis gibi örnekleri siz okuyucularımız için önerebiliriz.
- Scala
- Birçok listeye baktığınızda göremeyeceğiniz veya eğitimleri hiç de popüler olmayan veri işlemleri için popüler olan bir dil Scala. Bu dil hem nesne yönelimli programlama hem de fonksiyonel programlamayı baz alır. Syntax’i diğer dillere görece daha zordur.
- Neden Scala sorusunun cevabı ise Scala Geliştiricilerinin piyasada çok az olması ve birçok büyük firma tarafından kullanılması olabilir. Tek bu da değil. Scala görece daha zor ve az uzmanı olduğundan dolayı geliştiricileri yüksek maaşlarla iş bulabilirler. En çok kazandıran programlama dilleri anketlerinde genelde Scala, Ruby on Rails öne çıkar.
Hangi alanlar için hangi yazılım dillerine yönelmeliyiz?
- Web Geliştirme: HTML, CSS, JavaScript, ReactJS, Svelte, Java(Spring Boot teknolojisiyle beraber), .NET, Python(Django teknolojisiyle beraber), NodeJS ile beraber web geliştirme yapabilirsiniz. HTML, CSS, JavaScript olmazsa olmazdır. Backend yani arka yüz geliştirme ise sizin seçiminize kalmakla beraber Java ve NodeJS bizim önerilerimizdir.
- Mobil Geliştirme: Oyun geliştirmek için Unity ve JavaScript bilmeniz dahi yeterlidir. Flutter ve React-native ise cross platform yani hem iOS hem Android tarafına kod üretir yani bu teknolojilerle yaptığınız uygulamalar hem App Store’da hem de Play Store’da yayınlanabilir.
- Veritabanı Yönetimi: SQL veya NoSQL veritabanları konusunda uzmanlaşabilirsiniz. Veritabanı tasarımlarını yapıp daha sonra bu tasarımları veritabanlarında uygulamanız sizi geliştirecektir. SQL için MySQL, NoSQL için Cassandra’yı önerebiliriz.
- Yapay Zeka ve Makine Öğrenimi: Python, TensorFlow, PyTorch gibi araçlarla yapay zeka ve makine öğrenimi alanında çalışabilirsiniz. Ayrıca Java veya diğer hemen her programlama dilinde yapay zeka geliştirmeleri yapabilirsiniz. Fakat yazının başında belirttiğimiz gibi yapay zeka ve veri işleme denince akla ilk Python gelir.
Yazılımcıların kendilerini geliştirebilecekleri birçok farklı alan var. Fakat başlıca öne çıkanlar arasında web geliştirme, mobil uygulama geliştirme, oyun geliştirme, yapay zeka, makine öğrenimi, veri bilimi ve siber güvenlik geliyor.
Web geliştirme alanında kendini geliştiren yazılımcılar, web siteleri ve web uygulamaları geliştirebilirler. Mobil uygulama geliştirme alanında ise akıllı telefonlar ve tabletler için uygulamalar geliştirebilirler. Benzer şekilde oyun geliştirme alanındakiler de bilgisayar ve konsol oyunlarının yapım aşamasında aktif rol oynayacaktır. Bunlar her ne kadar en çok bilinenler olsa da gelecek yapay zeka ve makine öğrenimi ile veri bilimi ve siber güvenlik alanlarında.
Yazılımcılar nasıl iş bulur?
İş bulma kısmı ise oldukça basit. LinkedIn, Indeed, Glassdoor gibi sitelerde iş ilanlarına başvurabileceğiniz gibi, biraz daha lokal olan kariyer.net ve işbul.net gibi siteleri de kullanabilirsiniz. Ne kadar maaş alacağınız ise seçeceğiniz bölüme, bilginize ve pozisyonunuza göre değişecektir. Fakat tüm detayları buraya tıklayarak öğrenebilirsiniz.
Buna ek olarak, getirisi istediğiniz kadar yüksek olmasa dahi portfolyonuzu genişletmek için gerçek projelerde çalışmanızı, örneğin GitHub gibi platformlarda projelere katkıda bulunarak kendinizi göstermenizi ve bu alanda deneyimli kişilerden mentorluk almanızı tavsiye ediyoruz.
{{user}} {{datetime}}
{{text}}