Este post abrange programação na Web, se quiser pular essa parte, vá direto para a parte 2, sobre fazer software com interface gráfica.
Programar é uma arte. Assim como outras artes, como tocar um violão ou pintar um quadro, exige prática e disciplina.
Mas é possível para qualquer pessoa aprender essa arte.
Talvez você não saiba por onde começar pois existem diversas linguagens de programação. O objetivo deste post é ajudar você a saber por onde começar.
A primeira dica que eu dou é, não pense em fazer tudo o que estou escrevendo aqui em uma semana, mas ao longo de meses ou mais. É necessário tempo para assimilar e aprender a usar vários comandos ou instruções em linguagens de programação.
1º Passo – Aprenda HTML.

Html não é uma linguagem de programação, mas sim uma linguagem de marcação. Isso significa que você não criará rotinas, simplesmente dirá pro computador “Isto é um subtítulo” ou “Isto é um parágrafo”.
No passado todo o layout do site era feitos usando tabelas. Dou uma dica para você aprender a fazer sites assim. Crie um layout no papel ou programa gráfico e escreva o html para aplicar esse layout numa página html real. Com tabelas é fácil.
Aprender a usar tabelas é útil até hoje em e-mails, pois a maioria dos programas clientes de e-mail não entende estruturas mais complexas. Por isso não é tempo jogado fora. Usar tabelas é simples e divertido.
Depois, se quiser, aprenda a usar divs para o layout. Aí complicará um pouco pois você deverá aprender a usar Css. Por que isso? Pois com tabelas, toda a estrutura do site é montada com pouco Css, no máximo dizendo as cores do texto ou do fundo das células. Com divs é necessário mudar o fluxo da página para cada div se comportar do modo esperado.
Referências:
Tutorial básico de Html
Layout feito com tabelas
Layout sem tabelas (tableless)
Apostilas sobre Html (é necessário se cadastrar, mas o cadastro é gratuito)
2º Passo – Aprenda Css

Css significa Cascading Style Sheets. Ou simplesmente folhas de estilo em cascata. No passado as páginas html eram infestadas por uma enxurrada de tags font e outras bizarrices. Com a criação do Css, é possível você mudar a cor da fonte de todos os parágrafos usando apenas uma instrução Css. Legal, né?
Após aprender Html, o Css exigirá pensar de maneira diferente. O Css funciona assim: você especifica o seletor, as propriedades e os valores. Cada elemento tem as suas propriedades, e alguns elementos tem várias propriedades em comum. Você pode selecionar todos os elementos p ou apenas um elemento com certa classe ou id, além de seletores especiais, como um elemento com certo atributo específico.
Pra começar, aprenda apenas os seletores básicos de elemento, classe e id e os atributos dos diversos elementos. Depois procure dicas na internet sobre técnicas avançadas de Css.
Hoje em dia é comum o Css orientado a objeto, se você quer aprender Css, o incentivo a aprender essa técnica.
Há bastante a aprender de Css, e estou aprendendo até hoje. Mas o básico pode ser aprendido em alguns dias ou horas.
Referências:
Tutorial básico de Css
Manual completo de Css do W3c
Css Orientado a objetos
Apostila Css 1 (é necessário se cadastrar, mas o cadastro é gratuito)
Apostila Css 2 (é necessário se cadastrar, mas o cadastro é gratuito)
Guia de todos os seletores CSS3
Uma lista exaustiva das propriedades Css (em inglês)
3º Passo – Aprenda JavaScript

Após aprender uma linguagem de marcação e uma linguagem declarativa, finalmente uma linguagem de programação real! Agora você poderá fazer tudo o que uma linguagem de programação realmente faz, laços, controle de fluxo, atribuições de variáveis, funções, e até programação orientada a objetos!
JavaScript é uma linguagem de programação do lado do cliente. Existem também linguagens de Script do lado do servidor, e vamos conhecê-las na parte 2.
O Javascript é executado no browser do usuário. Isso significa que mesmo após servir a página estática, é possível executar rotinas no navegador do usuário. Você pode validar formulários, exibir um relógio que se atualiza em tempo real, mudar o Css de elementos e adicionar ou remover elementos da página.
Após dominar o JavaScript, aprenda a usar a biblioteca jQuery. Ela permite que você selecione elementos usando seletores Css e facilita dezenas de tarefas que exigiriam linhas e linhas de JavaScript puro.
Apostilas de JavaScript (é necessário se cadastrar, mas o cadastro é gratuito)
Site oficial do jQuery, com o link para download e documentação (em inglês)
Apostila jQuery
Sabendo essas três linguagens, é possível fazer aplicativos Web e até jogos!