Projetar softwares

Olá.

Eu sou um estudante de CC, mas tenho programado há muito tempo, antes mesmo de ter entrado na faculdade. Talvez por mania ou falta de instrução (acredito mais nessa segunda hipótese), eu nunca aprendi a projetar um software. Nunca sentei numa mesa para pensar, planejar e projetar um software. Por esse motivo, muitas vezes o meu código fica “remendado”. Sabem como é? Você vai pensando no que fazer a medida que programa. Estou cansado desse “amadorismo”.

Porém, eu não quero aprender, agora, tudo sobre Engenharia de Software. Gostaria que vocês me indicassem o que um iniciante deve saber para ser capaz de projetar um software um pouco mais profissionalmente. Sem no entanto precisar ler um livro inteiro ou fazer 3 semestres de Engenharia de Software. Quais são os conhecimentos práticos e teóricos básicos? Quero saber apenas o essencial para ser capaz de projetar softwares simples, sem sair de cara metendo a mão na massa.

Conhecem algum tutorial que se aplique ao meu caso?

Obrigado.

Cansado de amadorismo mas não quer ler um livro inteiro sequer? Dai complica, amigo.

Mau humor à parte, aqui vai um livro bem prático para te dar uma idéia sobre como evoluir um software de maneira sustentável:

Growing Object-Oriented Software, Guided by Tests

Leia a primeira parte (3 capítulos) e você já vai ter uma boa base das habilidades que precisa treinar…

s4nches: Não que inglês seja ruim, mas você teria alguma referência boa em português ?

[]'s

Mau humor mesmo.

Eu estou de férias e tenho vontade de aprender um assunto que vou estudar no 1º semestre do ano que vem. Ou seja, eu estou fazendo mais do que a minha obrigação. Estou me dedicando mais do que devia. Só não acho necessário ler um livro inteiro sobre Engenharia de Software NO MOMENTO, porque imagino que um livro como esse aborda muito mais assunto do que o essencial para ser capaz de projetar um software simples. Se pra você isso é amadorismo…

Mas enfim, obrigado assim mesmo.