Do Fortran77 à Engenharia de Dados

Como um físico teórico/computacional se tornou um Engenheiro de Dados.

Alexandre Furlan
8 min readFeb 9, 2022

Introdução

O crescimento rápido da área de data science gerou uma demanda por profissionais cujo mercado de trabalho ainda não estava preparado para suprir. As diversas oportunidades de emprego deram início a um grande movimento de migração de carreira por profissionais das mais distintas áreas. Não diferente, eu também acabei migrando de área e vou dedicar este artigo a contar um pouco de minha trajetória e como se deu minha transição para a área de dados. Desejo com este artigo dar um norte para algumas pessoas que assim como eu, se sentem ou se sentiram confusas com tanta informação e não sabem qual o caminho seguir.

Como comecei a programar ?

Antes de qualquer coisa precisamos voltar para os anos de 2008/2009. Nesta época já na segunda metade da faculdade de Física comecei um processo de iniciação científica em Mecânica Estatística (ME). Desde o início me identifiquei com a área devido seu forte apelo computacional. É comum pesquisadores de ME também se intitularem físicos computacionais, devido a necessidade de desenvolver algoritmos para a simulação de fenômenos físicos. Foi com a ME que passei a programar constantemente e na época, isso era feito através do Formula Translation 77 ou, como é comumente conhecido, Fortran 77. Provavelmente uma imagem como essa abaixo lhe veio a mente.

Image retirada de : https://analyticsindiamag.com/66-years-of-fortran-dead-or-alive/

Sim ! Na época o Fortran era a linguagem mais usada entre os acadêmicos. Não sei como está hoje, mas é possível que isso ainda se mantenha. Após um curto período de docência, tomei a decisão de seguir pela carreira acadêmica e realizar o mestrado na Universidade Federal do Rio Grande do Sul (UFRGS).

Realizei meu mestrado e doutorado também em ME estudando problemas relacionados à transições de fase, fenômenos críticos e teoria de líquidos através de simulações numéricas. No meio do mestrado já havia avançado para o Fortran 90 (F90). Apesar dos códigos não apresentarem nenhuma grande complexidade, lembro-me que as rotinas de condições de contorno e lista de vizinhos mais próximos eram, em algumas casos, bem morosas de serem implementadas.

Por volta de 2015/2016, por influência do meu irmão e de alguns colegas, resolvi converter alguns códigos de tratamento de dados simulacionais para python. Foi um caminho sem volta ! Lembro-me de ficar surpreendido com a biblioteca Mako e como isso facilitava o desenvolvimento de scripts de submissão de jobs. O que antes precisava de um mix entre bash e F90 para realizar uma tarefa de ingestão de dados por exemplo, em python, com algumas linhas tudo estava resolvido e ainda por cima, plotava o gráfico. Pronto, estava convencido! Python 1 Fortran 0. Fiquei pelos anos sequintes de meu doutorado utilizando F90 para simulações pesadas e Python para o tratamento e plotagem de dados. Algum tempo se passou, realizei minha defesa de doutorado e segui para o pós-doutorado.

Em maio de 2017 iniciei meu pós-doutoramento na Universidade Federal de Minas Gerais (UFMG). Nesta época decidi abandonar o F90 e adotar o C/C++. Notei que o C/C++ além de apresentar uma performance semelhante ao F90 era também uma linguagem muito difundida fora da comunidade científica. Alguns meses se passaram e pronto, só programava em C/C++ e python.

Ao longo do meu pós-doutoramento tive a oportunidade de trabalhar com pessoas brilhantes e tudo estava indo muito bem, não fossem as frequentes reduções de investimentos em ciência e tecnologia. Esses cortes deixavam os estudantes sem perspectiva de futuro e foi então que me coloquei em estado de alerta. Precisava fazer alguma coisa e isso incluía migrar de carreira. O mercado de TI estava bem aquecido e então decidi migrar. De fato minha vivência com programação me ajudou na decisão. Mas o que devo fazer ? Por onde começar ? O mundo da TI é tão grande e com tecnologias que eu jamais havia ouvido falar. Alguns de meus colegas comentavam frequentemente sobre migrações de físicos computacionais para data science no entanto, um amigo em especial foi o maior influenciador desta migração. Ele me indicou cursos, canais, livros, plataformas e então vi um caminho para seguir.

