He estado programando durante 3-4 años y siento que ya no puedo ser llamado principiante, pero leí algunas preguntas en este sitio y creo que están hablando de WTF. Siento lo mismo cuando tomo libros de programación hoy en día.
He leído varios libros de programación para principiantes, algunos en C / C ++ y otros en juegos. He escrito algunas cosas más complejas, como AI muy básica, interfaz serial y TCP / IP.
Planeo convertirme en programador de juegos, pero recientemente me he interesado un poco en los sistemas integrados después de tener la oportunidad de trabajar en ellos (la interfaz en serie).
Me ha resultado muy difícil encontrar materiales para continuar mi aprendizaje después de completar la introducción y los libros para principiantes, ya que no hay libros intermedios de C ++ que pueda encontrar.
¿Qué consejo darías para crecer y mejorar mis conocimientos y habilidades? Se agradecerán mucho los recursos específicos.
Respuestas:
Si está hablando de C / C ++, entonces definitivamente podría usar alguna experiencia adicional. La primera pista que te daré es que C y C ++ son lenguajes completamente diferentes . El mejor recurso para aprender C ++ es StackOverflow: hay muchas personas que tienen grandes cantidades de experiencia y conocimiento.
Lo siguiente que debe hacer es comenzar un proyecto importante, como intentar escribir un motor de gráficos 3D en una API de bajo nivel como DirectX, y cuando su diseño falla miserablemente como lo hacen todos los primeros proyectos, entonces aprenderá algo sobre cómo no programar.
Puede consultar este enlace en StackOverflow para obtener una gran lista de buenos libros para aprender C ++.
fuente
En primer lugar, aumente su formación teórica básica en lo que aún no sabe. Estudie la teoría y escriba algunos ejemplos breves.
El ejemplo de fondo teórico básico incluye:
Luego, considere aprender un lenguaje adicional (por ejemplo, Java o C #). - Estudiar idiomas adicionales ayuda mejor bajo los pros y los contras de cualquier idioma que esté usando y lo ayuda a aprender las mejores prácticas que quizás no conozca.
Luego elija un nuevo dominio (programación web, gráficos por computadora, procesamiento de imágenes, visión por computadora, acceso a datos, ...). Estudie la teoría y escriba algunos ejemplos breves.
A continuación, cree un ejemplo grande, que encapsule una aplicación de varias capas, manejando el acceso a datos, la interfaz de usuario y un dominio específico que haya elegido. Ponga énfasis en la arquitectura de la aplicación (asegúrese de que sus partes estén tan acopladas como sea posible).
Con suerte, aprenderá cómo aprender nuevos enfoques y tecnologías e integrarlos con una buena arquitectura.
Específicamente para la programación de juegos, recomiendo elegir los siguientes dominios / tecnologías:
Editar:
Cómo aprender:
fuente
Usar C ++ (en combinación con C) suponga que tendrá mucho más para aprender a entender WTF de lo que están hablando. C ++ es varios lenguajes, varias capas de abstracciones que viven en el mismo lugar y lleva mucho tiempo explorarlo todo de una vez, luego entender lo que acabas de ver.
He estado en su caso y todavía estoy aprendiendo sobre esos idiomas. También aprendo mucho trabajando en sistemas embebidos.
Aquí está mi consejo:
No asumas que ya sabes mucho sobre programación. La mayoría de los desarrolladores maduran en la programación solo después de más de 10 años de práctica en el mundo real, con diferentes contextos y tipos de proyectos, plataformas, etc.
Estás empezando tu viaje.
fuente
En función de sus intereses en la programación y los juegos integrados, también recomendaría lo siguiente: puede leer detenidamente las listas de libros de las publicaciones anteriores para encontrar un buen material fuente sobre todos estos temas. Un libro que encontré esencial fue The C ++ Standard Library: A Tutorial and Reference
Si no te sientes cómodo con los conceptos básicos de OOP, aprende esos primero. Comprender los conceptos básicos de herencia y encapsulación. Sepa cómo se comportan las palabras clave virtuales, públicas / protegidas y privadas y estáticas.
Siéntase cómodo usando punteros y referencias (y generalmente prefiere referencias). Aprenda y use la construcción smart_ptr <> para lograr la administración de memoria "automágica".
Aprenda a usar plantillas C ++, inicialmente solo como tipos de datos de contenedor. Descubrirá continuamente técnicas nuevas y más potentes que las plantillas de C ++ pueden realizar mediante metaprogramación.
Aprenda el STL: use cadenas, iostream, excepciones y las clases de contenedor, y prefiéralas sobre los tipos de datos char *, FILE * y char [] de nivel inferior siempre que sea práctico.
Comience a usar partes de la biblioteca Boost : le recomendaría que primero conozca su biblioteca de hilos y asio, dados sus intereses. Esta es una base de fuente C ++ multiplataforma de código abierto muy potente que le permitirá escribir código de alta calidad que también es portátil. (Muchas adiciones al estándar central de C ++ se han originado en las contribuciones de Boost)
¡Que te diviertas! En serio: elige algunos proyectos favoritos para codificar. Tal vez juegue con las placas Arduino si le gustan los proyectos de programación integrados.
Obtenga algo de experiencia: si solo ha usado Windows / Visual Studio C ++, intente escribir un código para Linux / g ++ u OS X / XCode (puede codificar C ++ en la Mac, o realmente puede expandir sus horizontes e ir para Objective-C, ¡ver cómo otra rama de lenguajes OOP aborda las cosas!)
fuente