Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Escolhendo o que aprender em seguida

Escolhendo o que aprender em seguida

Palestra apresentada no encontro Python Floripa.

PS: eu mesmo desenhei os cartuns, depois de aprender aqui: https://www.youtube.com/watch?v=7TXEZ4tP06c =)

Dfd7b9492f5c5e49dca373bfdd7a3b1a?s=128

Elias Dorneles

February 24, 2016
Tweet

Transcript

  1. Escolhendo o que aprender em seguida Elias Dorneles @eliasdorneles

  2. WARNING: conteúdo experimental e opinionado

  3. Dificuldades em escolher a próxima coisa (grande-ish) • retorno não

    é óbvio antes de aprender • somos bombardeados por (e suscetíveis ao) hype • é difícil se auto-avaliar -- vide Dunning-Kruger • tendemos a escolher coisas perto do que já conhecemos • em geral, pensar no longo prazo é difícil
  4. Idéia: aplicar Pareto Quais 20% do esforço trarão 80% dos

    resultados?
  5. Okey, vamos discutir algumas possibilidades

  6. Mais um framework • tende a ser menos reutilizável •

    tende a defasar relativamente rápido • aprender a usar é investimento a curto prazo • mas aprender a desenvolver é longo prazo ◦ por isso há tantos frameworks, muita gente faz para aprender ;-)
  7. Se você já conhece dois frameworks Web, provavelmente já conhece

    um número suficiente
  8. Outra linguagem • é divertido! ◦ muitas vezes, mais entretenimento

    que investimento • exposição a paradigmas diferentes pode trazer benefícios produtivos & intelectuais • se você já conhece mais de 5, talvez esteja na hora de focar ;-)
  9. O QUÊ a gente faz importa mais que a linguagem

    que a gente usa
  10. Uma biblioteca nova • retorno é uma ordem de grandeza

    maior que um framework ◦ menos dependências, menos imposições de arquitetura, abstrações mais fáceis de “transportar” • bibliotecas tendem a ter vida longa :) • bom investimento, especialmente se domínio for novidade também
  11. Bibliotecas fazem mais do que resolver o problema • requests

    ensina sobre protocolo HTTP • SQLAlchemy ensina sobre banco de dados e ORMs em geral • sklearn ensina sobre machine learning • etc Mais: servem como referência para bom design
  12. LIBRARIES ROCK!

  13. Aprofundar-se na linguagem atual • bom investimento em ambos curto

    e longo prazo • há muito a aprender: sintaxe & semântica, código idiomático, stdlib, design patterns, tooling (editor/IDE, linters, profilers), packaging, ... • multiplicador de todos os anteriores
  14. BTW, linguagem atual pode ser um combo

  15. Testes & refatoração • aumentam o impacto do código com

    o tempo ◦ mais chances de ser mantido, usado e estendido • de mãos dadas com a linguagem atual • caminho para bom design • multiplicador de todos os anteriores ◦ quanto menos souber sobre, mais vale a pena investir ;)
  16. Não existe código perfeito, mas existem formas de lidar com

    o imperfeito
  17. Trabalho em equipe • também é uma habilidade • livro

    fortemente recomendado: Team Geek ◦ português: http://novatec.com.br/livros/equipessoftware/ • não significa agradar todo mundo, mas cultivar humildade, respeito & confiança • multiplicador de todos os anteriores
  18. “O que vai alavancar ou destruir sua carreira é o

    quão bem você colabora com os outros.” Team Geek
  19. Resumo até aqui • Framework: meh... • Linguagem: hm, talvez...

    • Biblioteca: yeah! • Aprofundar na linguagem atual: oh yeah! • Testes e refatoração: okay, okay! • Trabalho em equipe: yesss!!
  20. Interesses cruzados, úteis em mais situações • comunicação ◦ e.g.:

    como perguntar, como responder, reportar bugs, etc • habilidades organizacionais & gerência ◦ ajudar pessoas a completar um objetivo é super-útil • design de produto ◦ resolver um problema considerando as restrições • noções de design gráfico ◦ Become a Graphic Designer in 5 minutes (Quora)
  21. E ainda tem um último multiplicador para TODOS os anteriores...

  22. EMPATIA Valor central em desenvolvimento de software

  23. Porque se colocando no lugar dos outros, você: • busca

    escrever código mais legível • consegue ajudar outros a melhorarem também ◦ funcionando você mesmo como um multiplicador • se comunica efetivamente • navega problemas de maneira eficiente • amadurece de verdade
  24. Algum tutorial ou HOWTO?

  25. OBRIGADO! Inspirações & referências: • Team Geek (livro) • On

    Being a Senior Engineer [http://www.kitchensoap. com/2012/10/25/on-being-a- senior-engineer/] • James Hague em http://prog21. dadgum.com • Steve Yegge em http://steve- yegge.blogspot.com Elias Dorneles @eliasdorneles