Estás a más de la mitad en tu camino de Road to Code, ya aprendiste a programar en Python y seguro estás buscando llevar muchas de las cosas que haces en el mundo real al código como: convertir unidades de medida o hacer cálculos matemáticos que a mano te tomarían más tiempo.
A medida que practicas entenderás mejor cómo funciona la programación en general, buscarás probar alternativas diferentes y poco a poco dominarás conceptos que al principio parecen complejos. En pocas palabras te estás convirtiendo en una programadora que desarrolla su pensamiento computacional.
Existen diversas formas de mejorar este aspecto de nuestra inteligencia, así que te compartiré algunos consejos que seguro podrás aplicar durante tu aprendizaje.
Programar es algo que hacemos para lograr un objetivo, utilizando algoritmos para cumplir un objetivo y existen distintos métodos para antes de escribir código. El método de George Pólya se compone de 4 sencillos pasos para cumplir con nuestro objetivo:
Al momento de abordar un problema podemos hacerlo pensando de una forma convergente o divergente, siendo buena idea aplicar ambas para tener una mejor perspectiva a excepción de cuando las restricciones del mismo no lo permitan.
Al pensar de forma convergente observamos a un problema desde su exterior, de una forma analítica, racional y en el que existe una única solución aceptable. Esto permite que adquirir experiencia en situaciones donde identificamos un patrón, ejercitamos esa lógica para soluciones bien definidas.
Mientras en el pensamiento divergente observamos al problema desde su interior, buscando soluciones diversas, sin patrones definidos y realizando un trabajo más creativo. Hacerlo de esta forma te brindará más flexibilidad y adaptabilidad ante situaciones que son diferentes unas de otras.
Combinar ambas formas de pensamientos te brindará de mejores resultados cada vez y descubrirás que puedes aplicarlos en contextos que quizá pensabas no eran compatibles. Por ejemplo ¿de cuántas formas distintas puedes llegar a 64 en una operación de 2 números y cuántas con 3 números?
Como proceso el pensamiento computacional consta de varias etapas por las cuales muchas veces pasarás de forma empírica:
El primer paso es crucial ya que define la base de etapas posteriores, siempre escucharás “divide un problema en problemas más pequeños para solucionarlos de forma individual” y esto es correcto pero hay algo que no suele mencionarse: piensa también en sus restricciones.
Identificar las restricciones de los elementos de un problema te permitirá identificar a cuales afecta. Si abordas al elemento con más restricciones evitarás cambios constantes en aquellos con menores, que en el sentido contrario tendrías que hacer ajustes para adaptar los elementos con menos restricciones a los que tienen más.
Por ejemplo, en un sistema de inventarios puedes tener varios productos con un identificador, nombre, marca, modelo, categoría, precio, etc. Seguramente tendrás una parte para calcular la venta de un cliente que tomará numero de artículos, precios y quiero que te imagines diseñando este segmento primero.
Recibes un precio, cantidad y calculas el total. Ahora programarás el producto, te das cuenta que es conveniente incluir nombre y marca en la salida del pago. Entonces deberás modificar la parte de venta. Después se añade un descuento a ciertas categorías de productos (que ya están en el producto), así que toca modificar la parte de venta una vez más… y así hasta terminar el caso de uso.
Una consideración importante es que incluso antes de escribir código y afrontar estos posibles cambios hay que definir cuales serán las características de tu proyecto para que exista una correcta adaptabiliad.
En Road to Code tienes una sesión en vivo o meetup cada semana para resolver dudas, interactuar con tus compañeros y el día de hoy 19 de octubre a las 5 pm COL/MEX estará Facundo García, profesor del Curso Básico de Python, resolviendo aquellas inquietudes que tengas al respecto de Python.
¡Te esperamos allá!
Yo tuve dificultades para desarrollar el algoritmo del ejercicio que me estaba planteando 🤔, Pero estoy segura que con el curso propuesto de esta semana lograré un mejor análisis del problema. 😊
#NUNCA_PARAR_DE_APRENDER 🤩
No te des por vencido… todo es practica diaria… (=
El libro cracking the coding interview es demasiado bueno para mejor la algoritmia
he escuchado mucho ese libro … creo que lo leere… sabes si esta en español ?
¿Ese libro está en español?
Con todo respeto y buenas intenciones, creo que no deberian buscar versiones en español, les recomiendo que lo lean en ingles, asi no solo aprenden sobre algoritmos sino que ejercitan y pulen sus habilidades con el ingles para programacion
Comprende el problema
Es interesante ver, tanto en informáticos como en otras carreras, le damos tanta prioridad a “ponernos en acción lo más pronto posible” que obviamos algo tan básico como entender que es lo que está ocurriendo.
Excelente publicación.
Este reto es lo mejor que me paso, hace 1 año no tenia lógica de programación, me costaba mucho y pensé que esto nunca iba a ser para mi, hasta que vi este reto, puse mucho empeño y ahora puedo decir que he mejorado mucho. Muchas gracias platzi, son la mejor inversión que pude hacer :,3. Esta comunidad es la mejor, gracias a todos 😄
Si en la universidad siguen alguna carrera tipo ingeniería civil, mecánica, eléctrica, química, etc., usen python para hacer los cálculos. A veces pienso que es mejor que Excel y matlab. Además, esto nos hace mejorar nuestro pensamiento computacional también.
Buen consejo, gracias.
“Soluciona primero el problema mano (o ten un esquema claro de como proceder) escribe el código después si lo haces al revés estás solucionando dos problemas a la vez”
Hola Hector. Esto de dividir y vencerás, tiene que ver con descomponer un problema en más pequeño, ahí es cuando aplicamos la factorización, ya hablando en términos matemáticos. ¿Es así? o ¿estoy diciendo cualquier cosa? Saludos
Un ejemplo sería el uso de un algoritmo recursivo. Este parte el problema original hasta obtener la solución al mismo problema pero en un caso más sencillo(también llamado el caso base). En matemáticas es lo mismo a las funciones recursivas.
Ah, de acuerdo. Muchísimas gracias.
Muy útiles los métodos, he usado varios sin saber que ese era el procedimiento, pero ahora al tenerlos de guía es mas difícil perderse o divagar en un desarrollo desde 0.
Buen articulo. Ademas, creo que me servira en mi trabajo 😃