Consejos de productividad para programadores

6 consejos que le ayudan a maximizar la productividad

“Enfocarse en ser productivo en lugar de estar ocupado». Es una cita de Tim Ferriss que lo resume bastante bien. Aunque nos gustaría pensar que estar ocupado y ser productivo son lo mismo, la mayoría de las veces no lo son.

Es fácil parecer o sentirse ocupado como programador, sin lograr realmente mucho. Pasar demasiado tiempo leyendo correos electrónicos o en tareas repetitivas no aporta mucho valor.

Cuando eres productivo, realizas un trabajo de calidad que te ayuda a terminar tareas importantes o acercarte a una meta. Por otro lado, estar ocupado significa que no se está permitiendo mucho tiempo libre porque constantemente está tratando de trabajar en demasiadas cosas, independientemente de si son productivas o no.

Una persona ocupada puede pasar días sin nada tangible que mostrar por su tiempo y esfuerzo. No quieres ser esa persona que solo está ocupada. ¿Cómo puedes ser más productivo como programador en lugar de solo estar ocupado?

Consejo 1. Sepa cuándo alejarse de su computadora

La codificación puede ser intensa, especialmente cuando terminas codificando durante varias horas seguidas. Es inevitable que mire fijamente su pantalla de vez en cuando sin saber cómo resolver el problema que enfrenta.

Como se dijo antes, la productividad no equivale a las horas que pasan detrás del teclado. Mirar fijamente tu pantalla durante demasiado tiempo te dará una falsa sensación de productividad, ya que estás ocupado pero aún no haces nada.

Despeja tu cabeza por unos minutos y refresca tu enfoque. Estire las piernas o tome algo de beber. Descubrirá que puede resolver los problemas más rápidamente.

Descubrirá que la solución a muchos problemas difíciles aparece repentinamente en su cabeza mientras realiza alguna otra tarea mundana. Cada vez que te encuentres mirando tu pantalla nuevamente, aléjate. ¡Lo más probable es que te ayude!

«A veces es mejor dejar algo solo, hacer una pausa, y eso es muy cierto en la programación». – Joyce Wheeler

 

Consejo 2. Pase tiempo aprendiendo nuevas herramientas

Las herramientas que usa definen su forma de trabajar. Además de dominar las herramientas que usa, debe pasar tiempo aprendiendo nuevas herramientas.

Los desarrolladores tienen necesidades únicas dependiendo de su área de enfoque. No hay una lista de herramientas que todo desarrollador necesita. Las herramientas que necesita son diferentes para cada desarrollador. En gran parte, depende de su pila tecnológica, un desarrollador de Java utiliza herramientas diferentes que un desarrollador de Python. E incluso si la pila tecnológica es la misma, cada desarrollador tiene sus propias preferencias, por supuesto.

Debe dedicar algo de tiempo para averiguar qué herramientas tiene disponibles y qué herramientas le gustan más.

El objetivo es siempre buscar herramientas que puedan reducir la cantidad de trabajo manual y repetitivo posible. Esto nos lleva al siguiente consejo.

 

Consejo 3. Automatiza todo lo que puedas

Como con la mayoría de los trabajos, algunas cosas tienden a ser muy repetitivas. La programación definitivamente no es una excepción a esto. De hecho, la programación es probablemente uno de los trabajos en los que podría automatizar la mayoría de sus tareas repetitivas.

Automatizar tantas cosas como sea posible lo ayuda a pasar menos tiempo haciendo cosas manuales y costosas. Por supuesto, inicialmente debe dedicar un tiempo a crear el script para automatizar una determinada tarea, pero a la larga esto se amortizará.

Esto no es solo porque podría ahorrar algunos minutos debido al hecho de que no tiene que hacer una determinada tarea manualmente. Lo que también importa es que no necesitas romper tu enfoque para hacer una tarea aburrida que has hecho infinitamente.

La automatización te ayuda a concentrarte en las tareas más grandes al ocuparte de las monótonas.

 

Consejo 4. Primero trabaje en su tarea más importante

Su tarea más importante es una responsabilidad crítica que creará los resultados más esenciales que desea lograr. Todas las tareas en su plato no son críticamente importantes, así que no las trate como si fueran lo mismo.

Identifique su tarea más importante y hágalo primero.

Eso es todo lo que se necesita.

A continuación, debe tener la disciplina de programar el tiempo para trabajar en su tarea más importante. Trabaja en esa tarea a primera hora de la mañana. No puedo enfatizar esto lo suficiente. Los psicólogos conductuales dicen que estamos en nuestro mejor momento durante un período de dos horas por la mañana.

Deje de trabajar en la tarea más importante de todos los demás en este período de tiempo respondiendo sus correos electrónicos y llamadas telefónicas, por ejemplo. Termine su tarea más importante antes de responder a todos estos correos electrónicos y llamadas telefónicas.

 

Consejo 5. Cree un plan antes de escribir el código

