Düz programcılıktan kastınız nedir, yani programcı adam düz programcılık yaparken size "git arge yap, yeni programlama dili geliştir onu kullanalım" demeyecekler. Hem düz programcı hem de bilgisayar mühendislerinin birlikte çalıştığı bir kurumda çalışmanız durumunda aynı ekibin parçası olacaksınız, belki sizden bazı şeyleri daha çabuk öğrenmeniz, hata toleransı çok daha düşük olacak şekilde ve güncel standartlara uygun kod yazmanız beklenebilir, yeni mezun olduğunuz zaman sizi öyle çılgın projelerde, sadece 3 kişinin erişebildiği gizli repolarda falan çalışmayacaksınız yani. Kurumun politikasına göre belki programcının erişemediği yöneticilik seviyelerine ulaşabilirsiniz ileride, ekip ve proje yönetme sorumluluğunu size verirler, onun dışında yeni mezun mühendis cidden bir şey bilmez, programcı ile arasında pek bir fark yoktur, hatta programcılık lisesinde okuyan stajyer arkadaşlar bile siz ona öğrettiğiniz müddetçe işi anlıyorlar. Sadece alaylı yazılımcıya ya da programcıya proje teslim etmek (yani sorumluluk verme aşamasında güvenmek) daha uzun vakit alır, mühendise sorumluluğu daha erken verirsiniz. Bu yüzden pek çok kurum mühendislik bölümlerinden mezun ve hatta üstüne X yıl deneyimli eleman arar junior ilanlarında bile.
Savunma sanayine gelecek olursak, kesinlikle mühendislik disiplini isteniyor. Ancak savunma sanayinde çalışan birisinin her alana hakim olması gerektiğini düşünüyorsanız yanılıyorsunuz. ASELSAN'ın bir Java developer ilanını buldum mesela, inceleyelim.
- Üniversitelerin bilgisayar Mühendisliği bölümünden mezun,
- Yazılım mimarileri konusunda bilgi ve deneyim sahibi,
- Java programlama dilinde en az 2 yıl deneyime sahip,
- Karmaşık desktop frontend/backend Full stack uygulamalar geliştirmiş,
- Yaygın olarak kullanılan Java kütüphaneleri ve Framework'lerinde tecrübesi olan,
- Tercihen Eclipse IDE kullanımında ve RCP/OSGI plugin geliştirme konusunda deneyimli,
- Java alanında yeni teknolojileri takip eden,
- Veri yapıları, tasarım kalıpları, nesne yönelimli programlama/tasarım, temiz kodlama konularında tecrübeli,
- İlişkisel ve NoSQL veri tabanı sistemlerinde tecrübeli,
- Çevik yazılım yaşam döngüsü ürünleri (Bitbucket, JIRA, Confluence vb.) İle çalışma tecrübesine sahip,
- Tercihen REST API, mikroservis mimarisi, container mimarileri (Docker, Kubernetes) hakkında bilgi ve deneyim sahibi,
- Sistematik yeniden kullanım ve ürün odaklı çalışma yöntemlerine yatkın,
- Tercihen CI araçlarıyla ilgili bilgi sahibi,
- İletişime ve öğrenmeye açık, yardımlaşmaya önem veren, ekip çalışmasına yatkın, problem çözme yeteneğine ve analitik düşünce yapısına sahip,
- Seyahat engeli bulunmayan
Okulun size kattığı 4 yıllık birikim sizce bu istenenleri karşılıyor mu? Bilgisayar mühendisliği eğitiminde Java veri yapıları dersini size anlatırken kullanılan bir dildir. Okul size temel syntax bilgisi dışında sadece Java'ya mahsus bir şey öğretmez, veri yapılarını anlatırken yararlanılabilecek dillerden biridir. Okulda karmaşık bir uygulama geliştirmezsiniz (bitirme tezi bile karmaşık olmaktan çok uzaktır), okul yeni teknolojileri size öğretmez, öncelik olarak temeli öğretme gayesi içindedir, veri tabanı dersinde ekseriyetle SQL relational dB anlatılır, nosql e neredeyse değinilmez bile, mezun olup git nedir bilmeyen kişiler mevcuttur, jira, confluence gibi şeyleri duyan yoktur herhalde, clean code tasarım ve kodlama henüz kafada oturmamıştır, CI docker falan da öğretmez okulunuz size.
Yani 4 yıllık okulunuz size bu ilanın neredeyse hiçbir şeyini sunmuyor, 4 yılın büyük bölümü temel algoritma, matematik, otomata teorisi vb. Bunun üstüne öğrenmeniz gereken veri tabanı, nesneye dayalı tasarım kodlama mimari gibi kavramların temelleri, biraz seçmeli ders yani bilgisayar grafiği, yapay zeka, Windows sistem programlama gibi (benim zamanımda bunlar seçmeliydi, şimdi AI zorunlu sanırım) 4 sene bitiyor gidiyor, bir birikim falan vermiyor, ASELSAN'ya da diğer firmalar size okulda öğretilen ama kendi işlerine yaramayacak birikimlerle ilgilenmiyor zaten, senin okulda ben bilgisayar grafiği dersi aldım, oyun kodlayabiliyorum demenin ya da mikrodenetleyici dersini çok severim demenin bu ilana (Java dev.) Başvuruda hiçbir önemi yok. Ancak eğer mezunsanız ve kariyer hedefiniz dB admini olmak ise, iş analisti olmak ise, operasyonel sorumlu olmak ise, front end developer olmak ise vb. vb. Kariyer yolculuğunuza başlamanız için gereken temel eğitiminiz var. Bunun üzerine yukarıdaki ilandaki şeyleri öğrenmek, teknolojileri kullanmak, teorik bilgileri pekiştirmek sizin sorumluluğunuzda.