Arkadaşlar 8 - 10 dönemlik yazılım ve bilgisayar mühendisliği ders programlarını inceleyin; çoğu ders aynıdır, farklı olanların da içeriği benzerdir - aynı şeyi farklı dille anlatıyordur.
Farklı olan tarafları ise tahmin edebileceğiniz üzre bilgisayar mühendisliği; donanım (İçeriği tane tane yazamayacağım oldukça geniş) - ağ ve sunucu sistemleri - elektronik gibi alt dalları da biraz biraz öğrendiğiniz bir alandır. Biraz biraz diyorum çünkü hiçbir alt dalı belirli bilgi seviyesinden öte öğrenemezsiniz üniversite öğreniminde.
Ben Network Uzmanlığı eğitimi de alıyorum günde 6 saat ve her gün, her gün gidiyorum; yine de vakit yetmiyor. Üniversitede o kadar ders arasında, bir dal üzerinde uzmanlaşamaz - hepsinden biraz biraz kulak aşinalığı edinirsiniz hepsi bu kadar. Yani Mühendislik okudun diye donanım alanındaki hiçbir şeyin uzmanı olamazsın; kendi çaban ile "Bilgili" olabilirsin yalnızca bu.
Yazılım mühendisliği de tahmin edeceğiniz üzre; tamamen yazılım ve proje yönetimine eğilmiş bir bölüm. Şirketlerin Ar-Ge departmanlarını incelerseniz yazılımdan sorumlu kişinin aynı zamanda "Kullanıcı beklentilerini anlayabilecek ve karşılayabilecek" niteliğe sahip olduklarını görürsünüz. Yazılım mühendisliği yalnızca yazılım bilmekle bitmiyor elbette.
"Peki işe girerken Yazılım mı yoksa Mühendislik mi avantajlı olur?" şeklinde bir soru soracaksınız. Bu tamamen hangi şirketin hangi pozisyonuna "Hangi konularda uzmanlığa sahip" bir insan arayışı oldukları ile alakalıdır. Staj - geliştirme amaçlı işe alımlarda öylesine bakarlar; alakalı bir bölümde mi okuyor diye. Bunun dışında şirkete fayda sağlayacağınız bir pozisyonda işe başlayacaksanız kimse okuduğunuz bölüm yazılım mı - donanım mı diye bakmaz, işi ne kadar bildiğinize "Varsa elinizde, önceki iş tecrübeleriniz - başarılı proje teslimleriniz - referanslarınız" buna bakarlar.
Çok uzattığımın farkındayım ancak inanın "Kimse ileride hangi alanda uzman olacağı planını %100 netlikle kuramaz". Biraz da hayat yönlendirir insanı, yazılım mühendisliği okudun diye hardcore yazılımcı olmazsın her zaman; o siteyi - o programı çalıştırabilecek bir sunucu sistemine ihtiyaç duyarsın. Proje dosyalarını aktarırsın ancak sanalda sorunsuz çalışan proje realde problem yaratır; haliyle yazılımcı olsan bile server sistemlerinin dilinden anlamaya başlarsın, kendini bu alanda gelişmeye aç hissedersin.
Yani iki farklı bölümden mezun olan 2 kişi rahatlıkla aynı iş ilanına başvuru yapabilir; tek mesele "İstenen uzmanlık detaylarına ne kadar hakim olduğudur". Bilgisayar mühendisi biri, tek satır kod yazmayacağı bir ağ sistemini yönetmekle görevlendirilebilir; yazılım bilgisi olduğu halde. Alanı geniştir, nereye çekersen oraya gider; uzmanlık branşları çok fazladır; ağ sistemleri bile 30 çeşit uzmanlık alanına ayrılır. Bazen tek bir haberleşme protokolü üzerine tam uzmanlık beklerler; o adam sadece minnacık bir konuda uzmandır ancak fazlasına ihtiyacı yoktur.
Buna karşılık yazılım mühendisliğini çektiğin yöne gelmez, anca kullandığın dilleri - bağlı bulunduğun platformları değiştirirsin veya bağımsız platformlarda proje geliştirirsin.
Kısacası mühendislik mezunu; yazılımcının her işini hemen hemen yapabilir alanı gereği ancak yazılım mühendisi; bir mühendisin uzmanlık alanından anlamaz.
Tabi bu; yazılım mühendisi kendini yalnızca yazılımda geliştirebilir demek değil. "X mühendisliği okudunuz diye yalnızca X işinden anlamak zorunluluğunda değilsiniz". Her zaman söylerim; bir insan kendini geliştirdikten sonra isterse kaldırım mühendisi olsun, yapamayacağı iş, uzmanlaşamayacağı dal yoktur.
En kısa dille; Yazılıma karşı inanılmaz bir şevkiniz - isteğiniz yoksa, mühendislik yazmaktan sakın korkmayın. Mühendisliğin uzmanlık alanı derya denizdir, kararsız olanlar mühendislik okuyup 4-5 sene boyunca bol bol düşünebilirler; uzmanlaşmak istedikleri alanlar hakkında.
Ne yazılım mühendisliği bölümünün verdiği dersle yazılım uzmanı olursun ne de mühendislik bölümünün verdiği dersle network veya yazılım uzmanı Kendini geliştirdiğin sürece iki kapı da güzel yollara açılır; sadece yazılıma çok niyeti olan arkadaşlarımız mühendisliğe kaymasın boş yere, yürüsün gitsin yazılım üzerinden.