Crear un plan antes de comenzar a escribir código lo mantiene enfocado. Como resultado, usted sabe exactamente qué construir y cómo quiere abordar la solución del problema. Esto le permite no dejar que sus pensamientos se desvíen o agregar algunas características innecesarias que cree que podrían ser útiles en el futuro.

Antes de siquiera pensar en la codificación, debe asegurarse de comprender todos los requisitos. Para construir o arreglar algo, debes entender lo que se supone que debes codificar.

Los detalles más pequeños pueden tener un gran impacto en la solución que está buscando implementar, por lo que realmente debe comprender los requisitos.

Una vez que haya hecho esto, puede comenzar a hacer un plan que puede hacer al desglosar su problema o presentarlo en partes más pequeñas.

Piense en los problemas que enfrentará e investigue todo lo que necesita. Si bien es posible que no planifique cuando trabaje en una aplicación pequeña, para aplicaciones más grandes, la no planificación tiene un gran efecto negativo.

 

Consejo 6. Apártate de las redes sociales

El último, pero definitivamente, no menos importante consejo para aumentar su productividad es desconectarse de las redes sociales. Las redes sociales son una gran distracción. Y por alguna razón, tendemos a verificarlo cada 10 minutos para ver si no nos estamos perdiendo algo. Solo para descubrir que no pasó nada interesante.

Si no tiene cuidado, las redes sociales pueden absorber gran parte de su valioso tiempo. Cada vez que te distraes con las redes sociales, lleva tiempo volver a centrarte y, mientras tanto, nada se hace fácilmente.

Este es posiblemente el consejo que podría aumentar más su productividad, dependiendo de sus hábitos en las redes sociales. La mejor parte de este consejo es que se puede aplicar sin mucho esfuerzo.

Resumen rápido

Las ganancias de productividad vienen con el tiempo, así que no espere ver ganancias masivas de productividad a corto plazo. Concéntrese en un elemento de esta lista a la vez y verá que se vuelve más productivo con el tiempo.

Estas son las 6 cosas que puedes hacer para ser más productivo:

  • Sepa cuándo alejarse de su computadora
  • Pase tiempo aprendiendo nuevas herramientas
  • Automatiza todo lo que puedas
  • Primero trabaje en su tarea más importante
  • Cree un plan antes de comenzar a escribir código
  • Desconectarse de las redes sociales

 

Fuente: https://levelup.gitconnected.com/productivity-tips-for-programmers-6519939914ca

9 mejores prácticas de logging basadas en la experiencia

Logging o no Logging ya no es la cuestión, sino cómo y qué registrar se ha convertido en el área de enfoque para las operaciones de TI que buscan mejorar constantemente el rendimiento de la aplicación. Hemos recopilado algunas prácticas recomendadas que le ayudarán a «hacer logging de manera más inteligente» y a ahorrarle tiempo y recursos invaluables al rastrear un problema.

# 1 CONOZCA SUS AUDIENCIAS

Cuando se trata de registros, lo primero que hay que entender es que los registros de su aplicación tienen dos audiencias muy diferentes: humanos y máquinas.

Las máquinas son buenas para procesar grandes cantidades de datos estructurados de forma rápida y automática.

Los humanos, por otro lado, no son tan buenos para procesar grandes cantidades de datos, y nos lleva tiempo leer los registros. Por otro lado, los humanos manejan bien los datos no estructurados.

Para aprovechar al máximo sus registros, debe hacer que sus registros sean legibles para humanos y estructurados para máquinas.

# 2 TENER UNA ESTRUCTURA CONSISTENTE EN TODOS LOS REGISTROS

Un requisito previo para un buen logging es tener una estructura estándar de su archivo de registro, que sea coherente en todos los archivos de registro.

Cada línea de registro debe representar un evento único y contener al menos la marca de tiempo, el nombre de host, el servicio y el nombre del registrador.Los valores adicionales pueden ser el hilo o la identificación del proceso, la identificación del evento, la sesión y la identificación del usuario.

Otros valores importantes pueden estar relacionados con el entorno, como: ID de instancia, nombre de implementación, versión de la aplicación o cualquier otro par clave-valor relacionado con el evento.

Use una marca de tiempo de alta precisión (en resolución de milisegundos, si no mejor) y asegúrese de que su formato de marca de tiempo incluya datos de zona horaria. A menos que tenga una razón excepcionalmente buena, use ISO 8601.

Finalmente, si te sientes como un verdadero profesional, agrega una identificación única a cada línea de registro. Una línea de registro generalmente tendrá una parte fija y otra variable, lo que hace que sea difícil filtrar patrones específicos dentro o fuera (aunque a todos nos encantan las expresiones regulares). Aquí es donde la identificación única se vuelve útil.

Al registrar errores, agregue una ID de error. Esto será muy útil para buscar en sus sistemas de gestión del conocimiento (que por supuesto tiene).

Estos son importantes para rastrear o correlacionar problemas en diferentes componentes y en toda su arquitectura.

# 3 ENTENDER LA METRICA

Un concepto central en el registro es la métrica.

Una métrica es un valor específico de una propiedad en un tiempo específico, generalmente medido a intervalos regulares.

Los tipos de indicadores comunes son:

