Programação em Python – Fundamentos e resolução de Problemas

Capa do livro Programação em Python - Fundamentos e resolução de Problemas
Título
Programação em Python - Fundamentos e resolução de Problemas
Autor(es)
Editora
FCA – Editora de Informática, Lda.
Páginas
632
ISBN
978-972-722-816-4

O livro Programação em Python: Fundamentos e Resolução de Problemas, é de extrema utilidade para todos aqueles que desejem aprender não apenas a programar mas também os diversos paradigmas de programação, não necessitando de grandes conhecimentos prévios. O livro encontra-se estruturado de uma forma bastante organizada, simples e direccionada. Apreciei o facto de que o leitor é convidado a aprender primeiramente os conceitos teóricos necessários à compreensão das matérias apresentadas, acompanhando exercícios que proporcionam uma consolidação do conhecimento, agradável, ainda que pouco observável em obras técnicas como o livro em questão.

Ao ler o primeiro capítulo (introdução), compreendem-se conceitos fundamentais de arquitectura de computadores, funcionamento dos mesmos, linguagens e paradigmas de programação, além de noções de algoritmia importantes para uma sólida compreensão dos conteúdos da restante obra. Nota-se a atenção do autor para com o leitor, mantendo o texto sempre cativante, apelativo, motivador e atractivo, proporcionando desafios em forma de exercícios, que acabam por promover uma leitura mais atenta e interessada, até mesmo para os leitores menos “prováveis”, pois programar nos dias de hoje pode ser considerado tão importante como saber ler e escrever o idioma nativo, de forma fluente.

Ao longo dos capítulos dois e três, abordam-se temas de igual importância como o caso de formas graficamente representadas e programação de interacções com o utilizador. Seguidamente é apresentada uma abordagem sólida, ainda que não aprofundada, aos objectos, começando por explicar os conceitos mais teóricos e aprofundando os conceitos mais práticos, como os tipos básicos de objectos, operações e precedências de operações, âmbito, métodos gerais e específicos, construtores e por fim, um tipo de objecto que merece alguma atenção especial: o tuplo (tuple) que sendo muito semelhantes às listas, têm no entanto especificidades concretas, muito úteis para armazenamento de dados em memória volátil.

No quarto capítulo, são apresentadas as instruções destrutivas e de controlo, de leitura e escrita. Mais uma vez se nota a atenção do autor na transmissão clara dos conceitos bem como na consolidação dos mesmos.

Com estes capítulos lidos, nota-se o aprofundar dos conteúdos, tendo por base os capítulos antecedentes, promovendo assim uma leitura progressiva e “ágil”. Ao longo dos capítulos quinto e sexto, são aprofundados temas como instruções de controlo de fluxo e salto, instruções condicionais, bem como construtores, mutabilidade, cópia profunda, listas, cadeias, dicionários (particularmente úteis aquando da utilização da ferramenta Web2Py), árvores e outras estruturas de dados. Todos estes temas, são acompanhados de exercícios e culminam num teste de conhecimentos. Ao capítulo sétimo, dou-lhe o destaque pelo tema em causa, a saber: ficheiros. É um tema muitas vezes considerado complexo, mas de relevo e interesse para a programação, sendo que a apresentação deste tema no livro está simplesmente excelente, uma vez que é feita de forma simples e objectiva, sem “mistificações” desnecessárias, sendo de fácil compreensão.

Tal como anteriormente, nos capítulos seguintes, são aprofundados os temas previamente abordados, como o caso dos objectos graficamente representados, sendo que a sua apresentação neste caso concreto se encontra de uma forma muito apelativa para o leitor, uma vez que apresenta uma utilização mais prática com imagens e objectos reais. Posteriormente chegados ao nono capitulo, o autor foca-se em aspectos mais complexos da programação, como o caso da recursividade, âmbito das variáveis e objectos, bem como programação orientada a objectos.  Adopta uma aproximação clara, sólida e progressiva ao paradigma, à programação orientada a objectos com Python e seus aspectos mais avançados como herança, polimorfismo, encapsulamento, classes abstractas, entre outros, dispondo de exemplos práticos de grande utilidade e qualidade. Esta obra, consegue ainda abordar alguns aspectos da engenharia de software, ao apresentar UML no exercício da “máquina multibanco”.

