Siguiente paso de programación [cerrado]

Espero que esta sea la sección correcta de stackexchange para preguntar.

He estado codificando por poco tiempo, he llegado a iteradores/contenedores/plantillas/clasificación/listas. Supongo que es algo básico. Me preguntaba cuál debería ser mi siguiente paso. He tenido algunas cosas que quería hacer, aunque consumen mucho tiempo, así que prefiero preguntar aquí qué es más ventajoso para un novato:

1) Escribir un juego simple como "romper los ladrillos" para aprender a escribir eventos/audio/gui/etc., y luego entrar en el desarrollo de juegos de rol con SFML (o escribir una aplicación de Android, aunque probablemente C++ no sea preferible)

2) Estudiar un proyecto github de C++

3) Leer un libro completo de C++ y escribir código aleatorio con fragmentos que explican lo que hace cada uno (para memorizar/tener para el futuro)

4) Tome cursos en línea gratuitos y haga las tareas en línea (aunque sin saber si codifiqué correctamente)

Estoy atascado porque escribir programas pequeños no me ayuda a aprender cosas nuevas, solo uso las cosas que ya sé para escribir cualquier programa simple que sea. Además, no estoy seguro de qué proyectos pequeños debo hacer, prefiero tener uno largo

Hay muchas publicaciones que dicen "simplemente sigue codificando", pero usar los mismos conceptos sin aprender nada nuevo no parece tan útil como aprender algo completamente nuevo para mí (aparte de pensar en un código más eficiente).

bueno, ¿cuál es la relación de software rec. en la pregunta?? No estoy marcando a menos que no obtenga una razón, intente preguntar en Stack Overflow
No hay, en mi opinión, ningún sitio SE donde esta pregunta sea bienvenida. Definitivamente no en SO; preguntas similares son rechazadas, retenidas, eliminadas diariamente en los programadores; no es realmente un candidato para el lugar de trabajo (¿ tal vez comp-sci?). Sin embargo, es una pregunta que se hace regularmente en todos esos sitios. No esperaba que durara 5 minutos aquí, pero hice todo lo posible para ayudar. Buena suerte, Joe

Respuestas (2)

Si quiere ser bueno en C ++, tendrá que pasar por el n. ° 3: debe sentirse cómodo con los otros conceptos que aún no conoce. No diría memorize, sino más bien entender/familiarizarse con/saber que hay algo así por ahí a lo que puedes volver y estudiar en profundidad si/cuando realmente lo necesites. Sin saber que existe un concepto no puedes buscarlo.

Si no quieres ser bueno en eso, ¿cuál es el punto de aprenderlo? Encuentre otro idioma y sea bueno en eso, pero tendrá que pasar por el equivalente al n. ° 3 para ese.

Y sí, código, código, código, pero sin usar los mismos conceptos una y otra vez, desafíate a ti mismo para probar otros nuevos (que encontrarás en el n.° 3). Si cree que los fragmentos son demasiado simples/aburridos, intente encontrar y codificar soluciones a otros problemas que pueda don't knowabordar desde el principio, obligándose así a pensar/investigar/estudiar/etc Software Recommendations. un montón de ideas de autoasignación :) O ve por el #1.

Estudiar el código de otras personas (n.º 2) o las preguntas y respuestas relacionadas ( C++ en Stack Overflow, por ejemplo) son excelentes formas de aprender trucos/estrategias/estilo de codificación y mejorar su experiencia en codificación. Con él también puede trabajar activamente para corregir/mejorar/optimizar su propio código. Esto es educación continua, se puede hacer en cualquier momento.

No soy un gran admirador del n. ° 4 para aprender el primer lenguaje de programación principalmente porque la mayoría de los que vi se enfocan en detalles, no en los conceptos básicos de programación que son esenciales en mi humilde opinión, independientemente del lenguaje. Depende de cada persona, eso sí, YMMV. Una vez que dominas bien un idioma y quieres aprender otro, pueden ser una gran herramienta de aprendizaje. También son buenos para referencias rápidas y conceptos refrescantes que no has usado en mucho tiempo.

Me gustaría agregar a lo anterior. Aprenda la diferencia entre un código rápido altamente optimizado y un código fácil de mantener lo suficientemente rápido. También puede buscar en línea un proyecto de código abierto que le interese y esté buscando mantenedores adicionales.
Te voté a favor por una buena respuesta, aunque personalmente también me gusta la #4. Recomiendo tanto codecademy.com como Coursera.org .
@Mawg: edité la respuesta, salió bastante mal, de hecho, gracias por desafiarla :)
Gracias por las respuestas, todavía no puedo votar. Sin embargo, muchas personas recomiendan no usar únicamente un libro/ejercicios de libros, sino hacer algún proyecto y aplicar los conceptos que aprendes. ¿Cómo sería combinar #1 + #3 simultáneamente? Aunque tendría que estar siguiendo 2 libros entonces
Como dijo @Mawg, el n. ° 1 puede ser bastante desafiante, puede llevar mucho trabajo hasta que disfrute de los resultados. Pero si/cuando lo consigas, habrás ganado bastante experiencia (¡y la satisfacción será mucho mejor!). Pruébalo si quieres, siempre puedes corregir el curso si se vuelve abrumador.
No lo olvide: hay un mundo de diferencia entre la programación y la ingeniería de software. Entonces, mientras aprende el idioma, también aprenda habilidades independientes del idioma, como diseño, pruebas unitarias y depuración. Incluso podría tener su propio sistema de control de versiones e incluso un rastreador de errores si lo desea. Eso es mucho en su plato, pero es mejor aprender buenas prácticas desde el principio.

Mi voto es por 3, 4, 1, 2. Eso parece tener más sentido para mí. Incluso después de décadas de desarrollo profesional, no estoy muy seguro del valor del n.° 2 (además, una de las pequeñas molestias de la vida es tener dificultades para comprender el código de otra persona)

  1. Leer un libro completo de C++

Comienza a aprender el idioma (y haz los ejercicios de codificación del libro).

  1. Tome cursos en línea gratuitos y haga las tareas en línea (aunque sin saber si codifiqué correctamente)

"sin saber si codifiqué correctamente"? Las tareas son calificadas. Además, aprenderá, o debería, aprender a probar. Eso le dirá si está codificado correctamente: ¿el código hace lo que se supone que debe hacer?

  1. Escribir un juego simple como "romper los ladrillos" para aprender a escribir eventos/audio/gui/etc.

Creo que encontrará que esto es mucho menos simple de lo que piensa ,-) Pero, sí, comience a programar. Codifique temprano, codifique a menudo.

  1. Estudiando un proyecto de C++ github

¿Cómo sabes que es un buen código? Además, es difícil entender el código de otras personas (incluso el tuyo unos meses después).

Ya que mencionó la codificación de un juego de rol, es posible que desee acechar en https://gamedev.stackexchange.com/

y también para mirar