Aconselhe um Desenvolvedor a Voltar ao Caminho
Resumo
Com as novas ferramentas disponíveis no mercado de tecnologia, o desenvolvimento se tornou mais abstrato e simplificado. Aliado a correnteza da oportunidade, acabei sendo arrastado a alguns subterfúgios(IA). Gostaria de alguns conselhos para retornar ao caminho, ou melhora-lo. Há uma possibilidade de que eu esteja usando as ferramentas certas com maneiras erradas.
Contexto
Quem sou eu
- Nome: Moisés
- Idade: 21
- Classificação: dev junior
- Linguagem Preferida: Python
- Linguagens Utlizadas: Python, C#(unity), GdScript(Godot)
Dezembro de 2021, parei de programar em Python ao finalizar um curso técnico que eu fazia.
Em 2022, voltei foquei em programação C# para Unity e em 2023 fiquei sem programar.
Já em Maio de 2024, retornei gracas a uma vaga de emprego em uma pequena empresa que me trouxe de volta a linguagem (ainda bem que arrependimento não mata).
Recomeço
Essa pequena empresa me contratou para criar dashboards e análise gráfica, algumas coisas aconteceram entre essa empresa e uma outra empresa que prestava serviços a ela, e basicamente não tinham dados para eu analisar. Acabei fazendo uns projetos para mostrar capacidade, acabou q o dono dessa empresa me convidou para uma parceria, para eu desenvolver produtos, eu desenvolveria a parte técnica e ela faria revenda para empresas parceiras, com o pretexto que a gente iria dividir o lucro.
Problema
Uma das coisas mais desafiadoras para concretizar os projetos era simplesmente um método base de desenvolvimento, por isso eu fui testando algumas formas. E no meio disso tudo passei receber responsabilidades de um Sênior(e salario de junior junior) mesmo sendo Júnior. Falo de receber responsabilidades de Sênior, por desenvolver produtos sozinhos, sem a orientação de pessoas mais experientes ou um guia mínimo do que precisaria ser feito, apenas com o destino final em mente.
gambiarra Solução
Por conta disso, para minimizar o desnível entre o que me era pedido, e o conhecimento que eu tinha, principalmente, por que na época eu estava sem programar a um tempo, e nem conhecia o no-code. Acabei recorrendo a subterfúgios como o ChatGPT e o Copilot, para acelerar o desenvolvimento dos projetos da empresa. Inicialmente, eu os utilizava para estruturar as etapas, mas com o tempo comecei a utilizar eles para criar funções inteiras, restando apenas ajustes pequenos para conectar as funcionalidades. Um dos problemas é que isso está gerando uma dependência a IA, apesar de que realmente estava desenvolvendo com velocidade e aprendendo rápido, eu tinha(tenho) receio que lá na frente isso possa me prejudicar ou tornar o meu natural servo do artificial "deles".
Como estou
Hoje para desenvolver eu crio funções em Python, API's quando necessário, além de interligar com automações no N8N(para chamar algumas API's externas ou funcionalidades específicas). A uma semana comecei a estudar Bubble para fazer a parte gráfica das minhas soluções :) Ainda me bato no N8N mas sempre consigo chegar a uma solução(exceto no limite de memória dos nodes kkkk)
Resolução (Conselhos)
Acabei não especificando mais cedo, mas assim como no meu reinício na programação eu ainda estou trabalhando sozinho no desenvolvimento tanto nos projetos da empresa como no meu pessoal. Por isso, não tive aconselhamentos ainda utilizo as IAs para acelerar o desenvolvimento com menos dependência que antes, mas ainda há uma certa dependência...
Quais conselhos vocês dariam para mim? Como pessoa e como desenvolvedor elhamentos ainda utilizo as IAs para acelerar o desenvolvimento com menos dependência que antes, mas ainda há uma certa dependência...
Quais conselhos vocês dariam para mim? Como pessoa e como desenvolvedor
Opa mano, eu como dev junior estou na mesma, trabalho numa empresa de ramo industrial (que é bem grande aqui na minha cidade), porém, sou o único desenvolvedor (estagiário ainda). A empresa usa uma outra empresa de desenvolvimento terceirizado mas só para alguns projetos, na maior parte do tempo eu quem fico solo aqui fazendo uns projetos. É certo que eu sou estagiário ainda e os conselhos de alguém mais experiente possa ser melhor aqui no post, mas, nesse caso quando eu tento recorrer a IA, eu faço uma filtragem do que eu quero fazer com ela, se for pra corrigir algum bug muito chato que eu não esteja vendo, é ok, se for pra construir uma estrutura eu recorro a fórums como o stack overflow, pois assim, além de eu ter que ler um código inteiro e talvez mudar muita coisa dele caso eu decida utiliza-lo, eu não vou precisar pegar um código feito pela IA e só mudar 1 ou 2 linhas e colar no projeto. Espero que de alguma forma tenha ajudado, trabalhar sozinho tem de fato seus desafios, também gostaria de ter um senior aqui puxando minha orelha falando que algo ta errado, meu senior é o stack overflow pra me mostrar se algo que tento fazer tem boa eficiência e se é algo limpo de se ler.
Um conselho que dou é sempre entender o seu código, mesmo que tenha sido gerado por AI. Entender o código é saber dizer o que cada linha faz, o por quê da função ter esses argumentos, como o seu input está sendo transformado em cada linha da função e como ele irá sair dela. Se não sabe o que a linha faz, pergunte para o chatGPT que ele irá te explicar em detalhes.
O que não pode é acontecer pedaços de código que você não sabe o que está acontecendo ou que só entende parcialmente. Acumular códigos que você não entende no projeto é receita para se sentir perdido e realmente se perder, caso você tenha que mudar algo ou tiver que descrobrir um erro.
Outro ponto é perder a visão do todo. Você pode construir uma casa sem ter nenhum projeto, só empilhando um tijolo atrás do outro. Mas não vai dar certo e sua casa vai parecer aquelas gambiarras que não param em pé.
Em software, é possível ir escrevendo código sem ter visão do todo. Você pode até ter a sensação de que está produtivo, pois está escrevendo bastante código. Mas você pode estar escrevendo código spaguetti
Então estude sobre arquitetura de software, modularidade, código limpo, boas práticas para seu código não desabar ou você não ter que passar noites em claro limpando a sujeira acumulada de anos de más práticas.
Uso Copilot e ChatGPT todos os dias no trabalho como ferramenta para acelerar alguns processos, tirar dúvidas e refatorar pequenas funções, posso dizer com 100% de certeza que a IA só tem me ajudado, mas não consegue pensar por si só e fazer tudo que é dito para fazer numa Issue.
Um sistema complexo e grande vai muito além do que uma IA pode fazer, ela não consegue pensar de ponta a ponta e em todos detalhes que uma nova feature vai trazer no seu sistema, por exemplo. Se tudo que você programa vem de uma IA, então seu sistema é falho ou simples até para uma IA entender.
Assista esse vídeo do DioLinux https://youtu.be/EGY4kY-ILpg