Programming -- Principles and Practice Using C++ (3rd Edition)
- "Programming -- Principles and Practice Using C++ (3rd Edition)", publicado pela Addison-Wesley, está previsto para ser lançado em abril de 2024
- ISBN: 978-0-13-830868-1
- Pode ser comprado diretamente no site da editora
Apresentação do livro
- Este livro ajudará qualquer pessoa disposta a se dedicar a aprender os princípios básicos da programação e a desenvolver habilidades práticas necessárias para a programação real
- As edições anteriores foram usadas com sucesso por milhares de estudantes
- Esta edição revisada tem as seguintes características:
- Parte do princípio de que o objetivo do leitor é escrever programas bons o suficiente para que outras pessoas possam usar e manter
- Foca em conceitos e técnicas fundamentais, em vez de detalhes técnicos obscuros da linguagem
- Não é uma introdução a uma linguagem de programação, mas sim à programação em geral, incluindo programação procedural, orientada a objetos e genérica
- Abrange tanto técnicas de baixo nível necessárias para usar o hardware com eficiência quanto técnicas modernas de alto nível
- Fornece uma base sólida para escrever código útil, correto e seguro, usando tipos que possam ser mantidos e também eficientes
- Foi projetado principalmente para pessoas sem experiência em programação, mas programadores experientes também acharam as edições anteriores úteis como introdução a conceitos e técnicas mais eficazes
- Cobre amplamente conceitos essenciais, técnicas de design e programação, recursos da linguagem e bibliotecas
- Usa C++ moderno (C++20 e C++23)
- Aborda o design e o uso de tipos nativos e tipos definidos pelo usuário, juntamente com entrada, saída, computação e gráficos/GUI simples
- Oferece uma introdução aos contêineres e algoritmos da biblioteca padrão de C++
Sobre o autor
- Bjarne Stroustrup é o projetista e implementador original de C++, e autor de "The C++ Programming Language", "A Tour of C++" e de muitas publicações populares e acadêmicas
- Ele é professor de ciência da computação na Columbia University, na cidade de Nova York
- Dr. Stroustrup é membro da National Academy of Engineering dos Estados Unidos e fellow do IEEE, ACM e CHM
- Ele recebeu o Charles Stark Draper Prize de 2018, o Computer Pioneer Award de 2018 da IEEE Computer Society e a IET Faraday Medal de 2017
Apresentação do PPP3
- "Programming: Principles and Practice using C++ (3rd Edition)" (PPP3) é um livro introdutório de programação para pessoas sem experiência em programação
- Também será útil para quem tem alguma experiência em programação e quer melhorar estilo e técnica ou simplesmente aprender C++ moderno
- Foi projetado para uso em sala de aula, mas escrito sob a perspectiva de um tutorial
- As versões anteriores deste livro foram usadas como base do primeiro curso de programação para estudantes de engenharia elétrica, engenharia da computação e ciência da computação na Texas A&M University e em muitos outros lugares
- Quem viu o PPP2 perceberá que o PPP3 tem cerca de metade do tamanho. Para reduzir o volume, foi feito o seguinte:
- Foram aproveitadas partes centrais de C++20 e C++23 para reforçar os capítulos básicos normalmente cobertos em um curso de um semestre, e o código dos capítulos de gráficos/GUI foi reescrito com base em Qt para portabilidade (por exemplo: navegador e celular)
- Os capítulos mais especializados (conhecidos como "widening the view" no PPP2) foram colocados na web para uso conforme necessário
- Material puramente de referência foi removido. Agora é possível encontrar mais material e material mais atualizado na web (por exemplo: cppreference.com)
- O material de apoio do PPP2 ainda está disponível (slides de aula, código etc.)
Amostras do PPP3
- Prefácio: o que este livro promete e o que não promete
- Sumário
- Capítulo 0: algumas palavras ao leitor. Algumas observações sobre a abordagem adotada neste livro
- Capítulo 10: o modelo de exibição. Capítulo de exemplo. Se você é um iniciante completo, não leia este capítulo agora. Ele é publicado para mostrar a professores e leitores experientes até onde este livro chega em cerca de 5 semanas (assumindo dois capítulos por semana). Também serve para exibir um pouco de C++ moderno
Informações de suporte
- Links para implementações de C++ e ambientes de desenvolvimento de software (além de alguns conselhos para começar)
- Como usar módulos (incluindo explicação de como compilar o módulo PPP usando
PPP_support.h)
- Módulo PPP para quando for possível usar módulos
- Cabeçalho
PPP.h para usar std e PPP da forma mais fácil
- Cabeçalho
PPPheaders.h para quando for necessário voltar a usar arquivos de cabeçalho
- Suporte a GUI, incluindo a biblioteca de interface gráfica/GUI do PPP3 (nos capítulos 10-14). Para executar esse código, é necessário instalar o Qt. Consulte o manual do usuário
- Código de exemplo de vários capítulos (TBD)
- Errata
- Slides de aula atualizados para PPP3 com base em PPP
- Guia de estilo de código do PPP
- Material de exercícios (TBD)
Capítulos do PPP2
- Estes capítulos foram escritos usando C++14, não C++23, mas continuam corretos e apresentam os temas de forma razoável
- Capítulo 1: computadores, pessoas e programação
- Capítulo 11: personalização de entrada e saída
- Capítulo 22: ideais e história
- Capítulo 23: processamento de texto
- Capítulo 24: computação numérica
- Capítulo 25: programação de sistemas embarcados
- Capítulo 26: testes
- Capítulo 27: a linguagem de programação C
- Glossário
Traduções
- Ainda não há nenhuma. Para traduções da edição anterior, consulte a página de capas dos livros do autor
Opinião do GN⁺
- PPP era um livro famoso para iniciantes em programação, e agora está saindo a 3ª edição, que aproveita C++20/23 e reorganiza/reduz bastante o conteúdo. É uma ótima notícia.
- Em especial, a reformulação completa da parte de GUI com base em Qt pode ser vista como um exemplo de que o Qt se consolidou como o framework de GUI de fato no ecossistema C++.
- Parece que ele incorpora ativamente tecnologias modernas de C++, como modularização, e também fortalece a integração com a web. Em especial, ter uma versão que pode ser executada diretamente no navegador parece perfeito para uso educacional.
- Por outro lado, por usar C++ moderno, talvez iniciantes possam ficar confusos. Ainda pode ser melhor, para iniciantes, começar com um C++ em estilo C.
- Como o autor, Bjarne, é o criador de C++ e liderou sua padronização, este provavelmente será um dos livros mais autoritativos. Não só iniciantes, mas também especialistas poderão aprender as best practices e dicas de uso selecionadas por Bjarne.
1 comentários
Opiniões do Hacker News
Foi levantada uma preocupação de que o recurso de módulos do C++20 ainda não é totalmente suportado pela maioria dos compiladores, então
import std;não funciona. Isso pode confundir iniciantes.A troca do FLTK por Qt no capítulo de GUI é uma grande mudança, e como o Qt é amplamente usado na indústria, espera-se que seja bem recebida. Ainda assim, não está claro qual será o impacto na curva de aprendizado.
No código do Stroustrup, usa-se
using namespace std;para omitir o prefixostd::, o que melhora a legibilidade do código.Foi levantada uma dúvida sobre o fato de o código do Stroustrup não usar espaços de forma consistente depois de
#include.No passado, quase tudo era feito com C++, incluindo UI e parsing de API, mas hoje a posição do C++ na stack de desenvolvimento ficou mais abaixo.
Houve experiência de estudar profundamente versões anteriores deste livro, e isso ajudou bastante a aumentar a compreensão de C++. Mas também havia muitas pessoas escrevendo código em C++ sem ler livros como este.
É apresentado o livro "C++ Annotations", que traz informações atualizadas sobre C++.
O número de páginas e o peso da 3ª edição caíram para cerca da metade em comparação com a 2ª edição.
O volume diminuiu porque a seção 'Part IV: Broadening the View' da 2ª edição foi removida, e esse conteúdo pode ser visto online. Os tópicos que usam C++11/14 continuam válidos.
A pessoa está pedindo conselhos sobre o problema de
import std;não funcionar, já que é difícil encontrar uma IDE ou compilador com suporte a C++20.