Práce na novém programu začíná obvykle na stole programátora-analytika, který určí návrh budoucího programu, který předá řadovým programátorům. Ti ho převedou do sekvence příkazů, kterým rozumí počítač. Kratší programy může psát jen jeden člověk, i tak by ale měl použít návrh. Programování bez návrhu vede nejčastěji ke špatnému programu, který je nakonec nutné přepsat, tentokrát s návrhem.
Procesor uznává pokyny ve strojovém kódu. Ten je však pro běžné programování naprosto nevhodný pro svou nízkoúrovňovost, navíc je specifický pro různé typy procesorů.
Programátoři si proto postupem času vymysleli nesmírné množství vyšších programovacích jazyků. Jsou to také sekvence příkazů, ale poskytují větší úroveň abstrakce (do funkcí, objektů atp.). Cenou za toto oproštění se od složitého programování ve strojovém kódu je nutnost překladu zdrojových kódů do jazyka procesoru před spuštěním a pomalejší vykonávání vzniklého kódu.
Téměř všechny jazyky mají stejné vyjadřovací schopnosti (jsou turingovsky úplné), ale různé jazyky se svou syntaxí, schopnostmi základních knihoven a podporou hodí pro různé typy projektů. Například pro programování malých webových projektů se obvykle užívá PHP, pro technické výpočty Fortran atd.
Dobrý programátor umí více programovacích jazyků a nedělá mu problém osvojit si kvůli novému projektu další. Je to umožněno značnou podobností užívaných jazyků – sdružují se do skupin užívajících podobná paradigmata (objektově orientované programování, funkcionální programování) nebo podobnou syntax (nejběžnější jsou variace na téma jazyka C).
Značnou část svého času programátor tráví testování svého programu na různých vstupních datech a uživatelských akcích. Když zjistí chybu (anglicky bug, dalo by se přeložit jako moucha), provádí ladění (anglicky debugging).
Aplikační a systémové programování
Programátoři se často dělí na aplikační a systémové.
Aplikační programátor vytváří programy plnící konkrétní práci – počítá derivaci nebo tiskne upomínky v knihovně.
Systémový programátor se oproti tomu stará o vyvíjení systémových programů, jako třeba operačních nebo databázových systémů, aby se například programátor upomínky tiskoucího systému nemusel starat o konkrétnosti komunikace s tiskárnou.
Dnes už je možná takové dělení poněkud historické, hlavně protože s expanzí počítačů je systémových programátorů relativně mnohem méně.
Typy programů
Související informace naleznete také v článku Software.
Programátoři dnes spolupracují s celým spektrem dalších specialistů (například grafiků) při výrobě různých typů programů, mezi něž patří kancelářský software stejně jako hry a webové aplikace.
Programátorská kultura
Programátoři mají svou vlastní kulturu, která se vyznačuje odmítáním uniformity a autorit. Hezký prototyp programátora byl předveden mainstreamové kultuře v podobě Nea ve filmu Matrix – pro poznání pravdy se vzdá místa v programátorské firmě a spojí se Morfeem, který je symboly autority (uniformními Agenty) označován za teroristu.
Humor
Každý program obsahuje chybu. Každý program lze zároveň zkrátit o jeden řádek, aniž by byla jakkoliv dotčena funkčnost programu.
Z toho plyne, že každý program lze zkrátit na jediný chybný řádek kódu.
Programátorský folklór (podle knihy Programátorské poklesky (Ivan Kopeček, Ján Kučera))
Příklad programátorského humoru může být výtah z Programátorského slovníku:
Oblíbený programovací jazyk je pro programátora vážná věc a dokáže se o něj s kolegy do krve hádat. Pro odlehčení si proto vymýšlejí humorné programovací jazyky, mezi které patří:
Whitespace – jeho zápis se skládá z mezer, tabulátorů a odřádkování (všechny tisknutelné znaky se ignorují)
Brainfuck je naprosto nepoužitelný pro svůj extrémní minimalismus. Zároveň však velmi zábavný.
LOLCODE – Jazyk vytvořený jako parodie k internetovému fenoménu „Lolcatz“. Vzdáleně připomíná jazyk C, ale jeho příkazy a klíčová slova jsou často zkomolená.
Geek, hacker a cracker
Výraz geek pronikl do češtiny jako synonym pro „zažraného programátora“, v angličtině znamená obecně člověka s velkými znalostmi plně pohlceného svou profesí.
Hacker je programátor, který své umění dává na obdiv různými žertíky, ať už zákonnými či nelegálními. Nelegální hacking může být nabourání funkčnosti informačních systémů, zneužití bezpečnostních děr a podobně. Lidem, kteří se nezabývají ničím jiným než nabouráváním, se pro odlišení od „správňáků“ říká cracker.