Cinco livros de programação avançada

Cinco livros de programação avançada

Vivemos numa época em que aprender a programar – ou quase qualquer outra matéria – só é possível com uma conexão à Internet. Existem tantos recursos disponíveis quanto tantas pessoas ansiosas por progredir em suas vidas pessoais e profissionais. Temos vídeos tutoriais, bootcamps, cursos online, livros, entre outras opções.

Agora: os livros têm algo especial. Estes são, ainda hoje, uma fonte ímpar de aprendizagem sobre uma área técnica, principalmente quando se pretende compreender um tema em profundidade, e que o diferencia de outros recursos pela sua sistematicidade e ordem na sua apresentação.

Assim, o trabalho de um autor de livros técnicos consiste em saber diminuir a complexidade do material para não sobrecarregar o leitor, evitando cair em superficialidades que outros tipos de conteúdo, seja pelo tempo ou pelo meio que utilizam, não conseguem evitar. Portanto, é o meio ideal para lidar com questões avançadas.

Neste artigo apresentarei cinco livros de programação avançada que atendem a essas características e que, ao estudá-los, posso garantir que seu nível de programação, bem como seu entendimento de computação, aumentarão substancialmente.

1) Elements of Programming

Elements of Programming de Alexander Stepanov e Paul McJones, é um daqueles livros que não tem medo de adicionar rigor à programação, usando matemática e códigos elegantes escritos em C++. Deve-se notar que Stepanov foi o designer do STL (standard Template Library) do C++, o que é considerado um feito técnico, pois se caracteriza pela consistência interna sem perder eficiência.

Este livro, além de exigir conhecimentos de álgebra abstrata e C++, também possui uma aspiração filosófica, embora seus autores nunca a declarem explicitamente. Mas isso pode ser percebido no primeiro capítulo onde aparecem os conceitos que o livro utilizará nos capítulos seguintes. Entre eles estão o que os autores chamam de “Categorias de ideias”: entidades, espécies e gênero, além de outros, como valores e objetos, procedimentos e tipos regulares, entre muitos mais.

Ele está disponível gratuitamente em seu site.

E não se preocupe se não entender as primeiras páginas, é normal; Em vez disso, preocupe-se se você abandoná-lo, pois perderá uma oportunidade valiosa de expandir seu conhecimento. É, talvez, o livro mais desafiador desta lista.

2) Structure and Interpretation of Computer Programs (segunda edição)

Ao contrário do livro anterior, Structure and Interpretation of Computer Programs (segunda edición), de Harold Abelson, Gerald Jay Sussman e Julie Sussman não é um livro desconhecido, mas já tem uma reputação no mundo da programação que, merecidamente, causa o espanto de cada leitor, pois explica como construir programas a partir de um ponto de vista vista. visão funcional. Conceitos como recursão, imutabilidade, decomposição estão presentes em cada capítulo, utilizando Scheme como linguagem para seus exemplos (embora recentemente tenha saído uma versão com JavaScript).

Como a programação funcional ocupa cada dia mais espaço na indústria, ela não fica mais “escondida” atrás de linguagens subutilizadas. Pelo contrário, agora está presente em linguagens convencionais, como Python ou C++. Sua relevância é indiscutível, então por que não mergulhar no livro principal sobre esse tema emocionante?

O livro está disponível aqui: https://sarabander.github.io/sicp/html/

3) Crafting interpreters

O design e implementação de linguagens de programação têm uma longa história na história da computação. Isso porque, para construir toda a infraestrutura de software, era necessário contar com boas linguagens de programação que tornassem a tarefa não apenas simples, mas também sustentável ao longo do tempo. Uma linguagem com sintaxe enigmática e propensa a erros não é uma boa escolha. Os pesquisadores têm feito vários esforços desde a década de 1950 para inventar novas estratégias e construir melhores compiladores e interpretadores.

Alguns dos criadores deste campo foram Alfred Aho e Jeffrey Ullman, vencedores do Prêmio Turing 2020 por suas relevantes contribuições ao campo do design de compiladores, o que foi alcançado com sua magnum opus: Compilers (popularmente conhecido como "O Livro do Dragão" [devido à sua curiosa capa]). Um livro de referência sobre todos os cursos de compiladores das principais universidades do mundo.

Embora o design de linguagens não seja uma área tão popular como antigamente, muitos entusiastas continuam se dedicando a esse trabalho, por causa do que acredito firmemente: aprender a criar linguagens é sinônimo de entender os fundamentos da computação. Bom, tudo começa de lá.

Robert Nystrom juntou-se a este trabalho quando publicou seu livro Crafting Interpreters em 2021. Um livro moderno, com ar renovado, e muito mais prático que o livro Compilers que, de uma forma agradável, apresenta este mundo fascinante.

Mais informações sobre o livro: https://craftinginterpreters.com

4) Advanced data structures

Todos nós que estudamos Ciência da Computação, ou mesmo um curso de Programação, aprendemos estruturas de dados, que são armazéns que nos permitem organizar e acessar informações. Dependendo de qual escolhermos, as operações podem ser mais rápidas que outras, portanto a escolha das estruturas de dados pode afetar a forma como projetamos algoritmos. Uma estrutura de dados adequada nos permitiria reduzir significativamente o tempo de computação, o que se traduz em economia de custos devido ao menor consumo de software.

Se você quiser aprender não apenas as estruturas básicas de dados, mas ir além, recomendo comprar Advanced Data Structures por Peter Brass. Um excelente trabalho para aprofundar como projetar algoritmos com maior eficiência, tanto em menor consumo de memória quanto em menor tempo de execução.

Mais informações sobre o livro: https://www.cambridge.org/core/books/advanced-data-structures/D56E2269D7CEE969A3B8105AD5B9254C

5) Introduction to Algorithm (quarta edição)

Seguindo na esteira do livro anterior, Introduction to Algorithms é um clássico entre os livros de informática. É como o Dom Quixote de Cervantes: todo mundo conhece, mas nem todo mundo leu. A quarta edição, publicada recentemente, incorpora diversos algoritmos de aprendizado de máquina e outras categorias de algoritmos atualmente necessários, como os online, que processam e calculam dados em tempo real. Além disso, adiciona mais de 100 exercícios e múltiplas atualizações em relação à terceira edição.

Imperdível.

Mais informações sobre o livro: http://mitpress.mit.edu/9780262046305/introduction-to-algorithms/


Conclusão

Mesmo que esta lista seja curta, qualquer pessoa que se atreva a ler alguns desses livros poderá absorver o conhecimento no futuro. Além disso, considerando o grande número de tutoriais introdutórios disponíveis, esta abordagem torna-se essencial tanto para atingir um nível de domínio como para se destacar dos demais.

Uma saudação!

💡
Obs: Só sugeri livros em inglês porque muitos desses temas, infelizmente, não foram tratados em português.

Mais recomendações

Para se aprofundar em outros livros (de todos os níveis), considere consultar estes links:

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.