40 pontos por GN⁺ 2023-11-29 | 1 comentários | Compartilhar no WhatsApp
  • Este curso é voltado para pessoas que já estão familiarizadas com C e programação orientada a objetos, e tem como objetivo aumentar a proficiência em programação C++
  • Abrange desde os fundamentos da programação C++ até semântica e conceitos avançados de C++
  • É gratuito, atualizado com frequência, inclui conceitos e recursos dos padrões mais recentes da linguagem e adota uma abordagem de ensino prática

Principais conteúdos de cada capítulo

  • Conceitos básicos : explicação dos tipos básicos do C++, operadores, regras de conversão, gerenciamento de memória, funções e pré-processamento.
  • Programação orientada a objetos : compreensão dos conceitos de classe, herança, polimorfismo e sobrecarga de operadores.
  • Templates e metaprogramação : exploração aprofundada de templates de função e classe, utilitários em tempo de compilação e SFINAE.
  • Unidades de tradução : explicação sobre linkage, One Definition Rule e formas de lidar com múltiplas unidades de tradução.
  • Convenções de código : orientações sobre organização de projetos e principais convenções de código.
  • Ecossistema : informações sobre depuração, testes, Cmake, documentação e outras ferramentas.
  • Utilitários : visão geral das principais bibliotecas std, contêineres, iteradores e algoritmos.
  • Tópicos avançados : estudo aprofundado de semântica de movimento, inferência de tipos, smart pointers e concorrência.
  • Otimização : estratégias sobre conceitos básicos, otimização de código, otimização sem código e benchmarking.

Opinião do GN⁺

Este curso cobre todos os aspectos da programação C++, incluindo os padrões mais recentes da linguagem, sendo um material essencial para que engenheiros de software iniciantes evoluam até um nível profissional. A abordagem prática baseada em casos reais oferece conhecimento aplicável aos alunos, o que é muito útil para aprimorar suas habilidades de programação.

1 comentários

 
GN⁺ 2023-11-29
Comentários no Hacker News
  • O criador deste curso é líder de equipe na NVIDIA e principal engenheiro de software do CUDA cuSPARSE

    • Considerando a relação do criador do curso com NVIDIA e CUDA, essa experiência pode ser útil para quem já tem proficiência em C++.
  • Obtive grande sucesso usando o ChatGPTv4 para escrever código moderno em C++ compatível com CUDA

    • O ChatGPTv4 pode ajudar a converter código Rust em C++ moderno compatível com o compilador CUDA nvcc mais recente.
    • Durante o processo de conversão, ele explica as diferenças entre as linguagens e recomenda usar std::* para escrever código mais flexível.
  • Voltei ao C++ após uma longa pausa, e versões recentes como C++17 são boas o suficiente, mas o suporte a Unicode deixa a desejar

    • As versões mais recentes do C++ são suficientemente boas para uso, mas o suporte a Unicode é incômodo e precisa melhorar.
  • Como desenvolvedor embarcado, estou procurando bons materiais para começar a aprender C++

    • Alguém com experiência em desenvolvimento embarcado está procurando materiais de aprendizado de C++ para migrar para trabalhos de nível mais alto.
    • Existem cursos em várias faixas de preço, mas há dificuldade em escolher um curso adequado para situações mais complexas.
  • Gostaria de saber se alguém pode comparar este curso com o learncpp.com

    • Pede opiniões sobre a utilidade deste curso em comparação com o site learncpp.com.
  • É adequado para reaprender técnicas de C esquecidas da época da faculdade, mas faltam mais exercícios práticos de programação

    • Expressa preferência por aprender com prática real de programação, em vez de apenas estudo teórico.
  • Acho difícil aprender só com slides

    • Critica o aprendizado por meio de slides como ineficiente e demonstra preferência por outros métodos de estudo.
  • Smart pointers não deveriam ser considerados um "tópico avançado" em C++

    • Como smart pointers são a melhor forma de lidar com gerenciamento de memória, enfatiza que até iniciantes deveriam aprendê-los.
    • Menciona que entender new e delete também é importante, mas que, na prática, é mais desejável usar unique_ptr ou shared_ptr.
  • Tenho dúvidas se é mesmo necessário usar new/delete no C++ moderno

    • Um iniciante em C++ levanta dúvidas sobre a necessidade das palavras-chave new/delete no C++ moderno.
  • Pede que expliquem como ler a seção de regras de conversão

    • Como não está familiarizado com a notação da seção de regras de conversão, pede ajuda e busca uma explicação adicional sobre essa parte.