Cómo mantener la curiosidad como programador

Es fácil ser complaciente con la curiosidad. Nuestras vidas están llenas de estrés. Creamos rutinas en torno a ese estrés. A veces, esas rutinas convierten la vida en un torniquete ineludible. No es fácil ser curioso cuando tu vida depende de que la rueda siga girando.

Como programador paso mucho tiempo resolviendo problemas con Python, Java. La resolución de problemas exige creatividad en la rama de programación. La curiosidad genera creatividad. La demanda de soluciones de software creativas es constante, pero la curiosidad va y viene.

Cuando tu curiosidad decaiga, no te resignes a la idea de que algunas personas son naturalmente más curiosas por las cosas y que quizás tú no seas uno de ellos. La curiosidad no es un rasgo inmutable. Puedes aprender a ser más curioso.

La curiosidad es contagiosa. Siga a las personas curiosas y es probable que atrape el gusanillo. Una vez que su mente está infectada con un framework de programación para la curiosidad, instintivamente aplica ese framework a todo.

El misterio es la clave de la curiosidad. Acepte sentirse desconcertado porque los acertijos están en todas partes. Cuestione absolutos y axiomas, incluso los de este artículo. Invente experimentos para probar premisas.

Aprende a reconocer cuando tu curiosidad decae. Sé que mi curiosidad es críticamente baja cada vez que dejo de leer constantemente. No estoy hablando de leer código, me refiero a leer cualquier cosaEs un caso de desnutrición intelectual, y la cura es una dieta rica en contenido.

Lecturas recomendadas:
Índice
  1. Consumir contenido vorazmente
  2. Sumérgete profundamente en las cosas que te interesan ahora mismo
  3. Adopte el aprendizaje como una conversación
  4. Usar las cosas de formas en las que no estaban destinadas a ser utilizadas
  5. Intenta romper cosas

Consumir contenido vorazmente

Adquiera el hábito del consumo pasivo. Escuche podcasts durante su viaje al trabajo o las tareas del hogar. Mire documentales durante su hora de almuerzo. Si su mente divaga, déjela. No se concentre en un solo tema. Una dieta de contenido diverso es más probable que revele .un misterio que te conmueve.

Consume activamente contenido sobre misterios que llamen especialmente tu atención. Lee artículos y libros extensos. Escucha atentamente y toma notas. Pero evita forzarte a un consumo activo. La actividad forzada sofoca la alegría.

Sumérgete profundamente en las cosas que te interesan ahora mismo

A diferencia de las dietas que nutren nuestros cuerpos, una dieta de contenido que induce a la curiosidad no tiene un plan ni un cronograma. Explore temas al azar, pero también explórelos profundamente. No retrase su curiosidad. Busque temas que le interesen * ahora mismo *.

Piérdase en las madrigueras de los conejos, pero evite las generadas algorítmicamente. Los algoritmos tienen la habilidad de mostrar contenido similar. Busque activamente las respuestas a las preguntas que surjan.

Adopte el aprendizaje como una conversación

La curiosidad es un tira y afloja entre el egoísmo y la humildad. Estás obligado por un impulso primario de saber más. Sin embargo, el aprendizaje requiere que expongas una brecha en tu comprensión, que reconozcas que aún hay más por saber.

El aprendizaje es una conversación. Participe en esa conversación. Haga preguntas. Una buena pregunta sintetiza el conocimiento existente y aborda una brecha reconocida en la comprensión.

Mejorar la curiosidad requiere practicar la curiosidad. Afortunadamente, la programación está llena de acertijos. Hay paquetes y herramientas para descubrir, idiomas para aprender y detalles de implementación para explorar.

Aquí hay dos técnicas que he usado para practicar la curiosidad mientras programaba.

Recomendado: Trabajar De Programador En El Extranjero

Usar las cosas de formas en las que no estaban destinadas a ser utilizadas

Supera los límites y realiza experimentos.

Una vez trabajé como programador para una empresa de instalación de audio/visual comercial. En un trabajo, instalamos un sistema de conmutación de video distribuido controlado por una aplicación. La aplicación enviaba paquetes TCP desde un iPad a un conmutador de red y utilizaba la eliminación de etiquetas de VLAN para conectar el video. receptores en la red a transmisiones transmitidas por transmisores.

La aplicación no era compatible con el firmware más reciente del conmutador. El departamento de TI se negó a degradar el firmware y el desarrollador de la aplicación no pudo entregar un parche hasta mucho después de la fecha límite del proyecto. Pero pude configurar la aplicación para enviar comandos a cualquier dirección IP.

