Estructura de datos con Python

Una gentil introducción a la estructura de datos y algoritmos con python.

Martin Manriquez Leon
GDG IPN
5 min readMay 28, 2019

--

Hey , hola espero que esta colección de artículos te sean de ayuda para comprender a detalle de que van las estructuras de datos y el uso de algoritmos en el lenguaje de programación python.

¿Por que Python?

Teniendo un mar de posibilidades, ¿ Por que usarPython? Lo sé tal vez si estudiaste computación, sistemas o informática en la universidad tomaste estas materias con el uso de lenguajes de programación como C++, C#, Java o Pascal, y tendrán múltiples argumentos para respaldar porque aprender estructura de datos y algoritmos con otros lenguajes, y estoy totalmente de acuerdo con eso, sin embargo en los últimos años hemos visto un aumento en la demanda de desarrolladores Python y un creciente numero de implementaciones en areas como la medicina, la astronomía, las matemáticas, la psicología y la química. Por lo cual ademas de ser un lenguaje de programación fácil de entender y lleno de virtudes, también es uno que ha tenido una vital relevancia alrededor del mundo y la seguirá teniendo, sin hablar de su amplia implementación en las ciencias de datos(DataSciences).

¿Por que Estructuras de datos?

Si bien puedes ser un desarrollador Wix señor o un programador Bootstrap expert , lamento decirte que el uso de algoritmos y estructuras de datos es fundamental si realmente quieres ejercer una buena carrera como desarrollador, programador, ing. de software, arquitecto de software, Data Scientist, etc. Ya que te brinda la posibilidad de resolver problemas con una mejor lógica y no solamente está cerrado a ser aplicado en carreras de afines a las ciencias de la computación, sino que pueden ser aplicadas a muchas más disciplina, como la medicina, la psicología o la sociología. El entender como resolver un problema de manera más lógica te permite aplicarla en muchos problemas de tu vida cotidiana, como mejorar tus actividades los fines de semana, gestionar una lista de tareas por hacer, o simple y sencillamente, para aplicar una serie de gradientes y determinar si es optimo comprar una baguette o un pan Sandwich de jamón.

Ademas son algunos de los temas mas importantes dentro del desarrollo de software y que se utilizan mucho … mucho ... mucho de forma practica.

¿Vere Fundamentos de Python ?

Desafortunadamente este no es el lugar, por el momento no veremos los fundamentos elementales de python, sin embargo , si te recomendaremos y compartiremos el contenido necesario para que puedas comenzar con una base solida de los fundamentos del lenguaje.

Fundamentos de Python : 👇

¿Como solucionar un problema?

Para solucionar un problema es recomendado seguir los siguientes pasos para buscar la mejor solución posible

Paso 1: ¿Entiende el problema?.

Enfocate en el problema, entiéndelo de arriba abajo, de derecha a izquierda y entiéndelo de la manera mas profunda posible. Un problema es como una relación en pareja, si no lo comprendes a detalle o no le prestas el tiempo necesario, el resultado no te va a gustar. Por lo cual entenderlo con la mayor cantidad de detalles posibles te ayudara a darle una solución optima.

Paso 2: Desarrolla el plan de acción

A hora que el problema a sido entendido hay que desarrollar un plan a seguir, una serie de pasos que se tienen que realizar para que el propósito se cumpla, en este caso solucionar el problema de una forma correcta.

Paso 3: Divide el problema

Una vez entendido que se tiene que hacer pregúntate, ¿Hay alguna tarea o paso a realizar que pueda dividir en tareas o pasos mas pequeños? De encontrar un si, no lo dudes divide, el dividir un gran problema no solo te ayuda a darle una solución mas rápida al problema sino que te permite trabajar de una forma mas ordenada y con mejor calidad .

Paso 4: ¿Bloqueado?

A hora que si bien ya intentaste resolver un problema y llevas ya mucho tiempo dandole vueltas en como resolverlo o dividirlo o no logras entenderlo del todo, tomate un break, cambia de tarea, escucha música, y despeja tu mente, no hay nada peor que intentar resolver un problema estresado, recuerda es mejor hacer las cosas a su tiempo y bien , que hacerlas rápido y llenas de errores.

Paso 5: Copiar o no copiar

Sin duda alguna la respuesta es no copiar, ya que te ayuda a desarrollar tus capacidades y habilidades como desarrollador, y cuando se te presente un problema similar con diferencias te sera menos complicado darle una solución.

A se no mucho tiempo me ocurrió que por querer sacar algo muy rápido cometí uno de los mayores errores que se puede realizar, buscar, copiar una parte y usar el código como base. Este es un gran problema porque no solo estas copiando, si no que estas usando la solución que alguien mas tiene de un problema, otra forma de afrontar un problema que puede ser similar al tuyo, pero si no entiendes a detalle que es lo que hace y porque lo hace estarás perdiendo el tiempo implementando algo que posiblemente ni si quiera te sirva, o si bien te puede llegar a servir no necesariamente tiene porque adaptarse a tu programa ya que esta abordado desde una logica diferente, esto anterior es también conocido como :

El error del novato, copiar sin entender que es lo que se esta copiando .

¿Recuerdas el punto 5 verdad? Pues bien el no bloquearte te permitirá leer código ajeno , entender que hace y pensar en una posible solución a tu problema.

Paso 6: Repasa tu solución al menos tres veces.

Se que después de un bloqueo pueda que quedes devastado y lo ultimo que quieras es volver a ver tu problema y tratar de darle una mejor solución, sin embargo el echo de dejar una solución sin realmente darle mas de una revisada y abordarlo desde distintas perspectivas podría ocasionar que a corto o largo plazo tu solución falle.

Por lo cual te recomiendo seguir los siguientes pasos:

  • Primer leída: Aplica una solución y pruébala en distintos escenarios.
  • Segunda leída: Repara tu solución si es necesario reparar algo.
  • Tercer leída: Mejora tu solución lo mas que puedas.

Sentadas las bases de como resolver un problema y el porque de esta serie de artículos.Durante las siguientes entregas abordaremos uno a uno problemas y tópicos de las estructuras de datos y algoritmia.

Proximo Articulo:
Estructura de datos con Python :La Complejidad Computacional aplicada

No te pierdas las próximas entregas suscribiéndote 👻

--

--

Martin Manriquez Leon
GDG IPN

GDG and Facebook Deveveloper Circle Lead 💙Passionate about M.L.🔬 DataSciences 🧮 & Astronomy 🛰