¿Es importante saber cómo codificar en C ++ para una carrera en ingeniería de software?

Si.

Es la mejor opción para varias clases de aplicaciones sensibles al rendimiento que son difíciles de hacer bien, se pueden hacer mejor con años (o décadas) de experiencia y, por lo tanto, son inherentemente agradables de construir y financieramente gratificantes.

Aunque Anónimo es técnicamente correcto al decir que, como se envía, C ++ no es recolección de basura, las mejores prácticas aún evitan la gestión manual de recursos porque hace que los problemas sean más probables, especialmente en casos de error / excepcionales con una cobertura de prueba deficiente. La excepción es cuando tiene una muy buena razón, como una flota de 100,000 máquinas que cuestan $ 1000 por año en costos de depreciación y operación, un ahorro del 1% es $ 1M, y la elaboración de perfiles muestra los puntos calientes donde se beneficiaría de no depender de métodos automáticos

Los objetos con almacenamiento automático en la pila se eliminan automáticamente cuando salen del alcance. Los objetos referenciados por punteros inteligentes como std :: shared_ptr se destruyen cuando su recuento de referencia llega a cero. Esto difiere de los idiomas recolectados de basura en que sus recursos se limpian de inmediato, no cuando el recolector de basura lo utiliza, lo que puede permitir que los programas se queden sin recursos de memoria como los descriptores de archivos. El costo también se paga de manera predecible a medida que avanza en lugar de impredecible.

Incluso puede recolectar basura si realmente lo desea: Hans Boehm ha estado escribiendo documentos sobre la recolección de basura desde 1988 o antes y distribuyó públicamente un recolector de basura utilizable para C y C ++ desde que tengo memoria.

Del mismo modo, deben evitarse los punteros sin procesar cuando no satisfacen una necesidad, como acceder al hardware o en la implementación de una biblioteca donde es útil la doble indirección.

Es recomendable conocer el desarrollo de C. Cómo funciona, cómo puedes hacer las cosas que no puedes hacer en Java. C ++ se puede evitar fácilmente, aunque si va y escribe mucho código nativo, es posible que desee cambiar a C ++ en lugar de usar C ya que el soporte de contenedores en C ++ es mucho más productivo, y probablemente querrá eso.

Eche un vistazo a un libro de C ++, pero no se quede demasiado tiempo si realmente no necesita C ++ específicamente. Aprende C, sin embargo. Cuando Dios creó el mundo en 7 días, en el primer día creó el compilador de C, y el resto de las cosas que escribió en C. Por lo tanto, es muy importante saber C.

No, definitivamente no es obligatorio. Pero C ++ o C definitivamente agregarían una dimensión a su repertorio.

Aprender C / C ++ te enseñará a codificar desde el nivel base. La administración de memoria al escribir su propio código es un buen ejemplo de esto, C / C ++ no recolectará basura por usted. El concepto de punteros y su uso eficiente es algo único que extrañará en otros idiomas que ha mencionado.

Todo lo que necesitas es “estructuras de datos y algoritmos”;

More Interesting

Si quiero ser ingeniero de software trabajando en tecnología genial, ¿debería obtener un título de EE y enseñarme CS, o simplemente obtener un título de CS?

¿Cuántos tipos de lenguajes de programación hay?

¿Cuál es una descripción de trabajo común para un vicepresidente de ingeniería en una startup de software financiada por una empresa?

¿Cuáles son los temas de investigación más importantes en la gestión de proyectos de software o en las pruebas de software?

¿Es posible crear un software completamente inquebrantable?

¿Cómo se desarrolla el software?

¿Cómo se puede reducir y gestionar la complejidad del software?

¿Qué es el desarrollo de software CRM?

¿OAuth tiene demasiada fricción para el usuario?

Quiero hacer una nueva compañía en línea. Soy un programador de sofware; Quiero hacer una empresa y vender software y aplicaciones. ¿Cual es tu consejo?

¿Existe una base de datos existente de elementos de menú en todos los restaurantes de Nueva York?

¿Cuál es la próxima gran necesidad insatisfecha que debe cumplir la industria de la seguridad de la información?

¿Cuál es el mejor software para el análisis de circuitos de placa de pruebas?

¿Cuál es la diferencia entre pruebas automatizadas y pruebas manuales?

¿Cómo escriben código las personas que no hablan inglés cuando la sintaxis está en inglés? Los mensajes de error también están en inglés. ¿Cómo sabrían lo que significan? Algunos errores pueden ser bastante detallados.