Bilgisayar programlamanın tanımının çok geniş olduğu ve programların bu kadar yaygın olduğu kullanımı göz önüne alındığında, aslında genellikle farklı şekillerde tanımlanan birçok bilgisayar programı türü vardır. En temel bilgisayar programlaması türleri, programcı tarafından kullanılan programlama dili - C, Lisp veya Java® gibi - bozulabilir. Diğer bağlamlarda, sadece iki tür bilgisayar programlaması olabilir - sistem ve uygulama. Ağ programlama, web tabanlı programlama ve masaüstü programlama arasında bazı ayrımlar yapılır. Farklı bilgisayar programlama türleri bazen gömülü sistemler programlama, gerçek zamanlı sistem (RTS) programlama veya veritabanı programlama gibi hedef platformla ayrılabilir.
Farklı bilgisayar programlama türleri genellikle yazılım yazmak için kullanılan dille tanımlanır. Mevcut birçok dil var, ancak bunlar genellikle C gibi yapılandırılmış dillere ya da Java® gibi nesne yönelimli dillere düşüyor, ikisi de profesyoneller tarafından farklı işler için yaygın olarak kullanılıyor. Diller, daha önce bahsedilenler gibi zorunlu olabilir veya programların komut yerine bir dizi fonksiyondan oluştuğu Lisp gibi işlevsel olabilir. Bazı bilgisayar programlama, yalnızca başka bir çerçevede işlem yapan insan tarafından okunabilen belgeler olarak yorumlanan betik dilleri ile yapılır.
Geleneksel olarak iki geniş bilgisayar programı türü arasında bir fark vardır. İlki, uygulama programlamasıdır ve bazı işlevler için doğrudan kullanılabilecek programlar yazmayı içerir. Alternatif olarak, işletim sistemleri gibi uygulamaların çalışabileceği donanım veya çerçevelerin yönetimi için programlar tasarlamaya çalışan sistem programlaması da vardır.
Ağ iletişimi ve uzaktan iletişim teknolojisi yaygınlaştıkça, bazı bilgisayar programları türleri kendilerini bilgisayar programlamanın diğer alanlarından ayırmaya başladı. Ağ protokolleri ve donanım arayüzleri için gerekli bilgi birikimi nedeniyle ağ programlama farklı kabul edilir. Web tabanlı uygulamaların veya sunucuların programlanması, güvenlik kısıtlamaları, İnternet protokolleri ve benzersiz programlama tasarım kalıpları hakkında özel bilgi gerektirir.
Ayrıca belirli bir alana veya hedef donanıma özgü bilgisayar programlama türleri de vardır. Veri tabanı programlama, özel veri tabanı altyapıları ile etkileşime geçmek için özel sorgu dilleri, komut dosyaları ve diğer unsurları kullanmayı içerir. Oyun programlama, grafik donanımı bilgisi, grafik algoritmaları ve bazen özel optimizasyon teknikleri içerir. El cihazları veya konsollar gibi gömülü sistemler, benzersiz donanım özelliklerini ve satıcı kitaplıkları bilgisini içerebilir. Daha gelişmiş gerçek zamanlı sistem programlama, nükleer santraller veya askeri donanım için güvenli kontrol yazılımı yazmayı içerebilir.


