¿La experiencia con C # se traduce bien en C ++? [cerrado]

13

Mis clases de programación en la escuela eran C ++, pero terminé trabajando en C # durante los últimos años. Si hubiera una posición que requiera, por ejemplo, 1 o 2 años de experiencia en C ++, ¿sería digna de consideración mi experiencia en C #? ¿Qué tan efectivo podría estar en tal posición? Entonces, ¿debo comenzar como programador de C ++ de nivel de entrada para obtener la experiencia necesaria?

    
pregunta BigOmega 04.10.2011 - 00:42

7 respuestas

13

El problema aquí es que C ++ y C # son, fundamentalmente, lenguajes extremadamente diferentes con diferentes enfoques para muchos problemas. Es fácil agruparlos como "un lenguaje OO", pero el hecho simple es que muchos modismos en C # se consideran un código muy malo en C ++ (y viceversa).

Si realmente conoces las diferencias y cómo se ven los modismos en C ++, no veo razón para que no esté bien.

    
respondido por el DeadMG 04.10.2011 - 01:10
5

Estuve en el mismo barco hace unos 2 años. Su experiencia de c # probablemente no valga tanto para un trabajo de c ++ como c ++ es para un trabajo de c #. Dicho esto, si sabes cómo funciona realmente c # (muy pocos programadores de c # realmente lo hacen), y aprendiste bien tu c ++, entonces el c ++ no será el problema. Lo que será el problema es la forma en que te has acostumbrado a ciertos patrones de diseño que serán demasiado altos para c ++.

Por ejemplo, pasando del buen modelo de acceso a datos ADO.NET al uso de cppcon para el acceso a mysql, System.Collections.Generic al uso de stl, herencia múltiple, recolección de basura para limpiar su memoria en destructores, etc. Todos tienden a ser transiciones difíciles. C ++ no es el problema, el desafío es aprender las libretas, los patrones de diseño y cómo usarlos. La mayoría de los reclutadores no se dan cuenta de esto. Si puede hacer un diseño básico y puede usar las características reales de c ++ que se usan comúnmente, entonces debería estar bien en la entrevista.

Sin embargo, listo para el trabajo es una historia diferente. Sin embargo, es un desafío divertido, espero que todo salga bien.

    
respondido por el Jonathan Henson 04.10.2011 - 03:41
3

No puedo hablar por todos los empleadores, pero personalmente considero que la programación es una habilidad y un lenguaje específico que es bueno tener. Todavía es bastante posible que te contraten en otro trabajo de programación que no sea tu habilidad principal.

Habiendo dicho que es muy poco probable que contratara a alguien que no tuviera experiencia en el idioma para el que los contraté. Pase unos fines de semana aprendiendo y tenga un par de proyectos favoritos para reforzar su CV. Incluso los más pequeños demuestran que eres capaz de aprender y ser entusiasta.

    
respondido por el Tom Squires 04.10.2011 - 00:54
3

Estás exactamente en la misma situación en la que estaba hace 4 años.

Hice algo de C ++ durante mis estudios, pero lo odiaba. Hice un montón de desarrolladores web cuando pude en mi tiempo libre y conseguí un trabajo en ese campo.

Cuando me mudé, solicité un trabajo en C ++ que tenía 2 años de experiencia en C ++ como requisito. Bueno, refresqué mis recuerdos de C ++ antes de la entrevista y, cuando llegó el momento de las pruebas, logré salirme con algunas cosas que no estaba tan seguro de estar haciendo bien.

Pero la mayor parte de la entrevista fue sobre solución de problemas y soluciones creativas y C ++ terminó siendo solo un factor menor.

Así que las posibilidades realmente dependen del empleador y de las posiciones que tienen.

Si está pasando por una agencia de contratación, "probablemente" se le informará que su perfil no coincide. Pero con un empleador real, sus posibilidades son mucho mejores, ya que realmente saben lo que necesitan.

    
respondido por el Coyote 04.10.2011 - 01:05
1

Depende. Si puede responder algunas preguntas de la entrevista básica sobre punteros y demás, entonces debería estar bien.

También es beneficioso si puedes enumerar las diferencias entre las plantillas de C ++ y los genéricos de .NET.

Aparte de eso, es bastante fácil ponerse al día con el resto a medida que avanzas.

    
respondido por el Yam Marcovic 04.10.2011 - 00:49
1

Sí. Puede que no sea tan relevante como la experiencia de C ++, pero es bueno.

Los buenos empleadores estarán interesados en cómo piensas , más que cuántos años de un idioma específico tienes.

Una posición de C ++ de nivel de entrada está bien: puedes aprender rápidamente y hacer un gran trabajo. Una buena compañía te dará muchas oportunidades para crecer. Si no, puedes ir a otro lugar y tener experiencia con C # y C ++.

    
respondido por el B Seven 04.10.2011 - 05:21
0

Realmente depende de la naturaleza del negocio al que se postula. Si buscan a alguien que tenga buenos conocimientos de programación y arquitectura basados en OO, C # es probablemente tan bueno como lo próximo.

Si se enorgullecen de la velocidad / capacidad de respuesta de su software, entonces necesitarán conocer sus algoritmos, ya que esto es más importante que las micro optimizaciones: tablas de hash versus búsqueda lineal, etc. C # todavía es relevante aquí, pero Necesito demostrar comprensión de las características de rendimiento, por ejemplo, no todos conocen ngen.exe.

Si están en un entorno integrado / móvil y / o sin recolección de basura, realmente necesita saber cómo administrar la memoria de manera efectiva. Los punteros inteligentes, como señaló @DeadMG, son clave aquí, pero también lo es la comprensión del perfil de asignación de memoria. Los programadores de juegos a menudo asignan previamente una gran cantidad de objetos y los reciclan para conocer los requisitos de memoria por adelantado y reducir las incógnitas por fotograma. Esta es también la técnica utilizada en el desplazamiento de TableViews en iOS.

Si hay algún trabajo de integración, es probable que necesite experiencia de nivel C en términos de ordenación de datos entre idiomas (como P / Invoke), pero también una comprensión a nivel de byte de cómo pueden usarse estas estructuras de datos, lo cual no es práctica común en C # en mi experiencia.

    
respondido por el JBRWilkinson 04.10.2011 - 11:25

Lea otras preguntas en las etiquetas