CodeBlanks Logo Icon CodeBlanks
Ücretsiz 4 seviye

Rust

Rust'ın sahiplik modeliyle güvenli ve hızlı sistem programlamayı öğrenin: bellek güvenliği, eşzamanlılık ve sıfır maliyetli soyutlamalar.

Rust kursu ownership, borrowing, trait, generic, async ve unsafe gibi tüm konuları kapsar. Sıfırdan uzmanlığa, projeler ve meydan okumalarla Rust becerilerini adım adım ilerletirsin.

  • 357 ders
  • 26 sa 37 dk
  • 7 proje

Hesap gerekmez, hemen başlayabilirsin. İlerlemeni kaydetmek istersen ücretsiz hesap aç

Seviyeler

Rust kursu dört seviyede sıfırdan uzmanlığa ilerler. İstediğin seviyeden başlayabilirsin.
Seviyeni bilmiyor musun? Seviye testini çöz
Başlangıç

Rust temellerini öğrenirsin: değişkenler, veri türleri, fonksiyonlar, kontrol akışı, sahiplik, ödünç alma, struct, enum, match ve hata yönetimi.

  • Rust temelleri
  • Değişkenler
  • Veri türleri
  • Stringler
115 ders · 8 sa 38 dk Dersleri gör →
Orta

Orta seviye

Trait, generic, ömür, akıllı işaretçiler, closure, iterator, koleksiyonlar, modüller, test, dosya I/O, clap ve serde ile Rust becerilerini derinleştirirsin.

  • Trait'ler
  • Generic'ler
  • Ömürler
  • Trait sınırları
115 ders · 8 sa 38 dk Dersleri gör →
İleri

İleri seviye

async/await, tokio, eşzamanlılık, kanallar, unsafe, FFI, makrolar, trait nesneleri, GAT ve const generics ile uzmanlık kazanırsın.

  • async/await
  • Tokio
  • Eşzamanlılık
  • Kanallar
81 ders · 5 sa 58 dk Dersleri gör →
Uzman

Derleyici içleri, bellek düzeni, zero-cost abstraction, SIMD, inline assembly, no_std, gömülü ve derleme araçları ile Rust uzmanlığına ulaşırsın.

  • Derleyici içleri
  • Bellek düzeni
  • Zero-cost abstraction
  • SIMD
46 ders · 3 sa 23 dk Dersleri gör →

Yapacağın projeler

Her seviyede öğrendiklerini gerçek bir sayfada birleştirirsin.

Nasıl çalışıyor?

Kısa anlatım

Her ders tek bir kavramı birkaç kısa kartla anlatır; uzun video ya da metin yok.

Hemen dene

Çoktan seçmeli, boşluk doldurma ve eşleştirme sorularıyla öğrendiğini anında pekiştirirsin.

Kendin yaz

Tarayıcıdaki editörde gerçek kod yazarsın; kodun anında kontrol edilir ve sonucu canlı görürsün.

Müfredat

62 grup · 357 ders · 26 sa 37 dk

Rust temellerini öğrenirsin: değişkenler, veri türleri, fonksiyonlar, kontrol akışı, sahiplik, ödünç alma, struct, enum, match ve hata yönetimi.

1
Rust temelleri
6 ders · 25 dk
  1. 1 Rust nedir? Rust'un güvenli, hızlı ve eşzamanlı bir sistem dili olduğunu öğrenirsin. 4 dk
  2. 2 Cargo ile proje cargo new, Cargo.toml ve hedef klasör yapısıyla projeni kurmayı öğrenirsin. 4 dk
  3. 3 İlk program fn main ve println! ile ilk Rust programını yazarsın. 4 dk
  4. 4 println! ve formatlama println! makrosu ve {} yer tutucusuyla değişkenleri yazdırmayı öğrenirsin. 4 dk
  5. 5 Yorumlar // ve /* */ yorumlarıyla kodunu açık etmeyi öğrenirsin. 4 dk
  6. 6 Özet - Rust temelleri fn main, println! ve yorumları birleştirerek ilk programını yazarsın. 5 dk
2
Değişkenler
6 ders · 25 dk
  1. 1 let ile değişken let anahtar kelimesiyle değişken tanımlamayı öğrenirsin. 4 dk
  2. 2 mut ile değiştirilebilirlik mut anahtar kelimesiyle değişkenleri güncellemeyi öğrenirsin. 4 dk
  3. 3 const sabitleri const ile derleme zamanı sabitleri tanımlarsın. 4 dk
  4. 4 static değişkenler static ile statik ömürlü değişkenler tanımlarsın. 4 dk
  5. 5 Shadowing Değişken gölgeleme (shadowing) ile aynı ismi yeniden kullanırsın. 4 dk
  6. 6 Özet - Değişkenler let, mut, const ve shadowing'i birleştirerek bir sayaç programı yazarsın. 5 dk
3
Veri türleri
6 ders · 25 dk
  1. 1 Tamsayılar i32, u64 gibi işaretli ve işaretsiz tamsayı türlerini öğrenirsin. 4 dk
  2. 2 Ondalıklı sayılar f32 ve f64 ondalık türlerini öğrenirsin. 4 dk
  3. 3 Bool ve char bool ve char türlerini kullanarak mantık ve karakter saklarsın. 4 dk
  4. 4 Tuple Tuple (demet) ile farklı türleri tek bir değerde gruplarsın. 4 dk
  5. 5 Dizi (array) [T; n] sabit boyutlu dizilerini öğrenirsin. 4 dk
  6. 6 Özet - Veri türleri Farklı türleri birleştirerek bir not hesaplama programı yazarsın. 5 dk
4
Stringler
6 ders · 25 dk
  1. 1 &str ve String farkı &str ve String türlerinin farkını ve kullanım yerlerini öğrenirsin. 4 dk
  2. 2 String oluşturma String::new, String::from ve to_string yöntemlerini öğrenirsin. 4 dk
  3. 3 String birleştirme push_str ve + operatörüyle stringleri birleştirirsin. 4 dk
  4. 4 format! makrosu format! makrosuyla yeni string üretirsin. 4 dk
  5. 5 String uzunluğu len, is_empty ve chars metotlarıyla string hakkında bilgi alırsın. 4 dk
  6. 6 Özet - Stringler String ve &str'yi birleştirerek bir karşılama mesajı üretirsin. 5 dk
5
Proje: Hesap makinesiProje
5 ders · 30 dk
  1. 1 Proje iskeleti main ve println! ile hesap makinesi projesinin iskeletini kurarsın. 6 dk
  2. 2 Girdi okuma std::io::stdin ile kullanıcıdan sayı girişi okursun. 6 dk
  3. 3 Hesaplama trim, parse ve aritmetik işlemlerle sonucu hesaplarsın. 6 dk
  4. 4 Hata yakalama parse hatalarını Result ile yönetip kullanıcıyı uyarırsın. 6 dk
  5. 5 Döngü ve bitiş loop, break ve quit komutuyla sürekli hesaplama yaparsın. 6 dk
6
Fonksiyonlar
6 ders · 25 dk
  1. 1 fn tanımı fn anahtar kelimesiyle fonksiyon tanımlamayı öğrenirsin. 4 dk
  2. 2 Parametreler Fonksiyon parametreleri ve türlerini öğrenirsin. 4 dk
  3. 3 Dönüş değeri -> okuyla dönüş değerinin türünü belirtmeyi öğrenirsin. 4 dk
  4. 4 İfade ve deyim İfade (expression) ve deyim (statement) farkını öğrenirsin. 4 dk
  5. 5 Erken dönüş return anahtar kelimesiyle erken dönüş yapmayı öğrenirsin. 4 dk
  6. 6 Özet - Fonksiyonlar Parametre, dönüş ve ifadeleri birleştirerek hesap fonksiyonları yazarsın. 5 dk
7
Kontrol akışı
6 ders · 25 dk
  1. 1 if-else if, else if ve else ile koşullu dallanmayı öğrenirsin. 4 dk
  2. 2 match temelleri match ile bir değeri kalıplara göre eşleştirirsin. 4 dk
  3. 3 loop loop ile sonsuz döngü ve break ile çıkma yöntemini öğrenirsin. 4 dk
  4. 4 while döngüsü while ile koşul sağlandıkça çalışan döngü kurarsın. 4 dk
  5. 5 for döngüsü for ile bir iterator üzerinde dönersin. 4 dk
  6. 6 Özet - Kontrol akışı if, match ve döngüleri birleştirerek bir sayı tahmin oyunu yazarsın. 5 dk
8
Sahiplik
6 ders · 25 dk
  1. 1 Sahiplik nedir? Sahiplik (ownership) kurallarının ne işe yaradığını öğrenirsin. 4 dk
  2. 2 Move semantiği Değer taşımaları (move) ile sahipliğin nasıl devrettiğini öğrenirsin. 4 dk
  3. 3 Copy özelliği Copy özelliğine sahip türlerin kopyalanma davranışını öğrenirsin. 4 dk
  4. 4 Fonksiyonlar ve sahiplik Fonksiyona değer geçirmenin sahiplik üzerindeki etkisini öğrenirsin. 4 dk
  5. 5 Dönüş ve sahiplik Fonksiyondan değer döndürmenin sahiplik üzerindeki etkisini öğrenirsin. 4 dk
  6. 6 Özet - Sahiplik Move, Copy ve fonksiyon geçişlerini birleştirerek sahiplik akışını izlersin. 5 dk
9
Ödünç alma
6 ders · 25 dk
  1. 1 Referanslar & işleciyle referans oluşturmayı öğrenirsin. 4 dk
  2. 2 Değiştirilebilir referans &mut ile değiştirilebilir referans alırsın. 4 dk
  3. 3 Borrowing kuralları Aynı anda birden fazla referans alma kurallarını öğrenirsin. 4 dk
  4. 4 Dangling referans Askıda referans (dangling) oluşumunu önleyen mekanizmayı öğrenirsin. 4 dk
  5. 5 Referans ve fonksiyonlar Fonksiyonlara referans geçirmeyi ve geri almayı öğrenirsin. 4 dk
  6. 6 Özet - Ödünç alma & ve &mut referanslarıyla bir sayaç artıran fonksiyon yazarsın. 5 dk
10
Dilimler
6 ders · 25 dk
  1. 1 String dilimleri &str dilimleriyle bir string'in bir bölümüne referans verirsin. 4 dk
  2. 2 Dilim sözdizimi [a..b] ve [a..] dilim sözdizimini öğrenirsin. 4 dk
  3. 3 Dizi dilimleri &[T] ile bir dizinin veya vektörün bir bölümünü dilimlersin. 4 dk
  4. 4 Dilim ve fonksiyonlar Fonksiyonlara dilim geçirmeyi ve veriyi ödünç almayı öğrenirsin. 4 dk
  5. 5 Range türleri Range ve RangeInclusive türlerini öğrenirsin. 4 dk
  6. 6 Özet - Dilimler String ve dizi dilimlerini birleştirerek ilk kelimeyi bulan fonksiyon yazarsın. 5 dk
11
Proje: Tahmin oyunuProje
5 ders · 30 dk
  1. 1 Oyun iskeleti main ve println! ile tahmin oyununun karşılama ekranını kurarsın. 6 dk
  2. 2 Girdi okuma std::io::stdin ile kullanıcının tahminini okursun. 6 dk
  3. 3 Sayı karşılaştırma parse ile tahmini sayıya çevirip Ordering ile karşılaştırırsın. 6 dk
  4. 4 Rastgele sayı rand crate'i ile gizli sayı üretirsin. 6 dk
  5. 5 Döngü ve bitiş loop ve break ile doğru tahminde oyunu bitirirsin. 6 dk
12
Yapılar
6 ders · 25 dk
  1. 1 Struct tanımı struct ile alanlı yapı tanımlamayı öğrenirsin. 4 dk
  2. 2 Örnek oluşturma Struct örneği (instance) oluşturmayı ve alanlara erişmeyi öğrenirsin. 4 dk
  3. 3 Tuple struct Tuple struct türünü ve kullanım yerlerini öğrenirsin. 4 dk
  4. 4 Unit-like struct Alansız (unit-like) struct türünü tanırsın. 4 dk
  5. 5 Alan güncelleme .. sözdizimiyle bir struct'tan diğerine alan aktarırsın. 4 dk
  6. 6 Özet - Yapılar Alanları ve örnek oluşturmayı birleştirerek bir nokta yapısı yazarsın. 5 dk
13
Metodlar
6 ders · 25 dk
  1. 1 impl bloğu impl ile bir struct'a metot tanımlamayı öğrenirsin. 4 dk
  2. 2 self parametresi &self ile metotları çağırmayı ve alanlara erişmeyi öğrenirsin. 4 dk
  3. 3 &mut self &mut self ile struct'ı değiştiren metotlar tanımlarsın. 4 dk
  4. 4 İlişkili fonksiyonlar Self parametresi olmayan ilişkili fonksiyonlarla constructor yazarsın. 4 dk
  5. 5 Birden fazla impl Bir struct için birden fazla impl bloğu yazmayı öğrenirsin. 4 dk
  6. 6 Özet - Metodlar impl, &self ve &mut self'i birleştirerek bir Rectangle alan hesabı yazarsın. 5 dk
14
Numaralandırmalar
6 ders · 25 dk
  1. 1 Enum tanımı enum ile numaralandırma tanımlamayı öğrenirsin. 4 dk
  2. 2 Variantlar Enum variantlarını oluşturmayı ve kullanmayı öğrenirsin. 4 dk
  3. 3 Veri taşıyan variantlar Veri taşıyan enum variantları tanımlarsın. 4 dk
  4. 4 Option<T> Option<T> türü ve Some/None variantlarını öğrenirsin. 4 dk
  5. 5 Null yerine Option Null yerine Option kullanmanın avantajlarını öğrenirsin. 4 dk
  6. 6 Özet - Numaralandırmalar Veri taşıyan enum ve Option'ı birleştirerek bir ip adresi türü yazarsın. 5 dk
15
Kalıp eşleştirme
6 ders · 25 dk
  1. 1 match kalıpları match ile farklı kalıpları eşleştirmeyi öğrenirsin. 4 dk
  2. 2 Değer bağlama Kalıp değişkenleriyle eşleşen değeri bağlamayı öğrenirsin. 4 dk
  3. 3 if let if let ile tek bir kalıbı kısaca eşleştirirsin. 4 dk
  4. 4 while let while let ile kalıp eşleştikçe dönen döngü kurarsın. 4 dk
  5. 5 _ joker karakteri _ ile kalan tüm durumları tek kolda yakalarsın. 4 dk
  6. 6 Özet - Kalıp eşleştirme match, if let ve _ jokerini birleştirerek bir komut yorumlayıcı yazarsın. 5 dk
16
Proje: Yapılacaklar listesiProje
5 ders · 30 dk
  1. 1 Görev modeli Todo struct'ını ve alanlarını tanımlarsın. 6 dk
  2. 2 Ekleme Vec<Todo>'ya yeni görev ekleyen fonksiyon yazarsın. 6 dk
  3. 3 Listeleme for döngüsüyle görevleri ekrana yazdırırsın. 6 dk
  4. 4 İşaretleme Index ile bir görevi tamamlandı olarak işaretlersin. 6 dk
  5. 5 Komut okuma std::env::args ile komut satırı argümanlarını okursun. 6 dk
17
Vektörler
6 ders · 25 dk
  1. 1 Vec<T> tanımı Vec<T> ile dinamik boyutlu dizi oluşturmayı öğrenirsin. 4 dk
  2. 2 Ekleme ve çıkarma push ve pop ile vektöre eleman ekleyip çıkarırsın. 4 dk
  3. 3 Index ve get Index ve get ile vektör elemanlarına güvenli erişirsin. 4 dk
  4. 4 Döngü ve vektör for ile vektör elemanları üzerinde dönersin. 4 dk
  5. 5 with_capacity with_capacity ile önceden yer ayırarak performans kazanırsın. 4 dk
  6. 6 Özet - Vektörler push, get ve for'u birleştirerek bir alışveriş sepeti yazarsın. 5 dk
18
İleri string
6 ders · 25 dk
  1. 1 String ve &str dönüşümü String ile &str arası dönüşüm yöntemlerini öğrenirsin. 4 dk
  2. 2 chars ve bytes chars ve bytes iteratörleriyle string'i parçalara ayırırsın. 4 dk
  3. 3 String dilimleme Dilimlerle alt string almanın doğru yolunu öğrenirsin. 4 dk
  4. 4 contains ve replace contains ile arama, replace ile değiştirme yaparsın. 4 dk
  5. 5 split ve join split ile parçalama, join ile birleştirme yaparsın. 4 dk
  6. 6 Özet - İleri string split, contains ve replace'i birleştirerek bir metin filtreleyici yazarsın. 5 dk
19
Hata yönetimi
6 ders · 25 dk
  1. 1 Result<T, E> Result<T, E> türü ve Ok/Err variantlarını öğrenirsin. 4 dk
  2. 2 panic! panic! ile kurtarılamaz hataları öğrenirsin. 4 dk
  3. 3 ? operatörü ? ile hatayı otomatik olarak çağırana yayarsın. 4 dk
  4. 4 match ve Result match ile Result'ın her iki dalını da yönetirsin. 4 dk
  5. 5 unwrap ve expect unwrap ve expect kısayollarını ve risklerini öğrenirsin. 4 dk
  6. 6 Özet - Hata yönetimi Result, ? ve match'i birleştirerek bir sayı okuma fonksiyonu yazarsın. 5 dk
20
Başlangıç finaliFinal
4 ders · 28 dk
  1. 1 Sesli harf sayacı Bir string'deki sesli harfleri sayan programı yazarsın. 7 dk
  2. 2 Ortalama hesabı Vec'ten ortalama hesaplayan fonksiyonu yazar ve test edersin. 7 dk
  3. 3 Banka hesabı Account struct ve metotlarıyla basit bir bankacılık modeli kurarsın. 7 dk
  4. 4 Sıcaklık dönüştürücü Celsius ile Fahrenheit arasında dönüşüm yapan bir CLI yazarsın. 7 dk

Trait, generic, ömür, akıllı işaretçiler, closure, iterator, koleksiyonlar, modüller, test, dosya I/O, clap ve serde ile Rust becerilerini derinleştirirsin.

1
Trait'ler
6 ders · 25 dk
  1. 1 Trait nedir? Trait ile ortak davranış tanımlamayı öğrenirsin. 4 dk
  2. 2 Trait uygulama impl Trait for Type ile bir trait'i uygularsın. 4 dk
  3. 3 Varsayılan metot Trait'te varsayılan metot tanımlamayı öğrenirsin. 4 dk
  4. 4 Trait ve parametre Fonksiyon parametresi olarak trait kullanmayı öğrenirsin. 4 dk
  5. 5 Birden fazla trait Bir tür için birden fazla trait uygularsın. 4 dk
  6. 6 Özet - Trait'ler Trait ve impl'i birleştirerek bir Summary trait'i yazarsın. 5 dk
