Atualização: 3ª edição do livro Python para Desenvolvedores

Em Outubro de 2014, a editora Novatec lançou uma edição atualizada
do livro Python para Desenvolvedores focado em Python 3 (versão 3.3), com conteúdo novo e
com todos os exemplos de código atualizados.
É uma excelente opção para quem deseja ter uma cópia física desse ótimo livro. Segue abaixo os links para
a compra:
Introdução
Este livro é voltado para quem já possui conhecimento de programação. Ele aborda assuntos que incluem: criação de interfaces com usuário, computação gráfica, aplicações para internet, sistemas distribuídos, entre outros assuntos.

Prefácio da 1ª edição
As linguagens dinâmicas eram vistas no passado apenas como linguagens script, usadas para automatizar pequenas tarefas, porém, com o passar do tempo, elas cresceram, amadureceram e conquistaram seu espaço no mercado, a ponto de chamar a atenção dos grandes fornecedores de tecnologia.
Vários fatores contribuíram para esta mudança, tais como a internet, o software de código aberto e as metodologias ágeis de desenvolvimento.
A internet viabilizou o compartilhamento de informações de uma forma sem precedentes na história, que tornou possível o crescimento do software de código aberto. As linguagens dinâmicas geralmente são código aberto e compartilham as mesmas funcionalidades e em alguns casos, os mesmos objetivos.
A produtividade e expressividade das linguagens dinâmicas se encaixam perfeitamente com as metodologias ágeis, que nasceram do desenvolvimento de software de código aberto e defendem um enfoque mais pragmático no processo de criação e manutenção de software do que as metodologias mais tradicionais.
Entre as linguagens dinâmicas, o Python se destaca como uma das mais populares e poderosas. Existe uma comunidade movimentada de usuários da linguagem no mundo, o que se reflete em listas ativas de discussão e muitas ferramentas disponíveis em código aberto.
Aprender uma nova linguagem de programação significa aprender a pensar de outra forma. E aprender uma linguagem dinâmica representa uma mudança de paradigma ainda mais forte para aquelas pessoas que passaram anos desenvolvendo em linguagens estáticas.
Prefácio da 2ª edição
Revisada e ampliada, esta edição traz algumas novidades, como a inclusão de vários recursos interessantes que foram incorporados na versão 2.6 do Python.
Vários assuntos já abordados na edição anterior foram expandidos, incluindo: orientação a objetos, rotinas matemáticas, interface gráfica, computação gráfica, acesso a bancos de dados e integração com aplicativos de código aberto.
Além disso, a formatação passou por algumas mudanças, visando facilitar a leitura em monitores e a impressão.
Entretanto, a maior parte das mudanças vieram com a revisão do texto, que agora se tornou compatível com a nova ortografia, tarefa facilitada pelo uso do BrOffice.org e suas ferramentas. Várias partes do texto foram ampliadas, capítulos mudaram de ordem, novos exemplos e diagramas foram acrescentados, com o objetivo de melhorar o encadeamento dos assuntos abordados.
Conteúdo
Os capítulos abaixo são renderizados através do nbviewer, eles são somente-leitura e renderizados em tempo real. Para alterar qualquer parte do conteúdo, basta clonar esse projeto no Github.
Parte I
Esta parte trata de conceitos básicos sobre a linguagem de programação Python, incluindo sintaxe, tipos, estruturas de controle, funções e documentação.
- Capítulo 1: Introdução
- Capítulo 2: Sintaxe
- Capítulo 3: Controle de fluxo
- Capítulo 4: Laços
- Capítulo 5: Tipos
- Capítulo 6: Funções
- Capítulo 7: Documentação
- Exercícios I
Parte II
Esta parte trata de módulos e pacotes, destacando alguns dos mais relevantes que estão presentes na biblioteca padrão da linguagem, instalação de bibliotecas de terceiros, exceções e introspecção.
- Capítulo 8: Módulos
- Capítulo 9: Escopo de nomes
- Capítulo 10: Pacotes
- Capítulo 11: Biblioteca padrão
- Capítulo 12: Bibliotecas de terceiros
- Capítulo 13: Exceções
- Capítulo 14: Introspecção
- Exercícios II
Parte III
Esta parte é dividida em dois assuntos: geradores, uma tecnologia cada vez mais presente na linguagem, e programação funcional.
Parte IV
Esta parte se concentra principalmente na orientação a objetos, e também aborda decoradores e testes automatizados.
- Capítulo 17: Decoradores
- Capítulo 18: Classes
- Capítulo 19: Herança simples
- Capítulo 20: Herança múltipla
- Capítulo 21: Propriedades
- Capítulo 22: Sobrecarga de operadores
- Capítulo 23: Metaclasses
- Capítulo 24: Decoradores de classe
- Capítulo 25: Testes automatizados
- Exercícios IV
Parte V
Esta parte cobre diversas tecnologias que os aplicativos hoje tem a disposição: principalmente para lidar com armazenamento e troca de informações: acesso a banco de dados, persistência, XML e Web. Além desses tópicos, temos o uso de threads e a arquitetura MVC.
- Capítulo 26: Threads
- Capítulo 27: Persistência
- Capítulo 28: XML
- Capítulo 29: Banco de dados
- Capítulo 30: Web
- Capítulo 31: MVC
- Exercícios V
Parte VI
Esta parte apresenta algumas funcionalidades dos pacotes NumPy, SciPy e Matplolib, e também de conhecidos toolkits para interfaces gráficas. Além disso, uma breve introdução a computação gráfica e processamento distribuído. E por fim, observações sobre performance no Python e formas de empacotar e distribuir aplicativos.
- Capítulo 32: Processamento numérico
- Capítulo 33: Interface gráfica
- Capítulo 34: Computação gráfica
- Capítulo 35: Processamento de imagem
- Capítulo 36: SVG
- Capítulo 37: Imagens em três dimensões
- Capítulo 38: Processamento distribuído
- Capítulo 39: Performance
- Capítulo 40: Empacotamento e distribuição
- Exercícios VI
Apêndice
Esta parte se concentra em outras tecnologias que tem de conviver com o Python de diversas formas. E ao final, as respostas dos exercícios propostos nas partes anteriores.
- Apêndice A: Integração com aplicativos
- Apêndice B: Blender
- Apêndice C: GIMP
- Apêndice D: Inkscape
- Apêndice E: BrOffice.org
- Apêndice F: Integração com outras linguagens
- Apêndice G: Integração com .NET
- Respostas dos exercícios I
- Respostas dos exercícios II
- Respostas dos exercícios III
- Respostas dos exercícios IV
- Respostas dos exercícios V
- Respostas dos exercícios VI
Licença

