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. 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
  2. 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 ;-)
  3. 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 ;-)
  4. 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
  5. 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
  6. 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
  7. 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 ;)
  8. 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
  9. 18.

    “O que vai alavancar ou destruir sua carreira é o

    quão bem você colabora com os outros.” Team Geek
  10. 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!!
  11. 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)
  12. 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
  13. 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