32 puan yazan GN⁺ 2025-05-26 | 4 yorum | WhatsApp'ta paylaş
  • OSSU müfredatı, dünyanın önde gelen üniversitelerinin çevrimiçi materyalleri üzerinden bilgisayar bilimi için tam kapsamlı bir eğitim programını ücretsiz sunar
  • Giriş, çekirdek, ileri seviye ve final proje aşamalarıyla üniversite lisans düzeyindeki bilgisayar bilimi müfredatının yapısını yeniden üretir
  • Tüm dersler ve ödevler ücretsizdir veya büyük ölçüde ücretsizdir; ancak bazı değerlendirme ödevleri ücretli olabilir
  • Discord topluluğu gibi aktif bir küresel öğrenen destek ağı ve sürekli güncellenen kaynaklarla yürütülür
  • Öğrenciler, kendi koşullarına göre bağımsız ya da grup halinde esnek biçimde ilerleyebilir ve seçim yapabilir

OSSU nedir ve neden önemlidir

OSSU (Open Source Society University), herkesin ücret ödemeden bilgisayar biliminde resmî bir diploma programı düzeyinde eğitimi kendi kendine alabilmesi için tasarlanmış açık kaynaklı bir müfredattır. Harvard, MIT, Princeton gibi dünyanın en iyi üniversitelerinin açık derslerini ve materyallerini kullanır; amacı tek seferlik bilgi aktarımı değil, teori, pratik ve uygulamayı dengeli biçimde birleştiren bir öğrenme deneyimi sunmaktır.

  • Tüm öğrenme materyalleri, çevrimiçi yayımlanmış yüksek kaliteli ücretsiz kaynaklar arasından seçilir
  • CS2013 standardı gibi, uluslararası bilgisayar mühendisliği temel lisans programı ölçütlerini titizlikle yansıtır
  • Kendi motivasyonunu sağlayabilen, sürekli öğrenme alışkanlığı geliştirmek isteyen ve dünya çapındaki öğrenen topluluğundan destek alabilecek kişiler başlıca hedef kitledir

Müfredat yapısı ve özellikleri

  • Giriş (Introduction to CS): Bilgisayar bilimi ve programlamanın temel kavramlarını ve eğlenceli yönünü deneyimleme fırsatı sunar. Python programlama, hesaplama teorisi, temel veri yapıları ve algoritmalar gibi konuları içerir
  • Çekirdek (Core CS): Üniversite müfredatının 3. yılına denk gelen bölümdür; programlama (fonksiyonel, nesne yönelimli, yazılım tasarımı), matematik (ayrık matematik, istatistik, olasılık, kalkülüs), sistemler (bilgisayar mimarisi, OS, ağlar), teori (algoritmalar, NP problemleri vb.), güvenlik, uygulamalar ve etik gibi zorunlu alanları kapsar
  • İleri seviye (Advanced CS): Son sınıf düzeyine karşılık gelir. İleri programlama, sistemler, teori, bilgi güvenliği ve ileri matematik gibi alanlarda ilgiye göre seçim yapılabilir
  • Final proje: Öğrenilen bilgileri kullanarak gerçek bir proje gerçekleştirilir, sonuçlar küresel akran öğrenenlerle paylaşılır ve doğrulanır. Mesleki yetkinliğin gösterilmesi ve iş başvurusu portföyü için kullanılabilir

Öğrenme biçimi ve maliyet

  • Müfredat bağımsız olarak ya da grup halinde çalışılabilir
  • Her dersin sırayla tamamlanması önerilir; ancak zaten bilinen konular varsa atlamak mümkündür
  • Tüm dersler çevrimiçi olarak ücretsiz sunulur. Bazı platformlarda (Coursera, edX vb.) ödev/sınav/proje değerlendirmeleri için ücret gerekebilir, ancak çoğu durumda öğrenmenin kendisi ücretsizdir. Ekonomik yükü azaltmak için finansal destek (burs/Financial Aid) bilgileri de sunulur
  • Öğrenme ilerlemesini ve tahmini bitiş tarihini yönetmeye yardımcı olmak için Google E-Tablolar şablonu sağlanır

