Yazılım mühendisliği, dilleri çok fazla inceleyen bir bölüm. Yani bir dilde bir komutun Bit karşılığından Assembly karşılığına kadar ayrıntılı öğretir. Mesela bir programda int a = 5 yazdın değil mi? Bu aslında bilgisayarda Assembly olarak move #100(a ya atanan RAM adresi) 5 olarak geçer. Bunun gibi ayrıca for döngüsü while döngüsü yani örneğin bir C++ #include yazıdığında arkada neler döndüğü gibi. Ek olarak yazılım mühendisiliği genel olarak data structure yani veri yapılarını inceler. Stack, linked list, queue..., Bunlarada örnek C++ taki Vector veya herhangi bir dildeki listeler ve arrayler örnek verilebilir. Bir de performans öğretilir. İnternetten big m methodu yazarak aslında detaylarını öğrenebilirsin. Bir milyon tane algoritma var bu algoritmaları yazmaları öğretilir vs.
Yazılımcı ve programlamacı aynı tabirler. Basit bir konsol uygulaması yapabilen bir kişi bile yazılımcı ve programlamacıdır. Sadece bunun profesyonellik ve tecrübe durumu değişiklik gösterir. Dediğim gibi yazılım mühendisliği ise bir bölüm ve bu bölümü okuyan insanlar dillerin genel tüm mantığını ve çoğu algoritmalarını öğreniyorlar.