Detaylı konu. Makine dili değimiz şey 0 ve 1'lerden oluşur. 0 negatif iken 1 pozitif temsil eder, buna binary yani ikilik sistem diyoruz. Kod dosyaları birer metin belgeleridir sadece uzantıları farklıdır. Her dil, dünya üzerindeki diller gibidir. Hepsi farklı ve kendi yazım kuralları, kendine özgü şeyleri vardır. Tek fark, İngilizce gibi bir evrensel dil olmamasıdır. Kodu yazdığınızda iş bitmiyor. Kodlar, bizim yazmamız ve anlayabilmemiz için o şekildeler, sistemin anlayabilmesi için makine diline dönüştürülmesi gerekli. Compiler yani derleyici dediğimiz araç bizim için bu işi yapıyor, aynı zamanda da kodda hata var ise onu saptayabiliyoruz. Tabii tüm diller de makine koduna çevrilmiyor, bazı diller ara dile derlenirler. Örnek vermek gerekirse Java, bir ara dile derlenir.
Doğrudan makine koduna derlenmediğinden gömülü sistemlerde çalıştıramayız, çünkü çalışırken derlendiği ara dil makine koduna derlenmeli. Yorumlanan diller de interpreter yani yorumlayıcı kullanılır, compiler ile aynı işlevi görür tek farkı var o da compiler bir kere derlerken interpreter kod her çalıştırılmak istendiğinde derleme yapıyor olmasıdır. Düşük seviye diller makine koduna en yakın dillerdir, ancak bir o kadar da basittirler. Gelişmiş şeyleri yapabilmek için bir çok kod yazmanız gerekir. Yüksek seviyeli diller ise günümüz dillerine en yakın dillerdir ve düşük seviyeli dillere göre daha az kod yazmanız gerekir. Statik dillerde veri, değişken vb. şeylerde tiplerini önceden belirtmeniz gerekirken dinamik dillerde belirtmeniz gerekmez, compiler tarafından otomatik olarak belirlenirler. Bunlar uzaaar gider, hepsini burada anlatamayız. Programlama senin bilgisayarla olan muhabbetin, söyleşindir. Derdini doğru anlatırsan iletişimini kurarsın, yanlış anlatırsan da yanlış anlaşılırsın ve bilgisayar senin istediğin şeyi yapmaz. Eğer inatlaşırsan da söylemek istediklerini bile derleyemez, bilgisayara anlatamazsın. İnsanlarla mesajlaşmak gibi tek fark, karşınızdaki sanal ortamda istediğiniz her şeyi yapabilecek bir makine.