Rehber Yazılımcı Olup Hayatını Kurtarmak İsteyenler İçin

images (3).jpeg

Selamun aleyküm arkadaşlar,
Oturdum düşündüm, "ulan zamanında bana şunları anlatan bi 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 bi maraton arkadaşlar, 100 metre koşusu değil. Bunu kafaya yazın bi kere. Ben de ilk başlarken "tamam ya 2 aya full stack olurum" diyodum, tabi olamadım :D Ama pes de etmedim.

Yazılım dediğimiz olay aslında şu, Karşınızda bilgisayar denen süper hızlı ama bi o kadar da ahmak bi 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, trendyolu, getiri osu busu derken her yer yazılım. Yani iş imkanı gani gani, 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ı bi özet geçeyim, hangisi size uyarsa ordan 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ışıyo, veriler nereye gidiyo, güvenlik nasıl sağlanıyo... Kullanıcı görmez ama motor orasıdır. C#, Java, Python, Node.js falan dönüyor burada. Frameworkler 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öyliyim.

Mobil Uygulama Geliştirme
Telefon elinizden düşmüyosa 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 bi olay var, Cross-platform. Yani bi kod yazıyosun, hem iphone'da hem android'de çalışıyo. 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 yapıcam" 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ışardan eğlenceli görünür ama saç baş yoldurabilir :d Zira sadece kod yok tasarımı, sesi, hikayesi derken çok iş var. Her şey sizin omuzlara biner.

Veri Bilimi ve Yapay Zeka
Son yılların starı. Buranın kralı Python. Makine öğrenmesi, derin öğrenme, veri analizi falan hep burda. TensorFlow, Pandas falan öğrenmeniz lazım.

Yalnız burda 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 Ama imkansız da değil tabi.

Siber Güvenlik
Heçkır olmaya özenenler buraya. :D Şaka bi yana, çok ciddi ve parası güzel bi alan bence. Ama önce normal kodlamayı yalamış yutmuş olmanız lazım. Python, Bash scripting, network bilgisi... Bunlar olmadan siber güvenliğe girmek zor.

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 buda. Unity falan kullanılıyor burda 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ı bi kodlamacı gibi çalıştırmayı öğrenmek lazım. Algoritma ne? Bi 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 bi 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 burda takılıyo babacım. "Hangi dil en iyisi?" diye. En iyisi yok, işine yarayanı var. Bi dili iyi öğrenirsen diğerine geçmek çocuk oyuncağı, mantık aynı çünkü.
Tavsiyelerim:
Başlangıç için python
. İngilizce biliyosan 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 ilerde ç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 bide (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.
Veritabanı:SQL öğrenin mutlaka. Veritabanı olmadan olmuyo 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: Bi 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 bi 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, dökü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 tabi.
Yazılım için okul şart mı?Valla büyük kurumsal yerler diplomaya bakabiliyor ama sektör artık değişti. İşi biliyosan, 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 durmuyo ki, sürekli yeni bişey çıkıyo :D Hep öğrenci kalıcaaz. Ama iş bulabilecek seviyeye gelmek, sıkı çalışmayla 6 ay - 1 sene sürer. Kendini başkasıyla kıyaslama.


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 bulcaz?
Portfolio Hazırla: GitHub profilini düzenle. En iyi projelerini pinle. Her projenin README'si olsun. Kişisel bi 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 burda bitiyor ama sizin yolculuk yeni başlıyor. Her usta bi zamanlar çıraktı. Bugün anlamadığın şeyleri 6 ay sonra başkasına anlatıyo olacaksın.

Pes 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 forumlar.

Ö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 bi kenara, lazım olur.

🗺️ Yol Haritası (Roadmap)
  • roadmap.sh: Bakın bu site efsanedir. "Hangi dilden sonra ne öğrenicem, sırada ne var?" derdini bitirir. Front-end, Back-end, DevOps... Tıkla yoluna bak. Kaybolursanız pusulanız burası olsun.
📘 Okunması Gereken "Baba" Kitaplar
  • 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.
💻Teknik & Pratik Siteleri
  • Refactoring.Guru: Tasarım kalıpları ve Refactoring için dünya üzerindeki en iyi site olabilir. Görsellerle öyle bi 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 bi kaynak.
  • Fullstack Open (Helsinki Üniversitesi): Modern web geliştirme (React, Node.js vs.) için bedava ve çok sağlam bi kaynak. Sertifika bile veriyolar galiba bitirene.
Algoritma Kasmalık Yerler
  • LeetCode & HackerRank: Mülakata girecekseniz burdaki 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 :)
 
Çok teşekkür ederim bu değerli bilgiler için. 27 yaşında hukuk fakültesi mezunu biri olarak sevdiğim meraklı olduğum işe yönelmeye karar verdiğim için artık bu alana yöneleceğim. Hukuk da bu meslek için en az faydası olan bölüm belki de ama olsun. Rehberi kaydediyorum eminim ki çok sık dönüp bakacağım.
 
