Categorias
Listas de livros

Bons livros lidos, Verão 2022-2023

Uma estação está acabando, e uma das coisas que gosto de fazer (pra variar, inspirado pelo Austin Kleon) é rever os livros que li nessa estação, para ver se há algum tema.

Apesar de que o ano passado foi supostamente o Ano de Ler e Escrever, a leitura de livros acabou ficando para trás, frente a estudos e escritas de notas. O verão que agora acaba marca uma volta muito profunda aos livros, como forma de entretenimento e como fonte das maiores ideias para seu trabalho, como PH Santos muito bem ilustra nesse excelente vídeo:

Excelente vídeo sobre usar livros para produzir outras coisas

Se o Ano atual é de Simplificar, o Verão foi a Estação de Simplificar as Finanças, e para isso I Will Teach You to be Rich, de Ramit Sethi, foi fundamental. Eu tenho grandes problemas com a criação de jargão artificial nessa obra, como um “Plano de Gastos Conscientes” e o “Método dos Envelopes”, que são apenas técnicas de orçamento (apesar de o autor jurar que você não precisa organizar o seu orçamento). Mas a sua abordagem prática em acumular pontos em cartão de crédito e em como organizar categorias de gastos de uma maneira realista tiveram grande impacto em mim. Esse livro me mostrou que, se eu otimizar os gastos fixos, cuidando da minha família, ao mesmo tempo em que tento investir um mínimo viável e de maneira inteligente, eu posso sim gastar com livros, se isso é realmente importante para mim.

Um livro que comprei desde que adquiri essa mentalidade e que já é um dos meus livros favoritos de toda a vida é Amigos, Amores e Aquela Coisa Terrível, o livro de memórias do Chandler de Friends. A sua maneira livre, honesta e profunda de escrever sobre problemas foi muito importante em algumas semanas particularmente depressivas. Os problemas existem; se você escreve sobre eles, eles não diminuem, mas também não aumentam.

Como inspiração para o trabalho, o duo de livros de Nathan Yau, Visualize This e Data Points (embora esse último seja bem raso e um pouco inútil para quem já sabe um pouco sobre visualização de dados), me ajudou a pensar mais como cientista de dados ao analisar resultados de simulações no meu emprego. Mesmo que eu não tenha aprendido nada de muito nova, ajudou-me a reforçar algumas ideias de organização de dados (lembrando que é sua tarefa fazer isso).

E agora: que livros me esperam no Outono?

Publicidade
Categorias
Artigos

Apps e programas que um pesquisador usa

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;
  • Todoist -para consultar minhas tarefas;
  • 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

E é assim que eu trabalho.

Categorias
Artigos

Desacelere no trabalho para fazer mais e melhor

Se você quer ficar bom em algo, desacelere.

Kourosh Dini
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?

Categorias
Artigos

Como decidir quando é hora de parar de trabalhar em um projeto e partir para o próximo

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.

Você está em paz com seu trabalho?

Categorias
Artigos

O melhor curso de programação para engenheiros (e que ninguém conhece)

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.

Fora que programas em Racket é divertido.

Categorias
Artigos

Linguagens de programação que todo pós-graduando deve saber: a Tríade da Ciência de Dados

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 dois livros 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.

Uma boa introdução a Julia é este livro online.


Se você quer aprender mais sobre alguma dessas linguagens, diga aqui nos comentários!

Categorias
Artigos

Para ser mais produtivo (e ter uma vida mais simples), confie na sua intuição

Na tentativa de fazer o meu trabalho da melhor maneira possível, eu estou sempre me debatendo entre dois caminhos:

  1. Seguir rotinas fixas (trabalhar um em programa de manhã, escrever artigos à tarde), ou
  2. 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.

Em O Caminho do Artista, Julia Cameron escreve:

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?

Categorias
Artigos

O que fazer com dados errados/faltantes/desorganizados? Parar de reclamar!

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.

Nathan Yau, Visualize This (Tradução livre minha)

Quer outra citação?

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.

Joel Grus, Data Science do Zero

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.

Categorias
Artigos

Por que uso o PyCharm ou: uma história sobre complicar para simplificar

O que vou falar aqui não combina muito com o Ano de Simplificar, mas vale a pena ser dito: às vezes, complicar torna a vida mais simples.

O meu trabalho envolve programar muito em Python, como vários outros pesquisadores do mundo. O editor da moda é o Visual Studio Code, que tem um visual mais minimalista e de fato é muito bom.

O problema é que apenas o editor não é suficiente para meu trabalho: eu preciso de um terminal de linha de comando e de ferramentas de controle de versão. O VS Code têm tudo isso, mas aí a sua simplicidade começa a sumir… E é aí que eu resolvi abraçar a complexidade e usar um editor mais profissional, PyCharm.

PyCharm não é um programa simples ou fácil de usar: há inúmeros painéis, menus, caixas de diálogo, atalhos. Mas agora, tudo que eu preciso está em um só programa – e aos poucos, estou aprendendo a navegar nessa complexidade e me tornando mais produtivo e eficiente no meu trabalho.

E no seu trabalho? Que passo adicional em relação à complexidade a leitora pode adotar que vai tornar a vida mais simples, na verdade? Que software/metodologia/ferramenta o leitor está com medo de abraçar pela complexidade, mas que vai facilitar a vida?

Categorias
Articles

A Regra dos 3

Essa ideia não é minha, não é revolucionária, mas faz muito parte da minha vida e precisa ser compartilhada:

Faça tudo aos três

Este texto explica em mais detalhes, mas foca muito na escrita e em apresentações: quando for fazer uma apresentação, concentre-se na três ideias principais; ou quando for escrever, estruture em introdução, desenvolvimento e conclusão.

Mas há mais exemplos da Regra dos 3:

  1. Toda semana, escolha 3 metas e todo dia, escolha 3 tarefas mais importantes (MIT); se o dia/semana for caótico e você conseguir cumprir as 3 MITs, o dia foi um sucesso (para mergulhar mais nisso, leia Getting Results the Agile Way
  2. Quando você ouvir falar de uma tecnologia/livro/filme pela terceira vez, é sinal de que não apenas um hype e vale a pena ir atrás (eu vi essa dica em algum lugar, mas não consigo de jeito nenhum achar a fonte
  3. Quando for sentar para fazer um lote de atividades mundanas de uma lista enorme, faça 3 itens e deixe o resto para outro dia (3 voltas em um sábado de manhã, 3 contas a agendar o pagamento, 3 emails a mandar).

Experimente a Regra dos 3 e me diga aqui em baixo se isso não mudou a sua vida.