Bilgisayar Mühendisliği için alan önerisi

martinedenn

Picopat
Katılım
6 Eylül 2025
Mesajlar
70
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Merhaba, bu sene bilgisayar mühendisliğinde 3.sınıfa geçtim, yönelinebilecek birçok alan var ve ilerlemeye karar verdiğim bir alan şu an yok. Alan seçimi yapabilmek için bir öneriniz var mı?
 
Onu ben de merak ediyorum ilgimi çekmiyor değil 1 yıldan fazla bir süredir de C ile ilgileniyorum. Ama hiç kartlarla uğraşmadım şuana kadar (rasberry pi, stm vs) o yine halledilebilir. Bilgisayar mühendisliği okuyup gömülü mü yapacağız düşüncesi de var çünkü genel olarak elektronikçiler yapıyor. Bir de low level olmasından dolayı çok kafa ütüler mi düşüncesi var (ayrıntılar oluyo epey). Bunun ihtimali belki de diğer alanlarda daha fazladır gerçi. Karar verdiyseniz sevindim sizin adınıza teşekkürler cevap için.
Gömülü biraz saç baş yoldurabiliyor ama tabii işin neresinde olduğunuz ile de ilgili. Öncelikle devre tasarımı bilmeseniz bile en azından şematik okumayı (devrenin çizimi, PCB'nin değil) bilmeniz gerekiyor. Bu sayede neyi nasıl kontrol edebileceğinizi görüyorsunuz. Bahsettiğiniz gibi gömülü yazılım donanım ile aşırı iç içe olduğu için genelde elektrik-elektronik mühendisliğindeki arkadaşlar yazılım ve donanım diye ikiye ayrılıyorlar ama burada bahsi geçen yazılım genelde gömülü yazılım oluyor.

Bir de yukarıda konusu geçen Domain bilgisi yine gömülü yazılımda da var. Otomativde mi çalışıyorsunuz, havacılık ve uzayda mı çalışıyorsunuz, savunma sanayinde mi çalışıyorsunuz, sektöre göre standartlar hem devre kısmı hem de yazılım kısmı için değişiyor. Ayrıca mimarileri aynı bile olsa HAL (Hardware Abstraction Layer)'dan dolayı her marka/model işlemcide kullandığınız fonksiyonlar değişiyor. STM, NXP, Nordic, TI, ESP, Atmel, Microchip, Renesas gibi birçok marka ve bu markaların farklı işlemci aileleri var. Dolayısıyla hepsini öğrenmek zaman alıyor ve sektörde uzun çalışmalar gerektiriyor. Baktığınız zaman çoğu ARM tabanlı da olsa HAL'lar farklı. Öyle aşırı farklar olmasa bile alışması zaman alabiliyor. Tabii Register mertebesinde kod yazıyorsanız işler değişir, o da ayrı bir olay zaten.

x86/x64 mimarilerde genelde koşan bir OS olduğu için siz en azından o kısımlar ile uğraşmayıp direkt kendi kodunuza odaklanıyorsunuz. MCU'larda durum öyle olmuyor çünkü OS yok. Tabii ki duruma göre RTOS (Real-Time Operating System) da kullanmak gerekebiliyor. Zephyr RTOS, FreeRTOS, DeOS, embOS, Integrity, VxWorks gibi birçok RTOS türü mevcut. Onları öğrenmek de bir iş. Bazen kendi RTOS'unuzu kendiniz geliştiriyorsunuz.

x86/x64'lerde direkt bir COM port ya da TTY açıp veri alma/gönderme yapabiliyorsunuz çünkü Driver'lar Kernel'de hazır. MCU'larda öyle bir seçeneğiniz yok. Peripheral'ları konfigüre edip konuşulacak donanıma özel Driver geliştiriyorsunuz. Yani her şey projeye ve isterlere göre şekilleniyor. Low-Level gerçekten Low-Level ve çok uğraştırıcı olabiliyor. Hem x86/x64 hem gömülü tarafta çalışan biri olarak gömülü yazılımın ve Low-Level işlerin beni daha çok mutlu ettiğini söyleyebilirim ama kafa rahatlığı açısından sıralayacak olsam kesinlike gömülü yazılımı, sayısal tasarımın (chip tasarımı) sadece bir tık üstüne yerleştirirdim. Mobil yazılım ve Web Application kısmı ise kafa rahatlığı açısından en üst sıralamaya oynarlar. Tabii bu söylediğim yanlış anlaşılıp da Mobil ve Web kolay gibi bir anlam çıkarılmasın. Onların da bayağı zorluğu var. Yine saç baş yolabilirsiniz. :D

Gömülü yazılım ve sistemler ile ilgili ne kadar sorunuz varsa hepsine elimden geldiğince cevap vermeye çalışırım, sorabilirsiniz.
 
Gömülü biraz saç baş yoldurabiliyor ama tabii işin neresinde olduğunuz ile de ilgili. Öncelikle devre tasarımı bilmeseniz bile en azından şematik okumayı (devrenin çizimi, PCB'nin değil) bilmeniz gerekiyor. Bu sayede neyi nasıl kontrol edebileceğinizi görüyorsunuz. Bahsettiğiniz gibi gömülü yazılım donanım ile aşırı iç içe olduğu için genelde elektrik-elektronik mühendisliğindeki arkadaşlar yazılım ve donanım diye ikiye ayrılıyorlar ama burada bahsi geçen yazılım genelde gömülü yazılım oluyor.

Bir de yukarıda konusu geçen Domain bilgisi yine gömülü yazılımda da var. Otomativde mi çalışıyorsunuz, havacılık ve uzayda mı çalışıyorsunuz, savunma sanayinde mi çalışıyorsunuz, sektöre göre standartlar hem devre kısmı hem de yazılım kısmı için değişiyor. Ayrıca mimarileri aynı bile olsa HAL (Hardware Abstraction Layer)'dan dolayı her marka/model işlemcide kullandığınız fonksiyonlar değişiyor. STM, NXP, Nordic, TI, ESP, Atmel, Microchip, Renesas gibi birçok marka ve bu markaların farklı işlemci aileleri var. Dolayısıyla hepsini öğrenmek zaman alıyor ve sektörde uzun çalışmalar gerektiriyor. Baktığınız zaman çoğu ARM tabanlı da olsa HAL'lar farklı. Öyle aşırı farklar olmasa bile alışması zaman alabiliyor. Tabii Register mertebesinde kod yazıyorsanız işler değişir, o da ayrı bir olay zaten.

x86/x64 mimarilerde genelde koşan bir OS olduğu için siz en azından o kısımlar ile uğraşmayıp direkt kendi kodunuza odaklanıyorsunuz. MCU'larda durum öyle olmuyor çünkü OS yok. Tabii ki duruma göre RTOS (Real-Time Operating System) da kullanmak gerekebiliyor. Zephyr RTOS, FreeRTOS, DeOS, embOS, Integrity, VxWorks gibi birçok RTOS türü mevcut. Onları öğrenmek de bir iş. Bazen kendi RTOS'unuzu kendiniz geliştiriyorsunuz.

x86/x64'lerde direkt bir COM port ya da TTY açıp veri alma/gönderme yapabiliyorsunuz çünkü Driver'lar Kernel'de hazır. MCU'larda öyle bir seçeneğiniz yok. Peripheral'ları konfigüre edip konuşulacak donanıma özel Driver geliştiriyorsunuz. Yani her şey projeye ve isterlere göre şekilleniyor. Low-Level gerçekten Low-Level ve çok uğraştırıcı olabiliyor. Hem x86/x64 hem gömülü tarafta çalışan biri olarak gömülü yazılımın ve Low-Level işlerin beni daha çok mutlu ettiğini söyleyebilirim ama kafa rahatlığı açısından sıralayacak olsam kesinlike gömülü yazılımı, sayısal tasarımın (chip tasarımı) sadece bir tık üstüne yerleştirirdim. Mobil yazılım ve Web Application kısmı ise kafa rahatlığı açısından en üst sıralamaya oynarlar. Tabii bu söylediğim yanlış anlaşılıp da Mobil ve Web kolay gibi bir anlam çıkarılmasın. Onların da bayağı zorluğu var. Yine saç baş yolabilirsiniz. :D

Gömülü yazılım ve sistemler ile ilgili ne kadar sorunuz varsa hepsine elimden geldiğince cevap vermeye çalışırım, sorabilirsiniz.
Öncelikle teşekkür ederim epey uzun cevap yazmışsınız. Low level işlerin sizi daha cok mutlu etmesinin sebebi nedir ? Temelde işlerin nasıl olduğunu bilmenin tatmini mi mesela ? Yapay zeka, veri madenciliği, cloud vs. alanlara ile kıyasladığınızda onlardan daha zor mu buluyorsunuz ? (bana biraz öyle gözüküyor, siber haricinde) Bu alanda staj, iş imkanları sizce nasıl önü açık diyebilir misiniz ? Bu alanda ilerlemek isteyenlere önerileriniz neler olur ? Hocam bir de bilgisayar mühendisliği mezunu musunuz yoksa elektronik mühendisliği mi ?
 
Son düzenleme:
Low level işlerin sizi daha cok mutlu etmesinin sebebi nedir ?
Şöyle ki; ben çocukluğumdan beri bilgisayarlar ile uğraşıyorum. Tabii ki o zamanlar genelde oyun amaçlıydı ama sonra temizlemeye falan da başladıkça bu donanımların nasıl yapıldığına ve nasıl çalıştıklarına dair ilgim çok arttı. Önce Web Sitesi yapmayla ilk yazılıma adım attım. Sonra bu merağım sebebiyle kasıtlı olarak meslek lisesine gittim. Orada mikrodenetleyici programlamayı ve basit düzeyde devre tasarlamayı öğrendim. Çok meraklı ve hevesli olduğum için kendim evde de sürekli bir şeyler tasarlayıp programlıyordum. Derken bu işin sonunun mühendislik olacağı belli olduğu için mühendisliği kazanıp üniversiteye gittim (Mekatronik bu arada benim mezuniyet. Lisede de alanım mekatronikti, aynen devam etmek istedim.). Meslek lisesinde öğrendiklerimi sağlam pekiştirdiğim için üniversitede teknik derslerde inanılmaz rahattım. Bu sebeple yine kendi kendime öğrenme maceram üniversite boyunca da devam etti çünkü üniversite bana bir şey katamıyordu, sadece teorik kısmı öğrenip çalışıyordum. Kendimi anlatmış oldum biraz kusura bakmayın ama Low-Level'ın beni niye mutlu ettiğinin sırrı burada.

Yani mesele neyi sevdiğiniz ve neye hevesli olduğunuz aslında. Ben bunlardan hoşlandığım için bana çok daha tatmin edici ve heveslendirici geliyor ama bir başkası da Front-end, UI - UX tarafında çalışmaktan çok keyif alıyordur. O da ona cazip gelir. Olay aslında sizin neye merak duyduğunuza ve o merağı gidermek için neler yapacağınıza bağlı.

Temelde işlerin nasıl olduğunu bilmenin tatmini mi mesela ?
Evet, temelde işlerin nasıl olduğunu bilmek beni memnun ediyor. Askeri seviyede kara, havacılık, uzay ve otomotiv gibi sektörlerde de geçirdiğim yıllardan sonra; şu an çalışan ve kullanılan askeri standartlara uygun bilgisayar tasarımım var mesela, onun üstünde koşan Linux temelli bir OS var mesela, onun da üstünde koşan isterlere uygun geliştirilen çeşitli uygulamalar (Application) var mesela. Bunların hepsini yapabiliyor olmak beni tatmin ediyor işte ve bu da yetmiyor. Hala neyi daha iyi yapabilirim, neyi optimize edebilirim ve daha ne öğrenebilirim diye bakıyorum. Bence mühendis dediğiniz insanın bunu yapıyor olması lazım. Özellikle ülkemizde artan mühendis mezunlarıyla birlikte sizi diğerlerinden ayıran bir şeyler olmalı diye düşünüyorum. Baktığınız zaman hepimiz mühendisiz.

Yapay zeka, veri madenciliği, cloud vs. alanlara ile kıyasladığınızda onlardan daha zor mu buluyorsunuz ?
Şimdi, tecrübem olmayan alanlarla kıyaslama yapmam yanlış olur. Ben daha önce bu alanlarda çalışmadım. Bildiğim kadarıyla yorum yaparsam; olay yine Low-Level ve işin temelini bilmeye çıkar, neden? Bahsettiğiniz alanlarda her şey hazır. Siz hazır fonksiyonlar ve API'lar ile işlem yapıyorsunuz. O kullandığınız fonksiyonlar nasıl yazıldı, temelde ne yapıyor bilmiyorsunuz. Dolayısıyla o anlamda her şey hazır. Fakat bu şu demek değil, "E her şey hazırsa kolay abi o zaman". Hayır, kesinlikle değil. Bu sefer de sizin o kütüphaneleri, fonksiyonları, neyi, nerede, nasıl kullanmanız gerektiğini bilmeniz gerekiyor. Nasıl optimize edeceğinizi bilmeniz gerekiyor. Yani bir şeylerin hazır olması kolay olduğu anlamına gelmez. Sizi zaman harcamaktan kurtarıyor sadece. Yani; zor mu, kolay mı olarak kıyaslamak bence yanlış olur. Hepsi zor.

Bu alanda staj, iş imkanları sizce nasıl önü açık diyebilir misiniz ?
Türkiye içerisinde gömülü yazılım kısmı maalesef ki ağırlıklı olarak savunma sanayinde var (90% gibi düşünün.). Staj için de bu sektördeki firmlara (ana firmalara olmasa bile alt yüklenicilere ki öğrenebilmek için daha iyi olabilir.) girmeniz gerekiyor. Türkiye içerisinde de dünya genelinde de önü açık bir alan. Şunu belirtmek istiyorum; sektördeki IK'lar cahilliklerinden dolayı bu alanın içine gömülü Linux kısmını da katıyorlar. Çalışanlar olarak bunların 2 farklı alan olduğunu biliyoruz. Normalde ilanların gömülü Linux veya gömülü yazılım olarak açılması gerekiyor. MCU'lara hakim birinin Linux uygulaması geliştirmek zorunda olmadığı gibi Linux çalışan ve üzerinde uygulama geliştiren birinin de MCU'ya yazılım yazma zorunluluğu yok. Çok farklı alanlar. Birini yapıyor olmanız öbürüne neredeyse katkı sağlamıyor bile. İş imkanlarıyla ilgili şunları söylemek isterim (özellikle yolun başında olan arkadaşlar için);
  • Gömülü yazılım alanında Remote çalışma olanağı Türkiye'de yok denecek kadar az (99% ofis, bazen hibrit denk gelebilir ama çok nadir.).
  • Yukarıda da bahsettiğim gibi genelde sektör savunma sanayi. Çok seçeneğiniz olmayabilir. Bu noktada şu önemli; genelde bildiğiniz savunma sanayi firmalarında olanaklar iyidir ama kendinizi geliştiremezsiniz. Hatta ne kadar çalıştığınızı hissedersiniz o bile tartışılır. Dışarıdan göründüğü gibi, reklamlarla anlatıldığı gibi değil bu firmalar. Eğer öğrenmeye hevesli, meraklı bir mühendis olarak bu firmalara girerseniz hüsrana uğrama ihtimaliniz çok yüksek. Genelde giren insanlar çok pişman oluyor ama maaşın güzelliği sebebiyle kalıyorlar. Bu da güzel bir içerden çürüme örneği zaten.
  • Genelde maaşlar ve imkanlar merak ediliyor. Büyük savunma sanayi firmaları için durumu zaten söyledim. Diğer özel firmalar için ise maaşlar size bağlı. Kendini geliştiren bir insanı üzmüyorlar, çok çok iyi maaşlar alabilirsiniz ama "okuduk geldik hadi para" derseniz üzülmeniz muhtemel. Öyle her mezun olana da iyi maaş vermiyorlar. İmkanlar genel olarak iyidir. Maaşınız çalıştığınız firmanın olanaklarına bağlı olarak genelde net maaş olur çünkü yol ücreti, yemek ücreti gibi ekstralar da ödenir.
Bu alanda ilerlemek isteyenlere önerileriniz neler olur ?
Bu alanda ilerlemek isteyenlere kendi yaptıklarımı zaten anlatmış oldum. Onları örnek alabilirsiniz. Evet, ben biraz hayatsız biriyim. Gerçek anlamda kafamı gömüp çok çalıştım ama bunun sonucu olarak genç yaşta çok Lead'lik, Manager'lik yaptım. Hedeflerinize yönelik ne kadar yoğun çalıştığınıza göre de mükafatınız değişir elbette. Birçok konuda olduğu gibi burada da olay sizde biter. Özellikle yeni mezun olduğunuzda iş bulma konusunda zorlanmamak için; sizi geliştirecek projeler ile çok geç olmadan uğraşmaya başlayın. Size soracakları soru şu minvalde olacak; "Seni diğerlerinden ayıran ne?". Bu soruya dolu dolu cevap verebilen bir insan sektör ve alan farketmeksizin işsiz kalmaz.
 
Son düzenleme:

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı