Konu Başlıkları Gizle
- 1 Giriş: Yazılım Neyin Nesi, Neden Bulaşayım?
- 2 Bölüm 1: Hangi Alanı Seçelmeli?
- 3 Bölüm 2: Nereden Başlıyoruz?
- 4 Bölüm 3: Web Geliştirme Yol Haritası (Detaylı)
- 5 Bölüm 4: Temiz Kod Yazma Sanatı
- 6 Bölüm 5: Proje Yapmadan Olmaz
- 7 Bölüm 6: Sık Sorulan Sorular (SSS)
- 8 Bölüm 7: Kaynak Önerileri
- 9 Bölüm 8: İş Bulma Süreci
- 10 Kapanış
- 11 ÖNERDİĞİM KAYNAKLAR:
Selamünaleyküm arkadaşlar,
Oturdum düşündüm, "ulan zamanında bana şunları anlatan bir abim/arkadaşım olsaydı işim ne kadar kolaylaşırdı" dedim. O yüzden üşenmedim, oturdum size bu rehberi hazırladım. Bu rehber tamamen kendi tecrübelerime ve edindiğim bilgilere dayanmaktadır. Eğer üşenmeyip sonuba kadar okursanız, bu yazıdan sonra kendi yolunuzu çizebileceksiniz. Neyse kısa kesip konuya geçelim.
Giriş: Yazılım Neyin Nesi, Neden Bulaşayım?
Baştan anlaşalım, bu iş öyle "2 ay kursa gittim hadi paraları kazanayım" işi değil. Yazılım bir maraton arkadaşlar, 100 metre koşusu değil. Bunu kafaya yazın bir kere. Ben de ilk başlarken "tamam ya 2 aya Full stack olurum" diyordum, tabii olamadımYazılım dediğimiz olay aslında şu, karşınızda bilgisayar denen süper hızlı ama bir o kadar da salak bir asistan var. Cidden aptal yani, sen "şunu yap" demeden parmağını kıpırdatmaz. İşte programlama dilleri de bu asistanla konuşmamızı sağlayan araçlar.
E bakıyosun şimdi her evde PC var, herkesin elinde telefon. Bankası, hastanesi, Trendyol'u, getiri osu busu derken her yer yazılım. Yani iş imkanı GaN'i GaN'i, maaşlar da tatmin edici. Evden çalışma (Home Office) rahatlığı da cabası. Ama dediğim gibi, emek istiyor, poponuzun biraz sandalyeye yapışması lazım.
Bölüm 1: Hangi Alanı Seçelmeli?
Burasıçok önemli. Zira yazılım derya deniz, hepsine atlamayın boğulursunuz. Ana dalları bir özet geçeyim, hangisi size uyarsa oradan yürüyün:Web Geliştirme
İkiye ayrılıyor bu mevzu:
-Front-End (Ön Yüz): Hani siteye girince gördüğünüz butonlar, renkler, o şekilli şukullu menüler var ya, işte onlar. Kullanıcının gördüğü her şey Front-End'ci kardeşlerimizin eseri. HTML, CSS, JavaScript üçlüsü buranın Allah'ın emri zaten. Framework olarak da React, Vue.js ya da Angular var.
-Back-End (Arka Yüz): Bu da perdenin arkası. Site nasıl çalışıyor, veriler nereye gidiyor, güvenlik nasıl sağlanıyor... Kullanıcı görmez ama motor orasıdır. C#, Java, Python, Node.js falan dönüyor burada. Framework'ler de .NET Core, Spring, Django vs.
-Full-stack: "Ben ikisini de yaparım hacı" diyen cengaverler. Hem ön yüzü hem arka yüzü kodlar. Piyasada çok aranır ama ikisini de iyi öğrenmek bayağı vakit alıyor, baştan söyleyeyim.
Mobil Uygulama Geliştirme
Telefon elinizden düşmüyorsa burayı sevebilirsiniz. İki taraf var malum: iOS ve Android.
iOS için Swift veya Objective-C (eskidi biraz) lazım. Android için Kotlin veya Java. Ama son zamanlarda benim de çok sevdiğim bir olay var, Cross-platform. Yani bir kod yazıyosun, hem IPhone'da hem Android'de çalışıyor. Flutter ve React Native en meşhurları. Ben şahsen Flutter seviyorum, Google arkasında, bayağı da zevkli bence.
Oyun Geliştirme
Biliyorum, sizde benim gibi hepiniz oyun oynamayı seviyosunuz, "ben de yapacağım" diyosunuz. Unity (C# ile) ve Unreal Engine (C++ ile) en popüler motorlar. Unity özellikle mobil oyunlarda falan çok popüler. Öğrenmesi de nispeten kolay.
Yalnız uyarayım, dışarıdan eğlenceli görünür ama saç baş yoldurabilir
Veri Bilimi ve Yapay Zeka
Son yılların starı. Buranın kralı Python. Makine öğrenmesi, derin öğrenme, veri analizi falan hep burada. TensorFlow, Pandas falan öğrenmeniz lazım.
Yalnız burada matematik bilmek şart arkadaşlar. İstatistik, olasılık falan aranız yoksa biraz zorlanırsınız, yalan yok. Ben matematikte çok iyi değildim o yüzden bulaşmadım, webe kaydım mesela
Siber Güvenlik
Heçkır olmaya özenenler buraya.
Blockchain ve Web3
Kripto paraların, NFT'lerin arkasındaki teknoloji. Solidity diliyle akıllı kontratlar yazılıyor. Yeni alan, fırsat var ama piyasa çok oynak. Dikkatli olmak lazım.
Artırılmış ve Sanal Gerçeklik (AR/VR)
Metaverse muhabbetleriyle popülerleşti bu da. Unity falan kullanılıyor burada da. Geleceği parlak ama şu an iş imkanları diğerleri kadar bol değil.
Bölüm 2: Nereden Başlıyoruz?
Tamam alanı seçtin, peki napıcan?Adım 1: Algoritma ve Mantık
Dil öğrenmeden önce kafayı bir kodlamacı gibi çalıştırmayı öğrenmek lazım. Algoritma ne? Bir işi yapma sırası.
Mesela bakkala giderken: Kapıyı aç -> Çık -> Sola dön -> 100 metre yürü -> durağa git -> otobüse bin... Bu bir algoritma işte.
Programlamada da aynı mantık. Bilgisayara adım adım ne yapacağını söylüyorsun. Flowchart çizmeyi öğren, kağıt üstünde problem çöz. Temel yoksa bina çöker.
Adım 2: İlk Dili Seçme (Kavga Çıkan Konu)
Herkes burada takılıyor babacım. "Hangi dil en iyisi?" diye. En iyisi yok, işine yarayanı var. Bir dili iyi öğrenirsen diğerine geçmek çocuk oyuncağı, mantık aynı çünkü.
Tavsiyelerim:
Başlangıç için: Python. İngilizce biliyorsan okur gibi yazıyosun, çok temiz. Hata mesajları anlaşılır.
Web için: JavaScript. Kaçarı yok, web istiyosanız öğreniceksiniz. Front-End'de şart, Back-End'de de kullanılır.
Kurumsal işler için: C#. Türkiye'de şirketlerde çok kullanılır, Microsoft arkasında sağlamdır.
Android: Kotlin veya Java.
iOS:Swift.
Adım 3: Temel Kavramlar
Hangi dili seçersen seç şunları adın gibi bilmen lazım:
Değişkenler, if-else durumları, döngüler (for, while), fonksiyonlar, diziler, OOP mantığı... Bunlar alfabenin harfleri gibi, bilmeden cümle kuramazsın. Temelin sağlam olmazsa ileride çok zorlanırsın.
Adım 4: Veri Yapıları ve Algoritmalar
Burası biraz daha ileri seviye ama mülakatlarda affetmez sorarlar. Array, Stack, Queue falan bunları öğrenin. Sıralama algoritmaları var bir de (bubble sort, quick sort falan). HackerRank, LeetCode gibi sitelerde bol bol soru çözün. Günde 1 soru bile atsanız kafi.
Bölüm 3: Web Geliştirme Yol Haritası (Detaylı)
Benim gibi webci olmak isteyenlere özel:Front-End Tarafı
HTML (1-2 hafta): İskelet bu. Başlık, paragraf, resim... Basit iş, hızlı geçersin.
CSS (2-4 hafta): Makyaj kısmı. Siteyi güzelleştirir. Flexbox ve Grid yapılarını mutlaka öğrenin. Mobilde düzgün görünmesi (responsive) çok önemli.
JavaScript (1-3 ay): Olayın beyni. Tıklayınca ne olacak, veri nasıl gelecek vs. DOM, fetch API falan bunları yalayıp yutun.
Framework: React, Vue veya Angular. React piyasada çok popüler, iş ilanı çok. Ben React öneririm ama Vue da kolaydır.
Ekstralar: TypeScript (büyük projelerde şart), Tailwind CSS veya Bootstrap, Git ve GitHub (versiyon kontrolü, bu olmadan olmaz).
Back-End Tarafı
Dil Seç: C#, Java, Python, Node.js, PHP... Birini seç ve yardır.
veri tabanı: SQL öğrenin mutlaka. Veri tabanı olmadan olmuyor bu işler. MySQL olur, PostgreSQL olur. CRUD işlemleri dediğimiz (Ekle, Oku, Güncelle, Sil) olayını iyi kavrayın.
Framework: Diline göre değişir. C# için ASP.NET Core, Java için Spring Boot, Python için Django, Node.js için Express.
API: REST API nedir, nasıl yazılır öğrenin. JSON formatı, HTTP metodları (GET, POST vs.)... Bunlar çok önemli.
İleri Seviye: Docker, Kubernetes, Microservices, Cloud (AWS falan)... Bunlar senior işi ama kulak dolgunluğu olsun.
Bölüm 4: Temiz Kod Yazma Sanatı
Çalışan kod yazmak kolay, temiz kod yazmak zor zanaat... Şunlara dikkat edin:Anlamlı İsimlendirme: Değişkenin adını "a", "b", "X" koymayın abi. "userAge", "kullaniciYasi", "fiyatHesapla" de. 6 ay sonra kendi koduna bakınca "bu ne lan" deme.
Tek Sorumluluk: bir fonksiyon hem yemek yapsın hem bulaşık yıkasın olmaz. Her fonksiyon tek iş yapsın.
Tekrar Etme (DRY): Aynı kodu kopyalayıp başka yere yapıştırıyosan bir yerde yanlış yapıyosun demektir. Fonksiyon haline getir onu.
Yorum Satırları: Her satıra yorum yazma, kod zaten kendini anlatsın. Sadece karmaşık yerlere açıklama gir.
Formatlama: Girintiler, çıkıntılar düzgün olsun. Prettier gibi araçlar kullanın, gözünüz bozulmasın.
Bölüm 5: Proje Yapmadan Olmaz
Teoriyi öğrendin güzel ama proje yapmadan bir şey öğrenilmez. Elinizi kirletmeniz lazım.Başlangıç: Hesap makinesi, Not defteri, To-Do list (klasiktir), Hava durumu uygulaması.
Orta: E-ticaret sitesi (sepet mantığı, ödeme), Sosyal medya klonu, Chat uygulaması, Film öneri sitesi.
İleri: Bunları Dockerlayın, Cloud'a atın, CI/CD kurun, mobil uygulamayla bağlayın.
Yaptığınız her şeyi GitHub'a atın gencolar.commit mesajlarınız düzgün olsun. Readme dosyası hazırlayın. Bu senin portfolyon olacak, iş başvurusunda çok işe yarar.
Bölüm 6: Sık Sorulan Sorular (SSS)
İngilizce şart mı?Şart değil diyen yalan söyler. Yani başlangıçta Türkçe kaynak çok ama ilerledikçe mecbursun. Hata mesajları İngilizce, dokümanlar İngilizce, Stack Overflow İngilizce. Yavaştan öğrenmeye bakın.Kaç yaşında yazılımcı olunur?Yaş sınırı yok. 15 yaşında başlayan da var, 45 yaşında başlayan da. Önemli olan istek ve azim. Ama ne kadar erken o kadar iyi tabii.
Yazılım için okul şart mı? Vallahi büyük kurumsal yerler diplomaya bakabiliyor ama sektör artık değişti. İşi biliyorsan, portfolyon sağlamsa kimse diplomayı sormaz. Alaylı çok usta yazılımcı var tanıdığım.
Günde kaç saat çalışmalıyım? Süreklilik önemli. Haftada bir gün 14 saat çalışacağına, her gün 2 saat çalış daha iyi. Ama ciddi ilerleme istiyorsan, günde en az 2-3 saati gözden çıkar.
Matematikte kötüyüm, olur mu? Olur. Veri bilimi hariç, lise matematiği çoğuna yeter. Web, mobil falan yapacaksanız temel mantık yetiyor.
Kaç ayda yazılımcı olurum? Hiçbir zaman tam olarak olmuyorsun. Teknoloji durmuyor ki, sürekli yeni bir şey çıkıyor
Bölüm 7: Kaynak Önerileri
ücretsiz: FreeCodeCamp (Efsanedir), The Odin Project, MDN Web Docs, W3Schools, YouTube (Traversy Media, Fireship candır), CS50.Türkçe: BTK Akademi (bedava, sertifikalı), Udemy Türkçe kurslar, YouTube Türkçe kanallar, Patika. Dev.
Pratik: LeetCode, HackerRank, Codewars.
Topluluk: Stack Overflow, GitHub, Reddit,
Discord sunucuları, bizim yerli forumlar.
Bölüm 8: İş Bulma Süreci
Teknik bilgi tamam, peki iş nasıl bulacağız?Portfolio Hazırla: GitHub profilini düzenle. En iyi projelerini pinle. Her projenin README'si olsun. Kişisel bir web siten olsun.
LinkedIn'i Aktif Kullan: Profilini doldur. Yazılımla ilgili paylaşımlar yap. İnsanlarla bağlantı kur. İK'cılara görünür ol.
CV'ni Hazırla: Tek sayfa, öz ve temiz. Projelerini, teknolojilerini yaz. Gereksiz bilgiyle boğma.
Mülakat Hazırlığı: Teknik mülakatlara hazırlan. Algoritma soruları çöz. Behavioral (davranışsal) sorulara hazırlıklı ol.
Staj ve Junior: İlk işin maaşı düşük olabilir, kabul et. Deneyim kazanmak önemli. 1-2 sene sonra maaşın katlana katlana artacak zaten.
Kapanış
Rehber burada bitiyor ama sizin yolculuk yeni başlıyorPes etmeyin, sürekli öğrenin, proje yapın. Bu yolda yalnız değilsiniz, binlerce kişi aynı yoldan geçti.
Not: Konuyu güncellerim aklıma geldikçe. Takipte kalın. İyi Sosyaller.
ÖNERDİĞİM KAYNAKLAR:
Aşağıya bıraktığım linkler ve kitaplar bu işin Kutsal Kitapları gibidir. Çoğu İngilizce ama korkmayın, translate ile de olsa sökersiniz. Bunları yalayıp yutan adam piyasada aç kalmaz, net söylüyorum. Kaydedin bir kenara, lazım olur.
Yol Haritası (Roadmap)
Okunması Gereken "Baba" Kitaplar
Teknik & Pratik Siteleri
Daha tonla kaynak var ama bunlar başlangıç ve orta seviye için altın madeni. Hepsine birden saldırmayın, boğulursunuz. İhtiyacınız oldukça bakın.
Hadi bakalım, kolay gelsin cümleten. Bu kıyağımı da unutmayın
- roadmap. Sh: Bakın bu site efsanedir. "Hangi dilden sonra ne öğreneceğim, sırada ne var?" derdini bitirir. Front-End, Back-End, DevOps... Tıkla yoluna bak. Kaybolursanız pusulanız burası olsun.
- Clean Code (Robert C. Martin): Yazılımcıyım diyenin kütüphanesinde bu yoksa şüphe ederim. Temiz kod nasıl yazılır, spagetti koddan nasıl kurtulunur... Başucu kitabımdır.
- The Pragmatic Programmer: Bu kitap size kod yazmayı değil, yazılımcı gibi düşünmeyi öğretir. Kariyer tavsiyesi gibidir, ufkunu açar adamın.
- Head First Design Patterns: Tasarım kalıplarını (Design Patterns) en iyi, en akılda kalıcı anlatan kitap budur. Resimli mesimli, sıkmaz.
- Refactoring. Guru: Tasarım kalıpları ve Refactoring için dünya üzerindeki en iyi site olabilir. Görsellerle öyle bir anlatmış ki anlamamak imkansız.
- CS50 (Harvard): Harvard'ın bilgisayar bilimlerine giriş dersi. YouTube'da var, ücretsiz. Adamlar şov yapıyor resmen, izlerken film izler gibi hissediyosun. Temel için birebir.
- System Design Primer (GitHub): Mülakatlarda "Twitter'ı baştan tasarla desek naparsın?" diye sorarlarsa apışıp kalmamak için buraya bakın. Sistem tasarımı için devasa bir kaynak.
- Fullstack Open (Helsinki Üniversitesi): Modern web geliştirme (React, Node.js vs.) İçin bedava ve çok sağlam bir kaynak. Sertifika bile veriyorlar galiba bitirene.
- LeetCode & HackerRank: Mülakata girecekseniz buradaki soruları çözmeden girmeyin, elenirsiniz. Günde 1 soru, zihni açar.
Daha tonla kaynak var ama bunlar başlangıç ve orta seviye için altın madeni. Hepsine birden saldırmayın, boğulursunuz. İhtiyacınız oldukça bakın.
Hadi bakalım, kolay gelsin cümleten. Bu kıyağımı da unutmayın
Son düzenleyen: Moderatör: