42 Okulu ve Benim Yolculuğum

Türkiye'deki özgür öğrenme modeli ve kişisel deneyimim

42 Türkiye

42 Türkiye, tamamen özgür ve proje tabanlı öğrenme modeliyle dünya genelinde tanınan bir yazılım okuludur. Klasik eğitimin aksine, burada hiçbir ders veya öğretmen yoktur; yalnızca projeler, araştırma ve işbirliği vardır. 42'de geçirilen zaman, gerçek dünyada yazılım geliştirici olmak için gereken temel donanımı ve dayanıklılığı sağlar.

Benim için 42, sadece bir okul değil, disiplinli çalışma, sabır, problem çözme ve takım çalışması gibi hayat boyu kullanacağım yetenekleri geliştirdiğim bir merkez oldu. Özellikle "Piscine" (havuz) süreci, yazılım dünyasında kalıcı izler bırakacak bir tecrübe oldu.

42Piscine

Yoğun öğrenme ve temel yazılım yetkinlikleri süreci

42 Piscine Süreci

Piscine, 42'ye kabul edilmek için geçirilen bir aylık zorlu öğrenme sürecidir. Günde 10–14 saatlik yoğun kodlama, algoritmalar, C dili, Unix temelleri ve takım projeleri ile doludur. Temel amaç, bireyin öğrenme yeteneğini ve problem çözme becerisini ölçmektir.

Süreç boyunca temel C programlama konseptleri, temel algoritmalar, hafıza yönetimi (malloc/free), pointer'lar ve basit veri yapıları gibi konular üzerinde derinlemesine çalıştım. Ayrıca gün sonunda yapılan peer-evaluation ve norminette standartlarına uygun kod yazma kültürü kazandım.

BSQ42

En büyük kareyi bulma algoritması (Dynamic Programming)

BSQ42 Projesi

BSQ (Biggest Square), bir harita üzerinde en büyük boş kareyi bulmayı amaçlayan bir algoritma projesidir. Verilen bir haritada boşluklar ve engeller işaretlenir, ve dinamik programlama yaklaşımıyla en büyük kare alan tespit edilir.

Bu projede dosya okuma, veri işleme, algoritmik optimizasyon ve dinamik hafıza kullanımı konularında tecrübe kazandım. Hataları yönetmek ve büyük veri kümeleriyle verimli çalışmak üzerine birçok optimizasyon yaptım.

libft

Temel C kütüphanesini sıfırdan yazmak

libft Projesi

Libft, standart C kütüphanesinin önemli fonksiyonlarının yeniden yazılmasını kapsayan bir temel projedir. Bu proje sayesinde `memset`, `strcpy`, `atoi`, `isdigit`, `strlen` gibi birçok temel fonksiyonu sıfırdan ve memory-safe şekilde implement ettim.

Ayrıca bonus kısmında linked list veri yapıları, eklemeler, silmeler, iterasyonlar ve map fonksiyonları geliştirdim. Kodun modülerliği ve güvenilir hafıza yönetimi açısından kendimi ileri taşıdım.

ft_printf

C dilinde printf fonksiyonunun yeniden geliştirilmesi

ft_printf Projesi

ft_printf projesi, C standardındaki `printf` fonksiyonunun özelliklerini taklit eden, kendi formatlayıcı fonksiyonumu geliştirdiğim ileri seviye bir projedir. `%d`, `%s`, `%c`, `%x`, `%p`, `%u` gibi format specifier'ları başarıyla işleyen bir yapı geliştirdim.

Bu proje ile string parsing, variadic functions (`va_list`, `va_start`, `va_end`) kullanımı, hafıza yönetimi ve hata kontrolü konularında önemli deneyimler edindim.

get_next_line

Dosyalardan satır satır okuma fonksiyonu geliştirme

get_next_line Projesi

get_next_line projesi, bir dosyadan satır satır veri okumak için efektif bir fonksiyon geliştirme hedefi taşır. Her çağrıda bir sonraki satırı döndürür ve dosya sonuna ulaşıldığında NULL döner.

Bu proje ile buffer yönetimi, static değişken kullanımı, hafıza sızıntılarını önleme ve sistem çağrıları (`read`) gibi alçak seviyeli işlemleri deneyimledim. Hızlı ve güvenilir veri yönetimi için önemli teknikler öğrendim.