Bilgisayar mühendisliği (Computer Science) eğitimi – 2
Bilgisayar mühendisliği tüm mühendislik dalları içinde düşünceden aksiyona en kısa yolun olduğu alan. Birkaç gün, belki de birkaç saat içinde aklınızdan geçeni çalışan bir programa dönüştürmeniz mümkün. Bunu elektroniğin herhangi bir alanında, örneğin yüksek frekans devrelerinde gerçekleyemezsiniz, çünkü kullanmanız gereken bileşenler çok daha fazla faktörlere bağlı dolayısıyla işiniz çok daha uzun. Hızlı uygulama özelliği dolayısıyla, geçen hafta da belirttiğim gibi, bilgisayar mühendisliği eğitimi laboratuvar-ağırlıklı (lab-centric) olmalıdır, eğer doğru uygulanıyorsa zaten öyledir. Bir saatlik her dersin dışında 3-4 saat laboratuvar zamanı geçiriyor olmanız gerekiyor (bazen, bu laboratuvar, Cafe Crown’da bir masa, bir latte ve bir de laptopunuz anlamına geliyor!)
İkinci konu ise programlama metotları ve platformları ile alakalı, ancak lab-ağırlıklı olmayı da içeriyor. Sunucu, desktop/laptop, ve mobil cihaz uygulamaları farklı platformlar ve dolayısıyla farklı metotlar gerektiriyor gibi görünüyorlar. Bir kaç ay önce, Wall Street Journal bir makale yayınladı ve mobil uygulamalar geliştirecek yeteri kadar bilgisayar mühendisi mezun olmuyor diye yakındı! Ayrıca, standart iş ilanları web sitelerine baktığınızda herkes iPhone, Android, BlackBerry bilen birilerini arıyor.
Peki, bilgisayar bölümü olarak ne yapmalıyız: Hemen bilgisayar mühendisliğini yeniden düzenleyi, iPhone iOS Programlama, Android Programlama, BlackBerry Programlama (Giriş, Temelleri, İleri v.s.) gibi 6-9 tane dersi mi açmalıyız?
Hayır, öyle yapmayacağız! Bilgisayar mühendisliği ana konularını (algorithms, data structures, object-oriented programming, operating systems) öğretmeye devam edeceğiz. Eğer kod yazmayı öğrenmişseniz, platform önemsiz bir konudur. MacOSX için iyi kod yazan bir mühendis, BlackBerry için de iyi kod yazar. İyi bir bilgisayar mühendisi, soyut düşünebilen ve soyut kavramlar ile veri yapıları ve algoritmalar arasındaki ilişkiyi hızlı ve doğru bir şekilde kurabilen bir mühendistir. Hayatında Android görmemiş iyi bir bilgisayar mühendisi, bir kaç gün içinde onun uzmanı haline gelir. Sanırım, şimdi ilk yazımızın teması daha iyi ortaya çıktı. Lab-ağırlıklı bir eğitimde, bir veya iki platformu (bir tanesi kesin UNIX olmalıdır) öğrenen ve çok iyi pratik yapan bir mühendis sekiz yıl BlackBerry tecrübeli birisini cebinden çıkarır!