Como aprender as linguagens C e C++: a lista definitiva
Publicados: 2022-03-11A linguagem de programação C foi originalmente desenvolvida e implementada no sistema operacional UNIX por Dennis Ritchie. A linguagem C, que é bastante simples, não está vinculada a nenhum hardware ou sistema específico. Isso torna mais fácil para um usuário escrever programas que serão executados sem muitas (ou nenhuma) alterações em praticamente todas as máquinas.
A linguagem C é frequentemente chamada de linguagem de computador de nível médio, pois combina os elementos das linguagens de alto nível com o funcionalismo da linguagem assembly. A programação em C permite a manipulação de bits, bytes e endereços – dando ao programador mais controle sobre exatamente como o programa se comportará e acesso mais direto à mecânica do hardware subjacente.
C foi criado, influenciado e testado em campo por programadores em atividade. O resultado final é que C dá ao programador o que ele quer.
C++ é uma versão aprimorada da linguagem C. C++ inclui tudo o que faz parte de C e adiciona suporte para programação orientada a objetos (OOP). Além disso, o C++ também contém muitas melhorias e recursos que o tornam um “melhor C”, independente da programação orientada a objetos.
A linguagem C++ é realmente extensível, pois podemos definir novos tipos de forma que eles atuem exatamente como os tipos predefinidos que fazem parte da linguagem padrão.
Se você apenas usar C++ como um C melhor, você não estará usando todo o seu poder. Como qualquer ferramenta de qualidade, C++ deve ser usado da maneira como foi projetado para ser usado para explorar sua riqueza. Alguns dos novos recursos incluem encapsulamento, chamadas de função inline, operadores de sobrecarga, herança e polimorfismo.
Por que eu iria querer aprender C ou C++?
C e C++ ainda são duas das linguagens de programação mais populares por aí. A sintaxe e os conceitos de C, especialmente, resistiram ao teste do tempo, e você pode vê-los sendo levados para outras linguagens de programação populares, mesmo as modernas, como Go.
Mesmo se você for construir aplicativos da Web ou componentes sofisticados de front-end da Web para o resto de sua vida, aprender C o ajudará a entender como o software e o hardware realmente interagem.
Além disso, C e C++ estão por toda parte.
C, em particular, potencializa muito mais tecnologia do que acreditamos.
Por outro lado, alguns de seus softwares favoritos - possivelmente até mesmo o navegador da Web em que você está lendo este artigo - são criados em C++. Conhecer C é uma boa base, mas em muitos casos, o desenvolvimento de software exigirá que você aprenda C++ e seus paradigmas.
Se você deseja desenvolver um software que precise aproveitar ao máximo o desempenho e os recursos de um computador - jogos de desktop de última geração, ferramentas de produtividade sofisticadas ou programas complexos de computação intensiva, por exemplo - ou se deseja apenas uma linguagem de programação que permita interagir diretamente com o hardware de um computador, C e C++ são as linguagens para você.
Então, por que você não quer aprender C++ ou C? Não é como 25 anos atrás, quando você poderia ter que investir em um compilador proprietário para começar – hoje você certamente pode aprender C++ de graça.
Como posso começar com C e C++?
Para começar com C ou C++, o que você vai querer na maioria dos casos, no mínimo, é um compilador – embora hoje em dia você também possa aprender C online experimentando um pouco com projetos C “hello world” no navegador.
Compiladores são programas que podem ser executados por meio de interfaces de linha de comando (CLIs). Eles lêem o programa inteiro e o convertem em código objeto, que é uma tradução do código-fonte do programa em um formato que o computador pode executar diretamente.
Para facilitar a vida, você pode optar por IDEs completos que podem tornar sua experiência com C ou C++ ainda mais agradável.
janelas
Existem muitos bons compiladores disponíveis no Windows.
No Windows, o Visual Studio fornece um compilador C++.
O compilador também pode construir programas em C.
O Visual Studio vem com seu próprio IDE poderoso e rico em recursos, tornando-o uma ótima opção para quem está começando com C ou C++ ou para alguém que visa principalmente a plataforma Windows.
Se você está procurando algo mais compatível com o padrão, o GCC (MinGW) pode ser o que você precisa. O IDE Codeblocks funciona excepcionalmente bem nesta configuração.
O Clang também é agora uma escolha formidável no Windows - é usado até para construir o Google Chrome hoje em dia.
Existem outros IDEs de plataforma cruzada, como Eclipse CDT, Jetbrains CLion e Netbeans, que fornecem ambientes de desenvolvimento C e C++ totalmente funcionais. Ultimamente, no entanto, eles estão sendo eclipsados (desculpe a ironia) pelo Visual Studio Code, que também está disponível para ambientes Linux e Mac.
Linux
Se você estiver no Linux, provavelmente já tem o GCC instalado como parte de sua distribuição. Caso contrário, instalá-lo deve ser apenas uma questão de um único comando:
# Ubuntu sudo apt-get install build-essential # Fedora sudo yum install gcc gcc-c++ # Arch Linux sudo pacman -S base-develO Codeblocks IDE e o Eclipse CDT funcionam tão bem no Linux quanto no Windows.
Mac / Mac OS X / OS X / macOS
Em um Mac, você pode usar o Clang ou o GCC – ambos estão disponíveis gratuitamente. Embora o GCC tenha suporte para uma ampla variedade de padrões C e C++, o Clang funcionará bem na maioria dos casos.
O Clang já deve estar instalado.
Você pode instalar o GCC usando o Homebrew:
brew install gccVocê pode usar o XCode, um ótimo IDE que faz parte das ferramentas de desenvolvedor do Mac OS.
Quais são alguns bons tutoriais para aprender C e C++?
Os tutoriais são uma ótima maneira de começar com uma nova linguagem de programação. Mesmo que você não esteja muito familiarizado com a programação em si. Os tutoriais a seguir ensinarão os conceitos mais importantes.
Programação C na LearnVern
Este curso on-line abrangente de programação C é ótimo para iniciantes, que não necessariamente têm experiência anterior em programação. Ele começa desde o básico de C e programação em geral e cobre tópicos avançados, como alocação dinâmica de memória, gerenciamento de arquivos, etc.
C++ para programadores C no Coursera
Se você já está familiarizado com C e quer mergulhar em C++, então este curso de duas partes é perfeito para você. Este curso realmente destaca as diferenças entre essas duas linguagens e mostra como tirar o máximo proveito do C++.
Fundamentos de C++ na Pluralsight
Por outro lado, se você quiser começar do básico de C++ e aprender do zero, o PluralSight tem o tutorial certo para você. Destina-se àqueles que desejam ser mais eficientes com C++.
Programação em C para iniciantes na Udemy
Este curso online de programação C é amigável para iniciantes e perfeito para quem quer começar com C em qualquer uma das três plataformas populares (Windows, Linux e Mac OS X).

Tutorial de C++ para iniciantes completos na Udemy
Este curso é destinado a qualquer pessoa que tenha conhecimentos básicos de informática, mas agora quer entrar no reino da programação. Indiscutivelmente, é a melhor maneira de aprender C++ como sua primeira linguagem. Além disso, se você acha o desenvolvimento de jogos interessante, este é o curso com o qual você deseja começar.
Curso de Treinamento Avançado em Programação C++ na Udemy
Quando estiver satisfeito com suas habilidades básicas de programação em C++ e pronto para seguir em frente, você desejará um tutorial avançado, como este. O tutorial abrange polimorfismo, modelos, tratamento de exceções, fluxos, contêineres, algoritmos, pilhas e muito mais.
comp.lang.c Perguntas frequentes
Às vezes, tudo o que você precisa é de uma rica lista de perguntas e respostas que você pode consultar rapidamente para resolver seus problemas. Este não é um tutorial em si, mas sim um conjunto estruturado de perguntas frequentes.
Anotações C++ (versão 10.9.2) por Frank Brokken
Este tutorial baseado na web destina-se a programadores C avançados (ou programadores Perl ou Java – qualquer coisa considerada como tendo uma “gramática semelhante a C”) que desejam fazer a transição para C++. Ele continua onde a linguagem de programação C termina – como em ponteiros, alocação de memória e tipos compostos – o que o torna um guia de programação C++ muito bom.
Guia de estilo do Google C++
À medida que você escreve programas mais elaborados enquanto aprende a programar em C++, você pode rapidamente se deparar com problemas de manutenção. É aqui que os guias de estilo de programadores C++ veteranos são úteis. Este guia de estilo é mantido pelo Google.
Se os tutoriais C/C++ acima não forem suficientes para você, existem boas listas de tutoriais moderados pela comunidade para aprender C e C++.
Posso aprender C e C++ lendo livros?
Os livros são uma ótima maneira de aprender em profundidade sobre uma linguagem de programação. Com muitas explicações sobre como funcionam as funcionalidades complexas de uma linguagem de programação, o conhecimento de um bom livro sobre C ou C++ pode lhe dar a vantagem ao usar essas linguagens para seus projetos.
C in a Nutshell: The Definitive Reference (2ª Edição) por Peter Prinz e Tony Crawford
Embora este livro inclua uma pequena introdução à linguagem de programação C, ele é mais adequado como um segundo livro se você quiser aprender a codificar C. Este livro fornece dicas, técnicas, exemplos e conselhos práticos que permitirão que desenvolvedores avançados maximizem seus capacidades.
O livro está dividido em três partes.
A primeira descreve a linguagem C no sentido estrito do termo; a segunda descreve a biblioteca padrão e a terceira descreve o processo de compilação e teste de programas com as ferramentas da popular coleção de software GNU.
C in a Nutshell é o companheiro perfeito para The C Programming Language de Brian W. Kernighan & Dennis Ritchie (também conhecido como K&R) e destinado a ser o livro de referência mais procurado em sua mesa.
A linguagem de programação C por Brian W. Kernighan e Dennis Ritchie
Esta é a segunda edição do texto original de Kernighan & Ritchie.
É comumente referido como o Novo Testamento, pois inclui as modificações incorporadas pelo padrão ANSI, mantendo a natureza da primeira edição.
O livro pressupõe que o leitor tenha algum conhecimento básico de programação. Portanto, se você está apenas começando a programar e C é a primeira linguagem, este pode não ser o livro ideal para você. No entanto, você pode achar que essas notas condensadas valem a pena.
Esta é uma das melhores maneiras de obter uma introdução à programação C, e um must-have, especialmente se você está começando sua própria coleção de livros de programação.
A Linguagem de Programação C++ (4ª Edição) por Bjarne Stroustrup
Bjarne Stroustrup é o designer de C++ e escreveu muitos livros excelentes sobre o assunto.
Este livro está dividido em três partes.
A primeira parte fornece um tutorial de introdução à programação C++.
A segunda parte apresenta uma discussão de problemas de design e desenvolvimento de software decorrentes do uso de C++, e a terceira parte é um manual de referência completo.
Com a popularidade de C++, vários distribuidores independentes de C++ se apresentaram, mas o livro discute 'C++ puro;' ou seja, nenhuma extensão dependente de implementação é usada.
Uma das melhores maneiras de aprender uma linguagem de programação é escrevendo pequenos programas relevantes para o item que você estuda. Há exercícios no final de cada capítulo para aplicar seu conhecimento recém-adquirido.
C++ eficaz: 55 maneiras específicas de melhorar seus programas e designs por Scott Meyers
Construir grandes softwares com C++ requer design e disciplina. Se você leva a sério o C++, este livro é uma leitura obrigatória.
É um guia especializado para o design de classes, funções, modelos e hierarquias de herança eficazes. O livro também discute como C++ é diferente de outras linguagens e como fazer as coisas “do jeito C++”.
C++ Primer (5ª Edição) por Stanley B. Lippman
O C++ Primer é um ótimo livro e tornará o aprendizado de C++ divertido. É realmente um dos melhores livros de C++, mas pressupõe muita familiaridade com conceitos de programação e proficiência em C.
A última edição deste livro é excelente para programadores que desejam aproveitar ao máximo os recursos novos e avançados.
Perguntas frequentes sobre C++ (2ª edição) por Marshall P. Cline
Este é um livro fenomenal que contém respostas para cerca de 500 perguntas sobre programação, design, análise e teste. Não é para iniciantes, mas para programadores que descobriram a sintaxe da linguagem e desejam implementá-los.
Se você tiver dúvidas como “O que é uma invariante de classe?”, “Como devo usar exceções?”, “O que acontece quando um destruidor é executado?”, então este é o livro para você.
C++ moderno eficaz: 42 maneiras específicas de melhorar o uso de C++11 e C++14 por Scott Meyers
Se você já tem experiência com C++, mas deseja testar os padrões mais recentes, leia este livro. Você ficará surpreso com o quanto o C++ evoluiu por meio desses novos padrões. O livro discute como fazer o uso mais eficaz dos recursos mais recentes em C++. (Mesmo que o padrão C++ esteja agora até C++17, C++14 ainda é de ponta em muitos contextos de projeto.)
STL eficaz: 50 maneiras específicas de melhorar o uso da biblioteca de modelos padrão por Scott Meyers
Um dos aspectos mais surpreendentes do C++ é sua biblioteca de modelos padrão (STL). É um dos recursos mais poderosos, mas pode ser bastante complexo. Este livro fornece 50 dicas incríveis e mais de 100 algoritmos STL que exploram diferentes áreas do STL, tornando-o mais acessível para desenvolvedores que estão começando com C++.
