Mis clases de programación en la escuela eran C ++, pero terminé trabajando en C # durante los últimos años. Si hubiera un puesto que requiriera una experiencia de 1 o 2 años en C ++, ¿merecería la pena considerar mi experiencia en C #? ¿Qué tan efectivo podría ser en tal posición? Entonces, ¿debo comenzar como un programador de C ++ de nivel básico para obtener la experiencia necesaria?
c#
c++
experience
MetaGuru
fuente
fuente
Respuestas:
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 simple hecho es que muchos modismos de C # se consideran código muy malo en C ++ (y viceversa).
Si realmente conoce las diferencias y cómo se ven los modismos de C ++, entonces no veo ninguna razón para que no esté bien.
fuente
Estuve en el mismo barco hace unos 2 años. Su experiencia en C # probablemente no valdría tanto para un trabajo en C ++ como lo es para ++. Dicho esto, si sabes cómo funciona realmente C # (muy pocos programadores de C # realmente lo hacen), y aprendiste bien tu C ++, entonces el problema no será C ++. El problema será la forma en que se haya acostumbrado a ciertos patrones de diseño que tendrán un nivel demasiado alto para c ++.
Por ejemplo, pasar del buen modelo de acceso a datos ADO.NET a usar cppcon para acceso mysql, System.Collections.Generic a usar stl, herencia múltiple, recolección de basura para limpiar su memoria en destructores, etc. ser transiciones difíciles C ++ no es el problema, aprender las bibliotecas, los patrones de diseño y cómo usarlos es el desafío. 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 comunes de c ++, 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.
fuente
No puedo hablar por cada empleador, pero personalmente considero que la programación es específica de la habilidad y el lenguaje como algo agradable. Todavía es bastante posible que lo contraten en otro trabajo de programación que no sea su habilidad principal.
Dicho esto, es muy poco probable que contrate a alguien que no tenga absolutamente ninguna experiencia en el idioma para el que lo estoy contratando. Pase algunos 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.
fuente
Estás exactamente en la misma situación en la que estuve hace 4 años.
Hice algo de C ++ durante mis estudios, pero lo odiaba. Hice un montón de desarrollo 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, actualicé mis recuerdos de C ++ antes de la entrevista y cuando llegó el momento de las pruebas me las arreglé para salir con algunas cosas que no estaba tan seguro de estar haciendo bien.
Pero la mayor parte de la entrevista fue sobre resolución de problemas y soluciones creativas y C ++ terminó siendo solo un factor menor.
Por lo tanto, las posibilidades realmente dependen del empleador y de los puestos que tienen.
Si está pasando por una agencia de reclutamiento, "probablemente" se le dirá que su perfil no coincide. Pero con un empleador real, sus posibilidades son mucho mejores, ya que realmente saben lo que necesitan.
fuente
Depende. Si puede responder algunas preguntas básicas de la entrevista sobre punteros y demás, entonces debería estar bien.
También es beneficioso si puede enumerar las diferencias entre las plantillas de C ++ y los genéricos .NET.
Aparte de eso, es bastante fácil ponerse al día con el resto a medida que avanza.
fuente
Si. Puede que no sea tan relevante como la experiencia en C ++, pero es bueno.
Los buenos empleadores estarán interesados en cómo piensas , más que en cuántos años de un idioma específico tienes.
Un puesto de nivel básico en C ++ 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 en C # y C ++.
fuente
Realmente depende de la naturaleza del negocio al que se postula. Si están buscando a alguien que tenga buenas habilidades de programación y arquitectura basadas en OO, es probable que C # sea tan bueno como lo siguiente.
Si se enorgullecen de la velocidad / capacidad de respuesta de su software, entonces necesitará conocer sus algoritmos, ya que esto es más importante que las micro optimizaciones: tablas de hash versus búsqueda lineal, etc. C # sigue siendo relevante aquí, pero necesitaría para demostrar la 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 no recolectado, 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 comprender el perfil de asignación de memoria. Los programadores de juegos a menudo preasignan grandes conjuntos de objetos y los reciclan para conocer los requisitos de memoria por adelantado y reducir las incógnitas por cuadro. 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 cálculo de datos entre idiomas (como P / Invoke), pero también comprensión de nivel de byte de cómo se pueden usar estas estructuras de datos, lo cual no es una práctica común en C # en mi experiencia.
fuente