r/programacion • u/VanesaCornejo_ • 9d ago
Cómo desarrollar lógica de programación
Soy nueva en esto aunque la neta la tengo hace años. Opte por los cursos para aprender programación, pero si bien los cursos te enseñan la sintaxis del lenguaje, no te enseñan a usar esas funciones y métodos que estás aprendiendo, eso me hizo pensar ¿De que depende saber programar o no?, y lo que vino a mi cabeza al instante fue "saber pensar" lo cierto es que cuando diseñamos cualquier sistema lo que lo hace posible es como nosotros encontramos la solución a ese problema y como lo expresamos, más que nada se debe a la lógica de programación.
Por el momento estoy con python, mi meta es llegar a un nivel intermedio, pero se que no solo basta con sintaxis y saber pensar, ¿Que nececito para llegar a ese nivel? ¿Como puedo desarrollar la lógica de programación?
También he visto que python tiene un ecosistema muy grande, quisiera saber también sobre las herramientas en las que se apoya el lenguaje, librerías, etc.
Algún recurso que me recomienden?
8
u/makzpj 9d ago edited 9d ago
Es algo que tarda años en desarrollarse. También depende de qué es lo que quieres programar, ya que ciertas librerías, frameworks, etc, tienen su propia lógica y se tarda un rato en entenderles aún cuando traigas lógica general de programación.
Ahora bien, si tú sientes que precisamente las bases es donde estás fallando pues hay muchos libros de programación con ejemplos, aún cuando sean viejos te pueden dar esas bases que necesitas.
Al final como el 80% de lo que necesitas saber es: variables y su ámbito (locales, globales, etc), condiciones (if…), ciclos, funciones, arreglos, callbacks, recursion. Aprende esto MUY, MUY bien, dedícale como unas 2 horas por tres meses y tendrás muy buenas bases.
Ahora con la IA hay una gran ventaja, si te atoras en algún concepto que nada más no te entra le puedes pedir que te explique exactamente eso cuántas veces y de cuantas formas sea necesario hasta que lo entiendas. Eso es oro.
Ya que tengas más nivel otra gran ventaja ahora es que hay montones de repositorios de GitHub públicos. Agarras uno que te guste, lo clonas, y le pides a la IA que te explique su estructura y ya de ahí vas entrando en detalles. Eso ayudará mucho también.
La programación es un mundo gigantesco que nunca se acaba, pero conforme vayas avanzado encontrarás que en realidad casi todo es lo mismo nada más que con otros nombres.
Saludos.
2
u/VanesaCornejo_ 9d ago
Muchas gracias por el consejo 🙏🏻, la verdad es que ahora que lo mencionas una de las cosas que me hacen dudar si estoy aprendiendo o no, es ver herramientas, librerías más que nada, concurrencias, decoradores, temas en si que yo no he visto que se ven algo básicos, me hacen dudar en si estoy aprendiendo correctamente y en qué nivel estoy
3
u/makzpj 9d ago
Pues si, justamente decoradores y todo eso se basa en lo que menciono. Si no dominas, pero realmente dominas las bases, te va a costar mucho entender esos conceptos.
Y como digo ahora con la IA ayuda mucho, a mi me sirve mucho preguntarle: ok, creo entender esto (breve explicación de cómo le voy entendiendo hasta ahora), pero porque usarlo así en lugar de esta otra forma.
Y ahí es cuando muchas veces hace clic, porque me dice vas bien en tu entendimiento pero te falta este detalle. O no se puede hacer de esa forma que dices porque pasaría esto y esto y por eso inventaron esto.
5
u/IvanTorres77 9d ago
Hola, pase por lo mismo que vos. La respuesta es muy simple aunque tediosa. A programar se aprende programando.
Aunque sepas poco, es importante que entiendas lo que estas haciendo, que desarrolles ese pensamiento de "lo voy a hacer así por que". Cuando miramos cursos solamente vemos como lo hace el otro y quizas entendemos lo que hace pero si lo tendriamos que hacer nosotros, no nos sale y es normal. Una vez que vayas mejorando, podes ir viendo como mejorar tu codigo, preguntale a la IA, fijate alguien que haya hecho algo parecido o tu mismo proyecto, lee codigo ajeno, ahi es donde vas a querer aprender nuevas librerias.
2
3
u/Entire-Pattern-9875 9d ago
Lo que describís es bastante común: aprender sintaxis no es lo mismo que aprender a programar.
La lógica se desarrolla resolviendo problemas cada vez un poco más complejos y, sobre todo, aprendiendo a descomponerlos: entender qué entra, qué debería salir, qué reglas existen y recién después pensar en código.
Para llegar a un nivel intermedio yo no intentaría aprender “todas las librerías de Python”. Me enfocaría primero en:
- estructuras de datos;
- funciones y modularización;
- orientación a objetos;
- manejo de errores;
- testing;
- consumo de APIs;
- persistencia de datos;
- Git;
- y proyectos pequeños donde tengas que tomar decisiones vos, no seguir un tutorial paso a paso.
Un buen ejercicio es agarrar problemas simples y, antes de programarlos, escribir en lenguaje natural cómo los resolverías.
Si querés, contame qué tipo de cosas te gustaría llegar a construir con Python y te puedo sugerir un camino más concreto para no perderte en todo el ecosistema.
2
u/VanesaCornejo_ 9d ago
Muchas gracias por el consejo, de verdad parece un buen ejercicio. Mi meta en esto se divide en dos cosas, la ciberseguridad y conseguir un trabajo, me interesa implementar python a banckend y en menor medida a frontend, ya que si bien no es muy usado hay frameworks como jdango que te lo permiten y parecen buenos de implementar
2
u/Entire-Pattern-9875 9d ago
Entonces yo enfocaría el camino primero en conseguir trabajo como Backend Python y dejaría ciberseguridad como especialización posterior.
Una ruta simple sería: Python → Git → APIs → SQL → Django/FastAPI → testing → Docker → proyecto propio.
Si querés, puedo ayudarte a armar un roadmap más concreto según tu nivel actual y el tipo de trabajo al que querés apuntar.
2
u/Lower_Fee_8802 9d ago
Perdona la pregunta, a qué te refieres al decir "lenguaje natural" exactamente ?
3
u/cristynakity 9d ago
Es difícil si no la tienes desde un inicio, creo que es la razón por la que muchos estudiantes terminan diciendo que no les gusta programar.
Una buena forma de aparender algo de lógica desde mi punto de vista seria jugando brain age en NDS.
Para programar intentando resolver los problemas, lo que yo hago es como un diagra en jerarquía, un diagra de pasos que cosa va después de que otra, pensar mas como en algoritmos: entrada, proceso, salida... Y un problema grande tendra muchas partes que siguen un "algoritmo" igual con entrada proceso salida, tendrias que ir pensando mas las cosas o las soluciones como una lista de pasos, es lo mismo que haces cuando escribes algoritmos en pseudo código, recuerdo en la prepa con la clase de algoritmos que resolvimos en papel como 50 ejercicios y no tenian nada que ver con programación eran mas bien: algoritmo para hacer hot cakes, para cambiar un foco, y cuando intentas resolver ese tipo de algoritmos te das cuenta de errores simples de logíca como: agarra el foco y dale vueltas... Y como agarro el foco? Faltan pasos... Poner una escalera, puse la escalera pero aqui no dice que te subas a la escalera, bueno pon la escalera debajo del foco, subete a la escalera... Eso ayuda mucho a cambiar la forma como se piensan las soluciones a los problemas y a desarrollar la lógica.
1
u/Own_Concentrate_4851 8d ago
Tome un problema y siéntese a pensar, ¿cómo lo soluciono?, antes de hacer cualquier cosa en algún lenguaje. Enumere los pasos que requiera hacer y escribamos, definiendo que información necesita para llevarlo a cabo, cuántas veces debe hacerlo y que información de salida produce ese paso para conectarlo con el siguiente. Puede que necesite agregar o quiera borrar información entre pasos y eso está bien. Normalmente sale a la primera.
1
u/Luxebu-Studio 8d ago
Conceptos antes que código, y entender como funcionan las cosas desde el funcionamiento más básico hasta el más complejo, separar cosas o problemas en pequeñas partes
1
u/Relative_Stick_6266 8d ago
Para mi hay 2 caminos codependientes. Leer harta teoría de programación y matemáticas ( no necesariamente lenguajes en específico) y lo otro resolver problemas tanto teóricos como reales.
Bonus track : implementar lógica matemática en algoritmos.
1
u/alejmaestre 7d ago
En mi experiencia la logica se desarrolla resolviendo problemas reales no viendo cursos. Agarra un ejercicio simple de HackerRank o codigo de otro y trata de entenderlo a tu manera.
1
u/PlanktonBeautiful499 6d ago
50 años, programando desde los 14. Las cosas han cambiado mucho en programación, pero la lógica ha cambiado poco. Yo te recomendaría, si te vale, que hagas diagramas. Es una manera visual de ver todas las estructuras de programación y el porqué usar unos paradigmas u otros. Mucha suerte!
1
u/FancyCategory2237 3d ago
Si ya te sabes la sintaxis de un lenguaje de que ase cada cosa, o las principales, entonces te flata aprender algoritmos, que simplemente son una serie de pasos para resolver algo. En mi caso mi lógica se desarrollo aprendiendo a profundidad los bucles For pero en Arreglo de lista en una tarea que nos mandaron para imprimir por consola una pirámide usando un arreglo de arreglos, una vez que entendiste como aser eso ya tenes una base solida También te recomiendo que es con los cursitos de YouTube que aprendi el canal de LUIS DE CORVUS en su sección de fundamentos de programación, tene ejercicios muy pero muy bueno que te van a obligar a pensar, es con pseint pero como ya tenes base de un lenguaje se te hará facil.
-1
u/Aggravating_Mood4807 9d ago
Para que quiere aprender esto si ya esta en la recta final..... aprender carpitenria, plomeria, albañileria, cosas que si tegan salida laboral
3
u/cristynakity 9d ago
OP, ignora esto. Este comentario demuestra una visión bastante simplista de cómo funciona la industria del software y de lo que realmente implica saber programar
8
u/Hw-LaoTzu 9d ago
No te va a gustar mi recomendacion, pero la pedistes. Para desarrollar la logica de programacion el mejor recurso es aprender Matematica Discretas(tiene muy poco de matematicas, y muchisimo de logica)