Yazılım mühendisliği mi, bilgisayar mühendisliği mi?

Yazılım mühendisliği mi, Bilgisayar mühendisliği mi?

  • Yazılım Mühendisliği

  • Bilgisayar Mühendisliği


Sonuçları sadece ankete oy verdiğinizde görebilirsiniz.
Dediğim gibi, hiç böyle bir şey duymadım.

Anladım, olmayabilir de işte. Öyle İngilizce bir yerde okumuştum.

CS'i "SWE + donanim" seklinde tanimlayan cehaletin tumune.
Bunu diyen hayatinda iki programin icerigini karsilastirmamistir bile.

Bana mı diyorsunuz? Bana diyorsanız yazılım ile donanım mühendisliği arasında öyle bir bağ kurmadım.
 
CS'i "SWE + donanim" seklinde tanimlayan cehaletin tumune.
Bunu diyen hayatinda iki programin icerigini karsilastirmamistir bile.
Açık cevap vermekten kaçınıyorsunuz, hoş değil. İnsanlara hakaret edip sonra da muğlak cevaplarla sıyrılmak yakışıksız.

Neyse, galiba bir yanlış anlaşılma var. Bilgisayar mühendisliği diye konuştuğumuz şeyi siz CS olarak algılıyorsunuz galiba, burada bir algı farkı var. Türkiye'deki çoğu okulun verdiği bilgisayar mühendisliği derecesi CS derecesi kesinlikle değil, Computer Engineering derecesine daha yakın. Türkiye'de CS derecesi yok, en yakın şey de yazılım mühendisliği ama sizin de dediğiniz gibi o dereceyi sadece kısıtlı özel üniversiteler "yazılım" kelimesine insan çekmek için kullanıyor. Ama işin özünde Türkiye'de verilen bu iki dersi karşılaştırdığımızda basit tanımıyla yazılım mühendisliği ve bilgisayar mühendisliği derecelerinin temel farkının birinin elektronik barındırmıyor olması olduğunu söyleyebiliriz, burada bir hata yok.

Yurt dışındaki CS, SWE ve Computer Engineering bölümlerini de karşılaştırabiliriz. Ve inan bana bu yapacak yetkinliğim var. SWE lisans derecesi olarak çok az okulda var ve CS programıyla çok da bir farkları yok açıkçası. Daha pratik odaklı olduklarını iddia ediyorlar, ne kadar doğru bilmiyorum, dediğim gibi az okulda var. SWE'nin bir lisans derecesi olmasındansa bir iş tanımı olarak kalması bence daha doğru ve zaten veren okul sayısı kısıtlı, o sebeple bunu geçiyorum. CS bölümünün temelinde algoritmalar ve adı üstünde bilgisayar "bilimi" vardır. Türkçesini bilmiyorum ama odak "computing theory" üstündedir. E bunlar da yazılım üstünden yapıldığını için odak yazılımdır. Elektronik dersleri lisans derecesinin temel bir parçası olarak ya verilmez ya da çok kısıtlı 1-2 ders verilir. Computer Engineering derecesiyse bilgisayar dediğimiz (sadece son kullanıcıdaki bilgisayarlar değil) cihazı her yönüyle inceler. Elektronik yapısı, elektronik yapıyla yazılım arasındaki ilişki, sinyal analizi vs. Computer Engineering derecesinin olmazsa olmazları. Aradaki farkı şöyle de anlayabiliriz, çoğu okulda CS departmanı kendine özel ayrı bir departmanken Computer Engineering departmanı genelde ECE departmanına yani "Electrical and Computer Engineering" departmanının içindedi. Elektrik-elektronik mühendisliğiyle grupluyorlar yani genelde. Bunun dışında yine çok kısıtlık birkaç okulda EECS (Electrical Engineering and Computer Science) derecesi mevcut ki bu derece de Computer Engineering derecesine benzerlik gösteriyor. Seçmeli derslerinizle (ki bu konuda özellikle ABD bizden çok farklı, derecenizin yarısı seçmeli ders de olabiliyor) yazılım tarafına mı yoksa elektronik, donanım tarafına mı kayacağınızı siz belirleyebiliyorsunuz.

Umarım açıklayıcı olmuştur, hem @bitwise sizinle olan yanlış anlaşılmayı çözer hem de bu konuda kafası karışan arkadaşlara yardımcı olur. Hatta bu mesele o kadar çok soruluyor ki bu şekilde rehber niteliğinde bir konu açmak daha faydalı olabilir.
 
Açık cevap vermekten kaçınıyorsunuz, hoş değil. İnsanlara hakaret edip sonra da muğlak cevaplarla sıyrılmak yakışıksız.

Gayet acik cevap veriyorum, 3 sayfa basa gidip de tek tek X onu dedi, Y bunu dedi diye arastirmaya useniyorum yalnizca. Ustune alinan ve kendine guvenen cevaplasin.

SWE grad seviyesinde verilir, undergrad seviyesinde SWE detaylica irdelenemez cunku temeli yok ogrencinin.

Theory of computation yazilim ile direkt alakali degil. Hesaplanabilirlik odakli matematiksel ve abstract bir konsept. Networking, OS, distributed systems vs hepsi benzer sekilde.

Yazilim muhendisliginde oldugu gibi bir yazilimin dizayni, gelistirilmesi, maintain edilmesi, distribute edilmesi, test edilmesi, planlanmasi, guvenligi seklinde direkt yazilim odaginda bir programi ogrenciye verebilmen icin CS temelinin olmasi gerekir. Burada yazdigim konseptlerin hicbiri direkt programlama dilleriyle alakali seyler degil.

Bu sebeple yazilim muhendisligi, bilgisayar muhendisliginin "daha az donanim ogretilen" versiyonu degildir.

SWE, CS'in bir branch'idir.
Doktor -> Hemotolog
CS -> SWE

Benim derdim, 2-3 yerden okuyup da CS ile SWE arasinda biraz donanim dersi var diye zirvalayanlar.

Sonuc olarak:

- SWE = ( CS - Donanim ) degil.
- CS = (SWE + Elektronik) degil
- Computational theory ogrenmek icin donanima hatta yazilima ihtiyacin yok. Ilk programmerin neden 1840 senesinde peyda oldugunu dusunen bunun sebebini anlar.
- SWE -> Cesit cesit programlama dillerinin ogretildigi bir program degil.
- SWE kesinlikle lisans seviyesi bir program degil. Turkiye'dekiler ortaya karisik bir seyler koyup ogrenci avlama pesinde.
- Muhendislikler birbirlerinden kesin cizgilerle ve basit formullerle ayrilmaz. Konu sofistike olmaya basladikca interdisipliner olmak zorunda kalir insan. O yuzden temelin saglam olmazsa, diger disiplinlerle entegre de olamazsin. Circuit Logic bilmeyen adam Computer ~ Human interaction da ogrenemez.
 
Bilgisayar mühendisliğinin ansiklopedik bir tanımını istemiyor kimse şu an burada, gerek de yok. Ben de biliyorum yazılımlardan önce de computation theorynin var olduğunu ama bu durum CS derecesinin buna odaklandığı gerçeğini ve bunu yaparken yazılım odağı olduğu gerçeğini değiştirmiyor. Sizin bildiklerinizi ben de biliyorum, tek fark sizin detaylarla insanları boğup üstünlük taslamaya çalışmanız ama siz de farkındasınız ki söylenenler yanlış değil.
Bu sebeple yazilim muhendisligi, bilgisayar muhendisliginin "daha az donanim ogretilen" versiyonu degildir.
Zaten bu iddia edilmiyor. Temelde farklı şeyler ama bu noktada üniversitede bölüm seçmek isteyen bir öğrenci için aradaki en temel fark (üniversitelerin çakallığı haricinde) birinin elektronik barındırmamasıdır. Çünkü bölüm seçecek olan birisi için önemli olan ilgi alanıdır. Birinde finite-state machine konusuna böyle eğiliniyor birinde böyle eğiliniyor demek şu noktada gereksiz bir detay.
Yazilim muhendisliginde oldugu gibi bir yazilimin dizayni, gelistirilmesi, maintain edilmesi, distribute edilmesi, test edilmesi, planlanmasi, guvenligi seklinde direkt yazilim odaginda bir programi ogrenciye verebilmen icin CS temelinin olmasi gerekir.
CS derecesinin son iki yılındaki öğrencilerde bu temel vardır zaten. Çoğu okul buna farklı isimler takıyor ama sizin de kastettiğiniz automata theory, ayrık matematik, algoritmalara giriş, "computational structures" gibi konuları başta öğretirler. Bunları öğretmelerinin sebebi de öğrencilerin yazılım alanında akademiye ya da endüstriye girerken temellerinin olmasını sağlamak. Sanki CS derecesi yazılımdan çok ayrı bir şeymiş gibi anlatıyorsunuz. Sizi anlıyorum, derdiniz insanların CS'i sadece programla dili öğrenilen basit bir derece olmadığını anlamasını sağlamak ama bu CS derecesinin temelinde yazılıma varan bir derece olduğunu ve bu noktada bu konuda araştırma yapan, karar vermeye çalışan insanlar için CS'in yazılım odaklı bir derece olduğunun anlamalarının daha önemli olduğu gerçeğini değiştirmiyor.
Hatta hicbir programlama dilini ogreten ders olmaz.
Mesela bu da yanlış. Tonla ders var odağı o programlama dilini öğretmek olan. Örneğin giriş seviyesi dersini Python'da almış öğrencilere, daha derin ve geniş bilgi yerine sadece şu ana kadar öğrendiklerini Java'ya nasıl geçireceklerini anlatan, dolayısıyla sadece Java öğreten dersler var. Ama ben sizin dediğinizi anlıyorum. İnsanların yazılımı sadece programlama dili öğrenmek, CS derecesini de bu programlama dillerini öğrenmek olarak algılanmaması gerektiğini söylüyorsunuz, bu yüzden gereksiz detaylarla bu konuda size cevap vermiyorum çünkü niyet belli.

Kısacası sizi anlıyorum, dediklerinizi de anlıyorum ama bu seviyede bunlara girmek sadece gereksiz tartışma konusu. Bu konuda da bariz yanlış şeyler söyleyenler var ama siz kolaya kaçıp bunlara doğrudan hitap etmek ve yanlışları düzeltmek yerine aşağılayıcı 2-3 cümle yazınca kimseye yardım etmiş olmuyorsunuz. Ki bu mecrada temel amaç insanlara yardımcı olmak olmalı.

Benim derdim, 2-3 yerden okuyup da CS ile SWE arasinda biraz donanim dersi var diye zirvalayanlar.
Anlıyorum, ama yazdıklarınız derdinize yardımcı olmuyor.
 
Son düzenleme:
Bu konuda da bariz yanlış şeyler söyleyenler var ama siz kolaya kaçıp bunlara doğrudan hitap etmek ve yanlışları düzeltmek yerine aşağılayıcı 2-3 cümle yazınca kimseye yardım etmiş olmuyorsunuz.

Cahilin tekinin 10 dakikalik arastirmayla yazdigi yanlisi duzeltmek icin paragraflar yazmaya gerek yok cunku.

Mesela bu da yanlış. Tonla ders var odağı o programlama dilini öğretmek olan.

Hayir, hicbir fakulte dersinin ana amaci spesifik bir dili ogretmek olamaz. Dedigim cok keskin bir sey, beni yanlislamak icin saygin bir okuldan tek bir core ders linki atabilirsin.

Dersin odagi X olur, bunu Y programlama diliyle yapar, o kadar.

Temelde farklı şeyler ama bu noktada üniversitede bölüm seçmek isteyen bir öğrenci için aradaki en temel fark (üniversitelerin çakallığı haricinde) birinin elektronik barındırmamasıdır.

Bosa yaziyorum belli ki.


Isletim sistemi, programlama dilleri, compiler ~ parsing ( formal languages ), network teorisi, discrete math, distributed systems vs yok bu programlarda.

Saydiklarimin hicbiri "elektronik" degil.

Hayir, aralarindaki en temel fark; birinin elektronik barindirmamasi degil.

Cidden, kimse incelemiyor bunlari belli ki. Anca kulaktan dolma bilgiler.
 
Cahilin tekinin 10 dakikalik arastirmayla yazdigi yanlisi duzeltmek icin paragraflar yazmaya gerek yok cunku.
Paragraflar iyidir, insanlara yardımcı olur. Amaç yanlış söylenlerin yanlışlarını yüzüne vurmak değil (ha bu da yapılabilir, ben de zamanında çok sinirlendim) insanların anlamasına yardımcı olmak olmalı. Sizin mesajınız muğlak kalıyor, yardımcı olmuyor.
Hayir, hicbir fakulte dersinin ana amaci spesifik bir dili ogretmek olamaz. Dedigim cok keskin bir sey, beni yanlislamak icin saygin bir okuldan tek bir core ders linki atabilirsin.

Dersin odagi X olur, bunu Y programlama diliyle yapar, o kadar.
Core derslerde haklısınız, amaç sadece programla dilini öğretmek olmaz. Bakın işte anlatmaya çalıştığım şey bu, ben sizin dediğinizi anladığım için direkt yanlışlamadım. Ama istersem hiçbir şey yazmayıp sizi alıntılayıp bu yanlış çünkü bunu yapan dersler var diyebilirdim. Yapmıyorum çünkü bu detaya gerek yok, çünkü dediğinizi anlayabilmiştim o kısma özel olarak.



Üstteki ikisi de söylediğim gibi zaten programla bilen insanlar için bu bildikleri fonksiyonların, arraylerin vs. başka bir dilde nasıl kullanılacağını anlatan ders. Amaç spesifik dili öğretmek yani.
Bosa yaziyorum belli ki.
Evet, bunu anlatmaya çalışıyorum. Açıklayıcı olmadığınız için tuhaf, amacı anlaşılmayan bir tartışmanın içinde sürükleniyoruz şu an.

Isletim sistemi, programlama dilleri, compiler ~ parsing ( formal languages ), network teorisi, discrete math, distributed systems vs yok bu programlarda.

Saydiklarimin hicbiri "elektronik" degil.

Hayir, aralarindaki en temel fark; birinin elektronik barindirmamasi degil.

Cidden, kimse incelemiyor bunlari belli ki. Anca kulaktan dolma bilgiler.
Bu "yazılım mühendisliği" lisans derecelerinin sıkıntılı olduğu konusunda aynı noktadayız zaten. Bahçeşehir Üniversitesi'nin bu dersleri vermemeleri can sıkıcı ama bunu genelleyemiyorum.


Örneğin İzmir Ekonomi'de var ayrık matematik dersi. Ki seçmeli dersleri de göz önüne almak lazım. Dediğim gibi, yazılım mühendisliği lisans derecesi konusunda aynı noktadayız ama bir genelleme yapacaksak adı üstünde en temel fark birinin elektronik barındırmamasıdır. Aksini de iddia etmiyorsunuz ki farkları konusunda. Sizce farkı nedir ben anlamakta zorlanıyorum, ben zorlanıyorsam üniversiteye bölüm seçmeye çalışan birisi daha çok zorlanır, amacımıza ulaşamayız. Benim anladığım siz bu bölümlerin bilgisayar biliminden uzak olduğu, basit oranda programlama ve yazılım barındırırken ciddi temelleri kaçırdığını söylemeniz. Ki bu üniversiteden üniversiteye değişir ve bazı noktalarda doğru. Ama kavramsal olarak "yazılım mühendisliği" ve "bilgisayar mühendisliği"nin farkı olarak bunu söyleyemem. Umarım anlaşabiliyoruzdur artık.

Cahilin tekinin 10 dakikalik arastirmayla yazdigi yanlisi duzeltmek icin paragraflar yazmaya gerek yok cunku.
Son olarak, buradaki cahilin teki yaftasının bana yapılmadığına neredeyse eminim, o yüzden cevap verme ihtiyacı hissetmiyorum. Öyleyse söyleyin, farklı konuşayım.
 
Isletim sistemi, programlama dilleri, compiler ~ parsing ( formal languages ), network teorisi, discrete math, distributed systems vs yok bu programlarda.
Hocam "discrete math" ve "programlama dilleri" attığınız linkteki ders programında var gözüküyor. (Discrete math, ayrık matematik olarak geçiyor.) İçeriği yetersiz diye mi yazdınız yoksa gözden mi kaçtı?
 

Yeni konular

Geri
Yukarı