Yazılımcı olmak için üniversite mi, bootcamp mi, kendi kendine öğrenme mi? Uzmanlık alanları, adım adım öğrenme yol haritası, portfolyo projeleri ve ilk iş için CV ipuçları.
Yazılım geliştirici olmanın tek bir resmî yolu yoktur: bilgisayar veya yazılım mühendisliği lisansıyla, bilgisayar programcılığı ön lisansıyla, yoğun eğitim programlarıyla (bootcamp) ya da kendi kendine öğrenerek bu mesleğe girilebilir. Hangi yolu seçerseniz seçin, işverenin görmek istediği şey benzerdir: sağlam programlama temeli, Git ile çalışma alışkanlığı, bir alanda derinleşmiş beceri ve bunların hepsini gösteren birkaç iyi proje. Bu rehberde önce mesleği ve uzmanlık alanlarını, sonra eğitim yollarını, öğrenme sırasını ve ilk işe giden portfolyo planını anlatıyoruz.
Yazılım geliştirici ne iş yapar?
Yazılım geliştirici, bir ihtiyacı çalışan bir programa dönüştüren kişidir. Kod yazmak işin önemli bir parçasıdır ama tamamı değildir. Tipik bir iş haftasında şunlar yer alır:
- Ürün yöneticisi, analist veya müşteriyle birlikte isteğin ne olduğunu netleştirmek
- Kodu yazmak, test etmek ve hataları ayıklamak
- Ekip arkadaşlarının kodunu incelemek (code review) ve kendi kodu için geri bildirim almak
- Canlıdaki sistemde çıkan sorunları çözmek, eski kodu bakım ve iyileştirmeyle güncel tutmak
- Yaptığı işi belgelemek ve ekip toplantılarında ilerlemeyi paylaşmak
Bu yüzden iletişim, yazılı anlatım ve İngilizce dokümantasyon okuyabilmek, teknik bilgi kadar önemlidir.
Uzmanlık alanları: backend, frontend, mobil, veri
Başlangıçta “yazılımcı olmak” geniş bir hedeftir; iş ilanları ise genellikle belirli bir alan için açılır. Aşağıdaki tablo yaygın alanları ve örnek teknolojileri gösteriyor. Listeler eksiksiz değildir, yalnızca yön vermek içindir.
| Alan | Ne yapar? | Örnek teknolojiler |
|---|---|---|
| Backend | Sunucu tarafı iş kuralları, veritabanı, API’ler | Java, C#/.NET, Python, PHP, Node.js, SQL |
| Frontend | Kullanıcının tarayıcıda gördüğü arayüz | HTML, CSS, JavaScript, TypeScript, React, Vue, Angular |
| Mobil | Android ve iOS uygulamaları | Kotlin, Swift, Flutter, React Native |
| Veri | Veri hatları, analiz, raporlama, makine öğrenmesi | Python, SQL, pandas, veri ambarı araçları |
| DevOps / altyapı | Yazılımın derlenmesi, yayına alınması ve izlenmesi | Linux, Docker, CI/CD araçları, bulut servisleri |
Her iki tarafı da yapan geliştiricilere “full-stack” denir. İlk işte bir alanda iyi olmak, her alanda yüzeysel olmaktan genellikle daha değerlidir. Arayüz tarafı ilginizi çekiyorsa frontend geliştirici CV örneği, ilanlarda hangi becerilerin öne çıktığını görmek için iyi bir başlangıçtır.
Eğitim yolları karşılaştırması
Türkiye’de yazılım geliştiricilerin geldiği dört ana yol var. Maliyet ve süre kişiden kişiye değiştiği için tabloda rakam yerine genel bir çerçeve verdik:
| Yol | Süre | Maliyet tipi | Avantajı | Riski |
|---|---|---|---|---|
| Lisans (bilgisayar veya yazılım mühendisliği vb.) | 4 yıl, varsa hazırlıkla daha uzun | Devlet veya vakıf üniversitesine göre değişir | Algoritma, veri yapıları gibi güçlü teorik temel; diploma şartı olan ilanlara erişim; staj imkânı | Uzun süre; ders dışında proje yapılmazsa pratik eksik kalabilir |
| Ön lisans (bilgisayar programcılığı) | 2 yıl | Okul türüne göre değişir | Hızlı başlangıç, uygulamalı dersler; DGS ile lisansa geçiş imkânı | Bazı ilanlarda lisans şartı aranabilir |
| Bootcamp / yoğun program | Birkaç ay | Ücretli, burslu veya sponsorlu olabilir | Proje odaklı, hızlı, ekip çalışması deneyimi | Kalite farkı büyük; temeli yüzeysel bırakabilir; “iş garantisi” vaatleri dikkatle okunmalı |
| Kendi kendine öğrenme | Kişinin temposuna bağlı | Çoğunlukla ücretsiz veya düşük maliyetli kaynaklar | Esnek; çalışırken öğrenme imkânı | Yön kaybı, disiplin gerektirir; portfolyo olmadan ikna etmek zor |
Bölümü farklı olanlar için de kapı kapalı değildir. Matematik, fizik, istatistik, elektrik-elektronik ya da hiç ilgisiz bir bölümden gelip yazılıma geçen çok sayıda kişi vardır. Bu durumda işverenin güvenini diplomanın yerine projeleriniz ve teknik görüşmedeki performansınız kazanır.
Öğrenme yol haritası
En sık yapılan hata, aynı anda üç dil ve beş framework’e başlamaktır. Aşağıdaki sıra çoğu alan için işe yarar; her adımda “bitti sayılır” sütununa ulaşmadan bir sonrakine geçmeyin.
| Aşama | Öğrenilecekler | Bitti sayılır, eğer… |
|---|---|---|
| 1. Temeller | Değişken, koşul, döngü, fonksiyon; liste ve sözlük gibi veri yapıları; komut satırı | Yardım almadan küçük bir konsol uygulaması (ör. yapılacaklar listesi) yazabiliyorsanız |
| 2. Git | Commit, branch, merge, pull request; GitHub’da depo ve README | Her çalışmanız anlamlı commit mesajlarıyla bir depoda duruyorsa |
| 3. Bir dil ve bir alan | Hedef alanın ana dili ve en yaygın framework’ü | Dokümantasyona bakarak yeni bir özelliği kendiniz ekleyebiliyorsanız |
| 4. Veritabanı | SQL temelleri (SELECT, JOIN, GROUP BY), tablo tasarımı | Bir uygulamanın verisini ilişkisel tablolarla modelleyebiliyorsanız |
| 5. Web ve API | HTTP, REST, JSON, kimlik doğrulama temelleri | Bir API’yi hem kullanabiliyor hem basit bir tane yazabiliyorsanız |
| 6. Test ve hata ayıklama | Birim testi, debugger kullanımı, log okuma | Hata mesajından sorunun yerini bulabiliyorsanız |
| 7. Uçtan uca proje | Tasarım, geliştirme, test ve yayına alma | Başkasının internetten açıp kullanabildiği bir uygulamanız varsa |
Bu aşamalar boyunca İngilizce okumayı ihmal etmeyin. Hata mesajları, dokümantasyon ve soru-cevap kaynaklarının büyük bölümü İngilizcedir; teknik metni okuyup anlayabilmek, konuşma akıcılığından önce gelen bir ihtiyaçtır.
Portfolyo ve ilk iş
Deneyimi olmayan bir aday için portfolyo, iş deneyiminin yerini tutan kanıttır. Eğitim videosunu adım adım takip ederek yapılan on proje yerine, kendi kararlarınızı verdiğiniz iki üç proje çok daha ikna edicidir.
Alana göre proje fikirleri
- Frontend: Harcamaları kategoriye göre gösteren kişisel bütçe uygulaması; mobil uyumlu, gerçek bir API’den veri çeken bir arayüz.
- Backend: Kuaför veya klinik için randevu sistemi API’si; kullanıcı girişi, çakışma kontrolü ve testleriyle birlikte.
- Mobil: İnternet yokken de çalışan, sonra senkronize olan bir not veya alışveriş listesi uygulaması.
- Veri: Kamuya açık bir veri setini temizleyip analiz eden ve sonucu grafiklerle anlatan bir çalışma defteri.
İyi bir proje deposunda neler olur?
- Projenin ne işe yaradığını, nasıl çalıştırılacağını ve hangi teknolojilerin kullanıldığını anlatan bir README
- Ekran görüntüsü veya canlı demo bağlantısı
- Düzenli commit geçmişi ve en azından ana akışları kapsayan testler
- “Bu projede neyi zor buldum, nasıl çözdüm?” sorusuna kısa bir cevap
İlk işe giden kanallar
Staj ve uzun dönem staj programları, “junior” veya “yeni mezun” etiketli ilanlar, kariyer günleri, açık kaynak projelere katkı ve küçük serbest işler ilk deneyimi kazanmanın yaygın yollarıdır. Teknik görüşmelerde genellikle temel algoritma soruları, canlı kodlama ya da ev ödevi ve projelerinizi anlatmanız beklenir; bu yüzden kendi projenizin her satırını açıklayabilecek durumda olun.
CV ve ön yazı ipuçları
Yazılım CV’sinde işvereni ilk ilgilendiren şey, ne yaptığınızı görebileceği bağlantılardır.
- Bağlantılar en üstte: GitHub ve varsa portfolyo adresinizi iletişim bilgilerinin yanına koyun. CV oluşturucudaki GitHub alanını doldurursanız bağlantı CV’de görünür; isterseniz QR kod da ekleyebilirsiniz.
- Projeler ayrı bölüm: Deneyiminiz azsa projeleri iş deneyiminin üstüne taşıyın.
- Teknolojileri gruplayın: “Diller: Java, SQL · Framework: Spring Boot · Araçlar: Git, Docker” gibi bir düzen, tek tek yıldızlı çubuklardan daha okunaklıdır.
- İlandaki adlarla yazın: İlan “React” diyorsa sizin CV’nizde de aynı adın geçmesi, aday takip sistemlerinde eşleşmeyi kolaylaştırır.
Proje maddesi için önce ve sonra örneği:
Önce: “Bir web sitesi yaptım.”
Sonra: “React ve Node.js ile küçük restoranlar için masa rezervasyon uygulaması geliştirdim; çakışan rezervasyonları engelleyen API’yi testlerle güvenceye aldım, uygulama canlı demo bağlantısıyla yayında.”
Hazır bir iskelet görmek isterseniz yazılım geliştirici CV örneğini açıp kendi bilgilerinizle düzenleyebilirsiniz. Ön yazıda ise genel cümleler yerine şirketin ürünüyle ya da kullandığı teknolojilerle bağ kurun: “Ürününüzün mobil uygulamasını kullanırken fark ettiğim…” gibi bir giriş, ezber bir paragraftan çok daha akılda kalır. Mesleğe özel kalıplar için yazılım geliştirici ön yazı örneğine bakabilirsiniz.
Sık sorulan sorular
Yazılımcı olmak için ileri matematik bilmek şart mı?
Web ve mobil uygulama geliştirmenin büyük bölümünde temel matematik ve mantıksal düşünme yeterlidir. Oyun motorları, grafik, makine öğrenmesi ve veri bilimi gibi alanlarda ise doğrusal cebir, olasılık ve istatistik bilgisi daha fazla gerekir.
Hangi programlama diliyle başlamalıyım?
Hedef alanınıza göre seçin: web arayüzü için JavaScript, veri için Python, kurumsal backend için Java veya C# yaygın tercihlerdir. İlk dilde temel kavramları oturttuktan sonra ikinci dili öğrenmek çok daha hızlı olur.
İlk işi bulmak ne kadar sürer?
Kesin bir süre vermek mümkün değildir; başladığınız seviye, haftada ayırabildiğiniz zaman, seçtiğiniz alan ve iş piyasasının durumu belirleyicidir. Süreyi kısaltan şey, öğrenmeyi proje üreterek yapmak ve başvurulara portfolyonuz hazır olmadan değil, ilk iyi projeniz bittiğinde başlamaktır.
Bölümüm farklı, yaşım da ilerledi; geç mi kaldım?
Geç kalmış sayılmazsınız; yazılım, farklı alanlardan geçişin mümkün olduğu mesleklerden biridir. Sizden beklenen, öğrendiklerinizi projelerle kanıtlamanızdır. Önceki sektör bilginiz bir avantaj da olabilir: muhasebe geçmişi olan bir geliştirici finans yazılımlarında, sağlık geçmişi olan biri sağlık uygulamalarında fark yaratabilir.
İlk projeniz yayında olduğunda CV’nizi hazırlamanın zamanı gelmiştir. Ücretsiz CV oluşturucuda GitHub ve portfolyo bağlantılarınızı ekleyip Projeler bölümünü öne alabilir, CV’nizi Türkçe veya İngilizce olarak PDF ya da Word biçiminde indirebilirsiniz.
Öğrendiklerinizi uygulamaya koyun
Ücretsiz, üyeliksiz ve dakikalar içinde profesyonel bir CV oluşturun.