Existe um termo já cunhado, e é "Magical Number", que designa um caso específico do termo que acabo de cunhar, "Magical Values" – Valores Mágicos – que é uma daquelas coisas que seu professor fala pra não fazer, e no fim das contas você acaba fazendo do mesmo jeito.

E que raios é isso, Toupeira?

O valor mágico é aquele valor literal – ou seja, constante – que aparece no meio do código por motivos arbitrários e sem muita explicação. Pode ser número, string, expressão, não importa: constante arbitrária, é mágica! Normalmente quando alguém pergunta "Que raio de 6,75 é esse?!" o programador funciona "Bicho, não sei mais não, mas funciona!". Isso está no topo da lista negra dos professores de Programação de Computadores, junto com usar "v1, v2, vn" para nomes de variáveis e ignorar a identação.

Ah, mas vocês, programadores, também...

Não me olha com essa cara, não fomos nós que começamos! Juro! Duvida? Então vamos voltar pra sétima série...

Equação de segundo grau, AKA a famosa "ax2 + bx + c = 0". Como se resolve? Fácil: Bhaskara! E como é a fórmula de Bhaskara?

b2 - 4ac

A-hãm... E o que raios esse "expoente 2", ou o "4ac", significam? Viu, Bhaskara foi o primeiro matemático a usar "valores mágicos". E nem vou falar do Pitágoras... :/

Okay, e o que isso tem a ver?

Tem que é um mau hábito de programação que não é sério para seus trabalhos práticos, mas é seríssimo na vida real. Veja bem: projetos grandes são, por via de regra, trabalhados por várias pessoas. Normalmente, um bocado. Quando você insere um "7" e não explica o que raios esse 7 é, pode até ser que o negócio funcione, mas vai que o cara novo resolve otimizar a função que mostra as tabelas e, graças ao seu 7 no meio do código que captura os dados, o negócio todo vai pro brejo. E aí resolver é um problema...

O mesmo vale pra projetos em código aberto. Esse mau hábito acaba dificultando a modificação e consequente aprimoramento do seu programa por terceiros. E isso é chato e, no final das contas, vai contra o princípio de ter um código aberto pra começar.

E não só números, uma operação – Bhaskara, alguém? –, uma expressão regular – meu parser funciona com uma expressão que não sei se vai continuar pra sempre assim... –, tudo pode ser um problema se não estiver determinado a priori em algum local próprio do código. Principalmente se é um valor constantemente utilizado. Ter que substituir todos os 41 por 43 num código dividido em 14 módulos não é moleza...

A solução: use constantes. Toda linguagem de programação que se preze disponibiliza alguma forma de declarar constantes que valem para o resto do programa. Constantes são mais fáceis de entender que valores numéricos – "RESPOSTA" é bem mais inteligível que "42" –, e todo mundo fica feliz se o valor inicial dos vetores for de 1 para 0. Então, não subestime as constantes: elas estão aí pra ajudar...