Este trabalho está licenciado sob uma licença Creative Commons Atribuição - Uso Não Comercial - Compartilhamento pela mesma licença. Para ver uma cópia dessa licença, visite http://creativecommons.org/licenses/by-nc-sa/3.0/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
Agradecimentos
Gostaria de agradecer a minha esposa e aos meus pais, pela paciência que tiveram durante o processo de criação desta obra.
Além deles, gostaria de agradecer a todos que apoiaram e ajudaram a divulgar o livro.
Sobre o autor
Luiz Eduardo Borges é engenheiro e analista de sistemas, com pós-graduação em Computação Gráfica pela Universidade do Estado do Rio de Janeiro (UERJ). Atua a quase duas décadas na área de informática, sob diversas formas.
Usando o livro
Este livro pode ser lido de 3 maneiras diferentes:
- A primeira maneira é a mais interativa de todas. Nela você tem de clonar o repositório do livro para fazer o download de todos os arquivos .ipynb para a sua máquina local. Se você tiver o IPython instalado, você poderá então visualizar todos os capítulos no seu navegador e rodar os códigos de exemplo. Esta é uma das melhores maneiras de maximizar o seu aprendizado, porém algumas dependências terão de ser instaladas na sua máquina.
- A segunda maneira é usar o site nbviewer que apresenta os IPython Notebooks direto no seu navegador. O conteúdo é atualizado de acordo com as atualizações do repositório. Para acessar os capítulos, use os links da seção Conteúdo acima.
- A terceira maneira é através do download do arquivo PDF do livro. Lembre-se porém que PDFs são estáticos e portanto não são interativos.