(O que aconteceu em 2021? Minha única explicação até o momento é que eu estava tão focado em voltar a dar aulas presenciais, em ser pai e marido, que não tinha cabeça para outras coisas.)
Ler é simplesmente uma prioridade para mim. Eu não acompanho todas as séries, eu leio múltiplos livros por mês. Eu não compro roupas para mim, eu compro livros. Se eu não estou com minha família e não estou trabalhando, eu estou lendo. Não estou tentando evangelizar ninguém; se ler não é importante para você, vá fazer coisas de que você gosta.
Mas se isso é algo que você quer mudar em 2024, então considere o princípio básico de que ler deve ser a sua atividade padrão:
Nessa linha, uma opção para ter acesso a muitos livros é o programa Kindle Unlimited – por R$19,90 por mês (em janeiro de 2024), você tem acesso a muitos livros para ler a vontade. Vale a pena?
Depende: Kindle Unlimited é uma ferramenta de descoberta, para que quer ler mais, e não para quem já lê bastante e quer mais livros relacionados aos seus livros recentes.
O catálogo é vasto e limitado ao mesmo tempo. Por exemplo, das trilogias de Bernard Cornwell, há geralmente um ou dois livros de cada série, claramente fazendo uma promoção e forçando o leitor a comprar o faltante (vou ter de fazer isso com a sequência de O Rei do Inverno, por exemplo).
Outro grande problema é que a maior parte das ofertas são de ficção popular barata (o mercado de livros eróticos para mulheres está em alta, aparentemente), que obviamente devem ter custado muito pouco para serem licenciados. Todos os livros que aparecem na seção de populares têm a mesma capa, a mesma cara, como se fosse uma produção industrial forçada nos leitores. Eu gosto de ler em quantidade, mas acho que isso é um pouco demais.
Por enquanto, eu pessoalmente vou continuar a assinar. Se compro um livro sobre criatividade, um grande interesse meu, um dia depois o serviço me oferece muitos livros similares – claro, todos de escritores desconhecidos e que parecem auto-publicados, sem edição nenhuma. Mas por R$19,90 (ou o preço de um litro de óleo de girassol), acho que vale a exploração.
Sinto-me um pouco impostor em escrever isso, já que saí da academia sem realmente sair, trabalhando como Engenheiro em um instituto de pesquisa em parceria com empresas. Mas minha rotina atual é muito mais voltada à Engenharia e desenvolvimento (especificamente no meu caso, de software) que a atividades de pesquisa, então acho que posso dar algumas dicas para estudantes (de graduação ou pós-graduação) que estão prestes a enfrentar um pouco da realidade agora.
Verdade #1: o mundo real usa Word e não LaTeX – ou, como se preparar para o mercado
Se você não é estudante de exatas, não vai entender o meu ponto. Mas aqueles que acostumaram a escrever artigos, teses, relatórios etc usando LaTeX, podem se preparar: fora da academia, ninguém sabe o que é isso. Você vai usar Word e passar mais tempo ajustando a posição das figuras que escrevendo texto de fato.
O que leva a um outro ponto, mais profundo: quantas das suas habilidades estão adequadas ao mercado? Como eu sou Engenheiro, minha visão é pragmática: o mercado é a realidade. O mercado não aceita o futuro do pretérito, e não deveria ser de um jeito de outro. O mercado é.
Eu tenho que escrever documentos em Word o tempo todo, e gasto cada segundo desse processo me odiando. O que eu não faço é reclamar e desejar que eu poderia usar LaTeX. Eu tento fazer o serviço bem feito, e aprendendo a me guiar melhor.
Nunca é cedo ou tarde demais para olhar para fora; pesquise vagas de emprego na sua área e veja se você consegue se candidatar para alguma hoje. Se não, o que falta?
Verdade #2: ninguém liga para que linguagem de programação você usa
Se você está terminando a faculdade ou algum curso de pós-graduação hoje, é provável que tenha implementado alguma coisa em alguma linguagem de programação, e talvez esteja orgulhoso das suas habilidades em Python, ou R, ou Matlab. Mas você sabe o que acontece? Gerentes usam Excel e querem ver relatórios e apresentações (voltando ao ponto anterior: você consegue criar uma planilha ou apresentação razoável em algumas horas?), e não sabem o que é Python.
É claro que você deve aprender programação. Mas você deve aprender programação, e não linguagens de programação. Se você precisa analisar dados para um relatório, então o produto a ser produzido é um gráfico, e não o seu programa. Se você consegue fazer o gráfico sozinho em Python, então crie o programa que analise os dados e siga em frente. Mas se a sua equipe já usa R para analisar os dados automatizados de algum sensor, o quão preso você está em Python?
No vídeo abaixo, Chris Lattner, criador de compiladores e linguagens de programação, é bem direto: clientes não ligam para o programa que você criou, eles ligam para o problema que o seu programa resolve.
Chris Lattner falando sobre habilidades de programação e como o que importa é o resultado e não o programa
O meu projeto profissional principal usa Python, mas isso é uma decisão da nossa equipe de desenvolvimento, e não do nosso cliente. Ultimamente tenho pensando muito em passar para uma linguagem compilada e estaticamente tipada para facilitar a documentação, e tenho plena confiança de que nosso cliente não liga. Se o programa produz sempre o mesmo resultado, o que a linguagem de implementação importa?
Para um projeto secundário, estou colaborando com um colega que já fez grande parte do trabalho usando Julia, uma linguagem nova para mim. O que fiz? Estudei um pouco de Julia e fiz o que tinha que fazer. Meu trabalho é resolver problemas de engenharia, não filosofar sobre Python. Mas se no futuro, quisermos passar para outra linguagem não deve ser difícil.
Em outro clipe do podcast do Lex Fridman, Charles Hoskinson fala que a sua companhia usa uma linguagem acadêmica (Haskell) porque é mais voltada para a pesquisa que eles fazem, mas que os programas podem ser portados para outra linguagem mais tarde.
A não ser que você seja da área de programação (onde você vai provavelmente vai ser contratado para uma linguagem específica que já é usada em um time), escrever programas para resolver problemas é uma habilidade que o mercado (ver ponto anterior) procura; programar em Python não é. Se você está procurando vagas em algum projeto de análise de dados, talvez linaguagem X ou Y seja um requerimento (novamente, porque é o que a equipe já usa, não porque alguém liga); o quão difícil é você criar um projeto no GitHub mostrando essa habilidade?
Verdade #3: o mundo real usa unidades feias (e sistemas desatualizados, e planilhas bagunçadas)
Surpresa: fora da academia, ninguém sabe o que é kelvin. Catálogos de tubos estão em polegadas, não em milímetros. Determinadas indústrias usam sistemas de unidade próprios.
O que não é surpresa: não é você quem vai mudar isso.
Acostume-se à bagunça da vida real, onde algumas coisas estão em litros e outras em galões. Você vai receber planilhas onde está tudo misturado (e nada vai estar documentado, é claro).
Ah: e você também vai usar sistemas desatualizados, com softwares que vão fazer você ficar com raiva, já que você sabe que existem versões mais recentes melhores. Novamente, o mercado entre em cena: a sua futura empresa tem muito mais incentivos em manter tudo funcionando do que pagar para atualizar todas as licenças, ou todos os servidores. É você que tem de ser flexível.
Já virou clichê de millenials como eu reclamar da geração que está terminando seus estudos agora. Não vou fugir desse clichê: estou notando sim um idealismo maior nos estudantes universitários de agora do que na época de quando eu estava na faculdade, achando que tudo deveria ser mais fácil.
Isso é perigoso.
O tal mercado que tanto falei não aceita estudantes arrogantes – aceita pessoas que trabalham duro e se adaptam. Quem você vai ser no mercado de trabalho?
Inspirado por uma série de episódios anuais do Cortex, aqui está uma lista dos apps e programas que eu, um pesquisador de Engenharia, uso diariamente (para fins de trabalho):
iPhone
Drafts – quando você abre o Drafts, ele imediatamente abre uma página em branco, sem eu precisar explicitamente criar uma nova nota. A minha versão de “manter cartões de anotações” o tempo todo comigo conforme recomendado por David Allen e Anne Lamott;
Outlook – app de email que uso por nenhuma razão específico para usar e nenhuma razão específica para deixar de usar. Meu relacionamento com e-mails é o seguinte: eu abro regularmente, arquivo 90%, mando 5% para o Evernote, respondo os 2% rapidamente no iPhone, e deixo os outros 2% para responder com calma no PC;
Kindle – para sempre ter um livro à mão (e leio muito coisa técnica);
PCalc – porque eu sou engenheiro, e como todo bom engenheiro, uso com modo RPN;
NetNewsWire – sei que a internet diz para não acompanhar notícias, por isso vou consultando ao longo do dia meus blogs favoritos (muitos deles relacionados ao trabalho);
Forest – um app que faz crescer uma árvore no seu celular e, se você sai do app para consultar o Instagram, email, WhatsApp etc, a árvore morre. Bom para se concentrar!
Windows
Firefox – navegador que funciona tanto no Windows quando no iPhone, rápido e bom;
PyCharm – meu editor de Python, a linguagem que mais uso para meu trabalho;
AutoHotKey – para criar scripts de automação; por exemplo, tenho um script que muda a tecla de Caps Lock (inútil) para uma tecla de Ctrl (mais útil) melhor posicionada;
Kourosh Dini, pianista, escritor e psiquiatra, falando sobre treinar uma música mais devagar. Recomendo fortemente o canal dele para seus vídeos semanais de “recitais” de piano e sintetizador
Sim, eu também faço isso: para cumprir prazos, eu quero fazer as coisas na pressa – e aí demora mais do que se eu tivesse feito as coisas com calma.
Exemplo prático e real no mundo da Engenharia: eu recebi uma demanda de implementar um algoritmo de cálculo estrutural no programa que minha equipe e eu desenvolvemos. Eu sou Engenheiro Mecânico, e gostava bastante da área de Mecânica dos Sólidos na faculdade; mas depois segui carreira acadêmica nas Ciências Térmicas, e meus conhecimentos atrofiaram (infelizmente). Quando eu recebi a tarefa, varri o nosso código (que é bastante extenso, e inclui já uma parte de cálculo estrutural) em busca de fazer uma alteração rápida.
O problema é que eu não estava entendendo nada, e eu precisava desacelerar. Corri então para a biblioteca, li livros e diversos artigos, começando desde a Introdução, e agora posso ficar em paz e dizer: “entendo o que precisa ser feito!”.
Alterações em softwares nunca são filhas únicas. Esse tempo “perdido” lendo livros introdutórios vai ser compensando porque, quando outras alterações forem solicitadas (e vão ser), eu já entendo a teoria (e tenho diversas notas nos meus cadernos para serem consultadas), e posso partir diretamente para a implementação.
Recentemente, promovi uma grande refatoração no nosso programa, mudando nomes de variáveis internas e documentando cada função. Os nossos clientes não ligam absolutamente nada para isso, e esse mês foi aparentemente “desperdiçado” nessa tarefa lenta e árdua sem nenhum resultado concreto – mas novamente, cada nova alteração é facilitada porque o programa está mais fácil de entender.
Obviamente, como tudo na Engenharia, é uma questão de otimização de recursos. Minha personalidade que gosta de estudar tenderia e querer ler vários livros e artigos, e indo nas referências de cada um, até entender com máxima profundidade o assunto. Mas, após me sentir em paz, eu decido que o estudo é suficiente e é hora de implementar.
Fora que, ao fazer as coisas com calma, a probabilidade de fazer correto é maior – e não é isso que importa?
Vamos imaginar o seguinte cenário comum: você está trabalhando em algo que vai demandar vários dias para completar. Aliás, você tem diversas demandas em paralelo que precisam ser trabalhadas todo dia, por vários dias. O malabarismo é alternar entre as diversas atividades nos intervalos entre reuniões.
Há quem defenda a estratégia de trabalhar com foco e energia total em uma única coisa, o dia inteiro, até acabar com a tarefa #1; depois, passa-se para o mesmo regime na tarefa #2 e assim por diante. Eu não gosto disso porque, além de cansar bastante o hábito de dedicar 8 horas a uma única coisa, eu gosto de trabalhar mais picado para que as ideias de um projeto “vazem” para outro. Se estou implementando um algoritmo para um programa, de repente tenho ideias sobre a documentação e testagem de outro programa, e quero passar para o projeto 2 o mais rápido possível para não perder o pensamento.
Porém, se eu trabalho em várias coisas por dia, como decidir quando está na hora de acabar com uma sessão de trabalho e passar para o outro?
A resposta para mim vem da religião. Como diz Frei Ignácio Larrañaga nas Oficinas de Oração e Vida e em seus livros, o critério mais fácil para se conectar com Deus é a paz; se você está em Paz, você está com Deus, agora, neste exato momento e neste local. Lembra da oração da paz na Missa? “Eu vos deixo a Paz, eu vos dou a Minha Paz”…
Portanto: quando você fica em paz com seu trabalho, quando é capaz de dizer “fiz o suficiente por hoje” sem mentir para si mesmo, é hora de parar de trabalhar. Aliás, é melhor parar de trabalhar agora, antes que você continue na sua tarefa, encontre problemas e perca a sensação de paz…
Isto vale também para o encerramento do dia de trabalho. Eu não quero voltar para casa e preparar a janta para meus filhos enquanto penso no que deu errado; isto requer que eu dedique tempo a “amarrar as pontas soltas”, rever o que falta de cada projeto, deixar tudo anotado, até que eu esteja em paz.
Eu aprendi a programar na faculdade, e nos semestres finais eu só fazia os trabalhos com cálculos implementados em computador. Ao longo de minha carreira, utilizei diferentes linguagens, técnicas, e métodos, mas a programação sempre fez parte do meu trabalho.
Se você estuda Engenharia, você precisa aprender a programar.
Quando eu comecei no meu emprego atual, eu me deparei com um desafio que eu não tinha enfrentado antes: desenvolver programas não seria apenas um meio para outro objetivo (como escrever teses ou preparar aulas), mas é o trabalho; meu papel aqui é desenvolver, manter, testar e documentar softwares de Engenharia que outros pesquisadores e pesquisadoras usam. Eu precisava subir de nível na minha habilidade.
O caminho que escolhi é o projeto Open Source Society University, que prescreve um “caminho” para cursar Ciências da Computação com apenas cursos online. Eu não tenho essa pretensão, e nem acho que é possível. O meu objetivo é trazer conceitos mais rigorosos, efetivos e eficazes do mundo do desenvolvimento de software para a Engenharia.
E já no primeiro curso, o mais básico, surpreendi-me positivamente, e agora acho que todo estudante de Engenharia deve começar o quanto antes o curso online e gratuito How to Code: Simple Data, que usa o meu novo livro preferido de programação (também online e gratuito) How to Design Programas (2 ed.)
Esse não é um curso sobre uma linguagem específica, tanto que usa uma linguagem não muito popular chamada Racket. É sobre projetar programas, como um projeto qualquer de Engenharia: com requisitos, critérios de sucesso (como você sabe que o programa está correto? Você testa todas as suas partes). É sobre seguir um método, rigoroso e sistemático. Tanto no curso quanto no livros, os autores enfatizam a importância de documentar o que você está fazendo, com muitos exemplos.
Minha dica é essa: siga esse curso, tentando fazer todos os exercícios, e então busque traduzir os conceitos na linguagem que você usa nos seus projetos (provavelmente uma das minhas recomendadas). A qualidade dos programas que eu escrevo e o meu entendimento sobre eles aumentou exponencialmente.
Quais são os três objetos sem os quais eu não poderia viver?
Sem pensar muito profundamente, olhei para a minha mesa e vi esse arranjo:
e pensei: aí estão 3 objetos singelos que estão sempre comigo e que são realmente fundamentais:
Caderno: já falei aqui sobre a minha prática de manter um caderno. Quando estou me sentindo mal, é ali que desabafo. Em um dia de trabalho, uso para anotar minhas tarefas. Quando estudo, tomo notas – e para isso preciso de :
Caneta: eu tomo notas de tudo. Mesmo em casa, com meu filho mais velho, brinco de desenhar os personagens preferidos dele (geralmente da Patrula Canina). Com a minha esposa, anotamos os gastos da nossa próxima viagem. Eu já fui o tipo de pessoa que sonhava em “viver sem papel”, mas agora eu não consigo viver sem a sensação de escrever com caneta em um pedaço de papel. Também já foi do tipo que comprava canetas caras, mas agora eu tenho mais o que fazer. E quanto escrevo, é bom tomar água ou café em uma…
Caneca: mas poderia ser uma garrafa. Ter água ou café sempre à mão é o que me permite e concentrar no meu trabalho, e o que dá combustível e refrescância para passar com a família nesses dias quentes.
Aí estão: três objetos simples, que representam instantes agradáveis em casa e no trabalho. A vida é melhor com uma boa bebida enquanto registro meus pensamentos.
Se você está iniciando em uma carreira de pesquisa, você vai ter de tratar dados experimentais ou numéricos e apresentar seus resultados. Não há escapatória além de aprender a programar, e isto vale para todas as áreas; John MacFarlane, por exemplo, é professor de filosofia e um grande nerd.
Para mim, existem três linguagens básicas que você deve saber e estudar continuamente, e vou apresentar na ordem em que acho que devem ser estudadas. Também, como eu sou o Fábio, eu vou dar dicas de livros, que ainda são muito superiores a simples tutoriais para realmente aprender algo.
Python
Se você está começando, este é um excelente primeiro passo. Python é uma linguagem simultaneamente fácil de aprender e poderosa; é bastante geral, e tem bibliotecas para processamento de arquivos, interfaces web e cálculo numérico e matricial.
Eu uso Python regularmente para meus projetos de Engenharia desde 2011. No meu mestrado, criei scripts para pegar os arquivos que o sensor de pressão da minha bancada escrevia e criar gráficos de pressão x tempo para cada teste que eu havia feito. No meu doutorado, criei dois programas que resolviam as Equações de Maxwell para duas geometrias diferentes de ímãs permanentes e calculavam o campo magnético gerado por cada uma. Atualmente, mantenho alguns programas de simulação de poços de petróleo e cálculo de propriedades de óleos.
Uma boa introdução geral é este livro, enquanto este aqui é excelente e mais voltado para área de dados.
R
Você pode usar Python para praticamente qualquer tarefa, mas sempre há benefícios em conhecer mais linguagens. Bjarne Stroustrup, criador da linguagem C++, diz que um salto fundamental para alguém que sabe programar é passar de uma para duas linguagens: o conhecimento de uma alimenta o estudo da outra.
Acontece isso comigo ao estudar R, uma linguagem voltada à Estatística. Embora eu não use muito scripts em R em si, o conhecimento que tenho da linguagem me faz pensar melhor na organização das tabelas de dados, e em como posso juntar todas as simulações que faço em uma única tabela que é filtrada e transformada (e.g. calcular a média de todas as linhas da tabela mestre que correspondem a uma mesma condição de pressão) para diferentes tarefas. Esse conhecimento me acompanha mesmo quando escrevo os programas em Python.
Estes doislivros são excelentes e fundamentais para começar a estudar dados de maneira mais séria.
Julia
Julia é uma linguagem bem mais moderna que as outras, e bastante focada na rapidez de execução. Novamente: ao estudar e praticar Julia, eu posso tanto escrever scripts nessa linguagem como pensar em como acelerar meus programas em Python e R. Se você já tem um sistema que quer otimizar, sugiro fortemente aprender Julia; o ecossistema de bibliotecas está crescendo rapidamente.
Na tentativa de fazer o meu trabalho da melhor maneira possível, eu estou sempre me debatendo entre dois caminhos:
Seguir rotinas fixas (trabalhar um em programa de manhã, escrever artigos à tarde), ou
Priorizar o que é mais importante a cada dia, mesmo que isso signifique sair da rotina.
Eu tenho seguir o caminho 1, mas hoje foi um dia que segui o caminho 2. Para fechar um excelente mês, eu quis terminar de estudar um livro sobre visualização de dados, e largar todo o resto. Por quê? Porque eu achei que devia ser assim.
Aqui vai uma dica para os que estão iniciando a carreira: quando em dúvida, priorize a sua intuição.
Não lembro onde li, mas sei que foi David Allen quem escreveu – provavelmente na última edição de A Arte de Fazer Acontecer – que uma das melhores maneiras de priorizar uma lista longa de tarefas é se basear na intuição. Na ausência de outros indicadores como prazos ou pressões de chefes, o que você realmente acha que precisa fazer? Se você tem esse sentimento interno forte, provavelmente é porque essa ação em si é de fato importante.
Sempre ouvi fortes apelos internos. Ordens de comando, como costumo chamar.
Sidney Lumet em Making Movies, falando sobre como ele escolhe os projetos quando alguém vai falar com ele sobre alguma ideia ou roteiro, e como ele decide "imprimir" os filmes quando está satisfeito com uma tomada (numa época em que os filmes eram literalmente impressos e revelados):
A primeira decisão, é claro, foi fazer ou não o filme. Eu não sei como outros diretores decidem. Eu decido completamente instintivamente, muita vezes após apenas uma leitura. Isto resultou em filmes muito bons e filmes muito ruins. Mas é a maneira com que sempre fiz, e estou velho demais para mudar agora. […] Mas o que me leva a dizer "Imprimir" é completamente instintivo. Às vezes eu o digo porque eu sinto dentre de mim que foi uma tomada perfeita, que nós nunca vamos melhorar. Às vezes é porque está piorando a cada tomada. Às vezes não é escolha.
(Tradução livre minha, e ênfase minha).
Em How to Take Smart Notes, Sönke Ahrens relata que um experimento mostrou vídeos de paramédicos iniciantes e experientes atendendo a instrutores da profissão. Os instrutores não conseguiram classificar: acharam que os reais iniciantes eram experts e vice-versa. Eles mediram o grau de expertise pelo seguimento das regras que foram ensinadas, o que é mais presente em quem recém começou a trabalhar. Experts desenvolvem a sua intuição e quase não pensam mais no trabalho, mas isso significa quebrar as regras quando a situação exige.
Como estou no Ano de Simplificar, preciso levar em conta que às vezes as rotinas de trabalho, as regras, atrapalham. Em vez de ficar alternando entre todos os meus projetos, hoje eu simplifiquei o meu dia priorizando finalizar um projeto importante (sem deixar de atender quem veio me procurar para dúvidas). Para o próximo mês que se inicia amanhã, sinto-me muito mais preparado, justamente com o tanto que estudei neste mês para projetos importantes.
Para o mês de março de 2023, o que a sua intuição diz que você deve priorizar?
Não quero parecer mais velho e experiente do que sou, mas eu tenho certa experiência de Engenharia. Depois de me formar, há 11 anos, completei um Mestrado e um Doutorado, fiz estágio de Pós-Doutorado, trabalhei como professor, e atualmente sou engenheiro em um projeto de pesquisa. Participei de muitos projetos diferentes, com empresas diferentes, com assuntos e contextos diversos.
Sendo professor e pesquisador, interajo com muitos alunos e alunas, engenheiros e engenheiras menos experientes que eu, e é muito comum ouvir variações do tipo:
“Onde consigo esses dados?”
“A empresa X compartilhou os dados de maneira muito desorganizada”
“Os dados de medição e calibração estão num arquivo PDF, como vou usar isso no meu script?”
Engenheiros e engenheiras, pesquisadores e pesquisadoras: trabalhar com dados errados/faltantes/desorganizados não é um impedimento ao seu trabalho, é o trabalho.
A vida de Engenharia não é a vida dos livros-texto, onde as tabelas são bonitinhas. Os dados passam por mãos humanas, onde há algum erro (mesmo que sejam obtidos de um sensor de maneira automática, alguém programou aquele sensor).
Seja cuidadoso ao digitar seus dados manualmente. Muitos erros bobos aparecem quando se transferem dados de uma fonte para outra .
[…]
Muito da visualização envolve coletar e preparar dados. Raramente, você consegue os dados na forma como você precisa, então espere dar uma arrumada nos dados antes de visualiza-los.
Para se tornar um cientista de dados, você precisa de dados. Na verdade, como um cientista de dados, você passará uma embaraçosa grande fração do seu tempo adquirindo, limpando e transformando dados.
Nesta bela tarde de segunda-feira, pegue uma xícara de café, abra o Excel com aquele arquivo desorganizado que você recebeu de alguém (ou use Tabula para extrair tabelas de PDFs), e confira os detalhes:
As unidades estão certas?
O separador decimal (ponto ou vírgula) está correto?
Os dados estão numéricos (1 em vez de “1”)?
Há linhas com colunas faltantes? Por quê? Adicione uma coluna de observações.
Valores nulos (de valor numérico 0) ou negativos são isso mesmo, ou algum sinal de erro do sensor?
Repito: ninguém vai fazer isso para você. Você precisa pensar sobre os dados – e sobre o que você quer fazer com eles.