Mengingat definisi pemrograman komputer begitu luas dan penggunaan program begitu meluas, sebenarnya ada banyak jenis pemrograman komputer, sering kali didefinisikan dengan cara yang sangat berbeda. Jenis pemrograman komputer yang paling dasar dapat dipecah oleh bahasa pemrograman — seperti C, Lisp atau Java® — yang digunakan oleh programmer. Dalam konteks lain, mungkin hanya ada dua jenis pemrograman komputer — sistem dan aplikasi. Beberapa perbedaan dibuat antara pemrograman jaringan, pemrograman berbasis web dan pemrograman desktop. Berbagai jenis pemrograman terkadang dapat dipisahkan oleh platform target, seperti pemrograman sistem tertanam, pemrograman sistem waktu nyata (RTS) atau pemrograman basis data.
Berbagai jenis pemrograman komputer sering ditentukan oleh bahasa yang digunakan untuk menulis perangkat lunak. Ada banyak bahasa yang tersedia, tetapi mereka secara luas termasuk dalam bahasa terstruktur seperti C atau bahasa berorientasi objek seperti Java®, dengan keduanya biasa digunakan oleh para profesional untuk tugas yang berbeda. Bahasa juga bisa imperatif, seperti yang disebutkan sebelumnya, atau fungsional, seperti Lisp, di mana program terdiri dari serangkaian fungsi, bukan perintah. Beberapa pemrograman komputer dilakukan murni dengan bahasa scripting, yang ditafsirkan dokumen yang dapat dibaca manusia yang melakukan operasi dalam kerangka lain.
Secara tradisional telah ada perbedaan antara dua jenis pemrograman komputer yang luas. Yang pertama adalah pemrograman aplikasi dan melibatkan penulisan program yang dapat langsung digunakan untuk beberapa fungsi. Bergantian, ada pemrograman sistem, yang berupaya merancang program untuk pengelolaan perangkat keras atau kerangka kerja di mana aplikasi dapat berjalan, seperti sistem operasi.
Sebagai teknologi untuk jaringan dan komunikasi jarak jauh menjadi lebih banyak digunakan, beberapa jenis pemrograman mulai membedakan diri dari bidang lain dari pemrograman komputer. Pemrograman jaringan dianggap berbeda karena pengetahuan yang diperlukan tentang protokol jaringan dan antarmuka perangkat keras. Pemrograman aplikasi atau server berbasis web memerlukan pengetahuan khusus tentang pembatasan keamanan, protokol Internet, dan pola desain pemrograman yang unik.
Ada juga jenis pemrograman komputer yang khusus untuk bidang atau perangkat keras target tertentu. Pemrograman basis data melibatkan penggunaan bahasa kueri khusus, skrip, dan elemen lain untuk berinteraksi dengan infrastruktur basis data tertentu. Pemrograman game melibatkan pengetahuan tentang perangkat keras grafis, algoritme grafis, dan terkadang teknik optimasi khusus. Sistem tertanam, seperti perangkat genggam atau konsol, dapat melibatkan spesifikasi perangkat keras yang unik dan pengetahuan tentang pustaka vendor. Pemrograman sistem real-time yang lebih canggih dapat melibatkan penulisan perangkat lunak kontrol failsafe untuk pembangkit listrik tenaga nuklir atau perangkat keras militer.