Open Source Society University – Bilgisayar Bilimini Kendi Kendine Öğrenmek İçin Ücretsiz Yol Haritası
(github.com/ossu)- 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
> "Bilgisayar bilimi öğrenmeyin" tarzı haberlerin asıl noktayı kaçırdığını düşünüyorum
Çeviri bayağı iyi olmuş, ilginçmiş haha
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.
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
Öğ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
Liseyi bitirdikten hemen sonra, toy yaşımda bir CS derecesini düzgün şekilde tamamlayamayarak iyi fırsatları kaçırdım
Şahsen Teach Yourself CS'in daha iyi bir alternatif olduğunu düşünü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
Birkaç yıl yazılım geliştirici olarak çalıştıktan sonra CS derecesi için okula geri döndüm
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
Ben ADHD'ye yakınım ve bir ölçüde otizm spektrumundayım
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
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
Discrete Mathematics with Applications(yazar: Susanna Epps, ikinci el $50) kitabını kullanarak öğreniyorumBence diploma, çoğu sosyal zayıflığı telafi eden bir etkiye sahip
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
Asıl hedefin ne olduğunu merak ediyorum
Bu tür tartışmalarda her iki tarafın da gereğinden fazla savunmacı tavır alması biraz üzücü
Gerçekten harika.