Elinize sağlık güzel bir rehber olmuş. 30 yaşına geldim aslında ama Veri analizi tarafına ilgim var. Daha basit bir alan diye düşünüyorum ancak matematiğim kötü, mantığım iyidir :). Biraz SQL bilgim var. Onu ilerletip Python'a geçeceğim. Sonrasında nasıl ilerlemeliyim sizce?
 
Elinize sağlık güzel bir rehber olmuş. 30 yaşına geldim aslında ama Veri analizi tarafına ilgim var. Daha basit bir alan diye düşünüyorum ancak matematiğim kötü, mantığım iyidir :). Biraz SQL bilgim var. Onu ilerletip Python'a geçeceğim. Sonrasında nasıl ilerlemeliyim sizce?
Hocam 30 yaş geç değil, aksine avantaj. Veri analizinde integral almıyorsun ki. Mantığın sağlamsa o iş tamamdır, matematiği dert etmene gerek yok. SQL > Python iyidir lakin, sadece veri kütüphanelerine. odaklan. Yanına mutlaka Power BI ekle, çünkü analizi satman lazım.
 
YKS'ye hazırlanıyorum, fakülte konusunda kararsızım fakat sınava sayısaldan gireceğim, muhtemelen bir mühendislik dalından ilerleyeceğim ve bu muhtemelen bilgisayar mühendisliği olacak, rehberi kaydettim emeğiniz için teşekkürler.
 
Eki Görüntüle 2626242
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ım :D ama pes de etmedim.

Yazılım dediğimiz olay aslında şu, karşınızda bilgisayar denen süper hızlı ama bir o kadar da ahmak 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 :d zira sadece kod yok tasarımı, sesi, hikayesi derken çok iş var. Her şey sizin omuzlara biner.

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 ama imkansız da değil tabii.

siber güvenlik
Heçkır olmaya özenenler buraya. :D şaka bir yana, çok ciddi ve parası güzel bir alan bence. Ama önce normal kodlamayı yalamış yutmuş olmanız lazım. Python, bash scripting, network bilgisi... Bunlar olmadan siber güvenliğe girmek zor.

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):
iskelet 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 metotları (get, post vs.)... Bunlar çok önemli.
ileri 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ı isimlendirme: 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ıyorsun 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.
ileri: 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 :D hep öğrenci kalıcaaz. Ama iş bulabilecek seviyeye gelmek, sıkı çalışmayla 6 ay - 1 sene sürer. Kendini başkasıyla kıyaslama.

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: ilk 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ıyor. Her usta bir zamanlar çıraktı. Bugün anlamadığın şeyleri 6 ay sonra başkasına anlatıyor olacaksın.

Pes 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.

önerdiğim 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)
  • 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.
📘 okunması gereken "baba" kitaplar
  • 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.
💻teknik & pratik siteleri
  • 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.
algoritma kasmalık yerler
  • 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 :)

Hocam süreç sizin için nasıl işledi, nereden başladınız, ne kadar sürede ne seviyeye geldiniz, ilk işinizi ne zaman aldınız gibi gibi kısımlara biraz daha değinme şansınız var mı?
 
Hocam 30 yaş geç değil, aksine avantaj. Veri analizinde integral almıyorsun ki. Mantığın sağlamsa o iş tamamdır, matematiği dert etmene gerek yok. SQL > Python iyidir lakin, sadece veri kütüphanelerine. odaklan. Yanına mutlaka Power BI ekle, çünkü analizi satman lazım.
Teşekkürler hocam. O da aklımda, birazcık Power BI'da baktım, devam edeceğim. En büyük sıkıntım diyelim ben bunları 2 sene gibi bir sürede orta düzeyde öğrendim. Diplomam mühendislik değil, yazılım iş tecrübem yok. Bu alanda nasıl iş bulacağım :) Veri analisti olarak Ankara'da iş var mıdır sizce? Şu an büyük ölçekli bir şirkette Pazarlama'da çalışıyorum. Öncesinde Mobil oyunşirketinde Performans Pazarlaması dolayısıyla Google Analytics deneyimim var ama fazla değil.
 
Eki Görüntüle 2626242
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ım :D ama pes de etmedim.

Yazılım dediğimiz olay aslında şu, karşınızda bilgisayar denen süper hızlı ama bir o kadar da ahmak 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 :d zira sadece kod yok tasarımı, sesi, hikayesi derken çok iş var. Her şey sizin omuzlara biner.

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 ama imkansız da değil tabii.

siber güvenlik
Heçkır olmaya özenenler buraya. :D şaka bir yana, çok ciddi ve parası güzel bir alan bence. Ama önce normal kodlamayı yalamış yutmuş olmanız lazım. Python, bash scripting, network bilgisi... Bunlar olmadan siber güvenliğe girmek zor.

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):
iskelet 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 metotları (get, post vs.)... Bunlar çok önemli.
ileri 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ı isimlendirme: 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ıyorsun 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.
ileri: 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 :D hep öğrenci kalıcaaz. Ama iş bulabilecek seviyeye gelmek, sıkı çalışmayla 6 ay - 1 sene sürer. Kendini başkasıyla kıyaslama.

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: ilk 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ıyor. Her usta bir zamanlar çıraktı. Bugün anlamadığın şeyleri 6 ay sonra başkasına anlatıyor olacaksın.

