La programación, especialmente la programación de juegos, se trata de expresar problemas e ideas en términos de código.
Cuando tiene una comprensión profunda del espacio del problema y un dominio razonable del lenguaje de programación, puede trabajar realmente rápido. Simplemente escriba el código y funciona.
Si eres realmente bueno, el código que escribes no solo es obvio para ti, es un modelo de claridad para cualquiera que lo lea.
- ¿Sería imprudente tomar mi primer rol de desarrollador junior con un equipo que usa Smalltalk?
- ¿Alguien puede guiarme a través de algunos trabajos de nivel de entrada en el sector financiero?
- ¿Cuánto ofrece Samsung HQ (Suwon) para un investigador (PhD + 5+ años de aprendizaje automático, análisis de imágenes de visión por computadora)?
- ¿Qué es una variante en SAP?
- ¿Cuánto conocimiento de programación debe tener un analista de inversiones o consultor de gestión?
Pero la vida no suele ser así.
Cuando tienes una comprensión parcial o débil del espacio del problema, tienes que hackear para descubrir cómo funciona el problema y tratar de descubrir cómo expresarlo en términos de código. Cuando esto sucede, el progreso es aproximadamente cien veces más lento. Te tambaleas por ahí. Vuelves atrás. Es posible que las cosas funcionen, pero aún así no lo entiendo completamente.
Te conviertes en un buen programador al ampliar el vocabulario de los problemas que entiendes. Esto generalmente ocurre exactamente de la misma manera. Terminas encontrando cosas que has escrito antes. Y esta vez, dices “He visto esto antes, sé cómo hacerlo”, y haces un mejor trabajo.
¿Y qué si todo es nuevo? ¿Qué pasa si tienes un vocabulario realmente limitado?
Hay algunos trucos.
Estudie las soluciones de otras personas para los problemas conocidos y apréndalos. Aprende sobre el circuito básico del juego. Aprende sobre atravesar árboles. Aprenda sobre el sistema componente / entidad. Aprende sobre vectores y matemática matricial. Aprende sobre la IA simple. Aprenda sobre el algoritmo A *. Hay libros llenos de estas cosas.
Comience a analizar el problema con papel en lugar de con código. Si no tiene un modelo mental del problema, no puede escribir un buen código. Si no puede describir el problema en palabras, no podrá describirlo en C.
Reduce los problemas a partes más simples. OO es bueno para esto.
Escriba el código que es tan obvio que parece tonto. Elija nombres largos y expresivos para funciones y datos que describan exactamente lo que contienen y lo que hacen. Llamar a algo “t” puede ahorrar un segundo de tipeo, pero podría costarle una hora de depuración.
Cuando tengas algo funcionando, no pares. Refactorice su código hasta que sea lo más simple posible. Optimizar para mayor claridad. Optimizar para facilitar la lectura. Optimizar para simplificar.
Nunca se preocupe por las optimizaciones de rendimiento hasta el final. Mida el rendimiento real y optimice en función de lo que dicen esas mediciones.