Código fonte e código objecto referem-se às versões "antes" e "depois" de um programa de computador que é compilado (ver compilador) antes de estar pronto para ser executado num computador. O código fonte consiste nas instruções de programação que são criadas por um programador com um editor de texto ou uma ferramenta de programação visual e depois salvas em um arquivo. Por exemplo, um programador que usa os tipos de linguagem C em uma seqüência desejada de comandos de linguagem C usando um editor de texto e, em seguida, salva-os como um arquivo nomeado. Diz-se que este arquivo contém o código fonte. Agora ele está pronto para ser compilado com um compilador em C e a saída resultante, o arquivo compilado, é muitas vezes referido como código objeto. O ficheiro de código objecto contém uma sequência de instruções que o processador pode compreender mas que é difícil de ler ou modificar para um humano. Por esta razão e porque mesmo programas depurados muitas vezes precisam de algum aprimoramento posterior, o código fonte é a forma mais permanente do programa.
Quando você compra ou recebe um sistema operacional ou software aplicativo, ele geralmente está na forma de código objeto compilado e o código fonte não está incluído. Os fornecedores de software proprietário geralmente não querem que você tente melhorar seu código, pois isso pode criar custos adicionais de serviço para eles. Ultimamente, há um movimento para desenvolver software (Linux é um exemplo) que está aberto para ser melhorado por qualquer um que queira melhorá-lo, e aqui o código fonte é fornecido.
Em grandes ambientes de desenvolvimento de programas, há muitas vezes sistemas de gerenciamento que ajudam os programadores a separar e manter o controle de diferentes estados e níveis de arquivos de código. Para linguagens de programação de script (não compiladas ou interpretadas), como JavaScript, os termos código fonte e código objeto não se aplicam, uma vez que existe apenas uma forma do código.