(By analogy with "hard-wired") Said of a data value or behaviour written directly into a program, possibly in multiple places, where it cannot be easily modified. There are several alternatives, depending on how often the value is likely to change. It may be replaced with a compile-time constant, such as a C "#define" macro, in which case a change will still require recompilation; or it may be read at run time from a profile, resource (see de-rezz), or environment variable that a user can easily modify; or it may be read as part of the program's input data.
To change something hard-coded requires recompilation (if using a compiled language of course) but, more seriously, it requires sufficient understanding of the implementation to be sure that the change will not introduce inconsistency and cause the program to fail.
For example, "The line terminator is hard-coded as newline; who in their right mind would use anything else?"
See magic number.
But we are not hard-coded to attach that xenophobia to skin color, hair type, etc.