TL; DR: vea las respuestas de Dan Crimson y Barry Rountree – La respuesta del Sr. Crimsons, específicamente, refleja la mía y es menos verbosa.
– Descargo de responsabilidad –
No soy un profesional de la enseñanza, ni yo, en los aproximadamente 20 años que he estado programando, he obtenido un título. Sin embargo, como autodidacta, algunas de las técnicas que he usado en el pasado (y que aún uso, hasta cierto punto) para aprender nuevos lenguajes de programación podrían ayudar en esta situación.
- ¿Qué es el programa escolar en el Reino Unido y cómo funciona?
- ¿Dónde puedo encontrar una habitación de albergue o PG en Lajpat Nagar, Nueva Delhi?
- ¿Cómo debo revisar para wbJEE cuando solo quedan unos días?
- Cómo usar bien mi tiempo para estudiar y no desperdiciarlo.
- ¿Qué es lo más difícil al estudiar en el extranjero?
– Respuesta completa a continuación –
Me parece que su problema no es de conocimiento, sino de falta de conexión entre el conocimiento y la expresión del conocimiento. Lo que quiero decir es que usted conoce los detalles específicos del lenguaje: cómo lo hace con los “tipos” básicos y avanzados que forman parte del lenguaje, cómo controla el flujo, etc. pero tienen dificultades para conectar ese conocimiento con su expresión. .
Una forma de resolver esto posiblemente sería desafiarte a ti mismo para diseñar y programar un juego simple de ahorcado. En detalle:
- Escribe las reglas de Hangman.
- Cada regla para el juego.
- Qué deben hacer el jugador y el “Verdugo” (es decir, la computadora) para jugar el juego
- Divida todas las partes anotadas en el paso 1 en instrucciones simples que incluso un niño de 2 o 3 años podría entender.
- Decida cómo se pueden agrupar esas instrucciones como funciones y configurar esas agrupaciones
- Comience a convertir esas agrupaciones en código real
- No te preocupes por la interfaz todavía
- En este punto, simplemente escriba el código que hará cosas que no interactúan directamente con el usuario.
- Coloque declaraciones de salida adicionales y una comprobación de errores adicional en todo el lugar: esto hará que el programa produzca mucha salida y se ejecute un poco más lento, pero lo ayudará a encontrar errores más adelante
- Ponga la lista de palabras directamente en el programa por ahora
- Comenta cualquier cosa que encuentres compleja o de la que no estés seguro. Esto te ayudará a descubrir en qué necesitas trabajar más adelante.
- Escribe el código que interactúa con el usuario.
- No te hagas el capricho: salida de texto simple para hacer preguntas (usa std :: cout) y entrada de texto básica (usar std :: cin está bien aquí)
- Comenta cualquier cosa que encuentres compleja o de la que no estés seguro. Esto te ayudará a descubrir en qué necesitas trabajar más adelante.
- Compilar [y, opcionalmente ejecutar]
- Activa el modo más completo y estricto que puedas en el compilador. Para GCC esto es algo como “-Wall -Werror” y otros compiladores tendrán configuraciones similares.
- Arreglar todo lo que aparece debido a 6 (a)
- [opcional] Intente encontrar y corregir cada error / error que ocurre una vez que su programa se está ejecutando.
Cada parte de lo anterior debe ayudarlo a conectar el conocimiento que tiene del idioma con su expresión y uso reales. El paso 1 le ayuda a definir el espacio de problemas y a decidir qué debe hacer el programa en lugar de lo que está haciendo el usuario del programa. En el paso 2, está convirtiendo el proceso de lo que la computadora está haciendo en el juego en un conjunto de pasos que serán más fáciles de escribir en el idioma elegido. El paso 3 tiene que ver con la estructura del programa: un código bien estructurado es más fácil de mantener, depurar y extender, por lo que aquí tiene que detectar los patrones en las instrucciones del paso 2 y agruparlos, algunos para convertirlos en funciones separadas, algunas solo porque lógicamente van juntos.
El siguiente paso es donde las cosas pueden complicarse. Algunas cosas, como ver si un personaje está en la palabra secreta, son relativamente simples, pero otras son más difíciles. A través de todo este código, debe usar el mecanismo de excepción de idiomas o, si no lo tiene, usar el método idiomático para detectar errores. A lo largo del código que está escribiendo en el Paso 4, no debe haber nada que interactúe directamente con el usuario; la única “interacción” que debe existir es el código que informa sobre las cosas cuando se produce un error. Y, por favor, tenga en cuenta 4 (d): poner comentarios donde no estaba seguro de que eran correctos, o cuando encontró algo difícil de implementar, etc. es un buen hábito.
Ahora, en el paso 5, debe escribir un código que realmente interactúe con el usuario. En este punto, solo está creando un programa mínimo que funciona, por lo que solo necesita un poco de “poner texto en la pantalla, leer las entradas de los usuarios”: simple y no tan sofisticado como puede ser, es todo lo que necesita.
El último paso, el número 6, solo necesita 6 (a) y 6 (b) como parte de este ejercicio de aprendizaje, ya que esto es para conectar el conocimiento teórico del idioma con habilidades prácticas y para lograr la comprensión.