Nella programmazione di computer o nella marcatura di testo, per codificare (meno frequentemente, codice duro ) consiste nell'usare un nome esplicito piuttosto che simbolico per qualcosa che probabilmente cambierà in un secondo momento. Tale codifica è talvolta nota come hardcode (sostantivo) ed è più difficile da modificare se in seguito diventa necessario. Nella maggior parte dei linguaggi di programmazione, è possibile equiparare un simbolo a un valore di nome particolare (che può anche rappresentare un numero). Se il nome cambia, il simbolo rimane lo stesso e solo la riga di codice uguale deve essere modificata per riflettere il nuovo nome. Quando il programma viene ricompilato, il nuovo nome viene prelevato ovunque il simbolo si trovi nel codice. Sebbene esistano strumenti di ricerca e sostituzione che possono modificare tutte le occorrenze di un determinato nome, il codice del programma è molto spietato nel caso in cui venga introdotto un piccolo errore ed è più sicuro avere un unico punto in cui è possibile apportare tale modifica. Per questo motivo, l'hardcoding è solitamente una pratica da evitare.
L'hardcode viene talvolta utilizzato anche per descrivere linguaggi di programmazione più difficili come C o C ++ piuttosto che linguaggi "softcode" come Visual Basic.