2
Generic'ler
6 ders · 25 dk
  1. 1 Generic fonksiyon <T> ile generic fonksiyon yazmayı öğrenirsin. 4 dk
  2. 2 Generic struct Generic struct tanımlamayı ve kullanmayı öğrenirsin. 4 dk
  3. 3 Generic metod Generic struct için impl bloğu ve metot yazarsın. 4 dk
  4. 4 Generic enum Option<T> gibi generic enum tanımlarsın. 4 dk
  5. 5 Turbofish ::<> ile tür çıkarımına yardımcı olursun. 4 dk
  6. 6 Özet - Generic'ler Generic struct, metod ve enum'u birleştirerek bir Pair<T> yazarsın. 5 dk
3
Ömürler
6 ders · 25 dk
  1. 1 Ömür nedir? Ömür (lifetime) kavramının ne işe yaradığını öğrenirsin. 4 dk
  2. 2 Açık ömürler <'a> ile açık ömür parametresi belirtmeyi öğrenirsin. 4 dk
  3. 3 Fonksiyon ömürleri Fonksiyon imzasında ömür kullanmayı öğrenirsin. 4 dk
  4. 4 Struct ömürleri Referans tutan struct'larda ömür parametresi kullanırsın. 4 dk
  5. 5 Elision kuralları Ömür elision (kısaltma) kurallarını öğrenirsin. 4 dk
  6. 6 Özet - Ömürler Ömür parametreleriyle en uzun metni döndüren fonksiyon yazarsın. 5 dk
4
Trait sınırları
6 ders · 25 dk
  1. 1 Trait bound <T: Trait> ile generic parametreye trait sınırı koyarsın. 4 dk
  2. 2 Birden fazla bound + ile birden fazla trait sınırını birleştirirsin. 4 dk
  3. 3 where clause where ile uzun trait sınırlarını okunabilir biçimde yazarsın. 4 dk
  4. 4 impl Trait impl Trait ile parametre ve dönüş türü belirtirsin. 4 dk
  5. 5 dyn Trait dyn Trait ile dinamik dağıtım yapılan trait nesnesini öğrenirsin. 4 dk
  6. 6 Özet - Trait sınırları Trait bound ve where'i birleştirerek bir generic maksimum fonksiyonu yazarsın. 5 dk
5
Proje: Kütüphane crate'iProje
5 ders · 30 dk
  1. 1 Crate iskeleti lib.rs ile kütüphane crate'ini kurarsın. 6 dk
  2. 2 Public API pub ile API'yi dışa açmayı öğrenirsin. 6 dk
  3. 3 Generic yapı Kitap modelini generic yapıya çevirirsin. 6 dk
  4. 4 Trait ile arama Searchable trait'i ile arama özelliği eklersin. 6 dk
  5. 5 Test altyapısı tests/ klasörüyle integration test eklersin. 6 dk
6
Akıllı işaretçiler
6 ders · 25 dk
  1. 1 Box<T> Box<T> ile öbek üzerinde yer ayırmayı öğrenirsin. 4 dk
  2. 2 Rc<T> Rc<T> ile paylaşılan sahiplik öğrenirsin. 4 dk
  3. 3 Arc<T> Arc<T> ile eşzamanlı paylaşılan sahiplik öğrenirsin. 4 dk
  4. 4 Box ve recursion Box ile özyinelemeli tür tanımlamayı öğrenirsin. 4 dk
  5. 5 Deref Deref trait'i ile otomatik referans çözümü öğrenirsin. 4 dk
  6. 6 Özet - Akıllı işaretçiler Box ve Rc'yi birleştirerek bir ağaç veri yapısı yazarsın. 5 dk
7
Interior mutability
6 ders · 25 dk
  1. 1 RefCell<T> RefCell<T> ile çalışma zamanı ödünç almayı öğrenirsin. 4 dk
  2. 2 borrow ve borrow_mut RefCell'in borrow ve borrow_mut metotlarını kullanırsın. 4 dk
  3. 3 Rc<RefCell<T>> Rc ve RefCell kombinasyonuyla birden çok sahibi olan değiştirilebilir veri öğrenirsin. 4 dk
  4. 4 Cell<T> Cell<T> ile kopyalanan türlerde iç değiştirilebilirlik öğrenirsin. 4 dk
  5. 5 Dışarıdan değiştirme Immutable bir yapıda iç veriyi değiştirme yöntemini öğrenirsin. 4 dk
  6. 6 Özet - Interior mutability Rc<RefCell<T>> ile bir grafik kenar listesi yazarsın. 5 dk
8
Closure'lar
6 ders · 25 dk
  1. 1 Closure sözdizimi |param| gövde sözdizimiyle closure tanımlarsın. 4 dk
  2. 2 Tür çıkarımı Closure'larda tür çıkarımı ve ne zaman açık tür gerektiğini öğrenirsin. 4 dk
  3. 3 Capturing Closure'ın çevre değişkenlerini yakalamasını öğrenirsin. 4 dk
  4. 4 Fn, FnMut, FnOnce Üç closure trait'ini ve farklarını ayırt edersin. 4 dk
  5. 5 Closure ve iterator Closure'ları iterator metotlarıyla kullanırsın. 4 dk
  6. 6 Özet - Closure'lar Closure ve move'u birleştirerek bir sayaç üreten fonksiyon yazarsın. 5 dk
9
İteratörler
6 ders · 25 dk
  1. 1 Iterator traiti Iterator trait'ini uygulayarak kendi iteratörünü yazarsın. 4 dk
  2. 2 next metodu next ile elemanları tek tek tüketirsin. 4 dk
  3. 3 map ve filter map ve filter adaptörleriyle iterator'ı dönüştürürsün. 4 dk
  4. 4 collect collect ile iterator'u koleksiyona çevirirsin. 4 dk
  5. 5 Tembel değerlendirme Iterator'ların tembel (lazy) doğasını öğrenirsin. 4 dk
  6. 6 Özet - İteratörler map, filter ve collect'i birleştirerek bir kelime süzgeci yazarsın. 5 dk
