Java ve .NET bağlamında Bilmek ve Öğrenmek Üzerine

Geçenlerde Friend Feed‘de(FF) bir soru vardı: “Java mı .NET mi?” Sanırım soruyu soran kişi bir yazılım şirketinde ya da bir şirketin BT bölümünde çalışıyordu ve önlerindeki bir proje için teknoloji seçimi yapmak noktasındaydılar. Bu son derece tabi bir durum; pek çok şirket bu iki teknolojinin dışındaki teknolojileri kullanıyorlarlar ve hayatlarının belli bir noktasında daha yaygın olan bu iki teknolojiden birini seçip onunla devam etmek istiyor.  FF’de sorulan böyle bir soruya cevap verenler derin teknik analizler yaparken ya da tecrübelerini aktarırken ben de ufak bir katkıda bulunmak istedim ve seçimdeki temel kriterin “bilmek” olduğunu söyleyiverdim.

“Java mı .NET mi ?” her zaman çok güzel bir entellektüel tartışma konusu olur. Katılanların birikimlerine göre yapılacak kıyaslamalar ufuk açıcı olur. Aktarılan tecrübeleri okumak muhakkak mükemmeldir. Bu seviyede olmasa da kesinlikle bu açıdan okumaya değer fikirler oldu cevaplar arasında. Ama beni rahatsız eden birşey vardı  tartışanlar arasında. Java ya da .NET sanki öyle iki haftada öğrenilecekmiş de önemli olan teknik meziyetlerini göz önüne alarak doğru bir seçim yapabilmekmiş. Benim hissettiğim hava böyleydi. Bu yaklaşım, teknik açıdan bir kere öğrenmenin maliyetini yadsıyan bir yaklaşım. Daha da temelde, öğrenmenin ve öğrenme sürecinin sonunda da bilir hale gelmenin ne olduğunu bilmeyen bir yaklaşım. Bu ise sadece BT çalışanlarına özgü bir durum da değil bence: Tamam mühendisler çözüm odaklıdırlar, istenen sonucu çıkarmaya çalışırlar, mutlak doğru çoğu zaman onların amacı değildir, doğru ama şunu da teslim edelim: Millet olarak “bilmek” konusunda problemliyiz, bilmenin ne olduğunu bilmiyoruz, dolayısıyla öğrenmenin nasıl bir süreç olduğundan da bihaberiz, hatta kanımca öğrenmenin süreç olduğunu düşünmüyoruz bile. Hap gibi yani, otur, öğren ve kalk.

Tekrar “Java mı .NET mi?” tartışmasına tekrar dönersek, bence bırakın böyle bir seçimi, Java içinde Servlet-JSP mi kullanalım yoksa Struts mı yoksa JSF mi gibi bir seçimde bile projeyi gerçekleştirecek takımın bu teknolojileri “bilme” noktasında ne konumda olduğu önemliyken, bu konum projenin bitiş süresini direk etkileyebilecek faktörlerden birisi olduğu halde nasıl olur da çok daha radikal ve temel bir kararda bilmenin önemi yadsınır. Acaba biz bilmekten “Akın hocadan 15 gün Java dersi aldık ya” gibi bir şeyi mi kastediyoruz yoksa “Gençler zaten mühendis, başları sıkışınca da Google’dan arayıp, deneye yanıla sonuca varırlar”ı mı kastediyoruz? Böyle bir süreçle öğrenme denen şey nasıl gerçekleşir? Sonunda birşeyleri bilir hale gelebilir miyiz? Yani bu şekilde çözdüğümüze benzer bir başka sorunla karşılaştığımızda, artık sorunun çözümünü iyi bildiğimizi ve hızlıca çözebileceğimizi söyleyebilir miyiz? Daha da önemlisi hayatımızda sadece sorun mu çözeriz biz? Hiç mi bir sorun ortada yokken, belki ihtiyaçlardan ya da ne bileyim daha farklı saiklerden yola çıkarak, yaratıcılığımızı kullanıp güzel şeyler ortaya koymayı denemeyiz? ABD’de yaşarken Türkiye’yi ziyarete geldiğimde tanıştığım arkadaşlar bana “şöyle birisi var şu siteyi göçertti” gibisinden üç-beş hackerdan bahsettiğinde ben de “yahu bozmak yerine hiç mi yapan, inşa eden ya da kuran birisi yok Allah aşkına?” diye sormadan edememiştim 🙂

Bence çok iyi Servlet-JSP programlama bilenler bile ciddi bir arge çalışmasını kaldırmayacak, zaman açısından kritik bir bitiş tarihine sahip projede örneğin JSF kullanmamalılar. Yoksa proje de projede çalışanlar da çok sıkıntı çekerler.

Yazımı bir başka FF sorusu ile bitireyim. Bu sene üniversiteler ne zaman açıldı? Eylül sonunda ya da Ekim başında falan sanırım. Peki, Ekim’in 27’sinde bir Bilgisayar Mühendisliği 1. sınıf öğrencisi FF’e mesaj gönderip “Ben artık C’nin temellerini öğrendim, şimdi hangi dili öğreneyim?” diye bir soru sorarsa siz ona hangi cevabı verirdiniz? 🙂

Toplam görüntülenme sayısı: 1971