Istnieje wiele różnych kursów programowania komputerowego, niektóre bardzo standardowe, a inne skierowane do określonych branż. Ogólnie rzecz biorąc, większość kursów programowania komputerowego można sklasyfikować według nauczanego języka, ewentualnego zastosowania wiedzy lub według nauczanych systemów niszowych. Zajęcia z podstawowego języka programowania uczą tylko jednego języka w coraz bardziej dogłębnych sesjach, zwykle podzielonych na kategorie według wymaganego doświadczenia dla tych zajęć. Zajęcia uczące w kierunku określonej aplikacji lub branży, takiej jak bezpieczeństwo lub systemy sieciowe, zwykle nie są przeznaczone dla początkujących uczniów i wymagają sporej wiedzy nie tylko na temat programowania, ale także ogólnej informatyki. Zajęcia niszowe mogą być ukierunkowane na naukę pisania programów dla jednego typu maszyny, takiego jak komputer mainframe lub dla określonego abstrakcyjnego interfejsu programistycznego (API) i ogólnie wymagają silnego przygotowania w informatyce, choć niekoniecznie w programowaniu komputerowym.
Ogólne kursy programowania komputerowego na poziomie podstawowym w dużej mierze dotyczą nadrzędnych koncepcji programowania komputerowego w sposób neutralny językowo lub naprzemiennie koncentrują się wyłącznie na nauce programowania w jednym określonym języku. Tego typu kursy są ważne, aby mieć solidne podstawy, na których można budować bardziej szczegółowe obszary wiedzy. Niektóre kursy mogą łączyć więcej niż jeden język, taki jak HyperText Markup Language (HTML) i Hypertext Preprocessor (PHP), w jeden plan lekcji, jeśli języki są ściśle powiązane w praktycznym użyciu.
Istnieje wiele kursów programowania komputerowego, które uczą konkretnego zastosowania programowania. Istnieje kilka tego typu kursów, z których większość wymaga znajomości języka programowania lub informatyki. Takie kursy są stale rozwijane w miarę pojawiania się nowych technologii. Przykładami są programowanie sieci neuronowych, grafika i obrazowanie, systemy czasu rzeczywistego i systemy bezpieczeństwa.
Niszowe kursy programowania komputerów mają na celu przeszkolenie studentów w zakresie korzystania z jednego systemu lub metodologii, które mogą nie mieć natychmiastowego zastosowania w szerszych przedmiotach programowania. Klasy te prawie zawsze mają wymagania językowe, ponieważ systemy docelowe zwykle wykorzystują tylko jeden język. Niektóre kursy nie mają jednak wymagań językowych, zwłaszcza jeśli system niszowy używa własnego, zastrzeżonego języka. Kursy te mogą obejmować programowanie dla jednego typu urządzenia mobilnego, specjalnych systemów inżynieryjnych, a nawet systemów lotniczych.
Istnieją również kursy programowania komputerowego, które są unikalne w swojej dziedzinie. Takie zajęcia mogą obejmować koncepcje teoretyczne, próby opracowania języków programowania wykorzystujących gramatykę naturalną, a nawet programowanie na maszynach eksperymentalnych. Kursy te mogą dostarczyć cennych informacji na temat działania komputerów i języków programowania, ale czasami nie dostarczają żadnej praktycznej wiedzy i zamiast tego pozostają w sferze programowania teoretycznego.