10
Koleksiyonlar
6 ders · 25 dk
  1. 1 HashMap HashMap<K, V> kullanmayı ve anahtar-değer saklamayı öğrenirsin. 4 dk
  2. 2 BTreeMap BTreeMap ile sıralı anahtarlı harita kullanırsın. 4 dk
  3. 3 HashSet HashSet ile benzersiz eleman kümesi oluşturursun. 4 dk
  4. 4 Entry API Entry API ile haritaya güvenli ekleme yaparsın. 4 dk
  5. 5 Koleksiyon iterasyonu HashMap ve Vec üzerinde iterasyon yöntemlerini öğrenirsin. 4 dk
  6. 6 Özet - Koleksiyonlar HashMap ve Entry API'yi birleştirerek bir kelime sayacı yazarsın. 5 dk
11
Proje: CLI uygulamasıProje
5 ders · 30 dk
  1. 1 Komut iskeleti args ile temel komut okuma yapısını kurarsın. 6 dk
  2. 2 Vec ile durum Vec ile uygulama durumunu tutarsın. 6 dk
  3. 3 Result ile komut Komutları Result döndüren fonksiyonlara bölersin. 6 dk
  4. 4 Iterator ile işleme Komutları iterator ile zincirlersin. 6 dk
  5. 5 Hata ve çıkış Hata durumunda uygun exit kodu döndürürsün. 6 dk
12
İleri hata yönetimi
6 ders · 25 dk
  1. 1 Error traiti std::error::Error trait'ini uygulayarak kendi hatanı tanımlarsın. 4 dk
  2. 2 thiserror thiserror crate'i ile derive edilen hata türleri oluşturursun. 4 dk
  3. 3 anyhow anyhow crate'i ile esnek hata yönetimi yaparsın. 4 dk
  4. 4 Hata dönüştürme From trait'i ile hata türleri arasında dönüşüm yaparsın. 4 dk
  5. 5 Context ekleme anyhow::Context ile hataya bağlam eklersin. 4 dk
  6. 6 Özet - İleri hata yönetimi thiserror ve From'u birleştirerek bir config okuyucu hatası yazarsın. 5 dk
13
Modüller
6 ders · 25 dk
  1. 1 mod tanımı mod ile modül tanımlamayı öğrenirsin. 4 dk
  2. 2 use use ile modüldeki isimleri içe aktarırsın. 4 dk
  3. 3 pub pub ile görünürlük kontrolü yapmayı öğrenirsin. 4 dk
  4. 4 Dosya modülleri Dosya tabanlı modül hiyerarşisini öğrenirsin. 4 dk
  5. 5 crate ve super crate ve super ile kökten veya üst modülden yola çıkarsın. 4 dk
  6. 6 Özet - Modüller mod, use ve pub'ı birleştirerek çok dosyalı bir crate kurarsın. 5 dk
14
Crate ve paket
6 ders · 25 dk
  1. 1 Binary ve library crate Binary ve library crate arasındaki farkı öğrenirsin. 4 dk
  2. 2 Cargo.toml Cargo.toml ile bağımlılık eklemeyi öğrenirsin. 4 dk
  3. 3 Sürümler Semver sürüm belirtimini ve cargo update komutunu öğrenirsin. 4 dk
  4. 4 Özellikler (features) Cargo features ile koşullu derleme yapmayı öğrenirsin. 4 dk
  5. 5 Workspace Workspace ile birden fazla crate'i tek çatı altında yönetirsin. 4 dk
  6. 6 Özet - Crate ve paket Binary + library crate ve workspace'i birleştirerek bir monorepo kurarsın. 5 dk
15
Test
6 ders · 25 dk
  1. 1 Unit test #[test] ile unit test yazmayı öğrenirsin. 4 dk
  2. 2 assert! makrosu assert!, assert_eq! ve assert_ne! ile doğrulama yaparsın. 4 dk
  3. 3 Integration test tests/ klasörüyle integration test yazar. 4 dk
  4. 4 Doc test /// ile doc test yazmayı öğrenirsin. 4 dk
  5. 5 should_panic should_panic ile panic bekleyen testler yazarsın. 4 dk
  6. 6 Özet - Test Unit, integration ve doc test'i birleştirerek bir math crate'i test edersin. 5 dk
16
Dosya I/O
6 ders · 25 dk
  1. 1 Dosya okuma std::fs::read_to_string ile dosya okumayı öğrenirsin. 4 dk
  2. 2 Dosya yazma std::fs::write ile dosya yazmayı öğrenirsin. 4 dk
  3. 3 Append modu OpenOptions ile ekleme (append) modunu öğrenirsin. 4 dk
  4. 4 BufReader BufReader ile verimli satır satır okuma yaparsın. 4 dk
  5. 5 Dizin işlemleri read_dir ile dizin içeriğini listelemeyi öğrenirsin. 4 dk
  6. 6 Özet - Dosya I/O read_to_string ve write'ı birleştirerek bir log dosyası işleyici yazarsın. 5 dk
17
clap ile CLI
6 ders · 25 dk
  1. 1 clap tanımı clap crate'i ile CLI temelini öğrenirsin. 4 dk
  2. 2 Derive makrosu #[derive(Parser)] ile argüman yapısı tanımlarsın. 4 dk
  3. 3 Pozisyonel argüman Pozisyonel argüman tanımlamayı öğrenirsin. 4 dk
  4. 4 Option flag --flag ile seçenek ve bool flag tanımlarsın. 4 dk
  5. 5 Subcommand Subcommand ile alt komut yapısı kurarsın. 4 dk
  6. 6 Özet - clap ile CLI Derive, flag ve subcommand'ı birleştirerek bir dosya CLI'sı yazarsın. 5 dk
18
Serde ile serialization
6 ders · 25 dk
  1. 1 Serialize ve Deserialize serde'nin temel Serialize ve Deserialize trait'lerini öğrenirsin. 4 dk
  2. 2 derive #[derive(Serialize, Deserialize)] ile otomatik uygulama yaparsın. 4 dk
  3. 3 JSON serde_json ile JSON okur ve yazarsın. 4 dk
  4. 4 Field rename #[serde(rename)] ile alan adlandırma yaparsın. 4 dk
  5. 5 Option ve default Option alanları ve default değeri öğrenirsin. 4 dk
  6. 6 Özet - Serde serde_json ve derive'ı birleştirerek bir config okuyucu yazarsın. 5 dk
