2 pontos por GN⁺ 2024-02-17 | 1 comentários | Compartilhar no WhatsApp
  • Um livro introdutório de Python para quem está aprendendo programação pela primeira vez ou teve dificuldades em estudos anteriores; a edição impressa e o e-book da 3ª edição estão disponíveis para encomenda
  • O livro inteiro é no formato de Jupyter Notebook, permitindo ler o texto, executar código e resolver exercícios em um único fluxo
  • Os notebooks de cada capítulo podem ser executados diretamente no Colab, facilitando o início dos estudos sem instalação separada
  • A 3ª edição reorganiza o fluxo de aprendizagem com revisões no texto, ajustes na ordem de alguns capítulos e ampliação dos exercícios
  • As sugestões ao fim de cada capítulo sobre uso do ChatGPT e do Colab AI servem como recursos auxiliares para obter explicações adicionais e ajuda com exercícios quando houver dificuldades

Livro introdutório de Python para iniciantes

  • Think Python é um livro introdutório de Python para quem está tendo o primeiro contato com programação ou para quem já tentou antes, mas teve dificuldades
  • A edição impressa e o e-book da 3ª edição podem ser encomendados na Bookshop.org e na Amazon
  • A landing page do livro da Green Tea Press pode ser vista em Think Python 3rd Edition
  • A 3ª edição organiza o livro inteiro em Jupyter Notebooks, reunindo texto, código executável e exercícios em um só lugar
    • Os notebooks podem ser executados no Colab, reduzindo a necessidade de instalação
    • O texto foi substancialmente revisado e a ordem de alguns capítulos foi reorganizada
    • Há mais exercícios
    • Ao fim de cada capítulo, há orientações sobre como usar o ChatGPT e o Colab AI no estudo e na resolução dos exercícios

Notebooks do Colab e materiais para uso em aula

