Los mejores consejos de codificación para cualquier principiante en ciencia de datos sin un título en informática

May 10 2022
Cómo escribir código listo para producción
Hay muchas maneras diferentes en que las personas hacen la transición a la ciencia de datos. Si no tiene experiencia técnica, la parte de programación puede parecer desalentadora.
Foto de Ashkan Forouzani en Unsplash

Hay muchas maneras diferentes en que las personas hacen la transición a la ciencia de datos. Si no tiene experiencia técnica, la parte de programación puede parecer desalentadora. Mi formación no es en informática. Antes de convertirme en científico de datos, era profesor de matemáticas. Durante mis primeros años en ciencia de datos, tuve la suerte de trabajar con algunos pesos pesados ​​de TI como colegas. Estos son los consejos que más me ayudaron.

Consejo #1: Organiza tu código

Puede parecer tentador escribir un script realmente grande que ejecute un proceso completo. O simplemente sucede: comienza poco a poco y luego se da cuenta de que necesita agregar algunas líneas de código. Al hacer esto varias veces, el guión se vuelve más y más grande.

Hay algunas desventajas importantes en este enfoque. Primero, se vuelve muy difícil entender lo que hace el script, porque hace varias (todas) cosas. Si lo miras un par de meses después, es muy probable que no entiendas lo que está pasando. Y segundo, solo puede usar el script para este proceso específico. Para el próximo proyecto necesitas empezar de nuevo.

La solución es fácil: dividir el script en funciones y módulos. Cada función debe hacer una sola cosa. Al agrupar funciones relacionadas en un módulo (archivo), su código se vuelve fácil de entender y (re)utilizar. Puede importar funciones o clases del módulo en su próximo proyecto.

¡Nunca es demasiado tarde para empezar a organizarse! En ingeniería de software, tiene la práctica llamada refactorización, donde reestructura su código mientras la salida permanece igual.

Módulos. Imagen del autor.

Consejo n.º 2: no hagas codificación difícil

La codificación dura es la práctica en la que almacena la configuración o los datos de entrada en el código fuente. Puede ser una ruta de archivo, una URL, un nombre de host remoto o nombres de usuario.

¿Por qué es una mala práctica? Su código solo funcionará en un entorno determinado, y debe cambiar el código fuente si cambian algunas de las condiciones. Esto significa buscar a través de su código para encontrar todos los lugares donde lo ha puesto.

En su lugar, debe obtener la configuración o los datos de entrada de un archivo de configuración, una base de datos, una entrada de usuario u otra fuente externa. Esto facilita la actualización de las condiciones. Cada entorno tiene su propio archivo de configuración. Para extraer datos del archivo de configuración, puede usar un analizador de configuración .

Archivo de configuración a la izquierda, código para extraer los datos del archivo a la derecha. Imagen del autor.

Consejo #3: Un error diferente es el progreso

Al principio es frustrante. Tienes que acostumbrarte a todo tipo de errores. Su código no funciona y lleva mucho tiempo encontrar las soluciones para todos los mensajes de error que recibe. Pero no se decepcione si su programa dice que no, porque cuantos más errores corrija, mejor será para resolverlos.

En mi primer año como científico de datos, trabajé con alguien con quien era agradable trabajar. Estaba feliz porque el mensaje de error era diferente al anterior, mientras que el nuevo error me frustraba. Esto fue una lección para mí y me ayudó a seguir adelante.

Foto de Brett Jordan en Unsplash

Consejo #4: No reinventes la rueda

Cuando es un principiante, debe darse cuenta de que no necesita escribir todas las funciones desde cero. Digamos que desea raspar un sitio web con Python, hará que su trabajo sea bastante complejo sin BeautifulSoup u otro paquete de raspado. O con la ciencia de datos, no necesita implementar todas las matemáticas detrás de un modelo de aprendizaje automático, porque scikit-learn es su amigo. Estos ejemplos son exagerados, pero también hay muchas tareas pequeñas a las que se aplica.

Si lo piensas o lo necesitas, ¡probablemente ya existe!

Comience a escribir su programa con esto en mente, ¡y busque antes de codificar!

Foto de Christian Wiediger en Unsplash

Consejo #5: Optimiza tu código

En la universidad o los cursos, los conjuntos de datos tabulares son bastante pequeños la mayor parte del tiempo. No tiene que pensar en la optimización del código y un bucle for no es un problema. Cuando comience a trabajar en problemas comerciales con datos desordenados y grandes, lo será. Su código puede funcionar bien en el entorno de desarrollo con pocos datos, pero en producción su proceso puede llevar demasiado tiempo.

