A cada dia que se passa, mais vejo a necessidade do mercado e o que falta para que o mercado possa de fato oferecer produtos de mais qualidade: solucionadores de problemas.

Um certo dia li um artigo onde fala a diferença de programador, desenvolvedor e cientista da computação. Confesso que seguindo o artigo, me enquadraria no perfil de desenvolvedor, mas acredito que essas diferenças ou semelhanças não fará de fato nenhuma mudança se nenhum perfil for o de solucionador de problemas.

Quando um estudante de Ciência da Computação aprende, cálculo, estatística, interface homem-máquina, IA ou qualquer outra disciplina, não é para simplesmente conhecer e sim para ter uma gama de conhecimentos em que no momento de ter ciência de um determinado problema, saber qual a melhor forma de resolver esse problema.

Como exemplo, vejamos as diversas tecnologias de banco de dados, os relacionais (MySQL, SQL Server, Oracle, PostgreSQL) e os não relacionais (MongoDB, CouchDB, Cassandra, Neo4j, OrientDB) e vemos que as diferenças são tremendas, principalmente pelo fato de serem de paradígmas diferentes, onde a cada paradigma deve-se ter um "pensamento" diferente. Com isso vemos que de acordo com um paradigma ou outro temos N possibilidades de implementações, bem como um profissional que tenha conhecimento dessas tecnologias ele terá mais formas de resoluções dos mais variados problemas que surgem no mercado.

Vejamos um exemplo de solução  utilizando-se um paradigma diferente. O Google knowledge Graph search results e Facebook Graph Search não foram com simples queries de bancos relacionais e sim com uma ou várias outras tecnologias, mas sim com um paradigma diferente que é o Grafo.

Seja programador, desenvolvedor ou o que for, se ele não conhecer ambos paradigmas e tecnologias que podem ser utilizadas, não sera um solucionador de problemas, onde o mercado está cada vez mais exigente devido as exigencias de seus problemas no dia-a-dia.