Achei de particular interesse, tendo-me captado a atenção, o facto de o autor apresentar o tratamento e visualização de imagens provenientes de ficheiros. Isto é algo não muito comum num livro de Python, mas que se revela particularmente interessante, pois desperta interesse no leitor para temas que de outra forma, muito provavelmente acabariam por passar despercebidos. De igual modo podem ser úteis caso o utilizador pense dar continuidade aos exemplos de jogos que se encontram na parte final do livro, acrescentando por exemplo, uma imagem de fundo, de entre um vastíssimo leque de situações nas quais os conhecimentos transmitidos nesta obra, são de grande utilidade e valência, mesmo para quem pense que a programação se destina apenas a um público mais técnico e científico.

A título de exemplo apenas ilustrativo desta opinião pessoal, a linguagem Python é de extrema utilidade quando se trabalha com ferramentas de edição de imagem como o caso do GNU Image Manipulation Program (GIMP), para o qual é possível desenvolver toda uma série de plug-ins em Python. Creio poder considerar que um profissional da edição de imagem que utilize a ferramenta acima mencionada, após a leitura desta obra, sentir-se-á mais capaz de desenvolver código que lhe automatize tarefas e até acrescente funcionalidades à ferramenta.

No último dos capítulos o autor foca-se inteiramente nos aspectos relacionados com as interfaces gráficas de utilizador, algo que é essencial num programa de computador que execute mais tarefas do que simplesmente o tratamento de dados provenientes de suporte informático. A apresentação do tema, permite ao leitor uma consolidação dos temas anteriormente abordados, além de levantar interesse adicional e proporcionar os conhecimentos necessários ao desenvolvimento de aplicações amigas do utilizador e graficamente atractivas.

O livro dispõe  ainda de um exemplo de uma animação e de um jogo simples, como é o jogo do galo, também conhecido por “tic-tac-toe”, que apesar de ser “trivial” e impossível de vencer, caso os dois jogadores estejam ao mesmo nível de atenção e capacidade cognitiva, pois dada a simplicidade do jogo a probabilidade de empate entre jogadores em situação de igualdade de faculdades é de quase 100%.

Num registo mais pessoal, creio que o livro “cumpre mais do que aparentemente promete” numa primeira apreciação da capa. Não parece prometer tanto quanto “cumpre” quando se lê a obra de forma atenta, algo raro em literatura da especialidade, pelo que saúdo o autor com alegria! A obra no seu todo é de uma qualidade excepcional, numa linguagem extremamente acessível. O texto não é de todo “maçador”, como os menos ávidos da leitura por vezes dizem ao adjectivar livros. A atenção é mantida de forma tão eficaz que ousaria opinar que ao ler esta obra, se está perante um ciclo de formação orientado por um formador e não de uma obra de consulta, como uma esmagadora maioria das obras tende a ser utilizada.

Realço o facto de nesta obra se encontrarem ilustrações a cores, algo que não é comum e foi com agrado que constatei. Independentemente do rigor técnico e científico da obra, que diga-se é elevado, o facto de dispor de algumas ilustrações mais relevantes a cor, ajuda a captar a atenção inicial dos mais desatentos. Da mesma forma gostaria de destacar os “intermezzos” disponíveis entre os vários capítulos que compõem esta obra, sendo excelentes complementos para o leitor e onde o autor aborda de forma, diria que mais “suave”, algumas questões mais complexas e alguns mitos ou “pseudo-dogmas”, chamemos-lhe assim, da programação para quem é principiante, como o facto de ser “todos os problemas terem apenas uma solução”, a apresentada pelo autor, professor, formador, a pessoa que transmite o conhecimento. O autor desmistifica este facto num dos intermezzos, apresentando uma argumentação simples e igualmente sólida.

Em conclusão, é um livro que recomendo vivamente tanto a programadores, como a estudantes de programação, entusiastas e não entusiastas, em suma a qualquer pessoa que se interesse um pouco, por tecnologia e que esteja disposto a aprender um pouco mais! Como referi anteriormente nesta análise, o livro é de uma qualidade impar, adequando-se a todas as pessoas que se interessem pela programação.

A aprendizagem de programação, é por si só algo de grande importância, nos dias que correm. Não obstante a linguagem Python, quer pela maturidade atingida, quer pela quantidade cada vez maior de bibliotecas disponíveis, para as mais diversas funções, pela sua versatilidade parece-me ser uma linguagem que todos devem aprender.

Publicado na edição 51 (PDF) da Revista PROGRAMAR.