Correndo o grande risco de recomeçar um flame antigo aqui da lista, vou pegar o bonde no Void Podcast #14, em que participei como convidado.
Lá discutimos sobre o futuro do desenvolvimento de software. Como é possível prever, não chegamos a conclusão alguma. Mas passamos pelo tema da importância da graduação na construção de sistemas mais inteligentes.
Quero propor hoje que conversemos não sobre graduação, diplomas e reserva de mercado, mas sobre o conhecimento científico que a maioria dos programadores deixam de adquirir lá.
Concordo com muitos que dizem que a grande maioria do trabalho que se realiza em TI hoje em dia não usa quase nada do que se aprende na faculdade. Entretanto, estava lendo um rant na lista java-ce, e indicaram um post antigo do Silvio Meira, que sintetiza bem o que penso sobre o assunto.
a maior parte do software sendo escrito no planeta, hoje, é irrelevante, como as dezenas de milhares [só?...] de “folhas de pagamento” sendo contínua e concorrentemente desenvolvidas e em evolução no brasil [só pra falar daqui]. este software “commodity” e completamente desnecessário [em seu estado atual] tende [e pode] a ser desenvolvido por competências muito abaixo do que um graduado em computação tem ou deveria ter.
Por outro lado, estou, faz pouco tempo, tentando falar mais sobre algoritmos nas comunidades onde participo. Mostrar que não é um monstro de sete cabeças. Mas, nesse caminho, vejo muita gente dizendo que esse é um assunto "do mal", muito difícil, mas que gostaria de aprender. E me pergunto a falta que a graduação faz nisso. Já vi dizerem que "graduação é para gente preguiçosa", e que é possível aprender tudo isso na internet. Não discordo. Mas isso é possível também com Física, Filosofia ou qualquer assunto.
Estou acompanhando de perto um colega de trabalho estudando em casa sobre B+Trees, através de papers que encontra na internet. Mas ele é exceção. O que faz com que seja tão raro encontrar um programador que entenda de ciência da computação? Por que eles tem que ser a exceção e não a regra?
No último encontro do DNARJ, tirei 15 minutos (literalmente 15 minutos) para mostrar uma implementação de ordenação topológica em grafos. A implementação em si tem menos de 15 linhas, absurdamente simples. Mas é o tipo do problema que o programador mediano vai dizer "não vou aprender essa parada de grafos, vou encontrar uma biblioteca pronta". E quando muito, cola uma classe de 200 linhas que achou no codeproject. Isso não é o espírito de um bom programador.
Repetindo o meu questionamento no último void, é essa a geração de cientistas e engenheiros da computação que vão pavimentar o futuro do desenvolvimento de software?
Concordo em gênero, número e degrau!
btw: não tenho a tal graduação e tento correr para buscar estes conhecimento que me faltam assim como seu colega (q não tenho idéia de quem seja :P).
[]s
Alexandre Porcelli