Un ejemplo de ciencia de datos: no itere sobre filas de marcos de datos. Más bien use la applyfunción np.whereu otra solución vectorizada.

Aquí hay algunos consejos para que comiences.

timeit también podría ser útil, es una biblioteca de Python con una forma sencilla de cronometrar pequeños fragmentos de código. Imagen del autor.

Consejo #6: Manejar excepciones y escribir pruebas

Una parte importante del código listo para producción es el manejo de excepciones. Hace que su código sea robusto. Si no maneja las excepciones, su programa se bloqueará y se cerrará de forma descontrolada.

La forma de manejar las excepciones en Python es mediante el uso tryde exceptbloques. Primero intenta ejecutar algunas líneas de código, y si el código falla, el bloque de excepción se hace cargo. Opcionalmente, puede agregar un bloque elseo .finally

Este tutorial explica el manejo de excepciones si desea obtener más información.

También es útil aprender a probar su código. Durante el desarrollo, puede escribir aserciones. Con las aserciones, tiene controles de cordura para ver si su código se comporta como se esperaba. assert(x==1)volverá Truesi xes igual a 1. Si este no es el caso, la assertdeclaración arroja un error de aserción. Si crea un archivo de prueba y agrega funciones pequeñas con aserciones, estas funciones juntas pueden convertirse en sus pruebas unitarias y puede automatizar sus pruebas.

Consejo #7: Aprende a depurar tu código correctamente

Si está utilizando printdeclaraciones para examinar lo que está haciendo su código, sería mejor que usara un depurador. Un depurador le proporciona herramientas para pausar o congelar su programa en cualquier lugar. Al establecer puntos de interrupción, su código se detiene y puede examinar el estado de ese momento. Puede recorrer su código y puede verificar la lógica o los valores de las variables.

Si usa un IDE como PyCharm o VS Code para ejecutar su código, probablemente sepa cómo depurar. Otra opción con Python es usar el depurador de Python .

Punto de interrupción establecido en la fila 14 (punto rojo). Imagen del autor.

Sugerencia n.º 8: Agregar registro

Con el registro, realiza un seguimiento de los eventos que ocurren cuando se ejecuta su software. Es una parte esencial de su programa, porque ayuda durante el desarrollo. Cuando esté en producción, el registro facilitará la detección de la causa de un problema. Sin, le será difícil encontrarlo.

Iniciar sesión es realmente fácil. En Python, solo necesita escribir las siguientes dos líneas de código:

import logging 
logging.basicConfig(filename='<filename>.log', level=logging.INFO)

Cuando desee registrar un mensaje de información, escriba logging.info('<message>')y para un mensaje de error:logging.error('<message>')

¡Es fácil!

Consejo #9: Agrega documentación

Sí, la documentación es un tema aburrido. Escribir lo que hace su código lleva tiempo y tal vez nadie lo mire. Por otro lado, si quieres escribir código profesional, ¡definitivamente deberías escribir documentación! ¿Conoce un paquete popular sin la documentación adecuada?

La forma más fácil de documentar el código es dejar notas en el código fuente, aunque no recomendaría hacerlo de esta manera. Mucho mejor es usar un paquete como sphinx . ¡ Siga el tutorial y su documentación estará lista y funcionando en muy poco tiempo! Otro beneficio de escribir documentación es que mejorará la forma en que se organiza su código, porque automáticamente tiene que pensar en ello.

El docstring en esta imagen:

Docstring dentro de una función. Imagen del autor.

Muestra esta documentación:

Página web de documentación para la función anterior. Imagen del autor.

Pensamientos finales

Puede resultarle útil aprender sobre git , programación orientada a objetos , complejidad de espacio y tiempo , estructuras de datos , antipatrones y algoritmos . Comprender estos temas definitivamente mejorará tus habilidades de codificación y hará que sea más fácil hablar con personas técnicas. Aunque al final, la parte más importante del trabajo de ciencia de datos es agregar valor comercial utilizando datos. Si es un científico de datos, no tenga miedo de preguntar a algunas personas con experiencia en TI cómo abordarían técnicamente un problema. Esto le da más tiempo para concentrarse en los datos y el valor comercial.

¡Espero que este artículo haya sido útil! ¡Disfruta codificando!

No olvides suscribirte si deseas recibir un correo electrónico cada vez que publique un nuevo artículo.

© Copyright 2021 - 2023 | unogogo.com | All Rights Reserved