Glede na to, da je definicija računalniškega programiranja tako široka in uporaba programov tako razširjena, dejansko obstaja veliko vrst računalniškega programiranja, ki so pogosto opredeljene na povsem različne načine. Najosnovnejše vrste računalniškega programiranja je mogoče razčleniti glede na programski jezik, kot je C, Lisp ali Java®, ki ga uporablja programer. V drugih kontekstih lahko obstajata le dve vrsti računalniškega programiranja – sistemsko in aplikacijsko. Obstaja nekaj razlik med omrežnim programiranjem, spletnim programiranjem in namiznim programiranjem. Različne vrste programiranja je včasih mogoče ločiti glede na ciljno platformo, kot je programiranje vgrajenih sistemov, sistemsko programiranje v realnem času (RTS) ali programiranje baze podatkov.
Različne vrste računalniškega programiranja so pogosto opredeljene z jezikom, ki se uporablja za pisanje programske opreme. Na voljo je veliko jezikov, vendar na splošno spadajo bodisi v strukturirane jezike, kot je C, bodisi v objektno usmerjene jezike, kot je Java®, pri čemer jih strokovnjaki običajno uporabljajo za različne naloge. Jeziki so lahko tudi imperativni, kot prej omenjeni, ali funkcionalni, kot je Lisp, v katerem so programi sestavljeni iz serije funkcij namesto ukazov. Nekatero računalniško programiranje se izvaja izključno s skriptnimi jeziki, ki so razloženi človeku berljivi dokumenti, ki izvajajo operacije v drugem okviru.
Tradicionalno obstaja razlika med dvema širokima vrstama računalniškega programiranja. Prvi je aplikacijsko programiranje in vključuje pisanje programov, ki jih je mogoče neposredno uporabiti za nekatere funkcije. Alternativno obstaja sistemsko programiranje, ki želi oblikovati programe za upravljanje strojne opreme ali okvirov, v katerih se lahko izvajajo aplikacije, kot so operacijski sistemi.
Ko se je tehnologija za mreženje in oddaljene komunikacije vse bolj uporabljala, so se nekatere vrste programiranja začele ločevati od drugih področij računalniškega programiranja. Omrežno programiranje velja za drugačno zaradi zahtevanega poznavanja omrežnih protokolov in vmesnikov strojne opreme. Programiranje spletnih aplikacij ali strežnikov zahteva posebno poznavanje varnostnih omejitev, internetnih protokolov in edinstvenih vzorcev načrtovanja programiranja.
Obstajajo tudi vrste računalniškega programiranja, ki so specifične za določeno področje ali ciljno strojno opremo. Programiranje baz podatkov vključuje uporabo posebnih poizvedovalnih jezikov, skript in drugih elementov za interakcijo s specifičnimi infrastrukturami baz podatkov. Programiranje iger vključuje poznavanje grafične strojne opreme, grafičnih algoritmov in včasih posebnih tehnik optimizacije. Vgrajeni sistemi, kot so ročne naprave ali konzole, lahko vključujejo edinstvene specifikacije strojne opreme in poznavanje knjižnic prodajalcev. Naprednejše sistemsko programiranje v realnem času lahko vključuje pisanje varne nadzorne programske opreme za jedrske elektrarne ali vojaško strojno opremo.