¿Cuáles son los mejores sitios web para aprender C ++?

1) Consigue tus conceptos básicos bien. Aprenda los conceptos básicos del lenguaje (para, while, switch, arrays, strings, struct, etc.), conceptos de STL y OOP (ploymorphism, herencia, composición, etc.). Comprenda cómo y por qué se utilizan o emplean para resolver un problema particular de la vida real, por ejemplo, ¿Dónde preferirías la composición sobre la herencia? Hay toneladas de recursos disponibles en internet para esto. Aprender C ++ es mi favorito y tiene todos los temas necesarios explicados al punto. Una vez que haya dominado el contenido del sitio, podría referirse a un libro más exhaustivo a medida que escribe programas no triviales.
2) Desarrollar un proyecto de punta a punta . Reinvente la rueda y puede implementar un rastreador web, un analizador XML, un sistema de control de origen o lo que le interese. Piense cómo puede usar su conocimiento de C ++ para crear un producto. Refactoriza tu código y escribe unidad y pruebas de integración. Esto le ayudará a consolidar y aumentar su conocimiento de C ++.
3) Contribuir a un proyecto de código abierto. Intente enviar parches a un proyecto de código abierto escrito en C +. El tamaño de estos proyectos es mucho más grande de lo que desarrollas en la universidad y te ayuda a desarrollar habilidades que no puedes adquirir de (1) y (2). Te sorprenderá ver de qué maneras diferentes se usa C ++ para resolver problemas del mundo real.

[A2A]
En mi opinión, si tiene la actitud de que necesita aprender a programar, una de las mejores maneras es practicar la resolución de problemas de la competencia de programación. Una vez que haya terminado con las construcciones básicas, cambie a la solución (por ejemplo) Codeforces archive a partir de los problemas más fáciles hacia los más difíciles. Compruebe cppreference.com si se queda atascado con alguna estructura de datos.

Este tipo de actividad le dará tanta práctica de codificación como pueda obtener en un corto período de tiempo. A diferencia de desarrollar algo de principio a fin, tendrá una serie de problemas muy diferentes que le agregarán una experiencia un poco más diversa, por lo que no se perderá una biblioteca porque su proyecto estaba ‘manipulando con gráficos en OpenGL’. El otro lado es que, probablemente, no estaría tan emocionado como podría estar creando una aplicación para iPhone. En algún momento (es de esperar que se necesiten alrededor de 100 problemas) obtendrá un vocabulario de C ++ descendente para que pueda empezar a aprender algoritmos / aplicaciones / cualquier cosa en C ++.

TopCoder (Encendido de C ++ con la biblioteca de plantillas estándar: Parte 1) tiene una excelente introducción al uso de STL. Puede ser muy informal, pero definitivamente es una guía práctica, especialmente si está interesado en la programación de concursos.