Cómo aprender los lenguajes C y C++: la lista definitiva

Publicado: 2022-03-11

El lenguaje de programación C fue originalmente desarrollado e implementado en el sistema operativo UNIX por Dennis Ritchie. El lenguaje C, que es bastante simple, no está ligado a ningún hardware o sistema en particular. Esto hace que sea más fácil para un usuario escribir programas que se ejecutarán sin muchos (o ningún) cambio en prácticamente todas las máquinas.

El lenguaje C a menudo se denomina lenguaje informático de nivel medio, ya que combina los elementos de los lenguajes de alto nivel con el funcionalismo del lenguaje ensamblador. La programación en C permite la manipulación de bits, bytes y direcciones, lo que brinda al programador más control sobre cómo se comportará exactamente el programa y un acceso más directo a la mecánica del hardware subyacente.

C fue creado, influenciado y probado en el campo por programadores en activo. El resultado final es que C le da al programador lo que quiere.

C++ es una versión mejorada del lenguaje C. C++ incluye todo lo que es parte de C y agrega compatibilidad con la programación orientada a objetos (POO). Además, C++ también contiene muchas mejoras y funciones que lo convierten en un "mejor C", independiente de la programación orientada a objetos.

El lenguaje C++ es en realidad extensible ya que podemos definir nuevos tipos de tal manera que actúen como los tipos predefinidos que son parte del lenguaje estándar.

Si solo usa C ++ como un mejor C, no usará todo su poder. Como cualquier herramienta de calidad, C++ debe usarse de la forma en que fue diseñado para explotar su riqueza. Algunas de las nuevas funciones incluyen encapsulación, llamadas a funciones en línea, operadores de sobrecarga, herencia y polimorfismo.

¿Por qué querría aprender C o C++?

C y C++ siguen siendo dos de los lenguajes de programación más populares que existen. La sintaxis y los conceptos de C, especialmente, han resistido la prueba del tiempo, y puede ver que se están trasladando a otros lenguajes de programación populares, incluso a los modernos, como Go.

Incluso si va a crear aplicaciones web o componentes front-end web sofisticados por el resto de su vida, aprender C lo ayudará a comprender cómo interactúan realmente el software y el hardware.

Además, C y C++ están en todas partes.

C, en particular, impulsa mucha más tecnología de la que le damos crédito.

Por otro lado, parte de su software favorito, posiblemente incluso el navegador web en el que está leyendo este artículo, está construido en C++. Saber C es una buena base, pero en muchos casos, el desarrollo de software requerirá que aprendas C++ y sus paradigmas.

Si desea desarrollar software que necesite aprovechar al máximo el rendimiento y las capacidades de una computadora (por ejemplo, juegos de escritorio de alta gama, herramientas de productividad sofisticadas o programas complejos de computación intensiva), o si solo desea un lenguaje de programación que le permita interactuar con el hardware de una computadora directamente, C y C ++ son los lenguajes para usted.

Entonces, ¿por qué no querrías aprender C++ o C? No es como hace 25 años, cuando podría haber tenido que invertir en un compilador patentado para comenzar; hoy ciertamente puede aprender C++ gratis.

¿Cómo puedo empezar con C y C++?

Para comenzar con C o C ++, lo que querrá en la mayoría de los casos, como mínimo, es un compilador, aunque hoy en día también puede aprender C en línea experimentando un poco con proyectos C "hola mundo" en el navegador.

Los compiladores son programas que se pueden ejecutar a través de interfaces de línea de comandos (CLI). Leen el programa completo y lo convierten en código objeto, que es una traducción del código fuente del programa a una forma que la computadora puede ejecutar directamente.

Para facilitarle la vida, puede optar por IDE completos que pueden hacer que su experiencia con C o C++ sea aún más placentera.

ventanas

Hay muchos buenos compiladores disponibles en Windows.

En Windows, Visual Studio proporciona un compilador de C++.

El compilador también puede construir programas en C.

Visual Studio viene con su propio IDE potente y rico en funciones, lo que lo convierte en una excelente opción para cualquiera que esté comenzando con C o C++ o para alguien que se dirija principalmente a la plataforma Windows.

Si está buscando algo más compatible con los estándares, GCC (MinGW) podría ser lo que necesita. Codeblocks IDE funciona excepcionalmente bien en esta configuración.

Clang también es ahora una opción formidable en Windows, incluso se usa para construir Google Chrome hoy en día.

Existen otros IDE multiplataforma, como Eclipse CDT, Jetbrains CLion y Netbeans, que proporcionan entornos de desarrollo C y C++ completamente funcionales. Últimamente, sin embargo, estos están siendo eclipsados ​​(disculpen la ironía) por Visual Studio Code, que también está disponible para entornos Linux y Mac.

