¡Hola!
En los últimos años, he trabajado mucho con personas que recién comienzan su carrera en TI. Dado que tanto las preguntas como la forma de formulación son similares entre muchas de estas personas, decidí reunir mi experiencia y recomendaciones en un solo lugar.
Hace mucho tiempo leí un libro de 2004 de Eric Raymond y siempre lo he seguido rigurosamente en mi carrera. Es bastante extenso y está más orientado a administradores de sistemas. Sin embargo, yo tengo que ayudar a personas que a menudo no tienen ninguna experiencia en desarrollo a convertirse en juniors y comenzar su carrera.
Para aquellos que ya son, o que solo sueñan con ser, desarrolladores principiantes, puedo ofrecer las siguientes recomendaciones:
- Estudien el problema por sí mismos
- Primero comunique el objetivo, luego exponga el problema
- Escriban de manera clara y al grano
- Hagan preguntas de manera adecuada y compartan soluciones
- Respete el tiempo de los demás
- Mire más allá
Ahora, un poco más en detalle.
Estudien el problema por sí mismos
Estás estudiando algún lenguaje de programación a través de un libro o curso. Tomaste un ejemplo de código, lo ejecutaste, pero falló con un error que no entiendo. Si se cree en el libro, debería funcionar. Pero lo que ves es que no funciona. ¿Cuáles son tus opciones?
- Decidir que nunca te convertirás en desarrollador porque el mundo está en tu contra y hasta los ejemplos que funcionan no lo hacen. Abandonar el aprendizaje;
- Decidir que nunca te convertirás en desarrollador porque eres demasiado tonto o no se te da. Abandonar el aprendizaje;
- Empezar a preguntar a todos los conocidos que tengan alguna relación con TI, exigiendo que averigüen por qué no te funciona. Aprenderás muchas cosas sobre ti mismo, te ofenderás. Abandonar el aprendizaje;
¿Cuál es la opción correcta? Aquí está:
Entender que no eres único (aunque mamá y abuela digan lo contrario) y que el mundo de TI no es tan simple como lo pintan cuando te invitan a cursos y seminarios web.
Comprender que no eres único lleva a la realización de que tu problema probablemente ya ha sido experimentado por decenas, cientos, miles de personas. Si eres un desarrollador principiante, fácilmente podrías haber pasado por alto algo, no haber instalado o configurado correctamente. Aquí tienes un checklist que te propongo seguir antes de darte cuenta de que no puedes resolver el problema por tu cuenta y necesitas ayuda:
- Asegúrate de que la pregunta sea única y no haya respuesta en Internet
- Estudia atentamente la causa del problema, no sus efectos
- Evaluar las posibles soluciones al problema, sus pros y contras
- Considerar alternativas para alcanzar el objetivo
- Pensar en lo que te pueden preguntar y preparar respuestas de antemano
Con primero el primer punto es trivial: si el texto del error no lo entiendes en absoluto, cópialo en Google y lee atentamente lo que encuentras en los enlaces.
Segundo: por ejemplo, si tu código falló con el error "No puedo conectar la biblioteca de terceros", el problema no está en tu código. El problema es que no has instalado alguna biblioteca que deseas usar. Entonces, debes buscar cómo instalarla y no como arreglar tu código.
tercero y cuarto son bastante similares: ¿Qué pasa si el problema está en esa biblioteca y solo necesito buscar otra? ¿Qué pasa si no utilizo una biblioteca de terceros y escribo mi propio código usando herramientas estándar?
quinto el punto nos lleva a la siguiente parte: piensa en lo que podría preguntarte la persona a la que te diriges y ten respuestas preparadas.
Primero comunique el objetivo, luego exponga el problema
El objetivo es lo que querías lograr. Por ejemplo, escribir un código que navegue por Internet y guarde 10 imágenes de gatos divertidos. El problema es por qué ves un error en la consola, pero no ves 10 gatos divertidos. No empieces tu pregunta con el problema. Comienza con el objetivo y termina con el problema. Si la persona a la que pides ayuda es un desarrollador experimentado y sabe mucho, seguramente podrá ofrecerte una solución más simple y elegante al problema. Si ya elegiste la más simple y elegante, él entenderá claramente qué y por qué quieres hacer, lo que acelerará la obtención de una respuesta.
Buena pregunta:
Quiero guardar 10 gatos divertidos todos los días para reírme y prolongar mi vida. Para ello, escribí este código: […] Espero que se conecte a FTP servidor y suba nuevas imágenes. Sin embargo, cuando lo ejecuté, vi este error: […] Aunque puedo acceder a ese servidor a través del navegador.
Respuesta rápida:
Elegiste mal esta biblioteca; ya nadie la mantiene ni desarrolla. Mejor usa esta otra: ¡yo mismo la uso para descargar imágenes de gatos!
Mala pregunta:
Hola, mi código mostró este error […], ¿sabes cuál podría ser el problema?
Respuesta obvia:
Hola. No, no lo sé.
Escriban de manera clara y al grano
No es necesario desbordar a la persona con un torrente de pensamientos. La persona a la que te diriges para resolver un problema está ocupada con sus asuntos. Haz que entienda rápidamente cuál es tu problema y qué es lo que esperas de él. Si tienes problemas con la gramática, utiliza servicios en línea de corrección ortográfica y de puntuación. Puedes eliminar el ruido del mensaje incluso sin servicios en línea. No te extiendas, no empieces desde lejos. Escribe de forma breve, concisa y al grano. Proporciona ejemplos.
Mal:
— ¿Cómo te fue el fin de semana?))) Estoy tratando de reunir el proyecto, pero está fallando por algún motivo O_ó aunque parece que hice todo como debía, ¿puedes acercarte por favor?))))) aquí, en la consola, tengo algo confuso (((ya he probado todo y nada funciona, aaaa(
Bien:
— Hola, estoy tratando de ejecutar el proyecto, pero tengo un problema. Se cierra inmediatamente después del comando docker-compose up, aquí está el registro de inicio y el error: […] ¿Puedes indicarme cómo solucionarlo?
Hagan preguntas de manera adecuada y compartan soluciones
No deberías enviar una pregunta como mensaje personal a una persona específica, a menos que te hayan indicado que debes preguntar específicamente a él. Es mejor escribir a un grupo de personas porque:
- Cada uno está ocupado resolviendo sus problemas. La probabilidad de que alguien en el chat general o en el foro pueda dedicarte tiempo es mayor.
- La probabilidad de que alguien en el chat general sepa cómo ayudarte es mayor.
- Dejas a otros la posibilidad de encontrar la misma pregunta y respuesta más tarde.
Mira el último punto. ¿Ya aprendiste que debes intentar resolver los problemas por tu cuenta? ¿Ya buscaste en el chat/foro/grupo y no encontraste menciones de tu problema? Está bien, entonces pregunta.
Por otro lado, no deberías molestar a las personas innecesariamente. Si es posible, excluye de la lista de destinatarios a quienes no pueden ayudarte. Cuantos más mensajes reciba una persona, menores son las probabilidades de que los lea todos. No generes en las personas la costumbre de desactivar las notificaciones o simplemente ignorar los mensajes.
Seguramente, tu experiencia puede ser útil para alguien más. Ahorra tiempo para ti y para otros compartiendo tu respuesta o solución. El siguiente novato, si ya sabe de qué estamos hablando, no molestará a nadie: encontrará tu solución buscando. ¿Por qué digo que puedes ahorrarte tiempo? Porque puedes encontrarte con este problema dentro de un año y no recordar cómo lo solucionaste. La búsqueda te salvará nuevamente.
Respete el tiempo de los demás
Facilita la vida de quienes te piden ayuda.
Asegúrate de que los enlaces que envías funcionan. Intenta abrirlos en modo incógnito. Si el enlace requiere autorización, verás un error de acceso. Por ejemplo, si has subido el código a un repositorio privado, o has enviado un enlace a Google Drive al que solo tú tienes acceso, la persona verá un error y tendrá que gastar tiempo para informarte de esto, y luego esperar a que configures el acceso. Haz que la persona vea inmediatamente lo que estás mencionando.
No esperes que alguien quiera recordar lo que preguntaste hace dos días. Envía la información nuevamente, recuerda el contexto. A nadie le gusta buscar en la correspondencia lo que tú ya tienes a mano. Si te da pereza duplicar la información para que las personas no pierdan tiempo buscándola, entonces no necesitas ayuda.
No saques las cosas de contexto. Si envías un registro con un error, es evidente que debes incluir no solo el error en sí, sino también el código que lo causó, con un ejemplo de lo que lo rompió.
Si hay un proceso establecido para resolver tu problema, síguelo. No vale la pena reinventar la bicicleta si ya hay un artículo con un HowTo paso a paso.
No intentes obtener una respuesta de una sola persona a través de varios canales (escribiendo en Slack, Skype, Telegram) al mismo tiempo; a la persona no le agradará.
No escribas el mismo mensaje a varias personas al mismo tiempo, esperando que al menos alguien te responda. Todas estas personas pueden darte una respuesta (probablemente la misma), pero todas se distraerán de sus tareas por un tiempo. Usa chats grupales.
Mire más allá
Todo lo que hemos discutido aquí es aplicable también fuera del ámbito de TI. Sigue estas reglas en el supermercado, en el taller, durante unas vacaciones en otro país, al comunicarte con amigos y familiares. Demuestra a las personas que valoras su tiempo y que no deseas incomodarlas por trivialidades. Muestra que has dedicado esfuerzo y tiempo para resolver el problema por tu cuenta, pero que no lo has logrado y realmente necesitas ayuda. Como agradecimiento, las personas estarán comprensivas con tus problemas y te ayudarán a resolverlos.
Fuente: habr.com
