Cómo hacer preguntas correctamente
Algunas lecciones o ejercicios pueden ser difíciles de entender. Si tienes preguntas sobre:
- Materiales del curso (falta alguna información).
- Tareas (no está claro qué hacer en el ejercicio).
- Resultados de las pruebas (no se entiende por qué terminan con un error).
En tales situaciones, haz preguntas a tu mentor en el canal del curso. Es importante que las preguntas se hagan correctamente para ahorrar tiempo tanto a ti como al respondedor.
¿Por qué escribimos este artículo?
Los principiantes a menudo tienen ideas equivocadas sobre los programadores experimentados. A muchos les parece que un desarrollador puede determinar las causas de un error y proporcionar una solución simplemente mirando el código o leyendo la pregunta. Si eso fuera verdad, para ayudar a los estudiantes, deberíamos:
- Recordar de memoria los textos de las lecciones, pruebas y ejercicios.
- Ejecutar mentalmente el código en cualquier lenguaje.
- Leer mentes y entender el contexto de la pregunta.
Pero no podemos hacer eso 😅. Por lo tanto, para obtener una respuesta rápida y de calidad, recomendamos seguir un principio simple:
La pregunta debe estar formulada correctamente y contener la información necesaria para resolver el problema.
Ejemplos
En este artículo, mostraremos ejemplos de preguntas incorrectas, la reacción del especialista, describiremos la lógica del razonamiento y daremos consejos sobre cómo hacer preguntas correctamente.
1. Muestra su error y el código
Pregunta del estudiante 🤔: «Mi código no funciona. Aquí hay unas docenas de líneas de código».
Reacción del mentor: «¿De dónde viene este código? ¿Es de un ejercicio, un ejemplo de la teoría o de una tarea independiente? ¿Dónde se ejecuta este código: en el editor de Códica o en la computadora personal? ¿No funciona significa que no se ejecuta o que se ejecuta pero da un resultado incorrecto?»
La pregunta carece de contexto y datos para analizar. Incluso los desarrolladores experimentados no pueden ejecutar mentalmente el código y comprender qué resultado o qué error se obtendrá. Y, por supuesto, es imposible adivinar qué acciones ya se han realizado para solucionar el problema si no se mencionan.
Si se necesita ayuda con una tarea que no es un ejercicio, no se puede guardar el código en Códica. Sin embargo, hay servicios especiales que pueden ayudar a mostrar el código, el texto del error y la salida de las pruebas de manera que sea fácil de leer. Aquí tienes algunos de ellos:
- [Pastebin](https://pastebin.com/): útil para el intercambio rápido de fragmentos de código u otros datos.
- Codesandbox y Codepen: para tareas frontend (HTML, CSS, JavaScript).
- Replit: para backend (Node.js, Python, PHP y muchos otros lenguajes).
Cómo hacer la pregunta correctamente: «Resolví el ejercicio práctico, pero el código pasó dos de las tres pruebas. Añadí impresiones de depuración en cada paso y veo que en el paso 3 los datos no cambian como deberían. Ayudadme a entender por qué. (Enlace a la solución guardada o a un servicio externo)».
2. Describe tus acciones
Pregunta del estudiante 🤔: «Estoy haciendo el segundo punto de la tarea independiente sobre el trabajo con el sistema de archivos. Todo funciona, pero en lugar de obtener el resultado del trabajo, recibo un error que dice que no tengo permisos».
Reacción del mentor: «¿Todo funciona o no? ¿Qué permisos faltan: para leer o escribir archivos? ¿Por qué no hay texto de error?»
La interpretación propia del estudiante sobre el error crea aún más confusión. Esto es similar a una consulta médica por teléfono. La información de que al paciente le duele la pierna no ayudará al médico hasta que se realicen radiografías y análisis. De la misma manera, en programación, hasta que no haya código y resultados de su ejecución, diagnosticar la falla solo con la descripción es muy difícil.
Cómo hacer la pregunta correctamente: «Estoy ejecutando el comando ./bin/run
en el segundo paso de la tarea independiente y recibo el error bash: ./bin/run: Permission
. ¿Pueden explicarme qué significa y cómo corregirlo?»denied.denied
3. Indica dónde se ejecuta el código
Pregunta del estudiante 🤔: «Ejecuté el último ejemplo de la teoría en mi computadora, pero devuelve un error. Adjunto captura de pantalla del texto del error y del código».
Reacción del mentor: «¿Qué sistema operativo estás usando? ¿Con qué comando se ejecutó el código? ¿Qué versión de intérprete está instalada en la computadora?»
Incluso si se proporciona información sobre el código y la forma de ejecutarlo, no hay garantía de que se pueda entender la configuración de la computadora del estudiante. Las razones pueden estar en la configuración de la BIOS, la falta de algunas bibliotecas en la PC o otras situaciones específicas, incluso dependiendo del hardware. Puedes intentar hacer una pregunta así en nuestro canal del curso.
Cómo hacer la pregunta correctamente: «Ejecuté el código de la teoría en mi computadora, pero devuelve un error. Ejecuté el código en la terminal de VS Code en Ubuntu 18.10, la versión del lenguaje es 3. Aquí está el código fuente en GitHub, y también hay un enlace al archivo .log con el texto del error».
4. Usa impresiones de depuración
Pregunta del estudiante 🤔: «Mi código no funciona, ¿puedes decirme cuál es el error? Código: (enlace), error: (enlace)».
Reacción del mentor: «¿El estudiante intentó resolver el problema por sí mismo? ¿Depuró el código? ¿No quiere resolver el problema por sí mismo o realmente no lo entiende?»
En el proceso de aprendizaje, es importante no solo completar toda la práctica, sino también aprender a resolver problemas de forma independiente, para que la falta de apoyo no obstaculice el trabajo. Los estudiantes eventualmente pasarán a proyectos reales, donde habrá mucho más código y será mucho más complicado. Estamos preparando para esto desde los primeros días, así que proporcionamos solo consejos y sugerencias, pero no nos ocupamos de la depuración del código y su corrección.
Cómo hacer la pregunta correctamente: «En algunas pruebas, el código interrumpe la ejecución. Agregué impresiones de depuración y vi que el ciclo se ejecuta varias veces y luego se interrumpe, pero no entiendo por qué. Ayúdame a entender dónde puede estar el error: enlace a la solución guardada».