1 comentários

 
GN⁺ 2024-02-17
Opiniões no Hacker News
  • Fico muito feliz com esta notícia. Quando publicamos Practical Deep Learning for Coders em Jupyter Notebook, conversei com Allen sobre fazer alguns dos livros dele do mesmo jeito.
    Agora isso está realmente acontecendo e, melhor ainda, eles acrescentaram ferramentas legais como uma turtle baseada em Jupyter, que mostra gráficos inline dentro do notebook.
    Acho que, quando for lançado, tem grande chance de se tornar a melhor forma de aprender programação em Python.
    Lembro que, no passado, eu também mostrei uma prova de conceito convertendo parte da 2ª edição deste livro para notebooks nbdev: https://github.com/fastai/nbdev_cards/blob/master/01_deck.ip...
    Esse notebook é renderizado neste HTML: https://fastai.github.io/nbdev_cards/deck.html

    • Eu gostava muito de Think Bayes e Think Stats, mas, quando todo mundo estava usando notebooks, parecia um pouco fora de sintonia.
      Quando aprendo uma nova linguagem com algo como AdventOfCode, a primeira coisa que faço é sempre criar uma imagem Jupyter para essa linguagem.
    • Esse código que pode ser ocultado parece ótimo para documentação. Eu estava procurando algo assim há um tempo.
  • A 2ª edição de Think Python mudou o rumo da minha vida. Fiz uma disciplina de Java e odiei tanto que desisti de programar; alguns anos depois, trabalhando como engenheiro de redes, apareceu um problema que parecia dar para resolver com script, peguei Think Python e acabei me apaixonando por Python e pela própria programação.

    • Era exatamente o que eu precisava ler agora.
      Estou pensando em mudar o rumo da minha vida para algo mais voltado a comunidade/makers/ensino, e tenho uma ideia de trabalho freelance/pequeno negócio para dar aulas, mas preciso de materiais para um “currículo flexível”.
      Enquanto trabalhei como desenvolvedor web profissional, nunca precisei de Python, então estou aprendendo agora. Já usei quase todas as linguagens voltadas para web, incluindo Perl e Ruby.
      Python parece ser uma linguagem adequada para ensinar conceitos gerais, e acho que ter um livro para consultar ajudaria.
    • Como contraponto, comecei com bash/Perl e depois fui para Python; no começo achei ótimo, mas passei a ter problemas por causa da tipagem dinâmica.
      Naquela época, Java foi definido como a linguagem principal da equipe e, depois de ver as vantagens da tipagem estática, não consegui mais voltar.
      Desde então, Python também evoluiu muito graças ao suporte opcional a tipos e às IDEs que conseguem aplicá-lo, mas hoje sou totalmente enviesado para linguagens de tipagem estática.
      Para scripts utilitários, ainda gosto de Python, que é muito mais refinado do que usar só bash. Mas, se eu puder escolher uma linguagem para uma aplicação completa, prefiro Java/Scala etc. Rust também é excelente, mas a curva de aprendizado é íngreme demais para a maioria das pessoas comuns.
      Nunca usei pessoalmente a tipagem opcional de Python com suporte de ferramentas como o PyCharm, então é possível que, com as ferramentas, a experiência tenha ficado parecida com a de uma linguagem de tipagem estática. Se alguém já usou o IntelliJ Community Edition com imposição de tipos em Python ativada, gostaria de ouvir a experiência.
    • Comigo foi parecido. Aprendi um pouco de Java, Matlab, C e Perl, mas só depois de ler a 2ª edição de Think Python é que fui fisgado de vez; depois li vários livros e fiz a transição para uma carreira em software.
    • Eu também. Eu tinha me mudado de cidade e estava procurando emprego quando imprimi esse livro e comecei a lê-lo capítulo por capítulo; graças a ele, virei engenheiro de software.
    • Depois de aulas de C++, aulas de Java etc., foi com Think Python que finalmente entendi de verdade programação orientada a objetos, algo que eu não tinha conseguido compreender antes.
  • Gosto de Think Python e o recomendei a muitos estudantes. Ele equilibra muito bem vários fatores com os quais um livro para novos programadores precisa se preocupar.
    Allen Downey publicou vários outros livros com abordagem parecida: https://greenteapress.com/wp/
    Acho que alguns vão um pouco longe demais na direção de reduzir o rigor, mas, no geral, os livros que examinei eram muito bons.
    Uma vez dividi mesa com Allen em uma conferência e, quando contei com que frequência eu recomendava ou comprava os livros dele para outras pessoas, acho que ele pensou que eu estava me gabando.

    • O filho de um amigo está no último ano da faculdade e talvez vá para a Olin, que eu recomendei. Também foi graças a Think Python que conheci a Olin.
  • Desculpem mudar um pouco de assunto, mas, supondo que a pessoa já tenha experiência prática e continue acumulando experiência no trabalho, existe algum material de qualidade parecida para desenvolvedores Python intermediários/avançados?
    Sempre sinto que há grandes partes da linguagem ou da biblioteca padrão que eu não conheço.

    • Comecei a aprender pela documentação oficial na época do Python 1.5.2 e ainda acho que é um bom material.
      https://docs.python.org/3/tutorial/index.html
      https://docs.python.org/3/library/index.html
      Leio o documento What’s New sempre que sai uma nova versão.
      Fora isso, gosto de ler o código-fonte da biblioteca padrão e de pacotes populares de terceiros. Esse conselho, em geral, se aplica não só a Python, mas também a quando você aprende ou reaprende uma nova linguagem.
    • Achei Effective Python bom. É um livro em formato de dicas, com recomendações acompanhadas de casos de uso e exemplos de aplicação.
    • Fluent Python é um bom livro para esse nível e também é ótimo para usar como referência no trabalho.
    • Gosto de https://effectivepython.com/
      E, muitas vezes, só de ler as implementações anuais do Advent of Code do Norvig, obtenho insights sobre como escrever código Python elegante e conciso.
    • Fluent Python e Effective Python são bons livros. O primeiro é bem grosso e, na prática, é quase vários livros em um só.
  • O autor publica em seu blog os projetos mais recentes em Python, principalmente trabalhos de análise bayesiana de dados, em https://www.allendowney.com/blog/, e tenho achado bem interessante

  • Que livros existem para programação intermediária a avançada em Python? Já conheço Python e programação em geral, mas quero desenvolver mais minha habilidade em Python
    Por enquanto só conheço o Fluent Python, que estou lendo, e o CPython Internals

    • Vale considerar livros que mostrem como as técnicas são aplicadas em código prático real
      Por exemplo, Effective Pandas 2 mostra padrões comuns para lidar com dados tabulares. No processo, usa comprehensions, lambdas, unpacking etc., e também mostra como refatorar com pytest e usar visualizações para entender os dados
      Aliás, eu sou o autor
    • Fluent Python é suficiente. O restante dos recursos da linguagem você entende lendo o manual oficial de referência
    • Também dá para ler livros mais gerais de algoritmos e estruturas de dados, ou livros sobre design
      Em https://www.redblobgames.com/ também há muitos textos muito perspicazes
    • Também vale dar uma olhada na 2ª edição de Exercises in Programming Style, da Cristina Videira Lopes
      É um livro pouco conhecido, mas explora vários estilos de programação resolvendo o mesmo problema sob diferentes restrições
    • No fim, não são documentação e código-fonte?
      Depois de certo nível de proficiência, isto é, acima do nível básico de um profissional, o que resta é apenas ler e escrever código
  • Posts relacionados:
    Think Python 2e - https://news.ycombinator.com/item?id=35421096 - abril de 2023, 30 comentários
    Think Python: How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1586000 - agosto de 2010, 9 comentários

  • Que sorte. Acabei de começar uma mentoria em Python, e sou grande fã do Downey. Ele é um educador e homem renascentista realmente excepcional
    Com certeza vou acompanhar este livro

  • Quando aprendi programação pela primeira vez, este livro também mudou minha vida. Não tanto por uma transição de carreira, mas pela forma como o livro foi escrito e por alguns conceitos que, para mim, um iniciante completo, de repente passaram a fazer sentido
    Agora, vendo a 3ª edição 10 a 15 anos depois, bate uma grande nostalgia, e eu não poderia recomendar este livro o suficiente

  • Eu gostava especialmente deste trecho da edição anterior de Think Java: https://files.catbox.moe/v1vgdc.jpg
    Outra parte interessante é esta:

    O que aconteceu em seguida é a parte legal. Jeff Elkner, um professor do ensino médio na Virgínia, adotou meu livro [Think Java] e o traduziu para Python. Ele me enviou a tradução, e eu tive a experiência peculiar de aprender Python lendo meu próprio livro."