• bilgisayar mühendislerinin yatkın olduğu bir meslektir. çünkü bilgisayar mühendisleri, makina diline yakın programlamada sırf dersi geçecek kadar dahi çalışmış olsa belli bir yetkinliğe ve bilgi seviyesine ulaşmıştır. yazılım mühendisliği bölümlerinde assembly,c gibi düşük seviyeli diller üzerinde çok fazla yoğunlaşılmamaktadır. bu diller de gömülü sistemlerde en çok kullanılan programlama dilleridir. ayrıca bilgisayar mühendisliği öğrencileri; devre teorisi, elektronik gibi dersler de görürler. analog devreler hakkında da bilgi sahibi olurlar. ayrıca dijital devrelerde ise hatırı sayılır seviyede bilgi sahibi olarak mezun olurlar. çünkü dijital devre tasarımı, bilgisayar mimarisi ve organizasyonu ve mikroişlemciler gibi derslerde dijital devreler hat safhada kullanılır.

    toparlayacak olursak, bilgisayar mühendisleri diğer mühendislik alanlarına göre gömülü sistemler alanında çalışmaya daha yatkındır. gerek gömülü yazılım, gerek dijital devre tasarımı konularında iyi seviyededirler. bilgisayar mühendisleri, analog devreler tarafındaki açıklarını da kendi çabalarıyla kapatırlarsa; bir elektronik, mekatronik, yazılım mühendisliği mezunundan daha etkili gömülü sistem mühendisliği yapabilirler.
  • türkiye de bu pozisyonda çalıştığını söyleyen fakat gömülü sistem kavramından haberi dahi olmayan insanlar ile dol.

    ilerde üniversitelerde açılmasını beklediğimiz bölüm.
    yazılım desen değil, donanım desen değil.
    karışık efenim, ortaya karışık.
  • bu alanda çoğunlukla elektrik-elektronik, elektronik-haberleşme vb. kökenli kişiler tercih edilir çünkü her ne kadar bilgisayar mühendisleri bu alanla alakalı dersler görse de elektronikçiler hem aynı dersleri daha aytırntılı görür hem de aldığı eğitimden dolayı düşük seviyeli dillerle çalışmaya daha yatkın hale gelir. son olarak bu alan bilgisayar mühendisleri tarafından pek rağbet görmez çünkü çoğu bilgisayar mühendisi assembly, lojik devreler vs. ile uğraşmaktansa kotlin ile yazdığı mobil uygulamadan parayı kırma peşindedir.
  • bu alanda kariyer yapmayı düşünen genç elektrik/elektronik/bilgisayar mühendisleri için, başka bir arkadaşa özel mesajla verdiğim yanıtı buraya kopyalamaya karar verdim.

    gömülü sistemlerin öldüğü, bittiği falan konuşuluyor son 15 yıldır :) ama açıkcası pek öyle değil gibi. tüm dünya gömülü sistemler üzerinde yürüyor, daha endüstriyel ürünlerden bahsetmedim bile.

    gömülü sistem yazılımcılığı ise bambaşka bir uzmanlık alanı ve açıkca söyleyeyim : zor. bu hayatta daha kolay para kazanılabilecek işler vardır diye tahmin ediyorum. ama 20 yılın ardından şunu söylemeliyim: eğer yeni birşeyler öğrenmeyi seviyorsanız, 40 yaşına gelsem de hergün oturup makale okuyabilirim, hergün kod yazabilirim, hergün araştırabilirim diyorsanız, bu iş tam size göre.

    ama yok : "kardeşim ben bu hayata 1 kez geliyorum, iş hayatı benim tüm hayatımı kapsamamalı, ben rahatıma düşkünüm" diyorsanız, uzun vadede bu meslek çok can sıkıcı olabilir.

    dil hususunda: c diline üst seviyede hakim olmadan gömülü yazılımdan bahsetmek çok çok zor. eskiden gömülü yazılım denildiğinde akla mikrokontrolcü firmware uygulamaları gelirdi, ama artık linux heryerde, bir aygıt sürücüsü veya bir sistem servisi yazabilmeyi bilmeniz de gerekiyor. yani artık bu meslek tek kelimeyle: multidisipliner.

    ama c dili halen en önemli dil şu anda. ben şahsen ilk olarak c öğrenmeye başladım, sonra c++, sonra bash, şimdilerde biraz python bakıyorum. tabiki dil kısmı işin küçük bir parçası, asıl önemli olan konseptlere hakim olmak. yani bir aygıtın nasıl çalıştığını, onunla neler yapabileceğinizi bilmeniz çok çok önemli.

    standart kütüphaneleri yalayıp yutmuş olmanız, tasarım kalıplarına hakim olmanız, git'i bilmeniz, cı/cd veya mimari terminolojiye hakim olmanız gerekiyor.

    bütün bunlar yıllar değil, onyıllar sürüyor. abartmıyorum.

    ama eğer gerçekten eminseniz, ve bu yolda ilerlemek isterseniz, kendinize bir iyilik yapın ve csystem'den c programlama eğitimi alarak işe başlayın.

    pişman olmayacağınızı tahmin ediyorum.

    bir de, üstte yazdıklarımı zaten bilenler için küçük bir not bırakayım: arkadaşlar rust öğrenmeliyiz. popülaritesi gitgide artıyor ve compile-safe. gelecek vaad eden bir dil.
  • yaklaşık 15 yıllık meşgalemdir. çalışılan işletmeye göre gereklilikler değişmekle birlikte, bu işi yapmak isteyen arkadaşlarla tecrübemi/önerilerimi paylaşmak isterim. donanım tasarımı, donanım yazılımları (firmware) ve uygulama yazılımları yapmanız beklenir. tasarımın temeli donanım aşamasında atıldığı için donanım hakimiyeti önemlidir. sadece dijital devreler değil, analog devrelere de hakim olmanız beklenir. nitekim dijital devreler sorunsuz olmasına rağmen analog devreler sıkıntılıdır, belalıdır.

    donanım yazılımı geliştirmek için c dili bilmeniz gerekir. assembly'ye pek işiniz düşmese de bilmenizde fayda vardır. compiler'lara güven olmaz, assembly'ye compilerdan şüphelendiğiniz durumlarda işiniz düşebilir. bazıları donanım yazılımlarını c++ geliştirdiklerini söyleseler de bu seviyedeki bir yazılımda c++ önermem.

    donanımlara işletim sistemi gömmek son yıllarda yaygınlaştı. rtos'lar bir kenarda dursun, böyle bir işe girişecekseniz linux bilmeniz gerekir. yaygın olarak bir cihaza ya linux gömersin ya da android. ikisi arasında çok büyük farklar yoktur. sadece android daha gıcıktır, c, c++ ve java ile yazılmış kodlarla cebelleşirsiniz. halbuki linux, c ile alır yürür.. rtos'lar ise çok daha özel sistemlerde tercih edilir. mars'a uydu falan gönderecekseniz o sistemde bir rtos olur mesela. pek sevmem, işlemciyi şişirir..

    uygulama yazılımları, gelişirdiğiniz cihazla iletişim kuran son kullanıcı yazılımlarıdır. bunları geliştirmek için de c++, c#, java, python, qt gibi grafik kütüphanelerini bilmeniz gerekir. .net gibi microfost ürünleri de kullanabilirsiniz tabii ama bir gömülü sistem mühendisi microsoft'a söver! onun ürünlerini kullanmaktan kaçınır. çünkü microsoft sistemler kapalıdır, sana müdahale ettirmez.

    bir gömülü sistem mühendisinin genellikle sensörlere ve motorlara işi düşer. hal böyleyken sinyal işleme ve kontrol sistem teorisine işi düşer. dolayısıyla matematiğe, ve nihayet matlab'a işi düşer. piyasada muaddileri scilab ve octave gayet iyidirler bu işler için. bilmekte, kullanmakta fayda var.
  • sürekli niyetlensemde gözümü korkutan bir alan.
  • 4 yıldır profesyonel, 2-3 yılda öğrencilik zamanında freelance olarak icra ettiğim meslek. donanım çizimi ve mcu'larda kod geliştirmek ile başladım(robotik), wireless sensor network ile devam ettim(zigbee), linux application development'a yöneldim ve artık en sonunda embedded linux consultant olarak çalışıyorum, donanım taraflarına pek işim düşmüyor. genel olarak haberleşme altyapısı(prokoller vs) ve application development ile uğraşıyorum diyebilirim. donanım işlerini, linux tabanlı projelerde çalışmaya başlayınca terk ettim, en fazla şematik okuyorum, sensör bağlıyorum.

    ben başladığım zaman arduino, raspberry gibi boardlar henüz yeni yaygınlaşıyordu. sd karta veri yazmak büyük yetenekdi, usb-pc haberleşmesi ile led yakmak ileri bir konuydu. arm cpu'lar şimdiki gibi yaygın değildi. pıc ile takılıyorduk, çizgi izleyen yapıyorduk vs. şimdi öğrenci olan birisi fpga, arduino, raspberry vs kullanma-öğrenme çok daha fazla.

    aslında normal yazılım mühendisinden farkı olduğunu düşünmüyorum. gömülü'de ek olarak biraz daha elektronik bilmen ve donanım kontrol eden kodları zamanlama-memory kısıtlamaları ile çözmen gerekiyor diyebilirim. işe göre değişir de, tüm projeler böyle denilebilir.

    normal yazılım mühendisleri de embedded linux tarafında çok rahatlıkla çalışır. genel olarak gözlemim web ve application temelli olanlar linux tarafında çalışıyor, firmware development'dan gelmiş olanlar ise gömülü'de her konuda ve alanda çalışabiliyor.

    maaş olarak normal yazılım mühendisliğinden genelde daha düşük, özellikle abd için. sebebi insanlara etkisinin az olması veya biraz arka planda, heyecansız bir iş olması olabilir.

    iş/işveren profili belirli bir kalıba sıkışmış durumda. embedded işini yapan firmaların genelde bir ürünleri oluyor ve onu satmaya çalışıyorlar. gömülü yazılımcılarda bu ürünlerin senaryolarını, yazılım ve donanımlarını tasarlıyorlar. tesla aracında da çalışmak mümkün, fabrika otomasyonu ile uğraşmakda. özel bir protokol veya diğer gömülü mühendislerin çok bilmediği bir yeteneğiniz olursa çok çılgın paralar kazanmanız mümkün. linux security(selinux) konusu örneğin, tesla'da araç güvenliği ile uğraşmak gibi. mesleğin keyif verici kısmı bu tarz büyük etkisi olan projelerde çalışınca oluyor aslında. diğer türlü çok sabit. firmanın birisi fabrikasını akıllı yapmak istiyor, sizde başlıyorsunuz hikaye yazmaya gibi.

    arduino veya raspberrypı gibi bir şirkete startup seviyesinde girerseniz ancak uber,airbnb, google, fb gibi şirketlerin maaşlarına ulaşırsınız.

    ayrıca google,fb, tesla, uber gibi şirketlerde işe giren gömülü yazılımcılar alanında genelde 10-15 yıl tecrübeli oluyor. çünkü adamın belirli bir işi kritik zamanda ve hatasıza yakın teslim etmesi lazım. bu kritik zamanlamayı cihazlarda kodlayacak adamın değeri gerçekten çok yüksek çünkü hayat tecrübesi. juinior'un ile uğraşmıyorlar gördüğüm kadarıyla. yani, meslekde ilk 10 yıl ciddi paralar kazanma imkanınız çok olmayabiliyor, bana o yüzden biraz gönül işi gibi geliyor, yani elektronik sevenlerin yaptığı bir meslek gibi. yoksa normal yazılım mühendisliği daha mantıklı maaş/imkanlar açısından.

    normal yazılım mühendisliğine göre, konferansı, etkinliği epey az. hatta yok denebilir. sadece linux için embedded linux conferance var. yani yaptığınız işi tartışacabileceğiniz veya anlatabileceğiniz kişi sayısı da az. ama bir web developer'in hayatı böyle değil, her ilde/ülkede local bir meetup grubu var, network oluşturabiliyor gibi.

    sorusu olan varsa mesaj atabilir.
  • bilgisayar mühendislerinin elektrik elektronik mühendisleri kadar yatkın olmadığı pekala açık olan bir alandır. gömülü için gerekli donanım bilgisi gibi bilgiler bilgisayar mühendisinin uzmanlık alanları arasında değildir her ne kadar derslerinde bunları belli düzeyde görüyor olsalar da. bununla birlikte c kodlama gibi skillere elektrik elektronik mühendisi zaten sahip olmaktadır, tabii isteği doğrultusunda.

    bir bilgisayar mühendisinin gömülü sistemlere yönelmesi, okuduğu bölümün kendisi için çok büyük bir zaman kaybına neden olmuş olduğu ve yanlış bir tercih yapmış olduğu anlamına gelir. ancak yine de pes etmemeli, sevdiği işi bulduğunun farkına vararak, zamanını bu alanda bir an önce yoğunlaştırmalıdır zira okul eğitimi söylediğim gibi zaman kaybı yaratmıştır belli ölçülerde. ancak yine de öğrenilen her bilgi ona fayda sağlayacaktır. her ne kadar ilerleme hızını başlangıçta yavaşlatmış olsa da.

    ayrıca bu alan, pcb tasarımı gibi konuları da kolayca kapsayabilecek çok geniş bir alan aslında ve nerede kime ne iş düşüyor bu, türkiye'de biraz muallak durumda. büyük firmalarda bunun ayrımı daha iyi yapılıyor olsa da, örneğin bahsettiğim pcb tasarımı işinin son ürüne kadarki safhasını siz gerçekleştiriyor olabiliyorsunuz. komponentlerin lehimlesini dahi...

    özellikle havacılık ve savunma sanayiinde, aviyonik sistemlerde ve günlük yaşamımızda kullnandığımız hemen hemen her ürünün arkasında bulunan hayati bir mühendislik alanıdır.
  • kendimi bu alanda geliştirmek istiyorum fakat gerek ingilizcemin yetersizliği gerek kaynak sıkıntısı şimdilik bana engel oluyor.
  • endüstri 4.0 için kritik bir konumdadır. artık çipe göre sistem tasarlama değil sisteme göre çip tasarlama öne çıkmaya başladı.
hesabın var mı? giriş yap