Programming of ICs in general (MCU / FPGA / Serdes IC)
The meaning of ‘program’ depends on context.

In one use, the terms ‘configure’ and ‘program’ are often interchangeable, to mean device set-up. That is, we load values into device registers to prepare it for use. So we might say ‘program the baud rate generator to be 9600 baud’ and the meaning is still clear from context. We could also say ‘set up’, ‘load’, ‘configure’ with the exact same meaning. Later, we may manipulate these registers while we’re using the device, under control of a piece of software, usually a device driver.

Which brings me to another meaning of ‘program’: the act of loading instructions - code - into a computer to be run later. Here, we might also say ‘download’ or ‘reflash’. The loaded instructions are then executed by the computer.

We call those instructions software, firmware, or microcode... which is also called a ‘program’, meaning a collection of instructions that direct a computer to perform operations. Synonymous with ‘code’.

And where does that code come from? Why, from a person who ‘programs’, that is, does the task of software development.