Yra daugybė skirtingų kompiuterių programavimo kursų, kai kurie labai standartiniai, o kiti skirti tam tikroms pramonės šakoms. Apskritai, daugumą kompiuterių programavimo kursų galima klasifikuoti pagal dėstomą kalbą, galimą žinių pritaikymą arba konkrečias mokomas nišines sistemas. Pagrindinėse programavimo kalbos pamokose mokoma tik vienos kalbos per vis gilesnius užsiėmimus, kurie paprastai skirstomi pagal toje klasėje reikalaujamą patirtį. Klasės, kuriose mokoma apie konkrečią programą ar pramonės šaką, pvz., saugumo ar tinklo sistemas, paprastai nėra skirtos įvadiniams studentams ir reikalauja pakankamai žinių ne tik apie programavimą, bet ir apie bendruosius informatikos mokslus. Nišinės klasės gali būti skirtos mokymuisi rašyti programas vieno tipo mašinoms, pvz., pagrindiniam kompiuteriui, arba tam tikrai abstrakčiam programavimo sąsajai (API), ir paprastai jiems reikia stiprių kompiuterių mokslo žinių, tačiau nebūtinai kompiuterių programavimo.
Bendrieji kompiuterių programavimo kursai pradiniame lygmenyje daugiausia susiję su pagrindinėmis kompiuterių programavimo sąvokomis, neatsižvelgiant į kalbą, arba pakaitomis sutelkiamas tik į mokymą, kaip programuoti viena konkrečia kalba. Tokio tipo kursai yra svarbūs norint turėti tvirtą pagrindą, kuriuo remiantis galima plėtoti konkretesnes žinias. Kai kurie kursai gali sujungti daugiau nei vieną kalbą, pvz., hiperteksto žymėjimo kalbą (HTML) ir hiperteksto pirminį procesorių (PHP), į vieną pamokos planą, jei kalbos yra glaudžiai susietos praktiškai.
Yra daug kompiuterių programavimo kursų, kuriuose mokomasi tam tikro programavimo naudojimo. Yra keletas tokių kursų tipų, dauguma jų turi programavimo kalbos arba kompiuterių mokslo išankstines sąlygas. Tokie kursai nuolat tobulinami, atsirandant naujoms technologijoms. Pavyzdžiui, programavimas neuroniniams tinklams, grafikai ir vaizdams, realaus laiko sistemoms ir apsaugos sistemoms.
Kompiuterių programavimo nišiniais kursais siekiama išmokyti studentus naudotis viena sistema ar metodika, kuri gali būti nepritaikoma platesniems programavimo dalykams. Šios klasės beveik visada turi kalbos reikalavimus, nes tikslinėse sistemose dažniausiai naudojama tik viena kalba. Tačiau kai kuriems kursams kalbos reikalavimai netaikomi, ypač jei nišinėje sistemoje naudojama nuosava kalba. Šie kursai gali apimti programavimą vieno tipo mobiliajam įrenginiui, specialioms inžinerinėms sistemoms ar net aviacijos sistemoms.
Taip pat yra kompiuterių programavimo kursų, kurie yra unikalūs savo srityje. Tokios pamokos gali apimti teorines koncepcijas, bandymus sukurti programavimo kalbas, kurios naudoja natūralią gramatiką ar net programavimą eksperimentinėse mašinose. Šie kursai gali suteikti vertingų įžvalgų apie tai, kaip veikia kompiuteriai ir programavimo kalbos, tačiau kartais jie nesuteikia jokių praktinių žinių ir lieka teorinio programavimo sferoje.