Pes 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.

önerdiğim 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)
  • 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.
📘 okunması gereken "baba" kitaplar
  • 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.
💻teknik & pratik siteleri
  • 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.
algoritma kasmalık yerler
  • 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 :)

Faydalı bilgiler teşekkürler.
 
Son düzenleyen: Moderatör:
Eki Görüntüle 2626242
Selamun aleyküm arkadaşlar,
Oturdum düşündüm, "ulan zamanında bana şunları anlatan bi 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 bi maraton arkadaşlar, 100 metre koşusu değil. Bunu kafaya yazın bi kere. Ben de ilk başlarken "tamam ya 2 aya full stack olurum" diyodum, tabi olamadım :D Ama pes de etmedim.

Yazılım dediğimiz olay aslında şu, Karşınızda bilgisayar denen süper hızlı ama bi o kadar da ahmak bi 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, trendyolu, getiri osu busu derken her yer yazılım. Yani iş imkanı gani gani, 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ı bi özet geçeyim, hangisi size uyarsa ordan 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ışıyo, veriler nereye gidiyo, güvenlik nasıl sağlanıyo... Kullanıcı görmez ama motor orasıdır. C#, Java, Python, Node.js falan dönüyor burada. Frameworkler 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öyliyim.

Mobil Uygulama Geliştirme
Telefon elinizden düşmüyosa 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 bi olay var, Cross-platform. Yani bi kod yazıyosun, hem iphone'da hem android'de çalışıyo. 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 yapıcam" 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ışardan eğlenceli görünür ama saç baş yoldurabilir :d Zira sadece kod yok tasarımı, sesi, hikayesi derken çok iş var. Her şey sizin omuzlara biner.

Veri Bilimi ve Yapay Zeka
Son yılların starı. Buranın kralı Python. Makine öğrenmesi, derin öğrenme, veri analizi falan hep burda. TensorFlow, Pandas falan öğrenmeniz lazım.

Yalnız burda 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 Ama imkansız da değil tabi.

Siber Güvenlik
Heçkır olmaya özenenler buraya. :D Şaka bi yana, çok ciddi ve parası güzel bi alan bence. Ama önce normal kodlamayı yalamış yutmuş olmanız lazım. Python, Bash scripting, network bilgisi... Bunlar olmadan siber güvenliğe girmek zor.

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 buda. Unity falan kullanılıyor burda 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ı bi kodlamacı gibi çalıştırmayı öğrenmek lazım. Algoritma ne? Bi 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 bi 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 burda takılıyo babacım. "Hangi dil en iyisi?" diye. En iyisi yok, işine yarayanı var. Bi dili iyi öğrenirsen diğerine geçmek çocuk oyuncağı, mantık aynı çünkü.
Tavsiyelerim:
Başlangıç için python
. İngilizce biliyosan 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 ilerde ç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 bide (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.
Veritabanı:SQL öğrenin mutlaka. Veritabanı olmadan olmuyo 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: Bi 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 bi 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, dökü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 tabi.
Yazılım için okul şart mı?Valla büyük kurumsal yerler diplomaya bakabiliyor ama sektör artık değişti. İşi biliyosan, 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 durmuyo ki, sürekli yeni bişey çıkıyo :D Hep öğrenci kalıcaaz. Ama iş bulabilecek seviyeye gelmek, sıkı çalışmayla 6 ay - 1 sene sürer. Kendini başkasıyla kıyaslama.


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 bulcaz?
Portfolio Hazırla: GitHub profilini düzenle. En iyi projelerini pinle. Her projenin README'si olsun. Kişisel bi 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 burda bitiyor ama sizin yolculuk yeni başlıyor. Her usta bi zamanlar çıraktı. Bugün anlamadığın şeyleri 6 ay sonra başkasına anlatıyo olacaksın.

Pes 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 forumlar.

Ö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 bi kenara, lazım olur.

🗺️ Yol Haritası (Roadmap)
  • roadmap.sh: Bakın bu site efsanedir. "Hangi dilden sonra ne öğrenicem, sırada ne var?" derdini bitirir. Front-end, Back-end, DevOps... Tıkla yoluna bak. Kaybolursanız pusulanız burası olsun.
📘 Okunması Gereken "Baba" Kitaplar
  • 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.
💻Teknik & Pratik Siteleri
  • Refactoring.Guru: Tasarım kalıpları ve Refactoring için dünya üzerindeki en iyi site olabilir. Görsellerle öyle bi 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 bi kaynak.
  • Fullstack Open (Helsinki Üniversitesi): Modern web geliştirme (React, Node.js vs.) için bedava ve çok sağlam bi kaynak. Sertifika bile veriyolar galiba bitirene.
Algoritma Kasmalık Yerler
  • LeetCode & HackerRank: Mülakata girecekseniz burdaki 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 :)
Dönüp dönüp bakacağım o rehberi yapmışsınız.
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Geri
Yukarı