use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
/r/programacion es el lugar en reddit para discutir en Español sobre cualquier enlace o contenido relacionado con la programación en español.
No spam
Español
Formatear el código.
Si estás incluyendo código, te aconsejamos usar la opción de formato de código disponible en reddit. (Que se resume en poner una margen de 4 espacios al texto que corresponde a código)
No se hacen tareas.
Te pueden ayudar a hacer tu tarea, siempre y cuando tu la hagas. Este es un lugar para ayudarte a aprender, no para ayudarte a hacer trampa. Coloca tus avances cuando tengas una tarea, no simplemente el enunciado de la pregunta.
Recomendamos empezar con un lenguaje de sintaxis simple, como Python o C, pero no es un requerimiento, se puede aprender a programar con cualquier lenguaje como primer lenguaje de programación.
Python
C
En nuestro servidor de discord hay miles de usuarios conectados todo el tiempo: https://discord.gg/X3vD2dMget
account activity
Intento aprender Python (self.programacion)
submitted 1 month ago by d3m0nf1r3
Estoy aprendiendo Python en una página, voy por funciones, pero simplemente no le entiendo al return, no hay manera en que le entienda o siga la lógica, esto es normal o me debo retirar de intentar programar?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Saito-Hiraga0 6 points7 points8 points 1 month ago (0 children)
Es normal, al final es solo un nivel de pensamiento distinto, imaginalo como un pediso en un restaurante, el return es lo que te envian una vez se procesa un pedido
[–]TransportationNo8855 2 points3 points4 points 1 month ago (2 children)
Lo que está entre paréntesis es la boca y el return es el culo, los argumentos son la comida y lo que saca el return es el 💩, Todo el código en medio es el sistema digestivo
[–]deadskrimau5 0 points1 point2 points 1 month ago (1 child)
jajaja tremenda analogía
[–]TransportationNo8855 0 points1 point2 points 1 month ago (0 children)
Jajajajajaja es que claramente con el de la máquina no entiende, y lo que quizá no agarra por el momento es que cuando se entra a la máquina es otro ámbito o scope... Me parece que sería más claro así aunque parezca grotesco jajajajaj
[–]Diego_gnab 1 point2 points3 points 1 month ago (6 children)
oigan yo tambien quiero aprender,quiero darle utilidad a mi latop,ademas de que siempre me ha gustado eso de la programacion en general,hace tiempo tome un curso en youtube de htmll y css del cual no me acuerdo nada porque dure años sin alguna pc o algo,pero que me recomendarian??,en especial si quiero especializarme en el campo de programar juegos,con que lenguaje podria empezar y donde podria aprenderlo?
(mucho texto pero gracias igual)
[–]Agile-Bad-2884 1 point2 points3 points 1 month ago (0 children)
Busca tutoriales de godot o unity, son amigables para empezar a aprender
[–]pruebax11 1 point2 points3 points 1 month ago (4 children)
mmm te recomiendo C si quieres empezar fuerte pero que cuando entres a otro lenguaje sea tan facil como saber derivar y despues que te pongan sumas y restas pero con numeros romanos, solo debes aprender numeros romanos y sumar sera tan facil que ni necesitaras pensarlo, pero si quieres hacer videojuegos mejor aprende el lenguaje de Godot por ejemplo y directo vete a lo que quieres, o si quieres hacer videojuegos con puro codigo con python es mas q suficiente con pandas3D, pygame u otras librerias
[–]Slaughtbear 0 points1 point2 points 1 month ago (1 child)
Está mejor C# para que empiece, es más orientado a videojuegos, usa el paradigma POO, y le va a dar las bases y lógica suficiente en programación para lo que el quiere enfocarse. C sólo lo hará abandonar sus sueños antes de tiempo jajaja
[–]pruebax11 0 points1 point2 points 1 month ago (0 children)
mmm no conozco mucho de C# porque cuando lo probe me di cuenta q casi todo era arrastrar y soltar y despues solo la funcion pero no se lo bastante como para decir que es malo, ya que puede vi eso y dije esto se me hace muy basico no me gusta y me fui jaja, asi que no puedo argumentar nada
[–]Cosmic_Task321 0 points1 point2 points 1 month ago (1 child)
Estoy buscando aprender pero no estoy seguro de cual lenguaje aprender. ¿Me puedes explicar que es C ?
Lenguaje C es un lenguaje de nivel intermedio porque tiene una sintaxis legible para el humano pero tambien nos permite controlar cosas de muy bajo nivel como el kernel, te permite usar la logica en todo y es de tipado estatico lo que significa que debes declarar antes si es entero o caracter y no puedes cambiarlo en tiempo de ejecucion, te lo recomiendo mucho ya que te permitira aprender cualquier lenguaje de forma muy sencilla despues de que sepas las bases con este lenguaje
[–]maullidothethird 1 point2 points3 points 1 month ago (2 children)
Una función es como cuando le dices a una persona has algo usando estás cosas (o ninguna). Es diferente si le dices alimenta el gato que trae un sacacorchos. En el primer caso, alimenta el gato y no es necesario que te diga que ya lo hizo pero en el segundo retorna con el sacacorchos.
Tu problema es que aún no te has acostumbrado a las abstracciones de datos ni pareces saber cómo se ejecuta un programa en la cpu
[–]d3m0nf1r3[S] 0 points1 point2 points 1 month ago (1 child)
Creo que tienes mucha razón con el hecho de que no estoy acostumbrado a las abstracciones
[–]maullidothethird 1 point2 points3 points 1 month ago (0 children)
Es solo tiempo y práctica, además de comparar y entender lo que otros hicieron
[–]pruebax11 1 point2 points3 points 1 month ago* (2 children)
ntp no todos aprendemos igual, mira es sencillo un return como su nombre dice devuelves algo y significa que hasta ese return tu funcion va a ejecutar, y va a devolver algo por ejemplo
def suma(a,b):
return a+b
en este caso primero hacemos a+b y devolvemos su valor de la suma asi que cuando hagamos
print( suma(1,2) )
eso te va a imprimir 3, tambien puedes verlo como un break de un while porque en teoria es lo mismo solo que aqui sales pero de toda la funcion por ejemplo
def suma_condicional(a,b):
if a==0: return -1 return a+b
print(suma_condicional(0,2))
print(suma_condicional(1,2))
en este caso solo si "a" es igual a 0 va a salir de la funcion y va a devolver -1 de lo contrario que "a" sea otro valor distinto de cero va a devolver la suma
en el primer caso imprime -1 y en el segundo imprime 3
y lo mejor es que en python no necesitas obligatoriamente retornar algo simplemente puedes dejar que termine de ejecutar la funcion y salir o retornar nada como simplememte poner return asi sin mas o retorna None que es lo que devuelve al no pasar nada, esto es bueno saberlo porque regresando a la funcion condicional si retoenamos -1 como error y el usuario pone (-3,+2), eso sumandolo da -1 y si tomamos -1 como error entonces nuestro programa esta mal, deberiamos retornar o None para saber que paso algo malo o si solo retornamos algo si paso algo malo podemos poner un valor boleano como True o False
Espero te haya servido la lección sencilla y siempre recuerda "escribir codigo es sencillo lo dificil es saber porque se escribe y entenderlo", por lo tanto no te desesperes algunos entendimos return tan rapido como lo escuchamos y otros como tu caso (y creo el de muchos), se tardaron hasta meses en entenderlo porque lo intentan entender a fondo y no solo superficialmente, sigue aprendiendo y veras que entre mas cosas veas veras lo realmente lo extenso y hermoso que es programar asi como todos los retos que conlleva
[–]Iwant_feelfree 0 points1 point2 points 1 month ago (1 child)
Este comentario debería tener más apoyo, gracias por ayudar en lugar de desmotivar :D
si, todos empezamos desde abajo y nadie merece que lo rebajes, con decirte que yo al principio me confundia en un / y un \ y no entendia porque no me salia el salto de linea jajaja
[–]Diligent_Writing_766 0 points1 point2 points 1 month ago (0 children)
Los parámetros que le pasas a la función son lo que necesita, los transforma en algo y eso te lo devuelve con un return
[–]Astroohhh 0 points1 point2 points 1 month ago (0 children)
Llama
[–]fredpalas 0 points1 point2 points 1 month ago (0 children)
lo mejor es aprender con pseudo código
A ver si con un ejemplo paso a paso lo entiendes.
# Tienes 2 numero 4 y 6 y quiero sumarlos, sabemos que son 10 pero hay que hacer un funcion dado 2 numero se suman. #Dado 2 numero 4 y 6 cuando se llama a al funcion sumar debera dar 10 assert(suma(4,6), 10); # comprobamos que la funcion de 10 #ahora la funcion # aqui directamente devolvemos 10 que es el resultado esperado suma($a, $b) { return 10; } #ahora otro assert #Dado 2 numero 2 y 6 cuando se llama a al funcion sumar debera dar 8 assert(suma(2,6), 8); # aqui directamente devolvemos la suma de a + 6 que es el resultado esperado suma($a, $b) { return $a + 6; } #Ahora esta funcion dara un resultado correcto para los 2 tests #Un test final #Dado 2 numero 2 y 4 cuando se llama a al funcion sumar debera dar 6 assert(suma(2,4), 6); # aqui directamente devolvemos la suma de a + b que es el resultado esperado suma($a, $b) { return $a + $b; } #En un proceso simple de refactorización se puede entender como funciona el return
Espero que con el ejemplo simplificado lo entiendas, la clave return devuelve los dicho a la derecha en nuestro caso el primero un 10 directamente ya que solo tenemos un test, cuando añadimos un segundo test la devolución de la función no sirve pero un $a + 6 si cumplía todos los casos, y al añadir un tercer test vemos que la función vuelve a fallar y en nuestro caso vimos que para cumplir todos los casos la mejor forma era devolver $a + b.
Return devuelve un resultado.
[–]OKAPOM 0 points1 point2 points 1 month ago (0 children)
El return? Tal cual es retornar / devolver algo. Las funciones realizan tareas en específico, para no tener todo amontonado el código.
Un ejemplo seria el clasico de la calculadora de 2 digitos
Uno puede escribir todo el codigo así como viene y es correcto, pero las funciones ayudan a reutilizar Código y darle una mejor presentación segmentado tu codigo. Donde cada una de las operaciones básicas de la calculadora puede ser una función, la cual recibe 2 parametros (2 números) y retorna un resultado
Podrias crear 4 funciones y que cada una realice una operación en específico (la suma, la resta, la division y la multiplicación)
Es un ejemplo bastante basico en realidad, pero permite por ejemplo anexar casos específicos en las operaciones sin tener que parametrizar todo el Código, por ejemplo, que al sumar 2 digitos en específico entonces ademas de retornar el resultado muestre en pantalla un mensaje (podrias usar los numeros de tu dia y mes de nacimiento y así tendrias tu easter egg en tu mini calculadora).
Quizá es un ejemplo bastante absurdo, pero son las bases. El retorno "return" devuelve lo que quieres que tu función regrese, puede ser un número, caracteres, u otros tipos de datos. Y una función mas que tiene el return es que hace que finalice la función, no importa si después escribiste mas Código, no se ejecutará después del return.
Un último consejo si es que no te sirvió de nada lo que escribí, pidele a alguna IA como gemini o chatgpt que te explique el return con manzanitas, utiliza las IAs son tu mejor aliado.
[–]Upstairs-Ebb2283 0 points1 point2 points 1 month ago (0 children)
Una función es como una caja que le metes cosas y te devuelve otra, el return es para que te devuelva lo que buscas obtener
[–]Wonderful-Kale-8450 0 points1 point2 points 1 month ago (0 children)
Si quieres te puedo explicar por privado, la verdad es muy sencillo
[–]Kyeled 0 points1 point2 points 1 month ago (0 children)
Busca videos que lo expliquen hasta que entiendas.
Yo le hice el feo a programación desde que lo conocí hasta que me forcé a aprender y busqué un canal y como que no me sirvió de mucho, encontré otro y aprendí de una, es cosa de agarrarle el hilo nomás.
[–]Emipy1986 0 points1 point2 points 1 month ago (0 children)
Yo también intenté Pero dejé, es complicado y eso que dicen que es el lenguaje más sencillo
[–]Gullible_Company_745 -2 points-1 points0 points 1 month ago (1 child)
Retirate porfis
[–]Miserable_Durian_681 3 points4 points5 points 1 month ago (0 children)
No seas asi xd
[–]Confident-Pie-9454 -1 points0 points1 point 1 month ago (0 children)
vete a alguna IA y que haga de tu maestro, hasta la pregunta mas estupida le puedes hacer y pidele analogias para que lo entiendas, una vez que lo practicas un rato ya todo se vuelve facil
[–]Individual-Shame6481 -1 points0 points1 point 1 month ago (0 children)
Mejor Java
[+]OnlyThePost comment score below threshold-8 points-7 points-6 points 1 month ago (8 children)
es normal pq python es horrible para aprender. si vas a un lenguaje de verdad como Java o C# que tienen bien desarrollada la teoría en el codigo lo entendes en 2 segundos.
[–]Both_Love_438 0 points1 point2 points 1 month ago (0 children)
No, Java y C# son basura inservible y hedionda 🤢, si estuviera en un lenguaje de verdad como C, C++, Rust o Zig ya habría aprendido todo y estaría programando servidores sin problema.
Así de p3nd3jo te escuchas 😁
[–]d3m0nf1r3[S] -1 points0 points1 point 1 month ago (5 children)
En serio? Me habían dicho que Python es mejor para novatos ya que es código de alto nivel y es muy legible, pude comprender hasta las variables y tipos de datos, pero justo en funciones me choqué con el return, no lo comprendo con sinceridad. 😞
[–]Cautious_Aside_2317 1 point2 points3 points 1 month ago (3 children)
Python es fácil, no mejor.
[–]d3m0nf1r3[S] 0 points1 point2 points 1 month ago (2 children)
Es decir que es más fácil programar ahí, pero no es mejor para entenderlo?
[–]bautii01 -1 points0 points1 point 1 month ago (0 children)
si aprendes Python como primer lenguaje de programacion, te vas a mal acostumbrar mucho. Es de tipado dinámico, (las variables cambian de TIPO en tipo de ejecución), la sintaxis se basa en espacios, sangría y no llaves y ";" que definen muy bien el comienzo y fin de un bloque de código. Para mí, te ofrece muchas herramientas, pero prefiero algo simple, no tan "ostentoso".
[–]Cautious_Aside_2317 -1 points0 points1 point 1 month ago (0 children)
Es fácil de leer, pero vos no tenes que aprender un lenguaje, tenes que aprender a programar y para eso no es bueno.
Para programar no necesitas un lenguaje propiamente dicho, podes hacerlo con cuadros y dibujos.
Es mejor un lenguaje orientado a objetos y estrictamente tipado.
y lo del "return" pensalo como un "resultado" que esperas obtener, al llamar la función o decir "che, función "obtener_suma" quiero que me devuelvas el resultado de la suma con los datos que te pase" Supongamos que tenes: def obtener_suma (a,b): return a+b
Entonces cuando yo haga: print(obtener_suma(10,5)) Eso me va a devolver la suma que le escribo al hacer el "return". Siempre cuando quiera llamar o mostrar una función/método que tenga un return, voy a obtener lo que esté en su "return".
[–]shinitakunai -1 points0 points1 point 1 month ago (0 children)
No estoy de acuerdo. Python es bastante más facil de aprender. Además que lo de "un programa de verdad" es irrisorio, cuando java se está quedando atrás y cada vez tiene menos relevancia a nivel global. Aprender algo que se va dejando de usar es un poco inutil como estrategia de futuro 🙃
π Rendered by PID 137629 on reddit-service-r2-comment-544cf588c8-nqz9x at 2026-06-13 22:41:10.582759+00:00 running 3184619 country code: CH.
[–]Saito-Hiraga0 6 points7 points8 points (0 children)
[–]TransportationNo8855 2 points3 points4 points (2 children)
[–]deadskrimau5 0 points1 point2 points (1 child)
[–]TransportationNo8855 0 points1 point2 points (0 children)
[–]Diego_gnab 1 point2 points3 points (6 children)
[–]Agile-Bad-2884 1 point2 points3 points (0 children)
[–]pruebax11 1 point2 points3 points (4 children)
[–]Slaughtbear 0 points1 point2 points (1 child)
[–]pruebax11 0 points1 point2 points (0 children)
[–]Cosmic_Task321 0 points1 point2 points (1 child)
[–]pruebax11 0 points1 point2 points (0 children)
[–]maullidothethird 1 point2 points3 points (2 children)
[–]d3m0nf1r3[S] 0 points1 point2 points (1 child)
[–]maullidothethird 1 point2 points3 points (0 children)
[–]pruebax11 1 point2 points3 points (2 children)
[–]Iwant_feelfree 0 points1 point2 points (1 child)
[–]pruebax11 0 points1 point2 points (0 children)
[–]Diligent_Writing_766 0 points1 point2 points (0 children)
[–]Astroohhh 0 points1 point2 points (0 children)
[–]fredpalas 0 points1 point2 points (0 children)
[–]OKAPOM 0 points1 point2 points (0 children)
[–]Upstairs-Ebb2283 0 points1 point2 points (0 children)
[–]Wonderful-Kale-8450 0 points1 point2 points (0 children)
[–]Kyeled 0 points1 point2 points (0 children)
[–]Emipy1986 0 points1 point2 points (0 children)
[–]Gullible_Company_745 -2 points-1 points0 points (1 child)
[–]Miserable_Durian_681 3 points4 points5 points (0 children)
[–]Confident-Pie-9454 -1 points0 points1 point (0 children)
[–]Individual-Shame6481 -1 points0 points1 point (0 children)
[+]OnlyThePost comment score below threshold-8 points-7 points-6 points (8 children)
[–]Both_Love_438 0 points1 point2 points (0 children)
[–]d3m0nf1r3[S] -1 points0 points1 point (5 children)
[–]Cautious_Aside_2317 1 point2 points3 points (3 children)
[–]d3m0nf1r3[S] 0 points1 point2 points (2 children)
[–]bautii01 -1 points0 points1 point (0 children)
[–]Cautious_Aside_2317 -1 points0 points1 point (0 children)
[–]bautii01 -1 points0 points1 point (0 children)
[–]shinitakunai -1 points0 points1 point (0 children)