linux

Si está en Linux, probablemente ya tenga GCC instalado como parte de su distribución. De lo contrario, instalarlo debería ser solo cuestión de un solo comando:

 # Ubuntu sudo apt-get install build-essential # Fedora sudo yum install gcc gcc-c++ # Arch Linux sudo pacman -S base-devel

Codeblocks IDE y Eclipse CDT funcionan igual de bien en Linux que en Windows.

Mac/Mac OS X/OS X/macOS

En una Mac, puede usar Clang o GCC; ambos están disponibles de forma gratuita. Si bien GCC admite una gama más amplia de estándares C y C++, Clang funcionará bien en la mayoría de los casos.

Clang ya debería estar instalado.

Puedes instalar GCC usando Homebrew:

 brew install gcc

Puede usar XCode, un excelente IDE que forma parte de las herramientas de desarrollo de Mac OS.

¿Cuáles son algunos buenos tutoriales para aprender C y C++?

Los tutoriales son una excelente manera de comenzar con un nuevo lenguaje de programación. Incluso si no está muy familiarizado con la programación en sí. Los siguientes tutoriales le enseñarán los conceptos más importantes.

Programación en C en LearnVern

Este completo curso en línea de programación C es ideal para principiantes, que no necesariamente tienen experiencia previa en programación. Comienza desde los conceptos básicos de C y la programación en general y cubre temas avanzados, como la asignación dinámica de memoria, la gestión de archivos, etc.

C++ para programadores de C en Coursera

Si ya está familiarizado con C y desea sumergirse en C++, este curso de dos partes es perfecto para usted. Este curso realmente destaca las diferencias entre estos dos lenguajes y le muestra cómo aprovechar al máximo C++.

Fundamentos de C++ en Pluralsight

Por otro lado, si desea comenzar desde los conceptos básicos de C ++ y aprenderlo desde cero, PluralSight tiene el tutorial perfecto para usted. Está dirigido a aquellos que quieren ser más eficientes con C++.

Programación en C para principiantes en Udemy

Este curso en línea de programación C es apto para principiantes y perfecto para cualquier persona que quiera comenzar con C en cualquiera de las tres plataformas populares (Windows, Linux y Mac OS X).

Tutorial de C++ para principiantes completos en Udemy

Este curso está dirigido a cualquier persona que tenga conocimientos básicos de computación pero que ahora quiera ingresar al mundo de la programación. Podría decirse que es la mejor manera de aprender C ++ como su primer idioma. Además, si encuentra interesante el desarrollo de juegos, este es el curso con el que desea comenzar.

Curso de formación en programación avanzada de C++ en Udemy

Una vez que esté satisfecho con sus habilidades básicas de programación en C++ y esté listo para pasar a la realidad, querrá un tutorial avanzado, como este. El tutorial cubre polimorfismo, plantillas, manejo de excepciones, flujos, contenedores, algoritmos, pilas y mucho más.

comp.lang.c Preguntas frecuentes

A veces, todo lo que necesita es una rica lista de preguntas y respuestas que puede buscar rápidamente para resolver sus problemas. Este no es un tutorial per se, sino más bien un conjunto estructurado de preguntas frecuentes.

Anotaciones de C++ (Versión 10.9.2) por Frank Brokken

Este tutorial basado en la web está destinado a programadores de C avanzados (o programadores de Perl o Java, cualquier cosa que se considere que tiene una "gramática similar a C") que desean hacer la transición a C++. Continúa donde termina el lenguaje de programación C, como en los punteros, la asignación de memoria y los tipos compuestos, lo que la convierte en una muy buena guía de programación en C++.

Guía de estilo de Google C++

A medida que escribe programas más elaborados mientras aprende a programar en C++, puede encontrarse rápidamente con problemas de mantenimiento. Aquí es donde las guías de estilo de los programadores veteranos de C++ resultan útiles. Google mantiene esta guía de estilo.


Si los tutoriales de C/C++ anteriores no son suficientes para usted, existen buenas listas de tutoriales moderados por la comunidad para aprender C y para aprender C++.

¿Puedo aprender C y C++ leyendo libros?

Los libros son una excelente manera de aprender en profundidad sobre un lenguaje de programación. Con una gran cantidad de excelentes explicaciones de cómo funcionan las complejas funcionalidades de un lenguaje de programación, el conocimiento de un buen libro sobre C o C ++ puede brindarle la ventaja superior al usar estos lenguajes para sus proyectos.

C en pocas palabras: la referencia definitiva (2.ª edición) de Peter Prinz y Tony Crawford

Si bien este libro incluye una pequeña introducción al lenguaje de programación C, es más adecuado como segundo libro si desea aprender a codificar C. Este libro brinda sugerencias, técnicas, ejemplos y consejos prácticos que permitirán a los desarrolladores avanzados maximizar sus capacidades.

El libro está dividido en tres partes.

El primero describe el lenguaje C en el sentido estricto del término; el segundo describe la biblioteca estándar y el tercero describe el proceso de compilación y prueba de programas con las herramientas de la popular colección de software GNU.

C in a Nutshell es el compañero perfecto de El lenguaje de programación C de Brian W. Kernighan y Dennis Ritchie (también conocido como K&R) y está destinado a ser el libro de referencia más buscado en su escritorio.

El lenguaje de programación C por Brian W. Kernighan y Dennis Ritchie

Esta es la segunda edición del texto original de Kernighan & Ritchie.

Se le conoce comúnmente como el Nuevo Testamento, ya que incluye las modificaciones incorporadas por el estándar ANSI mientras conserva la naturaleza de la primera edición.

El libro asume que el lector tiene algunos conocimientos básicos de programación. Entonces, si recién está comenzando a programar y C es el primer idioma, este podría no ser el libro ideal para usted. Sin embargo, puede encontrar estas notas condensadas que valen la pena.

Esta es una de las mejores maneras de obtener una introducción a la programación en C y es imprescindible, especialmente si está comenzando su propia colección de libros de programación.

El lenguaje de programación C++ (4.ª edición) de Bjarne Stroustrup

Bjarne Stroustrup es el diseñador de C++ y ha escrito muchos libros excelentes sobre el tema.

Este libro está dividido en tres partes.

La primera parte proporciona una introducción tutorial a la programación en C++.

La segunda parte presenta una discusión de los problemas de diseño y desarrollo de software que surgen en relación con el uso de C++, y la tercera parte es un manual de referencia completo.

Con la popularidad de C++, varios distribuidores independientes de C++ se han presentado, pero el libro trata sobre "C++ puro"; es decir, no se utilizan extensiones dependientes de la implementación.

Una de las mejores formas de aprender un lenguaje de programación es escribir pequeños programas relacionados con el tema que estudias. Hay ejercicios al final de cada capítulo para aplicar los conocimientos recién adquiridos.

C++ efectivo: 55 formas específicas de mejorar sus programas y diseños por Scott Meyers

La creación de software de gran tamaño con C++ requiere diseño y disciplina. Si te tomas en serio C++, este libro es una lectura obligada.

Es una guía de expertos para el diseño de clases, funciones, plantillas y jerarquías de herencia efectivas. El libro también analiza cómo C++ es diferente de otros lenguajes y cómo hacer las cosas "a la manera de C++".

C++ Primer (5.ª edición) por Stanley B. Lippman

The C++ Primer es un gran libro y hará que aprender C++ sea divertido. Realmente es uno de los mejores libros de C ++ que existen, pero supone una gran familiaridad con los conceptos de programación y una competencia en C.

La última edición de este libro es excelente para los programadores que desean aprovechar al máximo las funciones nuevas y avanzadas.

Preguntas frecuentes sobre C++ (2.ª edición) por Marshall P. Cline

Este es un libro fenomenal que contiene respuestas a alrededor de 500 preguntas sobre programación, diseño, análisis y pruebas. No es para principiantes, sino para programadores que han descubierto la sintaxis del lenguaje y quieren implementarlos.

Si tiene preguntas como "¿Qué es una clase invariante?", "¿Cómo debo usar excepciones?", "¿Qué sucede cuando se ejecuta un destructor?", Entonces este es el libro para usted.

C++ moderno eficaz: 42 formas específicas de mejorar el uso de C++11 y C++14 por Scott Meyers

Si ya tiene experiencia con C++, pero desea probar los estándares más recientes, lea este libro. Se sorprenderá de cuánto ha evolucionado C++ a través de estos nuevos estándares. El libro analiza cómo hacer el uso más efectivo de las capacidades más nuevas en C++. (Aunque el estándar C++ ahora llega a C++17, C++14 sigue siendo de vanguardia en muchos contextos de proyectos).

STL eficaz: 50 formas específicas de mejorar el uso de la biblioteca de plantillas estándar por Scott Meyers

Uno de los aspectos más sorprendentes de C++ es su Biblioteca de plantillas estándar (STL). Es una de las características más poderosas, pero puede ser bastante compleja. Este libro proporciona 50 consejos increíbles y más de 100 algoritmos STL que exploran diferentes áreas de STL, lo que lo hace más accesible para los desarrolladores que recién comienzan con C++.

Relacionado: Los 10 errores de C++ más comunes que cometen los desarrolladores