19
Proje: Blog API'siProje
5 ders · 30 dk
  1. 1 Model iskeleti Post struct'ına serde derive ekleyerek modeli kurarsın. 6 dk
  2. 2 JSON okuma serde_json ile bir post listesi okursun. 6 dk
  3. 3 Hata yönetimi anyhow ile API hatalarını yönetirsin. 6 dk
  4. 4 Kayıt listeleme Iterator ile post listesi üretirsin. 6 dk
  5. 5 CLI clap ile list ve get alt komutları yaparsın. 6 dk
20
Orta seviye finaliFinal
4 ders · 28 dk
  1. 1 Generic stack Vec tabanlı generic Stack<T> veri yapısını yazarsın. 7 dk
  2. 2 Trait ile şekil Shape trait ve alan hesaplayan tipler yazarsın. 7 dk
  3. 3 Iterator adapter Kendi Iterator uygulayan tipini yazarsın. 7 dk
  4. 4 JSON config okuyucu serde ile config dosyası okuyan bir CLI yazarsın. 7 dk

async/await, tokio, eşzamanlılık, kanallar, unsafe, FFI, makrolar, trait nesneleri, GAT ve const generics ile uzmanlık kazanırsın.

1
async/await
6 ders · 25 dk
  1. 1 async fn async fn ile asenkron fonksiyon tanımlamayı öğrenirsin. 4 dk
  2. 2 await .await ile bir future'ı beklemeyi öğrenirsin. 4 dk
  3. 3 Future traiti Future trait'inin poll mekanizmasını öğrenirsin. 4 dk
  4. 4 async block async {} bloğu ile anonim future yaratırsın. 4 dk
  5. 5 Pin Pin<T> ve self-referanslı verilerin önemini öğrenirsin. 4 dk
  6. 6 Özet - async/await async fn, await ve block'u birleştirerek iki görevi sırayla beklersin. 5 dk
2
Tokio
6 ders · 25 dk
  1. 1 Tokio runtime #[tokio::main] ile runtime başlatmayı öğrenirsin. 4 dk
  2. 2 spawn tokio::spawn ile asenkron görev oluşturursun. 4 dk
  3. 3 tokio::sync tokio::sync ile asenkron senkronizasyon araçlarını öğrenirsin. 4 dk
  4. 4 tokio::fs tokio::fs ile asenkron dosya I/O yapmayı öğrenirsin. 4 dk
  5. 5 select! tokio::select! ile birden çok future'ı aynı anda beklersin. 4 dk
  6. 6 Özet - Tokio spawn ve select!'i birleştirerek iki asenkron görevi yarıştırırsın. 5 dk
3
Eşzamanlılık
6 ders · 25 dk
  1. 1 thread::spawn std::thread::spawn ile iş parçacığı oluşturmayı öğrenirsin. 4 dk
  2. 2 Mutex<T> Mutex<T> ile karşılıklı dışlama (mutual exclusion) yaparsın. 4 dk
  3. 3 RwLock<T> RwLock<T> ile çok okuyucu tek yazıcı kilidi kullanırsın. 4 dk
  4. 4 Arc<T> Arc<T> ile iş parçacıkları arasında veri paylaşırsın. 4 dk
  5. 5 Send ve Sync Send ve Sync marker trait'lerini ve önemini öğrenirsin. 4 dk
  6. 6 Özet - Eşzamanlılık thread, Arc ve Mutex'i birleştirerek paralel bir sayaç yazarsın. 5 dk
4
Kanallar
6 ders · 25 dk
  1. 1 mpsc kanalı std::sync::mpsc ile kanal oluşturmayı öğrenirsin. 4 dk
  2. 2 send ve recv send ve recv ile mesajlaşmayı öğrenirsin. 4 dk
  3. 3 Birden çok üretici tx.clone() ile birden çok üreticili kanal oluşturursun. 4 dk
  4. 4 try_recv try_recv ile bloklamadan okuma yapmayı öğrenirsin. 4 dk
  5. 5 tokio::sync::mpsc Asenkron kanalları ve senkron mpsc'den farkını öğrenirsin. 4 dk
  6. 6 Özet - Kanallar mpsc ve thread'i birleştirerek iş parçacıklı bir iş kuyruğu yazarsın. 5 dk
5
Proje: Sohbet sunucusuProje
5 ders · 30 dk
  1. 1 TCP dinleyici TcpListener ile istemci kabul eden döngü kurarsın. 6 dk
  2. 2 İstemci iş parçacığı Her istemci için bir thread açıp yönetirsin. 6 dk
  3. 3 Kanal ile mesaj mpsc ile mesajları toplayıp dağıtırsın. 6 dk
  4. 4 Broadcast Vec<TcpStream> ile tüm istemcilere yazarsın. 6 dk
  5. 5 Arc<Mutex> durumu Paylaşılan durumu Arc<Mutex<>> ile yönetirsin. 6 dk
6
Unsafe Rust
6 ders · 25 dk
  1. 1 unsafe bloğu unsafe bloğunun neyi serbest bıraktığını öğrenirsin. 4 dk
  2. 2 Ham işaretçiler *const T ve *mut T ham işaretçilerini kullanırsın. 4 dk
  3. 3 unsafe fn unsafe fn tanımlamayı ve çağırmayı öğrenirsin. 4 dk
  4. 4 static mut static mut ile küresel değişken yönetimini öğrenirsin. 4 dk
  5. 5 FFI çağrısı extern "C" ile dış fonksiyon çağırmayı öğrenirsin. 4 dk
  6. 6 Özet - Unsafe Rust unsafe bloğu ve ham işaretçileri birleştirerek split_in_two yazarsın. 5 dk
7
FFI
6 ders · 25 dk
  1. 1 extern bloğu extern "C" ile C fonksiyonlarını tanımlarsın. 4 dk
  2. 2 #[repr(C)] #[repr(C)] ile C uyumlu struct tanımlarsın. 4 dk
  3. 3 CString ve CStr CString ve CStr ile C string dönüşümü yaparsın. 4 dk
  4. 4 Callback C'den Rust'a callback geçirmeyi öğrenirsin. 4 dk
  5. 5 Drop ve cleanup FFI'da bellek temizliği ve Drop trait'ini öğrenirsin. 4 dk
  6. 6 Özet - FFI extern, repr(C) ve CString'i birleştirerek C'ye string gönderen wrapper yazarsın. 5 dk
