Você procura por
  • em Publicações
  • em Grupos
  • em Usuários
BACK

Fazendo a Diferença

Fazendo a Diferença
Matheus Carvalho Gomes Moreira
Aug. 6 - 6 min read
000

Olá pessoal!

Sou o novo mentor da Academia do Universitário e estou aqui para ajudar vocês em tudo relacionado à tecnologia e desenvolvimento de softwares. Espero que nossa jornada juntos seja cheio de grandes sabedorias e conhecimentos adquiridos para todos nós! Antes de começarmos a interagir, vou contar um pouco da minha história como estudante de tecnologia e um desafio que tive ainda como estagiário.

Eu não sei vocês, mas como calouro de Sistemas de Informação na Universidade Federal do Estado do Rio de Janeiro eu ouvia dos veteranos que eles tinham começado nessa área com 12, 14 anos e quem começa cedo tem vantagem sobre os demais. Bem, eu nunca tinha estudado computação até entrar na faculdade. Eu sabia mexer no computador como qualquer jovem que joga e usa softwares para trabalhos escolares, mas nada além disso. Até porque no meu vestibular eu queria medicina! Eu sempre quis fazer a diferença no mundo de alguma forma, por esse motivo, no meu 3 ano do ensino médio, eu fiz uma turma focada em medicina e após passar para outros estados mas não para o Rio, eu comecei a pensar numa segunda alternativa, pois não queria sair do Rio e nem queria com tanto afinco medicina para fazer mais um ano de pré-vestibular. Eu queria algum curso que me mostrasse um caminho em que eu pudesse fazer a diferença e manter meu foco em tornar a vida de todos melhor de alguma forma e ter um impacto positivo. Por isso, influenciado pelo meu pai e tio que são da área, eu escolhi Sistemas de Informação.

Como calouro, fui bombardeado de informações e até “verdades”, como a de que eu deveria ter começado desde pequeno como alguns deles. Conforme os períodos se passavam, eu fui construindo uma base sólida na área, base essa que permitiu avançar nos meus conhecimentos sempre tendo embasamento para realmente ter um entendimento mais completo do assunto, o que eliminou qualquer distanciamento técnico que poderia haver.

Essa base sólida é o que hoje me permite desenvolver em qualquer linguagem e em qualquer paradigma de programação e, mais tarde, ainda como estagiário, foi fundamental para que conseguisse resolver o maior desafio que já tinha tido como desenvolvedor.

Era preciso fazer uma qualificação de E-Social com o governo de forma automática, ou seja, verificar se uma determinada pessoa estava em dia com o governo e suas informações atualizadas. Detalhe, não existe uma API para isso! Ou seja, isso precisaria ser feito na mão, do zero. Tendo isso em mente comecei a pesquisar algumas soluções, não conseguindo pensar em muitas coisas que resolvessem o problema. Até que em uma aula na faculdade, uma professora mencionou o termo “web scrapping”, pois teria uma aula sobre isso. Deu um estalo. Era exatamente isso que precisava fazer. Comecei a pesquisar uma forma de fazer um web scrapping na nuvem, para que isso pudesse ser feito em larga escala e não na minha máquina local. Quem for da área, sabe que um dos frameworks mais famosos para esse tipo de trabalho é o Selenium. Que foi a minha primeira tentativa. Com o Selenium esbarrei num problema de custo. O custo de manter uma máquina virtual instanciada o tempo todo no Google Cloud Platform (GCP), que é o serviço de infraestrutura e serviços em nuvem da Google, seria enorme e ainda seria preciso escalar isso para todos os ambientes da empresa, pois no processo de desenvolvimento, normalmente se tem 3 ou mais ambientes, que podem ser divididos em:

Desenvolvimento: Ambiente que os desenvolvedores usam para testes próprios e desenvolvimento de novas funcionalidades;

Homologação: Ambiente de testes e garantia da qualidade do software como um todo, antes de liberar para os clientes;

Produção: Ambiente “Go Live!” é o ambiente usado pelos clientes com a versão estável do sistema

Como esbarrei no problema de custo com o Selenium, precisava de outra solução. A Google possui uma biblioteca própria de web scrapping chamada “Puppeteer”, que tem compatibilidade com os serviços da GCP de microsserviços (muito mais em conta do que uma máquina virtual inteira).

Com o Puppeteer eu consegui fazer o código rodar em produção unindo custo benefício e otimização. Faltava mais um desafio, o captcha. O site possui um recaptcha que verifica se é uma pessoa acessando o site ou não. Como não era o caso, precisava contornar isso de alguma forma. Não dava pra retornar esse desafio para o cliente pois a conexão seria encerrada no momento que eu retornasse algo do meu servidor, logo a sessão do browser no servidor seria destruída e nunca passaria pelo captcha. Então um amigo meu me deu a dica que salvaria o projeto. Existem ferramentas que pagam pessoas para resolverem esses desafios de captcha. Então tudo que precisei fazer foi chamar esse serviço para alguém de alguma parte do mundo resolver o captcha para mim e o fluxo normal pudesse seguir.

A solução funcionou! E depois de algo em torno de 600 linhas de código escritos consegui resolver o problema. Com certeza foi o maior desafio que já tive e conseguir resolvê-lo ainda como estagiário foi muito gratificante.

Então como evoluir na área de desenvolvimento?

Base teórica:  Estudar estruturas de dados, otimização e complexidade de algoritmos é fundamental para ter uma base teórica que vai te permitir conhecer como a sua linguagem funciona e deslanchar no desenvolvimento de qualquer coisa e em qualquer linguagem e modelo possível, pois a teoria da computação é agnóstica à plataforma usada.

Prática: Na programação, a prática leva a perfeição. Praticar com projetos pessoais é fundamental pra ganhar vivência e fluência na linguagem escolhida.

Agora como colocar em prática esses pontos da melhor forma possível para se desenvolver na área? Para isso eu estou aqui! Espero poder ajudar à todos em busca de seus sonhos e em suas jornadas de autoconhecimento. Estamos juntos para ajudar a transformar, melhorar e facilitar a vida de pessoas por meio da tecnologia!

 

Abraços,

Matheus, seu mentor


Report publication
    000

    Recomended for you