Decidido a migrar. Ok, por onde começo ?

No último ano de meu posdoc, decidido a migrar para a área de data science, dei inicio aos meus estudos. No inicio foi desesperador ver a quantidade de nomes que nem fazia ideia do significado. Tudo indicava que tinha uma trajetória longa pela frente. Nesta época não sabia claramente a diferença entre analista, cientista e engenheiro de dados e por esta razão, segui um caminho um pouco tortuoso. Acabei estudando um pouco de tudo. Provavelmente se tivesse mais conhecimento sobre a área, teria investido meus esforços de maneira mais focada.

Comecei como boa parte das pessoas, fazendo cursos livres na Udemy. Dentre os cursos que fiz o Python for Data Science and Machine Learning Bootcamp tem excelente custo benefício e uma abrangência muito boa. Sugiro como primeiro passo. Neste curso tive um panorama geral sobre Machine Learning e também pude desenvolver alguns pequenos projetos com os Scikit Learn e Tensow Flow. Acesse meu Github para ver alguns exemplos deste curso.

Passado algum tempo, e já com um primeiro contato com a área, meu amigo me sugeriu o curso Dominando o Data Science da Flai. Este curso foi excelente. Tínhamos aulas interativas duas vezes por semana com projetos desenvolvidos em tempo real. Ademais, neste curso tínhamos dicas de como organizar nosso Github, CV além de um módulo exclusivo sobre Power BI (PBI). Aconselho fortemente este curso para quem estiver com o intuito de se tornar um Cientista de dados. Ainda no Curso da Flai foi adotado o livro texto An Introduction to Statistical Learning. O livro está disponível livremente na internet e aprofunda muito conceitos que, ao longo das aulas, foram passados de forma mais aplicada. Recomendo consultá-lo para dúvidas mais conceituais. Veja mais.

Voltado ainda na parte de ML e Python dois canais que me ajudaram muito foi o Stack e o Trading com dados . O canal Stack de fato é muito denso e com muito conteúdo de qualidade. Fala-se também sobre engenharia de dados. Trading com dados é um canal voltado a visualização e tratamento de dados financeiros no entanto, é possível aprender bastante python, análise técnica e fundamentalista. Através dele é possível fazer alguns projetos também.

Ao longo destes estudos tive contato com colegas que me falaram muito de cloud computing e de como era importante saber trabalhar com essas arquiteturas. Fui então levado a estudar AWS. Seguindo o mesmo processo adotado anteriormente, fui para a Udemy e fiz os cursos Certificação Amazon AWS para iniciantes e Computação em Nuvem: aprenda Amazon AWS com a mão na massa. O primeiro curso é mais introdutório, mostra como criar buckets e subir instâncias EC2 além de focar bastante em aspectos mais teóricos do serviço. O segundo curso já é um pouco mais abrangente chegando até serviços de banco de dados como o Amazon RDS.

No curso da Flai havia dado meus primerios passos com PBI no entando, senti a necessidade de desenvolver painéis mais completos.

Descobri o curso gratuito do Leonardo Karpinski. Foi um curso muito bom e bem focado na estética dos painéis. Já no back-end do PBI, acompanhei bastante o canal da Karine Lago. O canal é muito bom, aborda-se muito linguagem DAX e linguagem M para o desenvolvimento de medidas e queries. Em alguns vídeos a Karine desenvolve painéis do zero que podem ajudar a formar seu workspace. Recomendo bastante! Como podem ver minha trajetória de estudos foi bastante tortuosa, um pouco de cloud, um pouco de DataViz e um pouco de Machine Learning. Apesar disso, algum tempo se passou, diversas entrevistas se passaram e foi então que consegui um emprego como Analista de dados.

Quais são seus conhecimento em SQL ?