Medidor: mide la tasa de eventos (por ejemplo, la tasa de visitantes a su sitio web)
Temporizador: mide el tiempo que lleva algún procedimiento (por ejemplo, el tiempo de respuesta del servidor web)
Contador: aumenta y disminuye un valor entero (por ejemplo, número de usuarios registrados)
Indicador: mide un valor arbitrario (por ejemplo, CPU)
Cada métrica describe un estado de alguna propiedad del sistema.

Lo bueno de las métricas es tener muchas y poder correlacionar diferentes métricas juntas. Por ejemplo, si descubrimos que cada vez que los usuarios de nuestras aplicaciones utilizan el método «Obtener foto de gato» y el «Tiempo invertido en la página web» aumenta, podemos inferir que nuestros usuarios prefieren fotos de gato a otras fotos.

Le recomendamos que rastree y registre métricas, o alternativamente almacene métricas por separado de sus registros.

# 4 NOTIFICACIÓN DE ALERTAS Y MANEJO DE EXCEPCIONES

Si algo sucede dentro de su código, y ya sabe con certeza lo que sucedió y tal vez lo que debe hacerse, no loguee información y active una alarma para ese registro específico, ya que es complejo y propenso a errores. En su lugar, active únicamente la alerta directamente desde el código.

Además, al registrar una excepción, aunque el seguimiento de la pila es útil, es difícil de leer. Utilice bibliotecas como Apache ExceptionUtils para resumir el seguimiento de la pila y facilitar su consumo.

# 5 USE NIVELES DE GRAVEDAD DE REGISTRO

Diferentes eventos tienen diferentes implicaciones de gravedad. Esto es importante porque le permite diferenciar eventos graves e importantes de eventos irregulares o incluso regulares.

No descarte los problemas de menor gravedad, pueden usarse como puntos de datos cuando intente crear una línea base para el comportamiento de la aplicación.

Sus archivos de registro deben contener principalmente mensajes de depuración, información y advertencia, y muy pocos mensajes de error.

# 6 SIEMPRE PROPORCIONE CONTEXTO

Los desarrolladores escriben registros en línea con el código. Esto significa que al escribir los registros en el código, los desarrolladores basan el registro en el contexto del código. Desafortunadamente, la persona que lee el registro no tiene ese contexto y, a veces, ni siquiera tiene acceso al código fuente.

Por ejemplo, comparemos las siguientes dos líneas de registro:

«La base de datos no responde»
“Error al obtener las preferencias de los usuarios para la identificación de usuario = 1. La base de datos de configuración no responde. Volverá a intentarlo en 5 minutos «.
Al leer la segunda línea de registro, entendemos fácilmente qué intentaba hacer la aplicación, qué componente falló y si hay algún tipo de solución para este problema.

Cada línea de registro debe contener suficiente información para que sea fácil entender exactamente qué estaba pasando y cuál era el estado de la aplicación durante ese tiempo.

# 7 ELIJA UN BUEN FRAMEWORK DE REGISTRO Y USE SUS CARACTERÍSTICAS AVANZADAS

Abstenerse de intentar rodar su propio framework de registro. Hay muchas bibliotecas de registro excelentes para cada lenguaje de programación. Bueno, tal vez a excepción de TrumpScript.

Los framework de registro le permiten configurar diferentes apéndices, cada uno con sus formatos de salida y su patrón de registro personalizado.

Otras características estándar incluyen agregar automáticamente el nombre del logger y una marca de tiempo, soporte para múltiples niveles de gravedad y filtrado por estos niveles.

Los framework de registro también tienen las siguientes características avanzadas que debería usar:

Configure diferentes umbrales de nivel de registro para diferentes componentes en su código
Use un apéndice con pérdida que elimine los eventos de nivel inferior si las colas se llenan
Utilice un apéndice de resumen de registros que registrará: «el siguiente mensaje se repite X veces: [mensaje]» en lugar de repetirlo X veces
Coloque un umbral en el nivel de registro y configúrelo para que también muestre N líneas de registro de nivel inferior cuando se produzca el registro de mayor gravedad

# 8 ESCRIBIR REGISTROS ESTRUCTURADOS (A VECES)

Hacer que sus logger escriban registros estructurados puede generar algún impacto en el rendimiento, pero si puede tomarlo, vale la pena. Más adelante, será mucho más fácil cargar sus registros en herramientas de análisis o procesarlas con intermediarios de loggers.

# 9 REGISTRE MUCHO Y LUEGO REGISTRE MÁS

A menudo descuidamos escribir registros importantes o incluso no registrar intencionalmente para mantener sus registros compactos. La mayoría de las veces, perderá más tiempo como resultado de no tener la respuesta en sus registros, entonces habría gastado tiempo en escribir registros. La calidad de sus registros es parte de la calidad de su código.

Utilice soluciones de registro centralizadas, sistemas automáticos de procesamiento de registros y aplique las técnicas descritas anteriormente para mantener los registros útiles, solo siga registrando.

 

Fuente9-logging-best-practices-based-on-hands-on-experience