Selamlar. Artık son zamanlarda her gün 10 defa aynı tip nereden, nasıl başlanır? Konularının açılmasından ve insanların yasak döneminde programlamaya ilgisinin artmasından dolayı kendi çapımda ufak bir rehber hazırlamak istedim. Burada sadece öğrenmeniz gereken şeyleri ve bazıları için yardımcı olacak tavsiye ettiğim bağlantılar ekleyeceğim, bunun dışındakilerin tamamını Google üzerinden çok basit bir şekilde bulabilirsiniz. Konuyu çok fazla uzatmadan madde madde anlatmaya başlayalım.
1) İngilizce
Kesinlikle programlamaya başlamadan önce ilk yapmanız gereken şey en azından okuduğunuzu anlayabilecek, teknik dokümanları takip edebilecek bir seviyede İngilizce bilmeniz.
* Nereden öğrenebilirim?
- Ücretsiz dil öğren
- İngilizce A-Z™ (2020) | Elif Hoca'nın Keyifli Anlatımıyla!
- Özel Ders Formatında Sıfırdan Zirveye İngilizce Eğitim Seti
- Sıfırdan İleri Seviyeye İngilizce Eğitim Seti
2) Bilgisayar bilimleri
İngilizce öğrendikten sonra yapmanız gereken şey bilgisayarın temel çalışma prensiplerini, veri yapılarını, programlamanın ne olduğunu ve nasıl çalıştığı gibi basit teknik kısımları öğrenmeniz gerekiyor.
* Neleri öğrenmem gerekir?
- Bilgisayar, yazılım, donanım nedir ve nasıl çalışır.
- I/O nedir?
- Algoritma, program, programlama, programlama dili nedir?
- Bilgisayar nasıl çalışır.
- CPU, RAM, HDD/SSD, Çevre birimleri(Peripherals), İşletim sistemi nedir?
- Yazılım seviyeleri(Low Level, High Level) nedir?
- Yazılım geliştirme nedir?
- Derleyici, yorumlayıcı nedir?
- Yazılım geliştirme aşamaları(Sistem analizi, Sistem tasarımı, Algoritma, Akış şeması, Kodlama, derleme, bağlama(Linking), Çalıştırma/Test, dokümantasyon, servis) ve yaşam döngüsü nedir ve nasıl hazırlanır.
- Hata yakalama/hata ayıklama nedir ve ne işe yarar.
- Yazım hatası(Syntax error) nedir?
- Çalışma zamanı hatası(Run-time error) nedir?
- Mantık hatası(Logic error) nedir?
- Bug nedir, Debug nedir ve nasıl yapılır?
- Sözde(Pseudo) kod nedir ve nasıl yazılır?
- Sözdizimi(Syntax) nedir?
- Değişken(Variable) nedir?
- Veri tipleri(Data types) nelerdir.
- Operatör nedir?
- Şartlı ifadeler(Conditional Statements) nedir?
- Döngüler(Loops) nedir?
- Derleme(Compiling) nedir?
- Derleme aşamaları(Pre-Preprocessing, Compiling, Assembling, Linking) nedir?
- Kütüphane(Library), Altyapı(Framework), API, ABI nedir?
- Fonksiyon nedir?
- İşlev sözdizimi(Function syntax) nedir?
- Komut satırı nedir, Komut satırı argümanları nelerdir.
- Başlangıç noktası(Entrypoint) nedir?
- Çıkış kodu(Exit code) nedir?
- Kapsam(Scope) ve Global scope nedir?
- Dizi(Array), String nedir?
- Yorum satırı nedir?
- Versiyon kontrol sistemi nedir, Git nedir?
- OOP nedir?
- Sürekli entegrasyon(Continuous integration) nedir?
* Bunlar dışında öğreneceğiniz dillere bağlı olarak bazı yazılım kavramlarını da öğrenmeniz gerekebilir.
- İnternet nedir?
- Domain, IP, DNS, TCP, HTTP nedir?
- Veritabanı nedir?
- Front-end, back-end, fullstack, devops nedir?
- CMS nedir?
- Hybrid aplikasyon nedir?
- Responsive design nedir?
- Cloud programming, SaaS, PaaS ve IaaS nedir?
- Hexadecimal nedir?
- İşaretleyici(Pointer) nedir?
- İstisna(Exception) nedir?
- Hafıza, Dinamik hafıza, Heap, Stack nedir?
- Çağrı yıyını(Call stack) nedir?
- Bağlı liste(linked list) nedir?
- Hash tablosu(Hash table) nedir?
- Dosya işareleyicisi(File pointer) nedir?
- Yapı(Structure) nedir?
- Stack, Queue nedir?
* Nereden öğrenebilirim?
- CS50's Introduction to Computer Science
- Basics of Computer Science Tutorial - Tutorialspoint
- Computer Programming Tutorial - Tutorialspoint
- Computer Fundamentals Tutorial - Tutorialspoint
3) Algoritma geliştirme
- Algoritma nedir?
- Algoritma ne işe yarar.
- Algoritma nasıl oluşturulur.
- Algoritma da nelere dikkat etmek gerekir.
- Temel yazılım algoritmaları(Linear Search, Binary Search, Bubble sort, Selection sort, Recursion, Merge Sort) nelerdir, nasıl çalışır ve ne işe yarar.
* Nereden öğrenebilirim?
- Data Structure and Algorithms Tutorial - Tutorialspoint
4) Buraya kadar öğrendikten sonra yapmanız gereken şey amacınıza hizmet edecek bir programlama dili belirlemek.
- Programlamaya yeni başladıysanız ve basit uygulamalar, scriptler ya da günlük kullanım için otomasyon uygulamaları yapmak istiyorsanız Python ya da GO dili ile başlayabilirsiniz.
- Oyun geliştirmek istiyorsanız en doğru tercih olarak hazır oyun motorları kullanmanız gerekecek bundan dolayı Unreal Engine için C++ dili, Unity için C# dili ile başlayabilirsiniz ya da kendine has diller kullanan Godot gibi motorları kullanabilirsiniz.
- Arayüz içeren masaüstü uygulamaları yapmak için C# ile başlayabilirsiniz.
- Genel olarak belirli bir amacınız yoksa, her konuda işinize yarayabilecek bir dil arıyorsanız C++ ya da Rust dili ile başlayabilirsiniz.
- Web programlama yapmak istiyorsanız; Frontend için HTML, CSS ve JavaScript, Backend için NodeJS, TypeScript, GO ya da PHP ile başlayabilirsiniz,
- Mobil programlamaya yönelmek istiyorsanız Kotlin, Swift ya da React Native ile başlayabilirsiniz.
- Yapay zeka ve makine öğrenmesi konusuna ilgi duyuyorsanız Python ya da R dili ile başlayabilirsiniz.
- Gömülü sistem ya da Çekirdek seviyesinde(İşletim sistemi, Donanım vs) geliştirmeye ilgi duyuyorsanız C dili ile başlayabilirsiniz.
Konuda eksik ya da yanlış bir şey görürseniz ya da eklemek istedikleriniz olursa etiketleyip yazarsanız düzeltirim.
Umarım yeni başlayacak ya da kendini geliştirmek isteyen kişiler için yardımcı olur.
1) İngilizce
Kesinlikle programlamaya başlamadan önce ilk yapmanız gereken şey en azından okuduğunuzu anlayabilecek, teknik dokümanları takip edebilecek bir seviyede İngilizce bilmeniz.
* Nereden öğrenebilirim?
- Ücretsiz dil öğren
- İngilizce A-Z™ (2020) | Elif Hoca'nın Keyifli Anlatımıyla!
- Özel Ders Formatında Sıfırdan Zirveye İngilizce Eğitim Seti
- Sıfırdan İleri Seviyeye İngilizce Eğitim Seti
2) Bilgisayar bilimleri
İngilizce öğrendikten sonra yapmanız gereken şey bilgisayarın temel çalışma prensiplerini, veri yapılarını, programlamanın ne olduğunu ve nasıl çalıştığı gibi basit teknik kısımları öğrenmeniz gerekiyor.
* Neleri öğrenmem gerekir?
- Bilgisayar, yazılım, donanım nedir ve nasıl çalışır.
- I/O nedir?
- Algoritma, program, programlama, programlama dili nedir?
- Bilgisayar nasıl çalışır.
- CPU, RAM, HDD/SSD, Çevre birimleri(Peripherals), İşletim sistemi nedir?
- Yazılım seviyeleri(Low Level, High Level) nedir?
- Yazılım geliştirme nedir?
- Derleyici, yorumlayıcı nedir?
- Yazılım geliştirme aşamaları(Sistem analizi, Sistem tasarımı, Algoritma, Akış şeması, Kodlama, derleme, bağlama(Linking), Çalıştırma/Test, dokümantasyon, servis) ve yaşam döngüsü nedir ve nasıl hazırlanır.
- Hata yakalama/hata ayıklama nedir ve ne işe yarar.
- Yazım hatası(Syntax error) nedir?
- Çalışma zamanı hatası(Run-time error) nedir?
- Mantık hatası(Logic error) nedir?
- Bug nedir, Debug nedir ve nasıl yapılır?
- Sözde(Pseudo) kod nedir ve nasıl yazılır?
- Sözdizimi(Syntax) nedir?
- Değişken(Variable) nedir?
- Veri tipleri(Data types) nelerdir.
- Operatör nedir?
- Şartlı ifadeler(Conditional Statements) nedir?
- Döngüler(Loops) nedir?
- Derleme(Compiling) nedir?
- Derleme aşamaları(Pre-Preprocessing, Compiling, Assembling, Linking) nedir?
- Kütüphane(Library), Altyapı(Framework), API, ABI nedir?
- Fonksiyon nedir?
- İşlev sözdizimi(Function syntax) nedir?
- Komut satırı nedir, Komut satırı argümanları nelerdir.
- Başlangıç noktası(Entrypoint) nedir?
- Çıkış kodu(Exit code) nedir?
- Kapsam(Scope) ve Global scope nedir?
- Dizi(Array), String nedir?
- Yorum satırı nedir?
- Versiyon kontrol sistemi nedir, Git nedir?
- OOP nedir?
- Sürekli entegrasyon(Continuous integration) nedir?
* Bunlar dışında öğreneceğiniz dillere bağlı olarak bazı yazılım kavramlarını da öğrenmeniz gerekebilir.
- İnternet nedir?
- Domain, IP, DNS, TCP, HTTP nedir?
- Veritabanı nedir?
- Front-end, back-end, fullstack, devops nedir?
- CMS nedir?
- Hybrid aplikasyon nedir?
- Responsive design nedir?
- Cloud programming, SaaS, PaaS ve IaaS nedir?
- Hexadecimal nedir?
- İşaretleyici(Pointer) nedir?
- İstisna(Exception) nedir?
- Hafıza, Dinamik hafıza, Heap, Stack nedir?
- Çağrı yıyını(Call stack) nedir?
- Bağlı liste(linked list) nedir?
- Hash tablosu(Hash table) nedir?
- Dosya işareleyicisi(File pointer) nedir?
- Yapı(Structure) nedir?
- Stack, Queue nedir?
* Nereden öğrenebilirim?
- CS50's Introduction to Computer Science
- Basics of Computer Science Tutorial - Tutorialspoint
- Computer Programming Tutorial - Tutorialspoint
- Computer Fundamentals Tutorial - Tutorialspoint
3) Algoritma geliştirme
- Algoritma nedir?
- Algoritma ne işe yarar.
- Algoritma nasıl oluşturulur.
- Algoritma da nelere dikkat etmek gerekir.
- Temel yazılım algoritmaları(Linear Search, Binary Search, Bubble sort, Selection sort, Recursion, Merge Sort) nelerdir, nasıl çalışır ve ne işe yarar.
* Nereden öğrenebilirim?
- Data Structure and Algorithms Tutorial - Tutorialspoint
4) Buraya kadar öğrendikten sonra yapmanız gereken şey amacınıza hizmet edecek bir programlama dili belirlemek.
- Programlamaya yeni başladıysanız ve basit uygulamalar, scriptler ya da günlük kullanım için otomasyon uygulamaları yapmak istiyorsanız Python ya da GO dili ile başlayabilirsiniz.
- Oyun geliştirmek istiyorsanız en doğru tercih olarak hazır oyun motorları kullanmanız gerekecek bundan dolayı Unreal Engine için C++ dili, Unity için C# dili ile başlayabilirsiniz ya da kendine has diller kullanan Godot gibi motorları kullanabilirsiniz.
- Arayüz içeren masaüstü uygulamaları yapmak için C# ile başlayabilirsiniz.
- Genel olarak belirli bir amacınız yoksa, her konuda işinize yarayabilecek bir dil arıyorsanız C++ ya da Rust dili ile başlayabilirsiniz.
- Web programlama yapmak istiyorsanız; Frontend için HTML, CSS ve JavaScript, Backend için NodeJS, TypeScript, GO ya da PHP ile başlayabilirsiniz,
- Mobil programlamaya yönelmek istiyorsanız Kotlin, Swift ya da React Native ile başlayabilirsiniz.
- Yapay zeka ve makine öğrenmesi konusuna ilgi duyuyorsanız Python ya da R dili ile başlayabilirsiniz.
- Gömülü sistem ya da Çekirdek seviyesinde(İşletim sistemi, Donanım vs) geliştirmeye ilgi duyuyorsanız C dili ile başlayabilirsiniz.
Konuda eksik ya da yanlış bir şey görürseniz ya da eklemek istedikleriniz olursa etiketleyip yazarsanız düzeltirim.
Umarım yeni başlayacak ya da kendini geliştirmek isteyen kişiler için yardımcı olur.
Son düzenleme: