No hay nada especial en C y C++, que no sea:
- C es un lenguaje muy poco ambicioso. Su objetivo es/fue más o menos crear un lenguaje ensamblador portátil. Algo más avanzado que eso, no tiene lugar en el lenguaje. Como tal, en lo que respecta al idioma hay nada para aprender de C. No es de ninguna manera un lenguaje difícil, pero requiere mucho trabajo para lograr incluso las cosas más simples. Y es, por supuesto, muy propenso a errores e inseguro en comparación con los lenguajes de nivel superior.
- C++ es un lenguaje notablemente complicado. Ha tenido muchas influencias diferentes a lo largo de los años y ha robado ideas de una amplia gama de idiomas y paradigmas de programación. Y luego, en la última década, más o menos, la comunidad de C++ ha llegado a un punto en que ha inventado su propio paradigma (programación genérica). Como tal, C++ ha presentado algunas soluciones bastante inteligentes para muchos problemas comunes (en todos los idiomas). Por mucho que a la gente le guste despreciar C++, con frecuencia lo extraño cuando trabajo en C#. Hay una serie de técnicas y abstracciones de alto nivel que son más simples, más limpias y más elegantes en C++. Entonces, desde una perspectiva de lenguaje puro, creo que vale la pena aprender C++. (Y deseo diseñadores Javas o C# 's se habían molestado en hacer eso, en lugar de basar sus lenguas en lo que puede ser descrito con más precisión como 'C con clases'.
Pero creo que lo que estás recibiendo es que aprendizaje de idiomas le dará una mejor comprensión de "lo que está pasando bajo el capó".
puedo ver el punto en eso. C/C++ le da consejos que pueden ser casi asignada directamente a las direcciones de memoria subyacentes Aprender estos idiomas ciertamente te da una especie de intuición sobre lo que sucede debajo (pero como siempre con la intuición, no siempre es correcto. Uno de los errores más comunes en C++ es suponer que "pointe"). rs son direcciones de memoria ". Ellos no están. En muchos sentidos, se comportan de manera similar, pero los punteros obedecen a muchas restricciones adicionales que pueden existir o no en el hardware real).
¿Por qué no ir directamente a la fuente? Aprenda ensamblaje, aprenda sobre la CPU en sí, aprenda sobre compiladores.
Todo lo anterior vale la pena aprenderlo, y lo convertirá en un mejor programador. Pero aprende C++ por el bien del idioma (no es hermoso, pero hay lecciones que aprender de él), y aprende sobre todas las mecánicas subyacentes (compiladores, el hardware que estás ejecutando, la CPU) estudiando directamente .
Pero vaya donde vaya, definitivamente diversifíquese. Debes aprender los idiomas en los que trabajas, obviamente, pero no te detengas allí. Aprende algo más, casi sin importar de qué se trate. Más idiomas, o una mejor comprensión de la infraestructura subyacente, todo te hará un mejor desarrollador.
Por último, no piense en C/C++ como el "cinturón negro". C++, en particular, puede ser uno de los idiomas más difíciles de dominar, pero eso no significa que los que lo conocen sean los mejores programadores. Lejos de ahi.
¿no debería ser wiki de la comunidad? – lothar
"Para mí saber C/C++ es como el cinturón negro de la programación": D – developerbmw