8
Bildirimsel makrolar
6 ders · 25 dk
  1. 1 macro_rules! macro_rules! ile makro tanımlamayı öğrenirsin. 4 dk
  2. 2 Tekrarlar $(...),* ile tekrar kalıplarını öğrenirsin. 4 dk
  3. 3 Türler $ty:ty gibi tür parametreleriyle makro yazarsın. 4 dk
  4. 4 Makro hygieni Makro hijyeni (hygiene) kavramını öğrenirsin. 4 dk
  5. 5 println! incelemesi println! makrosunun iç yapısını incelersin. 4 dk
  6. 6 Özet - Bildirimsel makrolar macro_rules! ve tekrarları birleştirerek bir vec_of! makrosu yazarsın. 5 dk
9
Prosedürel makrolar
6 ders · 25 dk
  1. 1 proc_macro cratei proc_macro crate'ini ve temel API'sini tanırsın. 4 dk
  2. 2 derive makrosu #[proc_macro_derive] ile derive makrosu yazarsın. 4 dk
  3. 3 attribute makrosu #[proc_macro_attribute] ile attribute makrosu yazarsın. 4 dk
  4. 4 syn ve quote syn ve quote crate'lerini kullanarak kod üretirsin. 4 dk
  5. 5 TokenStream TokenStream ile akış halinde kod üretirsin. 4 dk
  6. 6 Özet - Prosedürel makrolar derive, syn ve quote'ı birleştirerek bir HelloMacro derive yazarsın. 5 dk
10
Trait nesneleri
6 ders · 25 dk
  1. 1 dyn Trait dyn Trait ile dinamik dağıtım yapmayı öğrenirsin. 4 dk
  2. 2 Box<dyn Trait> Box<dyn Trait> ile sahipli trait nesnesi tutarsın. 4 dk
  3. 3 Statik ve dinamik dağıtım Statik ve dinamik dağıtım farkını ve maliyetlerini öğrenirsin. 4 dk
  4. 4 Object safety Nesne güvenliği (object safety) kurallarını öğrenirsin. 4 dk
  5. 5 &dyn Trait &dyn Trait ile referans tabanlı dağıtım yaparsın. 4 dk
  6. 6 Özet - Trait nesneleri Box<dyn Trait> ve vtable'ı birleştirerek bir şekil listesi yazarsın. 5 dk
11
İleri trait'ler
6 ders · 25 dk
  1. 1 Associated type Trait ile ilişkili tür (associated type) tanımlamayı öğrenirsin. 4 dk
  2. 2 Associated constant İlişkili sabit (associated constant) tanımlarsın. 4 dk
  3. 3 GAT Generic Associated Types (GAT) kavramını öğrenirsin. 4 dk
  4. 4 Supertrait Supertrait ile bir trait'e başka trait sınırı koyarsın. 4 dk
  5. 5 Newtype pattern Newtype pattern ile trait çakışmasını çözersin. 4 dk
  6. 6 Özet - İleri trait'ler Associated type ve supertrait'i birleştirerek bir Graph trait'i yazarsın. 5 dk
12
Const generics
6 ders · 25 dk
  1. 1 [T; N] Const parametreli generic türleri öğrenirsin. 4 dk
  2. 2 const fn const fn ile derleme zamanı hesap yapan fonksiyon yazarsın. 4 dk
  3. 3 Const trait bound Const generics ile trait sınırı kullanmayı öğrenirsin. 4 dk
  4. 4 Min_const_generics Min_const_generics sınırlarını ve geçerli kullanım yerlerini öğrenirsin. 4 dk
  5. 5 Array ve slice Const generics ile dizi işlemleri yapmayı öğrenirsin. 4 dk
  6. 6 Özet - Const generics const fn ve [T; N]'i birleştirerek generic bir dot product yazarsın. 5 dk
13
İleri kalıp eşleştirme
6 ders · 25 dk
  1. 1 Struct kalıpları Struct alanlarını kalıp ile ayıklamayı öğrenirsin. 4 dk
  2. 2 Destructuring Tuple ve struct destructuring yöntemlerini öğrenirsin. 4 dk
  3. 3 @ bağlama @ operatörü ile değer aralığı bağlamayı öğrenirsin. 4 dk
  4. 4 Guard if guard ile kalıp koşulu eklemeyi öğrenirsin. 4 dk
  5. 5 Binding modları ref ve ref mut ile bağlama modlarını öğrenirsin. 4 dk
  6. 6 Özet - İleri kalıp eşleştirme Struct, @ ve guard'ı birleştirerek bir renk sınıflandırıcı yazarsın. 5 dk
14
İleri seviye finaliFinal
4 ders · 28 dk
  1. 1 Async web sunucusu tokio ile paralel istemci işleyen mini bir sunucu yazarsın. 7 dk
  2. 2 ThreadPool Kendi ThreadPool'unu Mutex ve mpsc ile yazarsın. 7 dk
  3. 3 derive macro Özel bir derive makrosu yazıp test edersin. 7 dk
  4. 4 FFI wrapper Bir C kütüphanesi için güvenli bir wrapper yazarsın. 7 dk

Derleyici içleri, bellek düzeni, zero-cost abstraction, SIMD, inline assembly, no_std, gömülü ve derleme araçları ile Rust uzmanlığına ulaşırsın.

1
Derleyici içleri
6 ders · 25 dk
  1. 1 HIR High-level IR (HIR) nedir ve ne işe yarar öğrenirsin. 4 dk
  2. 2 MIR Mid-level IR (MIR) ve borrow check ile olan ilişkisini öğrenirsin. 4 dk
  3. 3 LLVM IR LLVM backend'ini ve kod üretim sürecini öğrenirsin. 4 dk
  4. 4 Borrow checker Borrow checker'ın MIR üzerinde nasıl çalıştığını öğrenirsin. 4 dk
  5. 5 Tür çıkarımı Hindley-Milner tarzı tür çıkarımı algoritmasını öğrenirsin. 4 dk
  6. 6 Özet - Derleyici içleri HIR, MIR ve LLVM IR'ı birleştirerek bir derleme akışı şeması çıkarırsın. 5 dk
