Soy un desarrollador de software, con experiencia en C # (5 años de experiencia) junto con algunos otros lenguajes.
Mi "trabajo soñado" es trabajar en videojuegos como desarrollador.
La mayoría de los trabajos requieren conocimiento de C ++, que actualmente no tengo (excepto algunos de los conceptos básicos).
He mirado a mi alrededor, y la mayoría de las grandes compañías de juegos requieren algo a lo largo de 3-5 años de experiencia previa con C ++.
Mi pregunta es: ¿cuál sería una buena ruta para llegar a este nivel de experiencia requerido, viniendo de C #?
He pensado en algunas formas posibles de hacerlo:
Obtenga más conocimiento sobre C ++ de los libros. Participe en proyectos de código abierto escritos en C ++. ¿Cuál sería la mejor manera de aprender C ++ y tener experiencia a nivel de trabajo con él, en particular para la industria del juego?
fuente
Respuestas:
Como desarrollador de juegos, mi principal preocupación contratar a un chico C # sería la falta de conocimiento de bajo nivel.
Por lo tanto, considere un proyecto en el que su trabajo implique una optimización de bajo nivel, como reorganizar el diseño de datos de las clases o reescribir el código para aprovechar las instrucciones SIMD. Tome un juego de código abierto C ++, optimícelo y publique el aumento de la velocidad de fotogramas en su currículum.
Si te estuviera entrevistando, me importaría menos el C ++ en tu currículum y más si puedes responder a mis preguntas de C / C ++ / entrevista de bajo nivel. Averiguaré algunas preguntas estándar de la entrevista con las que podría tener problemas (advertencia: no soy un experto en C #):
fuente
Lo que dijo Eric. También agregaría para evitar "nuevo" donde no es necesario. Es muy común en C #, pero se considera una mala práctica en C ++ 11 y también es más lenta que la asignación de la pila y más peligrosa porque tiene que desasignarla manualmente.
También sería cuidadoso con los libros antiguos, que enseñan prácticas antiguas. Personalmente prefiero foros / sitios web confiables, stackoverflow / isocpp.
fuente
new
" no es realmente una recomendación sensata. Usasnew
cuando tienes punteros. Siclass Derived : Base
, entonces aBase var = Derived();
es ilegal, peroBase *var = new Derived();
es legal. Por lo tanto, necesita punteros para que el polimorfismo funcione correctamente, mucho.Base var = Derived()
funcionaría , pero se cortaría y, sin que usted lo supiera, la información se perderíavar
. Para solucionar el problema de corte, puede usar punteros.