Podría escribir un servidor TCP para aceptar comandos de la aplicación, convertirlos al protocolo del conmutador de red y reenviarlos al conmutador. Necesitaba una máquina para alojar el script. La unidad de procesamiento de audio (APU) era una caja de Linux con muchos instalar un script personalizado anularía la garantía.

La APU fue programada por una interfaz de programación visual de arrastrar y soltar. Uno de los "bloques" disponibles podría ejecutar secuencias de comandos de Lua dentro de la zona de pruebas de la aplicación. Pero, ¿podría una secuencia de comandos que se ejecuta en la zona de pruebas recibir comandos de la aplicación y comunicarse con la red? ¿cambiar?

No había restricciones documentadas, así que realicé un experimento. ¡Funcionó! Aún mejor, los bloques de secuencias de comandos se iniciaban automáticamente cada vez que se iniciaba la APU. El cambio de video funcionó sin esfuerzo, incluso después de los reinicios por cortes de energía y otros incidentes.

Mi curiosidad valió la pena. Completamos el trabajo a tiempo. Mis descubrimientos crearon nuevas soluciones para los clientes y generaron herramientas internas que ahorraron tiempo y dinero en las instalaciones.

Intenta romper cosas

La destrucción puede ser productiva.

Disfruto encontrando formas de "romper" un idioma. No se trata de encontrar errores. Se trata de encontrar ejemplos de código que muestren un comportamiento sorprendente. Siempre comienza con una pregunta.

""Cómo hace ¿Un conjunto de Python determina si dos objetos son distintos?

Recomendado: Mejores Frameworks Python

Saber dónde comenzar a buscar respuestas es una habilidad crucial. Los documentos de Python en los conjuntos son bastante buenos.

"Oh, está bien. Los conjuntos usan un algoritmo que verifica si dos objetos tienen el mismo valor hash y se comparan entre sí. Si ambas verificaciones son verdaderas, entonces esos objetos no se pueden distinguir entre sí, y el conjunto solo puede contener uno de ellos. . ””

Un poco de conocimiento abre la puerta a nuevas preguntas.

“¿Puedes engañar a un conjunto para que piense que dos objetos diferentes no son distintos?”

Ahora hay un pequeño rompecabezas divertido. Piénsalo. Un número entero se reduce a su valor. Puedes controlar el valor hash de un objeto personalizado con el .__hash__() método Eso significa que puede crear un objeto que tiene el mismo valor que el número entero 1:Confundir un conjunto en el pensamiento NotOne instancias son iguales a 1los necesitas para comparar iguales a 1. Puedes hacer NotOne los objetos se comparan igual a ninguna objeto implementando un .__eq__() método que siempre devuelve True::Ahora vea lo que sucede cuando crea un conjunto que contiene 1 y una instancia de NotOne::n es en gran medida un objeto distinto de 1.. n ni siquiera es un número. No admite operaciones aritméticas. Pero nunca podrás poner n y 1 Se siente extraño que cualquier conjunto que contenga en un conjunto juntos porque no cumplen con los criterios de distinción de un conjunto. 1 también contiene n..

"Eso es bastante extraño. Me pregunto si hay una manera de engañar a un conjunto para que piense que dos objetos no distintos son distintos entre sí".

Para que tal cosa sea posible, se requiere un objeto que no se compare a sí mismo.Si alguna vez ha trabajado con objetos IEEE 754 NaN, sabe que cumplen con los requisitos.

"¿Qué sucede cuando intentas poner varios valores de NaN en un conjunto de Python?"Vamos a averiguar.

"DE ACUERDO, ese es raro. Pero seguramente puedes verificar que el conjunto contiene un objeto NaN. ¿Verdad?”

Palabras finales

Me encantan los ejemplos como este. Con toda honestidad, nada está roto, excepto tal vez mi cerebro por un momento. Buscar y comprender ejemplos como estos fortalece su intuición sobre el código y genera nuevas ideas para resolver problemas.

Empieza a practicar la curiosidad hoy mismo. Haz más preguntas y haz más experimentos. Agradece que es imposible saberlo todo. Siempre hay un nuevo rompecabezas que resolver. Siempre hay cosas nuevas por las que preguntarse.

Publicaciones relacionadas

Si quieres conocer otros artículos parecidos a Cómo mantener la curiosidad como programador puedes visitar la categoría Consejos.

Leonel Jiménez

Apasionado de la programación. Trabajando en este rubro de la programación desde hace 11 años. Ahora compartiendo contenido de programación esperando aportar valor a otros programadores. No olvides visitar mi canal de youtube

Deja una respuesta

Subir

Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones. Más Información