Bu ayki yazımda ODTÜ Bilgisayar Mühendisliği Bölümü Öğretim Üyesi ve Bölüm Başkan Yardımcısı Doç. Dr. Göktürk Üçoluk' un bilgisayar mühendisliği hakkındaki görüşlerine yer vermek istiyorum. Kendisi, yaptığım ropörtajda, bilgisayar mühendisliği öğrencilerinin ve öğrenci adaylarının sıklıkla sorduğu soruları yanıtlamış ve iş yaşamında bilgisayar mühendisinin yeri hakkında yol gösterici bilgiler vermiştir.
Bilgisayar Mühendisi ne yapar?
Sanılanın aksine Bilgisayar Mühendisliği bilgisayar donanımını geliştirme mühendisliği değildir, aksine salt güncel teknoloji ortamının bilinmesi amacıyla bu konuların iyi bir izleyicisidir, Bilgisayar Mühendisi. Bu teknolojinin üretim sürecinde yer almaz. Donanım Elektronik Mühendisliğinin ilgi alanıdır.
Bilgisayar Biliminin alt alanlarının uzmanlaşmış mühendisliği bir yazılım ürününün sağlıklı üretilmesi için yeterli olmamaktadır. Alt alan mühendisliğine ek olarak bir yazılım üretiyor olmanın sorunları ile uğraşan ve üretime,ürüne ilişkin kalite ölçütleri belirleyen, üretim yöntemleri saptayan bir 'üst' mühendisliğe gereksinim vardır. Yazılım üretmeye yönelik bu mühendisliğe 'Yazılım Mühendisliği' denmektedir. Yazılım mühendisleri bir yazılımın ortaya çıkarılması alanında belirli görevleri üstlenirler. Bunları özetlersek:
Tasarımın yapılması:
Bu aşama mühendisliğin teknik (ve anlaşılmaz) boyutunun devreye girdiği aşamadır. Bilgisayar Mühendisi aldığı işi belgeleme işini üstlenir. Bu belgelerde işin hangi işlevsel modüllere nasıl bölüneceği, modüllerin birbirleri ile ilişkileri, veri depoları, veri akışlarını gösterir. Bu tasarım evresinde de kimse sipariş edilen yazılımı 'yazmak' (biz buna kodlamak diyoruz) amacı ile bilgisayar başına oturmayacaktır. Çünkü çok önemli olan bu tasarım evresi yeterince zaman ayrılarak , profesyonel usullere uygun yapılmazsa, yazılımın bundan kötü bir şekilde etkileneceği kesindir.
Yazılımın yazılması:
Gerçek profesyonellikte yazılımın fiilen yazılması Yazılım Mühendislerince yapılmaz. Ülkemiz yazılım üretimi konusunda ne yazık ki daha tam profesyonelleşememiştir. Yazılım Mühendisi sayımızda azlık olduğu gibi, bu disiplinin ara elemanı durumunda olan 'programcı' sayısı ihtiyacın çok çok altındadır. Bu alandaki (Profesyonel) 'programcı' boşluğu ne yazık ki ülkemizin bir gerçeği olarak iki kaynaktan doldurulmaktadır:
- Kendini programcılık alanında (kısmen) yetiştirmiş, halk deyimi ile 'alaylı' farklı disiplinlerin insanları.
- Ne yazık ki Yazılım Mühendislerinin kendileridir.
Yazılım ürününün test ve bakımı:
'Kodlanan' modüllerin işlevlerini yerine getirip getirmedikleri, tasarım parametrelerinin uç değerlerindeki tavırları ve dayanıklılıkları, tüm sistemin hatasız şekilde bütenselliği ve ürünlerde ileriki zamanlarda çıkabilecek olası problemlerin çözülmesi, Yazılım Mühendisleri ve deneyimli 'programcılardan' oluşmuş olan bir ekip tarafından üstlenilir.
Bilgisayar Mühendisi için iş imkanları nedir, kaç para kazanır?
- Yurt içinde:
Şirketlerin bilgi-işlem birimleri:
Çeşitli bankalar, holdingler, büyük ölçekli sanayi kuruluşları Bilgisayar Mühendislerine en yüksek ücreti ödemektedir. Bulunulan şehre göre değişmekle birlikte yaklaşık 2500 YTL ile başlayan başlangıç ücreti bir yıllık başarılı bir çalışma sonucunda 3500 YTL'ye tırmanmaktadır. Piyasa 4-5 yıllık bir deneyimin alacağı ücret 4000-4500 YTL ve üzeri olmaktadır.
Yazılımevleri:
Yazılımevlerindeki Bilgisayar Mühendisi çalışanların aylıkları bir önceki başlıkta anılandan daha azdır. Bazı yazılımevleri ürün satışı üzerinden ortaklık önermekte ve rakamı daha da düşük bir düzeye çekmektedir. Buralarda geliştirilen yazılımın 'çekiciliği' ne yazık ki, Bilgisayar Mühendisinin ücretine negatif bir faktör olarak etkimektedir.
Savunma Sanayi:
ASELSAN, HAVELSAN, STM gibi bir grup, sayıları çok kısıtlı olan, devlet ortaklı şirket, iyi bir alıcı olan savunma sektörüne yazılım üretmektedir. Bu kurumlarda çalışmaya başlayan kişinin Yüksek Lisans eğitimi yapmasına izin verilir. Ancak eğitimin işi aksatmasına izin verilmez. Ücretler genellikle 2000YTL civarında başlar ve zaman içinde çok fazla da tırmanmaz.
Akademik yaşam:
Öğrenimin lisans sonrası eğitim (master, doktora derecelerine yönelik) sürdürmek kararında olan lisans mezunları için bir alternatif de 'üniversitede asistan olarak kalmaktır'. Ne yazık ki devlet üniversitelerinde verilen ücretler memur ücreti olup, her disiplin için aynıdır. Bazen dalgalanma göstermekle birlikte araştırma görevlisinin alacağı maaş 900 YTL dolaylarındadır. Buna karşın kendisinden beklenen iş yükü özel sektördekinin yarısı gibidir ve akademik ortamda kişiye tanınan özgürlük verilen görevlerin aksamaması sınırlarına kadar genişlemektedir.
- Yurtdışında:
Türkiyedeki olgular büyük ölçekli olarak yurt dışı için de geçerlidir. Ancak her şey daha büyük boyutlarda gerçekleşmektedir. ABD standartlarında, iyi bir üniversiteden mezun olan bir bilgisayar mühendisinin (iş ayırımı gözetmemesi koşulu ile) kazanacağı yıllık (brüt) 75000-80000 USD dır.
Müfredat hakkında:
Bilgisayar mühendisliğinde verilen temel dersler, şu anda bir bilgisayar mühendisine gerekli özellikleri kazandıracak ölçüdedir ve belirli zaman aralıklarıyla gözden geçirilmektedir. Belki bir miktar ağırlaştırılması ve detaylandırılması öğrencilerin yararına olabilir. Mesela algoritma konusu öğrencilere daha yoğun bir şekilde verilebilir. Ders içeriklerine gelince, basit olarak kabul edilebilecek ve güncel teknolojiyi kapsayan derslerin müfredatta olmamasını bir eksiklik olarak gözlemek mümkündür. Bence öğrencilere günün teknolojilerini de kısaca tanıtacak ve nasıl öğrenilmesi gerektiği, genel yapıları ve özellikleri açısından bilgilendirebilecek 1-2 kredilik dersler müfredata koyulabilir. Böylece öğrencilerin iş yaşamına daha rahat geçmeleri, ilk dönemlerde deneyim eksikliği sebebiyle karşılaşılabilecekleri sorunların hafifletilmesi sağlanabilir.
Piyasanın Öğrenciden Beklentisi:
Piyasayı bu konuda 3 katmana ayırabiliriz:
Birinci katman:
Düşük katman olarak nitelendirebileceğimiz katman parça başı iş yapmaktadır. Anlık ihtiyaçlarını karşılayacak kişilerin peşindedir. Herhangi bir yazılım lazım olduğunda bunu yazabilecek, istendiğinde Web tasarımı yapabilecek ya da bir şeyin PHP kodunu yazabilecek elemanlar beklemektedir. Yani bir Bilgisayar Mühendisinin değil bir programcının yapması gereken şeyleri mühendislerden talep etmektedir.
İkinci katman:
Bu katman da aynı taleplerde bulunmaktadır ancak bunlar daha iyi durumdaki kurumlardır. Uzmanlık ve mühendislik bakış açısı gerektiren bazı işlerin deneyimsiz kişilere yaptırılması sonucu zarara uğramış olan bu şirketler Bilgisayar mühendislerinden daha yüksek kalitede benzer işler beklemektedirler ve bunun karşılığında da daha yüksek ücret vermektedirler. Bankalar bu grupta yer almaktadır.
Üçüncü katman:
Yüksek seviye olarak nitelendirilen bu katmanda saygın yazılımevleri bulunur. Onların bekledikleri , talep ettikleri yazılım mühendisi problemlere üstten bakacak, tasarım ve taslak hazırlayabilecek, rapor sunabilecek, probleme çözüm getirebilecek kısaca proje liderliği yapacak insandır. Bu kişileri bulabilmek için önce teste tabi tutarlar ve projenin alt katmanlarında bir görev verirler. Gerekli kaliteyi gördüklerinde ise proje liderliğine yükseltirler. Maalesef ülkemizde Bilgisayar Mühendislerine hangi işin yaptırılması gerektiği tam olarak bilinmiyor. Bir firma bilgisayar mühendisini ilgilendirecek bir sorunla karşılaştığında başka insanları devreye sokuyor ve verim alamayabiliyor. Bu hem şirketler hem de ülkemiz açısından büyük bir eksikliktir.
Bizim amacımız:
Bilgisayar mühendisliğinin asıl amacı da bu kaliteye sahip öğrenci yetiştirmektir. Kod yazabilmek ya da web tasarımı yapabilmek bilgisayar mühendislerinin yapabileceği ancak asıl amacı olmayan işlerdir. Bilgisayar mühendislerine verilen “Software Engineering” olarak da bilinen yazılım mühendisliği derslerinin asıl amacı da budur. Her ne kadar çok üstüne düşülmese de ve öğrenciler tarafından, rapor yazdırdığı için, angarya bir ders olarak görülse de iş yaşamında önemli bir yere sahiptir. Bu sebeple mezun olacak insanlara aynı zamanda bir soruna yukardan bakabilme yeteneği ve en önemlisi de bu konuda kendine güven aşılanması gerekir. Bu sayede iş yaşamındaki çekinceleri kalkabilecektir.
Sertifika programları hakkında:
Bilgisayar mühendisliği öğrencilere güncel bilgiler değil çekirdek, temel oluşturabilecek bilgiler veriyor. Güncel dersler müfredata koyulsa 1 sene sonra o konu belki bu kadar popüler olmayabilir. Ama yine de bir bilgisayar mühendisi günün teknolojilerinden haberdar olmalıdır. Sertifika programları bilgisayar mühendislerine günün teknolojilerini, yöntemlerini tanıtması açısından destekliyorum. Tekrar vurguluyorum bu programların lisans eğitimiyle bir ilgisi yoktur. Sadece günceli yakalamak için yararlı programlardır. Lisansta gereken ise belirli bir güncel konuda bilgi vermek yerine genel hatlarıyla yeni teknolojileri ele almak ve nasıl ulaşılabileceğini göstermektir.
“Çok çalışan” mı “Çok kurcalayan” mı?
Ben çok kurcalayanı tercih ediyorum. Çünkü her şeyi kurcalayan kişi bir süre sonra bununla yetinmeyip kurcaladığı şeyin arkasındaki, temelindeki bilgiyi de merak edecek ve onu da kurcalayacaktır. Her ne kadar iş yaşamının başlarında, çok çalışana kıyasla, biraz zorlanacak olsa da sonradan çok çalışandan daha iyi bir yere gelecektir ve kendine olan öz güveni, çok çalışandan daha yüksek olacaktır. Yalnızca kitabı kurcalayan ve öğrenen kişi size yapacağı işin ne olduğunu, ondan ne yapmasını beklediğinizi soracaktır. Yani işi kendi kendine irdeleme, işin ne gerektirdiğine kara verme ve işi kurma becerisi eksik kalacaktır. Bu sebeple çok çalışan değil, çok kurcalayan!
Yurtdışına gitmek?
Lisans eğitimi süresince gitmeyi doğru bulmuyorum. Master düzeyinde ise ne üzerine master yapmak istediğinize bağlı olarak cevabım değişecektir. Bir bilim dalıyla uğraşmak istiyorsanız, gideceğiniz yerin uzmanlaşmak istediğiniz alandaki çalışmalarını da dikkatli inceleyerek yurt dışına gidebilirsiniz. Yani master bir dalda uzmanlaşmak için yapılmalıdır. İşin bilim kısmıyla ilgilenmek için. Bir insan sadece fiyat artırmak için master yapmak istiyorsa, master gereksiz bir çabadır. Bu amaçla sertifikasyon yolunu seçmesi daha uygundur. Doktora için de aynı kıstaslar geçerlidir. İşin bilim kısmıyla ilgilenmeyecek insanların yurt dışına gitmesini desteklemiyorum.
Doç.Dr. Göktürk Üçoluk'a verdiği yararlı bilgiler için teşekkür ediyoruz.