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

Python: Produtividade Para Todos

Python: Produtividade Para Todos

Visão geral das características de Python que a tornam uma das linguagens mais versáteis existentes. Palestra apresentada na IV Jornada de Tecnologia da FANESE, em 7 de dezembro de 2016.

Rodrigo Amaral

December 07, 2016
Tweet

More Decks by Rodrigo Amaral

Other Decks in Programming

Transcript

  1. PYTHON
    PRODUTIVIDADE PARA TODOS
    Rodrigo Amaral
    IV Jornada de Tecnologia da FANESE
    Dezembro, 2016

    View Slide

  2. QUANTO VALE SEU TEMPO?

    View Slide

  3. PRODUTIVIDADE
    Eficácia
    ● “O que deve ser feito”
    ● Resultados otimizados
    Eficiência
    ● “Fazer da forma certa”
    ● Mais qualidade, velocidade, quantidade, menor custo
    Foco
    ● Canalizar capacidade e energia em uma atividade
    MOURA, Dionatan. O Mantra da Produtividade. Casa do Código, 2016.

    View Slide

  4. O QUE REDUZ O FOCO?
    ● Distrações disponíveis
    no ambiente
    ● Interrupções
    ● Cansaço físico e mental
    ● Ferramentas
    inadequadas para a
    tarefa

    View Slide

  5. POR QUE PYTHON?
    ● Interpretada
    ● Dinamicamente tipada
    ● Tipagem forte
    ● Multiparadigma
    ● Multiplataforma
    ● Sixtaxe intuitiva, simples e concisa
    ● Fácil de aprender
    ● Poderosa
    ● Divertida! :)

    View Slide

  6. QUEM USA PYTHON

    View Slide

  7. COMO TUDO COMEÇOU?
    ● Guido van Rossum
    ● Holanda
    ● Inspirada na linguagem ABC
    ● Implementação iniciada em
    dezembro de 1989
    ● Primeira versão pública em
    fevereiro de 1991

    View Slide

  8. THE ZEN OF PYTHON
    >>> import this
    The Zen of Python, by Tim Peters
    Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren't special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you're Dutch.
    Now is better than never.
    Although never is often better than *right* now.
    If the implementation is hard to explain, it's a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea -- let's do more of those!

    View Slide

  9. INTERPRETADOR INTERATIVO
    ● Maneira rápida e eficiente de executar pequenos trechos de
    código
    ● Útil para prototipar e aprender

    View Slide

  10. PYTHON CABE NO SEU CÉREBRO
    class HelloWorld
    {
    public static void main(String[] args)
    {
    System.out.println("Hello, World!");
    }
    }
    print("Hello, World!")
    JAVA
    PYTHON

    View Slide

  11. PYTHON CABE NO SEU CÉREBRO (2)
    vetor = [1, 2, 3, 4, 5, 6, 7]
    quadrado_pares = [n ** 2 for n in vetor if n % 2 == 0]
    print(quadrado_pares) # mostra [4, 16, 36]
    QUADRADO DOS NÚMEROS PARES EM UM VETOR

    View Slide

  12. PYTHON CABE NO SEU CÉREBRO (3)
    import random
    sorteio = 'Pedro Maria Paulo Joana Renato Sofia'.split()
    print(random.choice(sorteio))
    SORTEIO SIMPLES

    View Slide

  13. “BATTERIES INCLUDED”
    Biblioteca padrão rica e versátil,
    traz módulos para várias
    finalidades:
    ● Regex (re)
    ● Funções de SO/shell (os, shutil)
    ● Manipulação de arquivos (zlib,
    gzip, tarfile, csv, xml, json)
    ● Bancos de dados (sqlite3)
    ● Protocolos (httplib, smtplib,
    imaplib, nntplib)
    ● GUI (tkinter)
    ● Programação assíncrona (asyncio)
    ● E muito mais...

    View Slide

  14. EXEMPLO
    Standard Library

    View Slide

  15. PYTHON É PARA TODOS!

    View Slide

  16. PARA DESENVOLVEDORES WEB

    View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. EXEMPLO
    Flask

    View Slide

  23. PARA ADMINISTRADORES DE SISTEMAS E
    REDES
    HTTP
    SSH
    Automação de
    infraestrutura
    Livro

    View Slide

  24. View Slide

  25. EXEMPLO
    Requests

    View Slide

  26. PARA CIENTISTAS e ANALISTAS DE DADOS

    View Slide

  27. EXEMPLO
    Jupyter & pandas

    View Slide

  28. INTERNET DAS COISAS

    View Slide

  29. PARA JORNALISTAS
    Raspagem e mineração de dados na web

    View Slide

  30. O QUE OS NOVATOS
    EM PYTHON
    COSTUMAM
    PERGUNTAR?

    View Slide

  31. 1Python 2 ou Python 3?

    View Slide

  32. VOCÊ ESTÁ
    INICIANDO
    EM PYTHON?

    View Slide

  33. Os livros mais recentes são
    baseados em Python 3.

    View Slide

  34. Sistemas operacionais estão
    passando a usar Python 3 como
    padrão.
    Ex.: Ubuntu, Fedora, Arch Linux etc.

    View Slide

  35. Bibliotecas e frameworks
    importantes já são compatíveis
    (ou estão migrando) para
    Python 3.

    View Slide

  36. Python 2 é para código legado.
    Python 3 é o presente e o
    futuro da linguagem.
    Para saber mais:
    http://wiki.python.org/moin/Python2orPython3

    View Slide

  37. 2Qual a melhor IDE?

    View Slide

  38. VOCÊ REALMENTE
    PRECISA
    DE UMA IDE?

    View Slide

  39. IDEs são como navegadores
    para seu código.

    View Slide

  40. E se você precisar de menos
    código?

    View Slide

  41. E se você precisar de menos
    código?
    Ou puder organizar o código do
    jeito que você preferir?

    View Slide

  42. Se você quer aprender de
    verdade, evite usar IDE por
    enquanto.

    View Slide

  43. Seu editor de texto favorito e
    o shell interativo são
    suficientes nessa fase.

    View Slide

  44. Quando a hora certa chegar,
    você vai saber.

    View Slide

  45. Quando a hora certa chegar,
    você vai saber.
    Ou não.

    View Slide

  46. DESCOBRIU QUE
    QUER
    EXPERIMENTAR UMA
    IDE?

    View Slide

  47. View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. View Slide

  52. É uma decisão pessoal.
    Experimente cada uma por um
    tempo e tire suas conclusões.

    View Slide

  53. 3Existem livros em
    português?

    View Slide

  54. SIM, VÁRIOS!

    View Slide

  55. Introdução à Programação com Python
    Nilo Ney Coutinho Menezes
    Novatec

    View Slide

  56. Python e Django
    Osvaldo Santana e Thiago Galesi
    Novatec

    View Slide

  57. Python para Desenvolvedores
    Luiz Eduardo Borges

    View Slide

  58. Use a Cabeça! Python
    Paul Barry
    O’Reilly / Alta Books

    View Slide

  59. Aprendendo Python
    Mark Lutz e David Ascher
    O’Reilly / Bookman

    View Slide

  60. Python Cookbook
    David Beazley e Brian K. Jonez
    O’Reilly / Novatec

    View Slide

  61. Python Fluente
    Luciano Ramalho
    O’Reilly / Novatec

    View Slide

  62. 4Como aprofundar
    meus conhecimentos?

    View Slide

  63. Cursos online são um bom
    começo.

    View Slide

  64. View Slide

  65. View Slide

  66. Contribua com um projeto de
    código aberto.

    View Slide

  67. Crie seu próprio projeto de
    código aberto.

    View Slide

  68. Participe das listas de
    discussão.

    View Slide

  69. Vá a quantos eventos
    puder.

    View Slide

  70. COMUNIDADE
    "I don't know about the rest
    of you...
    I came for the language, but I
    stayed for the community."
    -- Brett Cannon, Python Core Dev

    View Slide

  71. View Slide

  72. PYTHON BRASIL 2016
    Florianópolis, SC

    View Slide

  73. PYTHON NORDESTE 2016
    Teresina, PI

    View Slide

  74. ENCONTROS DO PUG-SE
    Aracaju, SE

    View Slide

  75. Python User Group Sergipe
    http://se.python.org.br

    View Slide

  76. REFERÊNCIAS
    1. MOURA, Dionatan. O Mantra da Produtividade. Casa do Código, 2016.
    2. VAN ROSSUM, Guido. A Brief Timeline of Python. Disponível em https://goo.gl/5zeaHx.
    3. Wikipedia. ABC (programming language). Disponível em https://goo.gl/g0JjpH.
    4. Instagram Engineering. Web Service Efficiency at Instagram with Python. Disponível em
    https://goo.gl/BjK5hN.
    5. The Netflix Tech Blog. Python at Netflix. Disponível em https://goo.gl/8oDma4.
    6. MASANORI, Fernando. Para Gostar de Python. Disponível em https://goo.gl/cA3CrL.
    7. RAMALHO, Luciano. Python: a Arma Secreta de Todo Mundo. Disponível em https://goo.gl/q6b6UN.
    8. RHODES, Brandon. Foundations of Python Network Programming, Third Edition. Apress, 2014.
    9. Exemplos de notebooks do Jupyter https://github.com/ogrisel/notebooks
    10. Cisco. Cisco Network Programmability Developer Specialist. Disponível em https://goo.gl/Tkyg3h.
    11. Escola de Dados. Raspagem & Jornalismo de Dados. Disponível em https://goo.gl/aOabBp.
    12. CEDER, Naomi. Come for the Language, Stay for the Community. Disponível em https://goo.gl/tevB0D.

    View Slide

  77. OBRIGADO!

    View Slide