2
Bellek düzeni
6 ders · 25 dk
  1. 1 struct layout Struct alanlarının bellek düzenini ve sırasını öğrenirsin. 4 dk
  2. 2 #[repr(C)] ve #[repr(Rust)] #[repr(C)] ve #[repr(Rust)] farkını öğrenirsin. 4 dk
  3. 3 Alignment ve padding Hizalama (alignment) ve dolgu (padding) kavramlarını öğrenirsin. 4 dk
  4. 4 ZST Zero-sized type (ZST) kullanımını ve avantajlarını öğrenirsin. 4 dk
  5. 5 Niche optimization Niche optimization ile enum boyutunu küçültmeyi öğrenirsin. 4 dk
  6. 6 Özet - Bellek düzeni repr, alignment ve ZST'yi birleştirerek bir bellek analizi yazarsın. 5 dk
3
Zero-cost abstraction
6 ders · 25 dk
  1. 1 Abstraction maliyeti Abstraction'ın maliyetini ölçmeyi öğrenirsin. 4 dk
  2. 2 Monomorphization Monomorphization ile generic'lerin maliyetini öğrenirsin. 4 dk
  3. 3 Iterator fusion Iterator fusion ile optimizasyon yapmayı öğrenirsin. 4 dk
  4. 4 #[inline] #[inline] attribute'unu ve etkilerini öğrenirsin. 4 dk
  5. 5 Bounds check Bounds check ve önleme yöntemlerini öğrenirsin. 4 dk
  6. 6 Özet - Zero-cost abstraction Monomorphization, fusion ve inline'ı birleştirerek bir performans karşılaştırması yazarsın. 5 dk
4
SIMD
6 ders · 25 dk
  1. 1 std::simd std::simd ile paket işlemlerine giriş yaparsın. 4 dk
  2. 2 Simd<T, N> Simd<T, N> vektör türünü kullanırsın. 4 dk
  3. 3 Mask Mask ile şartlı paket işlemleri yaparsın. 4 dk
  4. 4 Horizontal işlemler horizontal_reduce gibi yatay işlemleri kullanırsın. 4 dk
  5. 5 Auto-vectorization Derleyicinin otomatik vektörizasyonunu öğrenirsin. 4 dk
  6. 6 Özet - SIMD Simd<T, N> ve Mask'ı birleştirerek bir vektör toplamı yazarsın. 5 dk
5
Inline assembly
6 ders · 25 dk
  1. 1 asm! makrosu core::arch::asm! ile assembly yazmayı öğrenirsin. 4 dk
  2. 2 Operand in, out, inout operandlarını kullanırsın. 4 dk
  3. 3 Register Özel register belirtmeyi öğrenirsin. 4 dk
  4. 4 Options pure, nomem, nostack options'larını kullanırsın. 4 dk
  5. 5 CPUID CPUID gibi özel komutları çağırırsın. 4 dk
  6. 6 Özet - Inline assembly asm!, in/out ve options'ı birleştirerek rdtsc ile zaman okursun. 5 dk
6
no_std ve gömülü
6 ders · 25 dk
  1. 1 no_std #![no_std] ile standart kütüphanesiz ortamı öğrenirsin. 4 dk
  2. 2 alloc crate alloc crate ile heap kullanmayı öğrenirsin. 4 dk
  3. 3 Embedded embedded-hal ile mikrodenetleyici programlamayı öğrenirsin. 4 dk
  4. 4 WebAssembly wasm32 hedefi ile WebAssembly üretmeyi öğrenirsin. 4 dk
  5. 5 Panic handler #[panic_handler] ile panik yönetmeyi öğrenirsin. 4 dk
  6. 6 Özet - no_std ve gömülü no_std, alloc ve panic_handler'ı birleştirerek gömülü bir şablon yazarsın. 5 dk
7
Derleme araçları
6 ders · 25 dk
  1. 1 build.rs build.rs ile derleme öncesi kod çalıştırmayı öğrenirsin. 4 dk
  2. 2 Cross compilation cross aracı ile çapraz derleme yapmayı öğrenirsin. 4 dk
  3. 3 Linker Linker seçimi ve LTO ayarlarını öğrenirsin. 4 dk
  4. 4 Profiling perf ve flamegraph ile profil çıkarmayı öğrenirsin. 4 dk
  5. 5 Unsafe yönergeleri Unsafe Rust yazım yönergelerini ve denetim listesini öğrenirsin. 4 dk
  6. 6 Özet - Derleme araçları build.rs, LTO ve flamegraph'ı birleştirerek bir derleme raporu yazarsın. 5 dk
8
Uzman finaliFinal
4 ders · 28 dk
  1. 1 Öbek ayırıcı Kendi bellek ayırıcını unsafe ile yazarsın. 7 dk
  2. 2 SIMD matris SIMD ile paralel matris çarpımı yaparsın. 7 dk
  3. 3 no_std runtime no_std için minimal bir runtime yazarsın. 7 dk
  4. 4 Profilli optimizasyon flamegraph ile performans iyileştirmesi yaparsın. 7 dk

Dersler ücretsiz, hesap ilerlemeni korur

Hesap açmak zorunlu değil. Açarsan kaldığın yerden devam eder, emeğini kaybetmezsin.

  • İlerlemen her cihazda kayıtlı
  • XP ve rozet kazan
  • Günlük seriyi koru
  • Kursu bitirince sertifika al
ücretsiz hesap aç

Sık sorulan sorular

Rust dersleri ücretsiz mi?

Evet. Rust kursundaki 357 dersin tamamı ücretsiz ve hesap açmadan başlayabilirsin.

Başlamak için ön bilgi gerekiyor mu?

Hayır. Başlangıç seviyesi sıfırdan anlatır; yalnızca bir tarayıcı yeterli. Konuyu biliyorsan üst seviyelerden başlayabilirsin.

Kursu bitirmek ne kadar sürer?

Dersler 2–8 dakikalık. Tüm kurs yaklaşık 27 saat; günde 15–20 dakikayla birkaç ayda bitirebilirsin.

Sertifika veriliyor mu?

Evet. Ücretsiz hesapla kursu tamamladığında adına doğrulanabilir bir sertifika oluşturulur.

Hesap açmadan ilerlemem kaybolur mu?

Hesapsız ilerlemen yalnızca kullandığın tarayıcıda tutulur. Ücretsiz hesap açtığında bu ilerleme hesabına aktarılır.

Sonraki adım Go

Go'nun sade sözdizimi ve güçlü eşzamanlılık modeliyle verimli microservice'ler yazın. Goroutine, channel, interface ve standart kütüphane.