Vocês já vão perceber o porquê da minha opinião.
Eu sou professor da área das artes (educação visual e tecnológica), mas o meu hobbie preferido sempre foram as linguagens de programação desde os meus 15/16 anos (já lá vão 17). Tudo o que aprendi sobre o assunto foi por livre iniciativa. Nunca tive qualquer tipo de formação em informática, muito menos em programação. Tenho conhecimentos sólidos de VB, bons de PHP, SQL e HTML, básicos de C++ e javascript. Feita a apresentação, cabe dizer que não sou nenhum expert em programação, mas SAFO-ME muito bem ao ponto de criar aplicações para a escola onde lecciono, para colegas, e até dar uma ajudinha a colegas do ensino superior que estão em cursos de informática... mas isso agora não vem ao caso.
Vocês que têm ou estão a ter formação na área da programação (e ainda bem que a têm) saberão melhor do que eu o que vou dizer e, se estiver enganado, corrijam-me.
Na maioria dos casos, o que acontece no ensino das linguagens de programação é uma dose substancial de matéria, tal como foi dito atrás por alguém, e só têm contacto com dificuldades da vida real quando chegam à fase de estágio. É claro que estou a excluir aqui o gosto pessoal e a experiência extra-escolar que cada um desenvolve.
Tal como o
napalm referiu, o conceito de Criatividade é ambíguo, uma vez que pode surgir em vários contextos. Na programação não podemos falar da criatividade de um artista plástico pois ela é diferente da criatividade de um músico, por sua vez diferente da criatividade de um programador. Quando me referia à criatividade de um programador, posso exemplificar com uma experiência recente que tive.
Tive sob a minha coordenação um estagiário na escola onde lecciono (um aluno do 12º ano de outra escola) a fazer um pequeno estágio de um curso da área da informática. Como a escola tem um alojamento próprio na internet, com domíno diferente da FCCN, propus-lhe que fizesse um módulo para a página que servisse de área de documentação: os professores, por departamento, podiam colocar ficheiros online para os alunos sacarem.
A determinada altura coloquei-lhe a questão de tornar invisíveis ao utilizador alguns ficheiros que eram carregados - o professor carregava os ficheiros para o servidor e para dentro da pasta do seu departamento, mas podia definir qual deles ficaria visível aos alunos e os que não ficavam visíveis.
A primeira hipótese que o aluno lançou foi, imediatamente, criar uma base de dados MySQL onde ficaria registado os que eram visíveis e os que eram invisíveis. Pareceu-me uma solução lógica. Mas foi então que lhe passei uma técnica de como se safar sem necessidade de "queimar" uma base de dados MySQL.
Os ficheiros visíveis ficavam com o seu nome normal. Os invisível ficavam com o símbolo '§' no início. O sistema analizava o nome de cada ficheiro da pasta e apenas apresentava os que não tivessem nome iniciado por '§'.
O miúdo ficou a olhar para mim porque nunca lhe tinha passado pela cabeça resolver o problema daquela maneira e a explicação é simples. Sempre foi direccionado para resolver os desafios com uma espécie de 'modelo correcto de resolução' que, como visto, nem sempre é necessário e até pode dar mais trabalho.
Isto foi apenas um exemplo. Poderia até dar mais uns quantos. E tudo isto surgiu do facto de eu, como não ter estudos na área da programação, muitas das vezes ter que recorrer à criatividade para resolver os desafios que me são colocados.