Topluluk ve destek

  • Katılımcılar için bir Discord sunucusu işletilir; ders tartışmaları, sorular ve akran bağlantıları burada aktif biçimde yürütülür
  • GitHub Issue'ları ve müfredat iyileştirme önerileri gibi aktif geri bildirim kanalları vardır
  • LinkedIn profiline OSSU tamamlama bilgisi eklenebilir

Güncel müfredatı resmî site ve GitHub deposu üzerinden kontrol etmeniz önerilir

Müfredatın ayrıntılı listesi

Ön koşullar

  • Çekirdek CS için lise düzeyinde matematik (cebir, geometri, kalkülüs öncesi) zorunludur
  • İleri seviye CS, ancak tüm çekirdek dersler tamamlandıktan sonra seçilebilir
  • Advanced systems dersleri için lise düzeyinde temel fizik bilgisi gerekir

Giriş CS (Introduction to CS)

  • Bilgisayar bilimine ilk adım. Temel işlemler, emirsel programlama, veri yapıları, algoritmalar vb. konulara giriş yapılır
  • Zorunlu ders: 'Introduction to Computer Science and Programming using Python' (14 hafta)

Çekirdek CS (Core CS)

Programlama

  • Fonksiyonel/nesne yönelimli/test/pattern/typing/dil çeşitliliği gibi geniş kapsamlı pratikler
  • Systematic Program Design, Programming Languages (A–C), Object-Oriented Design, Software Architecture vb.

Matematik

  • Ayrık matematik, matematiksel ispatlar, temel istatistik, O gösterimi, olasılık ve kalkülüs içerir

Geliştirme araçları ve ortam

  • Terminal, shell scripting, vim, command line, sürüm kontrolü (git) gibi iş hayatı için temel araçlar

Sistemler

  • Donanımdan işletim sistemine ve ağa kadar bilgisayarın çalışma prensiplerinin genel olarak anlaşılması
  • Örnekler: Nand to Tetris projesi, OS Three Easy Pieces, Networking vb.

Teori

  • Algoritma analizi, böl ve fethet, grafikler, dinamik programlama, NP problemleri vb. içerir

Güvenlik

  • Bilgi güvenliği temelleri, güvenli kodlama, zafiyet analizi, ağ/kriptografi gibi seçmeli dersleri içerir

Uygulamalar

  • Veritabanları, makine öğrenimi, bilgisayar grafikleri, yazılım mühendisliği gibi pratik kullanım alanlarına kadar geniş bir kapsam sunar

Etik

  • Teknolojinin toplumsal bağlamı, profesyonellik, fikrî mülkiyet, veri gizliliği gibi geliştiriciler için zorunlu etik konuları vurgulanır

İleri seviye CS (Advanced CS)

  • Kariyer/ilgi alanına göre seçim yapılır. Paralel programlama, derleyiciler, Haskell/Prolog gibi diller, yazılım debugging/testing gibi konular yer alır
  • Bilgisayar mimarisi, sayısal analiz/mantık/olasılık, hesaplama teorisi, bilgi güvenliği, sistem kurma gibi geniş seçenekler bulunur

Final proje (Final Project)

  • Gerçek dünyaya yönelik bir proje seçme, tasarlama, uygulama ve paylaşma
  • Örnek seçenekler: full-stack servis, robotik, data mining, big data, IoT, cloud computing, data science, oyun geliştirme vb.
  • Kendi başına yapılabilir veya önerilen kurslar kullanılabilir

Öğrenim tamamlandıktan sonra

  • CS alanında lisans derecesine eşdeğer bilginin edinildiğinin gösterilmesi
  • İşe hazırlık, ileri okuma (liste sunulur), çevrimdışı geliştirici buluşmaları gibi bağlantılar önerilir
  • Yeni teknolojileri keşfetme (Elixir/Rust/Idris dilleri vb.) teşvik edilir

İşleyiş kuralları ve ekip

  • OSSU davranış kuralları kurallarına uyulmalıdır
  • GitHub üzerinde kendi ilerleme durumunu gösterme ve yönetme yöntemi (kanban kullanımı) anlatılır

OSSU başlıca yürütücüleri

  • Eric Douglas (OSSU kurucusu), Josh Hanson (teknik maintainer), Waciuma Wanjohi (akademik maintainer) ve dünyanın dört bir yanından diğer katkıcılar

Kapanış

