$30 off During Our Annual Pro Sale. View Details »

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 =)

Elias Dorneles

February 24, 2016
Tweet

More Decks by Elias Dorneles

Other Decks in Programming

Transcript

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

    View Slide

  2. WARNING:
    conteúdo experimental
    e opinionado

    View Slide

  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

    View Slide

  4. Idéia:
    aplicar Pareto
    Quais 20% do esforço trarão
    80% dos resultados?

    View Slide

  5. Okey, vamos discutir
    algumas possibilidades

    View Slide

  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 ;-)

    View Slide

  7. Se você já conhece dois
    frameworks Web,
    provavelmente já conhece
    um número suficiente

    View Slide

  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 ;-)

    View Slide

  9. O QUÊ a gente faz
    importa mais que a
    linguagem que a gente usa

    View Slide

  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

    View Slide

  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

    View Slide

  12. LIBRARIES
    ROCK!

    View Slide

  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

    View Slide

  14. BTW, linguagem atual
    pode ser um combo

    View Slide

  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 ;)

    View Slide

  16. Não existe código
    perfeito, mas existem
    formas de lidar com o
    imperfeito

    View Slide

  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

    View Slide

  18. “O que vai alavancar ou
    destruir sua carreira é o
    quão bem você colabora
    com os outros.”
    Team Geek

    View Slide

  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!!

    View Slide

  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)

    View Slide

  21. E ainda tem um último multiplicador
    para TODOS os anteriores...

    View Slide

  22. EMPATIA
    Valor central em desenvolvimento de software

    View Slide

  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

    View Slide

  24. Algum tutorial ou HOWTO?

    View Slide

  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

    View Slide