¿Cómo se puede superar el miedo de que C ++ es difícil de aprender?

La mejor manera de vencer el miedo de hacer algo es hacerlo. La mejor manera de aprender C ++ depende de cómo TÚ aprendas mejor. Para mí, los libros se han encontrado con un éxito mixto. Aprendo mejor haciendo.

Si puedes aprender de los libros, te recomendaría primero que encuentres una guía para aprender C ++ como alguien que sabe python. Aquí hay una búsqueda en Google de una frase que muestra varios recursos de aspecto probable para que los programadores de Python aprendan C ++. Si hay otros idiomas que conozca mejor, puede hacer lo mismo para buscarlos.

De lo contrario, buscaría tutoriales en línea o cursos en línea sobre cómo aprender C ++. Las clases magistrales de Stanford CS106b podrían ser útiles. He tenido buena suerte al buscar cosas en cplusplus, tal vez su tutorial en línea de C ++ sea útil. O puedes leer código de proyectos de código abierto en github o sourceforge, y buscar cosas que no entiendas hasta que tengan sentido.

De cualquier manera, un conjunto de libros que he encontrado útiles son los libros Effective C ++ de Scott Meyers. No tendrán las últimas funciones, pero las encontré muy informativas cuando las leí hace más o menos diez años. Eso no es tan malo como parece, ya que C ++ tiene más de 30 años. Al menos deberías echarles un vistazo.

Sí, hay varias formas de hacer la mayoría de las cosas en C ++, y en principio podría aprenderlas todas a partir de referencias (lenguaje de programación C ++ de Bjarne, 4ª ed., Biblioteca de C ++ de Josuttis, y cppreference.com), pero como recién llegado, ganó. Para no ser capaz de determinar las concesiones entre esas diversas formas, y sin una autoridad central (más allá de la C ++ Super-FAQ: C ++ estándar), puede ser difícil encontrar a quién creer.

Creo que la mejor manera de obtener una visión clara de los objetivos y la estructura del idioma es leer un libro de texto escrito por una de las personas que realmente trabajó en el idioma, que, analizando lo que se ha actualizado en el mundo posterior a 2011 , significa solo uno de dos libros: C ++ Primer y Programming Principles and Practice. Confiaría más en el PPP, ya que está escrito por Bjarne mientras trabajaba como profesor, y refleja sus objetivos como diseñador principal del idioma y su experiencia de enseñanza en vivo.

La programación es difícil (y también lo son muchos otros dominios: matemáticas, escultura en madera, literatura, tocar el violonchelo, …). Así que lleva unos diez años aprender a programar. Por lo tanto, sea paciente y perseverante.

Si está aprendiendo a programar, le sugiero que lea SICP (un libro excelente y disponible para aprender a programar).

C ++ 14 es un lenguaje de programación excepcionalmente difícil (por razones heredadas). Así que no recomiendo comenzar a aprender programación con C ++. Pocas personas (incluso muy calificadas) lo saben todo (tal vez 4 o 5 en todo el mundo, y son miembros del grupo de estandarización de C ++). Ciertamente no, pero aún puedo codificar algo en C ++. Por lo tanto, temer aprenderlo es normal (no se moleste en aprender nada relacionado con C ++ anterior a C ++ 11, está obsoleto).

Sugiero leer Programación – Principios y práctica usando C ++ de Stroustrup (el diseñador de C ++) si quieres aprenderlo.

Creo que quizás puedas hacer lo mismo que hacen los programadores de JavaScript: fingir que no existen grandes partes del lenguaje. Simplemente ignora todo lo que está debajo de C ++ 11 y 14.

Por ejemplo, si usa los “dos puntos” en lugar de los iteradores explícitos (o Dios no lo permita, los bucles explícitos), si usa referencias en lugar de indicadores, si usa las nuevas funciones de administración automática de la memoria, si usa auto cuando corresponde, C ++ en realidad no es tan malo Hace poco tuve que escribir el mismo programa en C ++ y Java, y pensé que intentaría escribirlo en C ++ moderno en lugar de lo que sabía: para mi sorpresa, ¡el programa de C ++ terminó más claro y menos detallado que la versión de Java!

Sé que decir que algo terminó mejor que la versión de Java no lo es tanto, pero considere el contexto (Java fue hecho para ser un C ++ más simple y más fácil) y, al menos para mí, parece que ahora han cambiado de lugar.

TL; DR: Limita tu alcance e ignora el “crucero histórico”.

C ++ intenta proporcionar herramientas actualizadas para desarrollar software en el conjunto más amplio de circunstancias. Se vuelve más difícil de aprender a medida que encontramos nuevas herramientas útiles y las agregamos al idioma. Entonces, uno puede tener confianza en que uno no está enfrentando su temor por nada.

Gran parte o la mayor parte del código que escribe podría, al menos con el tiempo, escribirse mejor. Eso es simultáneamente lo peor y lo mejor del desarrollo de software. Gran parte del miedo del que hablas proviene de no ser realista acerca de este hecho.