OSSU, dünyanın her yerinden herkesin ücretsiz olarak bilgisayar biliminde resmî lisans programı düzeyinde yetkinlik kazanıp modern IT sektöründeki pratik işlere ve kariyer yollarına geniş ölçekte giriş yapabilmesinin önünü açar.
Esnek ilerleme, sıkı standartlar, küresel topluluk ve yüksek kaliteli ücretsiz kaynakların birleşimi, onu diğer açık müfredatlara kıyasla güçlü kılar.

4 yorum

 
crawler 2025-05-28

> "Bilgisayar bilimi öğrenmeyin" tarzı haberlerin asıl noktayı kaçırdığını düşünüyorum

Çeviri bayağı iyi olmuş, ilginçmiş haha

 
xguru 2025-05-26

OSSU Open Source Society University - Computer Science kendi kendine öğrenme

Sanırım GeekNews’in ilk dönemlerinde tanıtılmıştı. Bu süre içinde epey fazla şey eklendi.

 
GN⁺ 2025-05-26
Hacker News görüşleri
  • Deneyimli bir mühendis olarak, öğrenenlere yardım etmek istiyorsanız OSSU'nun gerçekten çok iyi bir yer olduğunu düşünüyorum

    • Benim önerilerim şunlar: Kendi yan projelerinizi OSSU öğrencileriyle düzenli olarak pair programming veya takım programlama şeklinde yürütmek
    • Müfredattaki bir veya birkaç derse aşina olup sorusu olan öğrencilere yanıt vermek
    • Haftalık check-in toplantılarına katılıp ne üzerinde çalıştığınızı paylaşabilir, diğer öğrencilerin neler yaptığını da dinleyebilirsiniz
    • Bunu yapmak için Discord sunucusunu ziyaret edip bana @waciuma veya @tutor rolüne mention atabilirsiniz
    • OSSU'nun liderlerinden biri olarak, topluluk, networking ve projelerin gerçek eğitimin bir parçası olduğuna içtenlikle inanıyoruz
    • Ücretsiz dersler hazırlayan profesörleri, üniversiteleri ve gönüllü olarak OSSU öğrencilerine yardım eden sayısız mühendis ve uygulayıcıyı da birlikte kutlayan bir kültürümüz var
    • Sizin de bu gruba katılmanızı isterim
  • Öğrencilerin kendi kendilerine bilgisayar mühendisliği öğrenmelerine yardımcı olan bir eğitim programı yürütüyorum. Zaman zaman OSSU müfredatını da referans olarak kullanıyorum

    • Self-learning'in birçok avantajı var, ancak öğrencilerin dikkat etmeleri gereken noktalar olduğunu mutlaka bilmeleri gerekiyor

    • “Signaling” ve networking için çok daha fazla kişisel çaba göstermeniz gerekir ve üniversiteye bağlıyken elde edilen sosyal avantajlar self-learning'de daha sınırlıdır

    • Derecenin olmaması bir bakıma “marked” durumda olmak gibidir; bunun açıklaması için buraya bakabilirsiniz

    • Hata yaptığınızda veya zorluk yaşadığınızda, sebep kolayca diploma eksikliğine bağlanabiliyor

    • Bazı işe alım sorumluları, diplomasız birini işe almanın politik olarak riskli olduğunu düşündüğü için işe girmenin kendisi zorlaşabiliyor

    • Bu aşılamaz bir durum değil, ama bu yüzden biz bunu en baştan birlikte hazırlanarak aşmaya çalışıyoruz

    • Self-learning'in avantajları arasında hızlı öğrenme, gereksiz süreç tekrarları olmadan her şeyi bağlam içinde öğrenebilme var

    • Temelinizin zayıf olduğunu fark ederseniz, o zaman dönüp öğrenebilirsiniz

    • Bunun teknik mesleklerde kaçınılmaz bir öğrenme biçimi olduğunu düşünüyorum, ama her öğrenciye uygun değil

    • Gerçekte çoğu zaman maddi durum yüzünden üniversiteye gidemeyip self-learning'e “mecbur kalınması” üzücü

    • Trade-off'ları iyi bilmiyorsanız daha da zor olabilir

    • Referans: Divepod

    • Birçok kişinin self-learning sürecinde mentorluk yaptım

      • Self-learning'de türlü türlü tuzaklar var; dikkat edilmezse yanlış yola sapmak çok kolay
      • Beklemediğim ama sonradan biraz da doğal gelen tuzaklardan biri şu oldu: Reddit veya Twitch'te sektör şikayetlerini dinledikçe, gerçek becerinin pek önemi olmadığına ve sadece mülakat becerisinin önemli olduğuna inanmak kolaylaşıyor
      • Bu yüzden insanlar gerçek kodlama becerilerini veya projelerini ihmal edip tüm enerjilerini LeetCode'a veriyor ya da GitHub'a sadece README'si gösterişli ama tamamlanmamış projeler yüklüyor
      • S.T.A.R. mülakat formatı gibi yalnızca cevap ezberlemeye odaklanıyorlar
      • Bu strateji bir süre işe yaradı ama artık şirketler “profesyonel mülakatçıları” daha iyi ayıklıyor
      • Bu zihniyet sadece self-learner'lara özgü değil; üniversitede de sadece diploma peşinde koşup kopya çekerek gerçek öğrenmeyi ihmal edenler oluyor
      • Mezun olduktan sonra ise beklentilerinin aksine mülakatlarda hazırlıksız yakalanıyorlar
  • Liseyi bitirdikten hemen sonra, toy yaşımda bir CS derecesini düzgün şekilde tamamlayamayarak iyi fırsatları kaçırdım

    • Evlendikten ve çocuk sahibi olduktan sonra IT derecemi hızla bitirdim ama aslında en çok sevdiğim şey CS idi
    • Birkaç yıl önce, CS eğitimini düzgün tamamlamanın kariyerime büyük katkı sağlayacağına karar verdim
    • İkinci lisans, post-bacc, bootcamp gibi birçok seçeneği değerlendirdikten sonra sonunda OSSU'yu seçtim
    • Beklediğimden uzun sürdü (hayatta her zaman değişkenler çıkıyor) ama müfredat hakkında söyleyeceklerim tamamen olumlu. Sadece kariyerime değil, yaşam memnuniyetime de katkısı oldu
    • OSSU'yu neden seçtiğimi ve deneyimimi blogda yazdım: blogun ilk yazısı
  • Şahsen Teach Yourself CS'in daha iyi bir alternatif olduğunu düşünüyorum

    • Ben de bilgisayar bilimi eğitimimi tamamlamak için Teach Yourself CS'yi incelemiştim
      • Ama topluluğunun olmaması, OSSU'yu seçmemin başlıca nedeniydi
      • Merak ettiğim şey şu: Topluluğun önemini düşününce, Teach Yourself CS'nin neden OSSU'dan daha iyi olduğunu düşünüyorsunuz?
      • Bu arada ben OSSU cohort'unda “social organizer” olarak görev alıyorum ve ara sıra OSSU hakkında blog yazıları da yazıyorum
  • Yalnızca self-learning ile de rahatlıkla kariyer yapılabileceğinin bir örneğiyim

    • Sektörde 20 yıldan uzun süredir çalışıyorum

    • Ama bu yolu seçerseniz, “asla” giremeyeceğiniz bazı şirketler ve roller olduğu kesin

    • Bu şirketler genelde en iyi şirketler, en yüksek maaşlı yerler ve çalışma koşulları iyi olan işlerdir

    • Esas mesele derecenin kendisi değil; ondan daha önemli olan mezun ağı. Dereceniz varsa, aynı okuldan mezun kişilerin sizi doğrudan işe aldığı “büyük bir kulüp” var

    • Self-learning yaparsanız o ağa asla sahip olamazsınız

    • Gerçek ne mi? Geriye çoğu kişinin reddettiği işler kalıyor. Saçma yerler, dolandırıcılıklar, finansmanı zayıf startup'lar, zaten krizde olan şirketlerle dolu

    • Nadiren iyi bir pozisyon yakalasanız bile orada uzun süre kalmak zor olabiliyor

    • Maaş düşük oluyor ve sömürülme riski daha yüksek

    • Birden fazla teklif almak da daha zor olduğu için pazardaki konumunuz zayıflıyor

    • Bunun sonucunda tüm kariyeriniz finansal olarak bambaşka bir hatta ilerliyor gibi gelebilir

    • İş bulmak çok daha zor; iki kat daha fazla çabalamak gerekiyor

    • Hem kendinizden hem çalışma arkadaşlarınızdan sık sık “acaba yeterli miyim” türü bir şüphe görüyorsunuz

    • Tek bir hatanın etkisi çok büyük olabiliyor

    • Yine de hiçbir şey yapmamaktan iyidir, ama fırsat varsa okula gitmenin daha iyi olduğunu düşünüyorum

    • Deneyiminizi küçümsemek istemem ama ben %100 self-learning ile büyük şirketler, unicorn'lar ve startup'lar dahil çeşitli firmalarda çalıştım

      • Google ve Citadel ile mülakat yaptım, Meta'dan teklif aldım; fırsatların önüme kapanması ya da şüpheyle karşılanmam gibi bir durum hiç yaşamadım
      • Yıllık 200 bin doların üzerinde nakit kazanıyorum, ayrıca erken aşama bir startup'ta hisse ve yan haklarım da var
      • İki exit yaşadım; zengin değilim ama genel ölçütlere göre yeterince varlıklıyım
      • Eğitim geçmişim yüzünden ekonomik bir kayıp yaşamadım
      • 19 yaşımdan itibaren programlama ve startup deneyimi edinmeye başlamış olmam, erken başlangıcın avantajı olabilir
      • Belki de şanslıydım ama insanlara self-learning'i hiç yapmamalarını söylemenin gençler için daha zararlı olduğunu düşünüyorum
    • Birkaç yıl yazılım geliştirici olarak çalıştıktan sonra CS derecesi için okula geri döndüm

      • Zaten tarih bölümünden 90 kredim vardı ve 3 yıl boyunca iyi hazırlanmış bir müfredatla çalıştım
      • Bunun geliştirici olarak yeteneklerimi ciddi biçimde artırdığını düşünüyorum
      • Bunu tek başına yapmak mümkün, ama insanların büyük çoğunluğu bu seviyeye asla ulaşamıyor
      • Benden daha yetenekli self-learning geliştiriciler kesinlikle vardı, ama onların da 4 yıllık bir CS programı deneyimleseler daha da iyi olacaklarını düşünüyorum
    • Bu anlatılanlar bir ölçüde doğru, ama çoğunlukla yalnızca kariyerin başlarında ve kişinin kendi becerisinin akran grubunun alt sıralarında olduğu durumlarda geçerli

      • Sonrasında networking becerisi ve şans (insanların düşündüğünden çok daha önemli bir unsur) daha belirleyici oluyor
      • Üniversite, kariyerin başında sizi belli bir standarda ulaşabilecek biri olarak gösteren bir güven ve “diploma” denilen kanıt sunuyor
      • Bu süreçte network oluşturuyorsunuz ama sonuçta ilk bir iki işten sonra derecenin etkisi hızla azalıyor
      • Benim deneyimimde (tamamen kişisel bir örnek), diplomasız başladım ve 10 yılı aşkın süre sonra eğlencesine diploma aldım
      • Mesleki açıdan hiçbir değeri olmadı; ondan sonraki tüm fırsatlarım iş arkadaşlarımın tavsiyeleri ve referansları sayesinde geldi
      • Diploma, normalde karşılaşmayacağınız konularla temas etmek için yine de güzel bir fırsattı
    • Ben ADHD'ye yakınım ve bir ölçüde otizm spektrumundayım

      • Üniversiteye üç kez gittim ama maliyet, sıkıcılık ve babamın kanserden vefatı gibi kişisel nedenlerle hepsini bıraktım
      • Kariyerime bir C compiler şirketinde teknik destekle başladım, sonra geliştirici oldum
      • NY borsası, büyük aracı kurumlar, tanınmış fintech şirketleri ve banka ile ödeme şirketlerine danışmanlık dahil çok çeşitli deneyimlerim oldu
      • Temelde kendi kendime öğrenmeye alışkın olduğum için okul ortamı bana uygun değildi
      • Yazılım geliştirmede diplomanın sorun olduğu durumlar son derece nadirdi; aslında kimsenin bunu umursadığını görmedim
      • Yazılım geliştirme özelinde diploma neredeyse hiç ya da hiçbir anlam taşımıyor
    • Bu konuşmalarda sık unutulan şey şu: Bilgisayar bilimi öğrenmenin en büyük nedeni mutlaka iş bulmak ya da mesleki beceri artırmak olmak zorunda değil

      • Asıl motivasyon “eğlence” olabilir
      • İnsan ömür boyu disiplinin kendisinden keyif alabilir; pratik programlama, teori, hesaplamanın matematiksel arka planı ve bilişim tarihi açısından da çok tatmin edicidir
      • “CS okumayın” tarzı haberlerin asıl anlamı ıskaladığını düşünüyorum
  • Müfredatın yalnızca “ücretsiz ve açık kaynak” derslerden oluşması nedeniyle bunun bir sınıra takılıp takılmadığını merak ediyorum

    • Gerçekten iyi öğrenmek istiyorsanız, kaliteli kaynaklara para yatırmaktan çekinmemek gerektiğini düşünüyorum

    • Buna katılıyorum

      • Örneğin discrete mathematics dersi için, Discord sunucusundaki genel görüşe göre MIT dersi iyi bir ders kitabının bile gerisinde kalıyor
      • Ama ücretsiz/açık kaynak kaliteli ders kitabı neredeyse yok
      • Ben de OSSU ile çalışıyorum ama Discrete Mathematics with Applications (yazar: Susanna Epps, ikinci el $50) kitabını kullanarak öğreniyorum
      • Resmî müfredatın dışına çıkıyor ama yine de OSSU yaptığımı düşünüyorum
  • Bence diploma, çoğu sosyal zayıflığı telafi eden bir etkiye sahip

    • Kâğıt üzerindeki diploma, "Bu alana 3-4 yıl yatırım yaptım ve en azından asgari düzeyde zekâ ile adanmışlığa sahibim" sinyali verir
    • Sosyal becerileriniz zayıf olsa bile buna sahip olmak avantajdır
    • Self-learner iseniz bu sinyal yoktur; bu yüzden ya networking/iletişim becerileriniz çok iyi olmalı ya da çok şanslı olmalısınız
    • Gerçekte sosyal becerileriniz güçlüyse neredeyse yenilmez olursunuz ve beceriniz eksik olsa bile çoğu şeyi konuşarak çözebilirsiniz
  • Birçok yorumda okulun network sağladığı ya da yalnızca belli okullardan mezun olanların işe alındığı gibi şeyler birbirine karışıyor

    • Üniversite veya kariyer çevresinden gelen bağlantıların iş fırsatlarını artırdığı doğru

    • Ama kariyer ilerledikçe, üniversite sonrasında kurulan bağlantıların gücü daha baskın hale geliyor

    • Belirli bir üniversite diploması veya doktora gerektiren pozisyonlarda bunun anlamı network'ten çok bir “sinyal” olması

    • Yani işe alan kişinin daha fazla soru sormasına gerek bırakmayan güvenilir bir işaret

    • Self-learner'ların bunu dolanması ya da ekstra çaba göstermesi gerekiyor

    • Kendi ilişkileri veya ortaya koydukları işlerle dikkat çekmeleri, ya da tavsiye alarak standart işe alım sürecini atlayıp fırsat yakalamaları gerekiyor

    • “Fırsatın kendisinin tamamen ortadan kalkması” denince aklıma şu geliyor: şans bir strateji değildir ama deneme sayısını artırırsanız şanslı olma olasılığınız artar

      • Networking tam olarak fırsat sayısını artırmak demek
      • Gerçekten de bir arkadaşım iş yerindeki softbol ligine katıldı ve oradaki network sayesinde yeni bir iş buldu
  • Asıl hedefin ne olduğunu merak ediyorum

    • Eğer gerçekten amaç işe girmekse, community college düzeyinde bir eğitim bana daha pratik geliyor
    • Amaç sadece para kazanmaksa, hatta neal.fun veya levels.io tarzı bir yol daha hızlı olabilir diye düşünüyorum
    • Sonunda bir diploma da olmayacaksa, belki de doğrudan YOLO stratejisi daha mantıklıdır
    • O zaman geriye yalnızca saf entelektüel merak, yani sırf keyif için öğrenmek kalıyor gibi
  • Bu tür tartışmalarda her iki tarafın da gereğinden fazla savunmacı tavır alması biraz üzücü

 
soonil 2025-05-29

Gerçekten harika.