DEV Community

Victor Nassif
Victor Nassif

Posted on

Como um desenvolvedor generalista pode fazer o uso de IAs na resolução de problemas?

This article was written in portuguese. The english version will become soon and it will be linked here.

Sempre fui um entusiasta a respeito de novas tecnologias voltadas para desenvolvimento de software e nos últimos anos com a demanda de IA crescendo cada vez mais, me sinto muitas vezes atrás do mercado.

Como um bom brasileiro, iniciei a carreira profissional muito cedo, e foquei em desenvolver habilidades que pudessem me manter empregado, ou que ajudassem no meu crescimento em determinadas empresas.

Quando fazemos isso, nos desviamos do caminho acadêmico. Infelizmente, de forma muito triste, atualmente considero a academia um espaço privilegiado, ao menos no cenário brasileiro. Mas isso é uma discussão para outro momento.

Nos últimos anos comecei a acompanhar um pouco mais as inovações científicas (🎈), pois, afinal, a ciência é o cerne de tudo que é novo. Dificilmente o novo vem a partir de demandas das empresas. As descobertas são feitas na academia, e levadas para o campo profissional posteriormente.

Praticamente toda inovação que via no campo de TI, estava relacionada a IAs e novos algoritmos. Acompanhando esse universo, sentia uma estranha angustia, daquelas sem nome, mas que estava sempre comigo. Creio que hoje consigo entendê-la um pouco melhor.

A sensação é de que estava atrás dos demais. Não entendia profundamente algoritmos, não entendia os detalhes das IAs. Não entendia como eu poderia incluir aquilo no meu dia-a-dia de uma forma produtiva - além das ferramentas.

Mesmo com essa sensação, sempre me considerei um entusiasta de inovação, então aí estava a contradição que gerava, posteriormente, frustração.

Como alguém pode se considerar entusiasta de algo que não entende?

No livro “Por que generalistas vencem num mundo de especialistas” por David Epstein, o autor defende dentre diversos assuntos, que os profissionais ditos “generalistas” tem o seu valor, e que várias pessoas que são consideradas “especialistas de sucesso”, tiveram, na verdade, muitas falhas em áreas diferentes até conseguir encontrar algo que realmente triunfassem. Esportistas, empresários, intelectuais, e diversas outras áreas são mencionadas.
-Obrigado ao meu camarada Prof. André Câmara pela indicação. Não tenho palavras pra descrever o quanto foi assertivo quando disse que eu me identificaria com o livro.

Ao mesmo tempo que em que não entendia as tecnologias do "hype", sempre me considerei um ótimo solucionador de problemas. Mas me via limitado a utilizar apenas as tecnologias em que tinha proeficiencia, ou que estava seguro o suficiente para usar a este favor. Lendo o livro, então, finalmente entendi uma questão chave a respeito de onde me encaixo como profissional. Tive pela primeira vez contato com o termo “generalista” e me identifiquei como nunca antes.

Durante a leitura entendi que não preciso ser um especialista de IA e de algoritmos para poder resolver problemas utilizando estas ferramentas.

Inclusive, é até melhor que eu não seja um especialista. Em geral, somos recompensados por resolver problemas. Mas quando nossa carreira se afunila como um especialista, estamos limitados a resolver problemas do nosso nicho específico. Obviamente que isso tem o seu valor, e sempre haverá demanda para tal. Mas aqui estou falando sobre a sensação do nosso escopo estar limitada, e não necessariamente fazendo juízo de valor se algo é melhor ou pior (ok, haters?).

Em cenários ditos exploratórios, não temos problemas bem definidos (que para estes, sim, precisamos de especialistas). Em geral, temos diversos problemas “desconhecidos conhecidos” - desconhecidos para mim, conhecidos para alguém que entende daquele determinado contexto - E que segundo a Matriz de decisão Cynefin, a melhor forma de trata-los, é buscando soluções já existentes no mercado. Seja com um especialista ou seja utilizando alguma ferramenta criada por especialistas, vide LLMs, serviços gerenciados, etc. Portanto, profissionais que conseguem ter visões mais abrangentes do todo, podem ter mais sucesso do que profissionais nichados, neste tipo de cenário.

Ao mesmo tempo que, ao menos na minha bolha, devido ao aumento da utilização de modelos LLMs, está se popularizando a ideia de utilizar “caixas pretas” de processamento sem necessariamente saber como aqueles algoritmos atuam. Afinal, você sabe como, em detalhes, o GPT, ou o Copilot está tratando seu input? Pois bem, eu também não. - E o meu ponto é: e nem precisamos. Vamos deixar isso para os especialistas.

Para deixar claro, meu ponto não é que devemos nos abster de analisar o que estamos utilizando e colocando em produção. Precisamos estar ciente dos riscos e eles precisam ser gerenciados. Meu ponto é que, como um generalista, você pode aplicar ferramentas e algoritmos para resolver problemas do dia-a-dia, sem que necessariamente saiba com profundidade como algo está operando por baixo dos panos. Você só precisa se preocupar em como aplicar aquele determinado processamento, e, confie em mim, temos algoritmos o suficiente provenientes de iniciativas Open Source prontos para serem utilizados.

Imagine o cenário que temos alguma demanda para previsão (forecasting) de algum determinado dado. Você precisa criar um algoritmo de forecasting? - Não. Provavelmente, já existe um algoritmo para isso. Você provavelmente não precisa saber como fazê-lo. Você precisa, sim, entender como aplicá-lo, e isso também tem sua curva, que não deverá ser menosprezada. Mas será menor do que a especialização para criação dessa tecnologia.

Atualmente estou buscando novos problemas que podem ser resolvidos e realizando testes com algoritmos. Sinceramente, está me dando bastante gás para continuar. Esse é o meu objetivo neste singelo texto: Te incentivar a pesquisar, a ficar atento a novas publicações, a ler newsletters, e a não se limitar a testar com tecnologias de ponta.

Espero que isso também te ajude na busca de novos problemas para resolver.

Top comments (2)

Collapse
 
luizrsjr profile image
Luiz Rodrigues

Me lembrou do conselho de um professor da minha pós que disse que um bom arquiteto de software é um bom generalista, não precisa saber na ponta da língua todos os design patterns e todas as milhares de ferramentas e tecnologias que existem por ai, saber que elas existem e que tipo de problemas resolvem, já é o suficiente para quando surgir a necessidade, ai sim se aprofundar mais. Ótimo artigo!

Collapse
 
victornassif profile image
Victor Nassif

Muito bom saber que a linha do artigo segue a recomendação da sua pós! hehe
Significa que estamos no caminho certo :)