Havia uma pergunta que apareceu em diversas entrevistas de emprego : Quais seus conhecimentos em SQL ? Isso nem a academia e nem meus estudos em data science haviam me dado. Eu não fazia ideia do que era SQL, Banco Relacional, Postgres, quem dirá NoSQL e MongoDB. Precisei aprender o tal SQL ! Na empresa que fui contratado meus colegas engenheiros me sugeriram vários cursos. O primeiro foi o Curso de SQL Completo Gratuito (Soft Blue). É um curso muito bom para se ter como primeiro contato com SQL. É ensinado desde a modelagem entidade-relacionamento até criação do banco e consultas. Também legal para sedimentar os conhecimentos é Curso SQL Completo 2020 + Desafios + Muita Prática que também pode ser encontrado no youtube.

Um segundo passo no meu aprendizado em SQL foi dado fazendo o bootcamp Analista de banco de dados do IGTI. Sem dúvidas este curso acrescentou muito meus estudos prévios. Foram dois meses bem intensos fomos desde os fundamentos da linguagem fazendo modelagem entidade-relacionamento até estudos de performance e otimização em consultas SQL passando por bancos NoSQL . Este bootcamp é sem dúvida uma iniciativa ótima para quem deseja se aprofundar um pouco mais em bancos de dados.

Meus colegas de trabalho também me mostraram o curso Microsoft Power BI para data science do Data Sciency Academy. É um curso gratuito muito bom. Ele cobre muitos conceitos relacionados à PBI além de desenvolver diversos painéis que podem ser usados em seu portfólio.

Como cheguei à Engenharia de Dados

Desde o início do trabalho como Analista de dados o time demonstrava uma sinergia muito bacana. Era muito comum a troca de conhecimento entre todos os integrantes mesmo que em funções distintas. Ficava bastante curioso com as tecnologias envolvidas na engenharia e sempre que possível, pedia algum tipo de explicação mais detalhada. Sempre muito solícitos me explicavam, sugeriam leituras e cursos. Comecei fazendo o curso Aprenda Docker simples e rápido também na Udemy e então tomei conhecimento de um novo bootcamp no IGTI, o Engenheiro de Dados Cloud. Este bootcamp foi sem dúvidas um passo muito importante na minha carreira. Tive contato as principais tecnologias utilizadas atualmente. Em linhas gerais o bootcamp se dividia em uma parte mais fundamental onde foi realizado um projeto com um ETL completo, seguido por um módulo de Streaming de dados, Spark e Kubernetes. IaC com Teraform, orquestração com o Ariflow, gerenciamento de pods com argoCD foram também passados neste curso. Sem dúvidas, recomendo muito para quem deseja migrar para a engenharia de dados. Veja mais .

Ainda no curso deste bootcamp o time de engenharia da empresa me propôs realizar um processo de migração fazendo e apresentando alguns pequenos projetos. Concluídos estes projetos minha migração para o time de engenharia começou a ser viabilizado. E pronto, saí de um “programador” em fortran 77 para um engenheiro de dados.

Conclusão

Neste texto contei um pouco como foi meu processo de migração de carreira. Desde minha formação em física até meus estudos um pouco incertos sobre dados, vale salientar aqui, que este caminho não é o certo nem o errado, simplesmente o que segui. Diversos caminhos podem ser traçados nesta migração. Aconselho fortemente que antes de iniciar sua trajetória de estudos, gaste um tempo em entender as atribuições do analista, cientista e engenheiro de dados. Decida para qual deles você tem mais perfil e então foque somente nele. Monte seu cronograma de estudos para aquela função escolheu. Isso poupará muito tempo e otimizará seus esforços. Isso parece óbvio mas na prática não é. Independente do caminho que desejar seguir, os bootcamps do IGTI podem encurtar bastante sua trajetória. Desejo muita sorte a todos aqueles estão em processo de migração e para qualquer dúvida podem entrar em contato por meio do meu Linkedin.

--

--

Alexandre Furlan

Physicist and Data Engineer. I intend to use this space to write about Data Science, Big Data, Programming and technology. Lets talk Data !!!