É, certamente, difícil introduzir todos os conceitos básicos sobre programação em um pequeno post; para que não se torne exaustivo ler este post, serei breve.
Computadores não compreendem linguagens humanas; tudo o que realmente compreendem traduz-se em instruções passadas em "linguagem de máquina", baseada em operações com binários. Computadores são, de certa forma, complexas e poderosas calculadoras. Normalmente utilizam-se linguagens de programação para criar softwares para computadores: escreve-se o código em linguagem legível para humanos, que depois é "traduzido" para a "linguagem de máquina". C é uma das mais conhecidas e amplamente utilizadas linguagens de programação, apesar de ser consideravelmente antiga (criada em 1972, na AT&T Bell Labs por Dennis Ritchie).
Programas (softwares) são, basicamente, algorítimos -- conjunto de instruções que devem ser seguidas de forma lógica para atingir algum objetivo. Pode-se, por exemplo, considerar uma receita de bolo um simples algorítimo:
"Pegue os ingredientes x, y e z, misture-os e leve o resultado ao forno (dentro de um recipiente); a cada 10 minutos verifique se está pronto e, caso esteja, remova-o do forno imediatamente".Praticamente qualquer processo lógico pode ser descrito por um algorítimo.
Podem ocorrer bugs, erros de programação que fazem com que determinado programa não funcione como esperado. A remoção de bugs é uma das partes mais importantes do processo de desenvolvimento de softwares, podendo custar muito tempo. Normalmente, são identificados com o uso do programa, seja em testes ou não.
Veja um exemplo de algorítimo extremamente simples, escrito em linguagem C, que verifica e informa ao usuário se dado número é negativo ou então positivo ou igual a zero:
Este código, por exemplo, pode (possivelmente) ser compreendido por alguém que nunca programou antes com relativa facilidade. Ele, claramente, é "traduzido" à linguagem de máquina para ser executado. Certamente, seria absurdamente mais custoso desenvolvê-lo em linguagem de máquina (prática incomum na maioria das situações). Por motivos óbvios, programas mais complexos demandam algorítimos maiores e complexos, dificultando sua compreensão por inexperientes e, em alguns casos, até mesmos por experientes programadores. Por este motivo, costumeiramente, documenta-se o código de diversas formas, até mesmo dentro do próprio código-fonte, por meio de comentários -- trechos demarcados, ignorados pelo compilador e que, portanto, não se transformam em instruções em linguagem de máquina e têm como objetivo informar (aos humanos) sobre o que é feito em determinado trecho. Observe um exemplo de comentário "em C":
Apenas uma observação: as cores servem apenas para facilitar a visualização. A coloração é adicionada automaticamente pelo editor utilizado, mas sem modificar o arquivo que contém o código (não são armazenadas nele informações sobre a coloração do mesmo).
Pretendemos disponibilizar todo o código fonte escrito para o projeto, conforme for produzido (em linguagem C).



