Bueno yo aprendi todo esto en la universidad pero se agradece que este tipo de videos existan para la gente autodidacta y pueden aprender de verdad los fundamentos de la programación.
Minutos: 2:25 Condicionales 6:58 La mecanica de los bucles 13:04 operaciones y sus efectos secundarios en la memoria 18:09 Funciones y la pila de llamadas
En realidad no es tan básico, detrás de toda esa sintaxis hay millones de circuito lógicos y cuando programas en lenguaje de bajo nivel recién lo podrás entender.
@@Pepe_Grillo41 Vi assembly. Te lo dan el primer año. No discuto que está buenísimo, discuto que eso es básico, por algo te lo dan el primer año, para que sepas de entrada que pasa por detrás.
@@francogarcia2668 entiendo lo que dices bro, pero para la mayoria de nosotros que somos autodidactas y empezamos por lenguajes de alto nivel como python esto nos parrece simplemente algo nuevo que se podria decir añade un poco mas de nivel a lo que ya sabias, es basico pero como dijiste es algo que al aprenderlo te sorprende. ppd: donde aprendiste tu?
Como ingeniero en computación valoro mucho el trabajo de síntesis que hiciste en este vídeo y les invito a todos los interesados en las temáticas del vídeo a investigar mas por su cuenta, les juro que hay un mundo detras de cada punto que nombró.
Esto sería como un "FILOSOFAR SOBRE LA LÓGICA DE LA PROGRAMACIÓN" me encanta Porque en fin de cuentas los programadores somos eso, y nos apasiona eso, el entender la lógica de las cosas, que es la lógica por la que se mueven todas las cosas de este mundo. Nos encanta ver un problema y intentarle encontrar la vuelta para resolverlo, y no sacárnoslo tan fácilmente de la cabeza, y sentirnos obligados a que ese problema que se nos presentó, encontrarle la vuelta para reconfortarnos con ese placer final de haber entendido el secreto que había dentro de él, y qué era lo que nos faltaba para llegar a ello (y maldecirlo por ser tan rebuscado y complejo, y haberte hecho pasado momentos de estrés)... Hasta algunos me han hecho replantearme de si realmente es la programación lo que me apasiona, si realmente disfuto de mi labor. Y hasta a veces sigo dudando de si es lo que realmente me gusta o no. Pero me quedo, al final, con el placer y el orgullo de haber logrado resolver todos los problemas que la vida me puso, y de haber seguido luchando por conseguir ese sueño, que no sé si al final de cuentas me va a hacer feliz del todo, pero necesito llegar a él y sacarme esa duda. O por lo menos sentirme orgulloso de haber llegado a algo que no me hubiese imaginado antes que iba a poder llegar.
En mi caso aprendi todo esto atando cabos, se podria decir, ya que no fuí a la facultad, sino que por simple curiosidad y la ansiedad que me genera el hecho de no saber cómo funciona realmente algo. Por otro lado, tambien enseño programación y muchas veces busco analogias simples para comunicar mejor una idea y algunos detalles de este video los voy a utilizar. Buen video.
Cabooooooooon!!! Soy profe de programación y robótica, justo les había preparado una clase de transición de un lenguaje de programación a la robótica con Arduino a mis alumnos y tenía armado algo como esto, aunque me hiciste ver unos detalles que se me habían pasado
En realidad tengo que discutir su explicación sobre las condicionales. En una CPU x86, tenemos una serie de registros, pero para el caso de los condicionales lo que interesa es el registro de banderas. Cuando se hace un if, la cpu ejecuta una instrucción llamada "cmp" la cual viene de la palabra inglesa comparar. A bajo nivel lo que representa cmp es una resta, por tanto es la ALU la que realiza esta operación, dependiendo de cual se el resultado de la operación, el registro de banderas sufrirá cambios. Por ejemplo, supongamos que comparamos A = 2 con B = 2, ambos valen dos, y se realiza un cmp A, B. Aquí cmp efectúa la resta y activa la flag ZF (ZeroFlag) lo que implica que el resultado de la comparación(resta) es 0. Ahora, tenemos una instrucción de salto llamada JE(JumpEquals) que realiza un salto si la flag ZF fue activada, en este caso como si fue activada el salto se efectúa hacia una dirección de memoria donde proseguirá con la ejecución. Ahora, hay mas de 10 instrucciones de saltos o algo asi, una para cada operación que se pueda realizar con un if, osea tenemos una instrucción de salto para ver si un valor es igual a otro, si un valor es mas grande, menor, diferente u similar, pero tmb tenemos otras que están relacionados a si el valor tiene signo,, o causa o overfload y etc: Aqui nombro alguna de las instrucciones de salto posibles: JMP JA (JNBE) JAE (JNBE) JB (JNAE) JBE (JNA) JE (JZ) JNE (JNZ) JG (JNLE) JGE (JNL) JL (JNGE) JLE (JNG) JC JNC JNO JNP (JPO) JNS JO JP (JPE) JS También he de poner a discusión el tema de los LOOPS, por que aun que es cierto que algunos lenguajes hacen el mecanismo de etiqueta-condiciona-salto, en los procesadores x86 tenemos instrucciones de bucles especificas para estas cosas que el compilador puede tomar mas oportuno usar, alguna de las instrucciones de LOOPs posibles: LOOP LOOPE LOOPNE También tengo que poner en cuestión lo del tema de la pila y funciones, no necesariamente el programa a de poner la dirección de retorno en la pila eso depende de la convención de llamadas, mañana puede venir alguien y decidir crear su propia convención de llamadas y en lugar de poner los argumentos de la función en la pila o en los registros y la dirección de retorno en la pila, decida ponerlo en otro lugar.
@@desmon3341 Yo pienso que el objetivo del video no es ir tan al detalle ni dar información reveladora, sino, introducir al "programador x correspondencia" que se hizo un cursito de JS en udemy a lo que realmente implica saber programar. Yo creo que suma al menos un poco y, quien te dice, tal vez logra que alguno se anote a hacer la carrera de verdad o a estudiar al menos un poquito de lógica.
@@ElKolimar entiendo el punto, tal.vez se me van las palabras por que me gusta el tema de bajo nivel y cuando tengo la oportunidad de hablar de lo que me gusta la exploto
@@desmon3341 Me encanta leer a gente que sabe de lo que habla y que se nota que le gusta. Felicidades. También entiendo el otro punto de vista, de no tener que ir a tanta "profundidad" porque la gente se perderá como le metas ensamblador de golpe jajajaja. Un saludo!
¿Profe de robótica? Además de usar Arduino podrías bajar durante una semana al ensamblador del microprocesador, más que nada para que vean que hay cerca del metal: registros, interrupciones y segmentos especiales de memoria.
Que pedazo de vídeo. Estoy en el segundo año de la carrera de Desarrollo de Software y tu vídeo fue la síntesis de mis dos primeros cuatrimestres. Algoritmia + programación + arquitectura + sistemas operativos. Felicitaciones 👏🏾👏🏾👏🏾👏🏾
Sos un genio. El millón va a llegar, al igual que en la programación y dato no menor, todo proceso tiene su tiempo en que se cumpla lo que pedimos o llamamos. Tenes que estar en el #1ro
muy bueno, al final capas que hubiese estado bueno agregar listas dinamicas, que son basicamente esapacios en memoria que almacenan el valor, el tipo de valor y un puntero al lugar de donde esta el siguiente espacio en memoria, ahi la ejecucion yo no tarda tan poco como en una lista fija, pero si te pormite extender la lista a n elementos
Dalto! Esperamos el curso de ensamblador con ansias! que de verdad, como usted lo dice va abrir mucho la parte lógica, que es uno de los factores más importantes en el mundo de la programación, ya que no solo es tirar código. Te felicito por brindar ese apoyo, y dedicación a tus videos! Excelente!!!
25:20 Según tenía entendido, la operación de acceder a listas en Python no toma un tiempo constante, ya que esto puede variar según el largo de la lista y en dónde esté ubicado el valor requerido, pudiendo el tiempo tomar, en el peor de los casos, lo que toma acceder al último elemento en dicha lista. Otras estructuras de datos como los HashMap permiten acceder a elementos almacenados en tiempo constante, ya que se entrega una key para buscar dicho elemento, mientras que en las listas se deben recorrer los elementos almacenados. La operación de acceso tiene una medida de complejidad O(1) en ambas estructuras de datos, pero no es constante en las listas. No sé si te confundiste en ese momento o yo he errado en algo, pero lo hago notar por si acaso a alguien le sirve, es muy importante saber que, en algunas situaciones, usar listas disminuye bastante el rendimiento, en relación a diccionarios y demás.
Muy buen video, yo soy nuevo en programación es la primera vez que me explican todo el código que conlleva en realizar una acción en un lenguaje de alto nivel
Estaría buenísimo un curso de ensamblador, muchísimos dirían como: "Ah!, por eso este código me daba un error" o "Ah, por eso se crasheaba el programa" ya que se aprendería mucho de programación a bajo nivel, también estaría bueno un curso de c++
En 5 semestres no pude aprender a programar, por trabajar deje la universidad y es frustrante al final no saber nada. La constancia no la conocí, ánimos a quienes estan empezando con todo.
Nice! Increible que todo eso que mencionaste lo intuia por que empece a programar en c++ con arduino y pues soy electronico asi que pude comprender conceptos de programacion ya que al final son on/off o switch mas complejos que hacen los IC Señores! un consejo si quieren aprender programación desde una perspectiva mas completa les sugiero empezar por electronica por que al final lo que hacen los microcontroladores que se programan, uno las hace con los IC o circuitos integrados osea que tu haces las PCB y ahi no hay programación digital mas si no de unir puertas dicho en otras on/off con MOSFETS, transistores, ic, o hasta capacitores, etc
Cuando estaba en la uni en una de las clases nos pusieron a programar un microcontrolador para encender y apagar luces de forma que creara patrones. Para eso aprendimos un poco de ensamblador, particular para ese microcontrolador y como decís en el video, se te abre la cabeza totalmente. Al programar en ensamblador obtenes un entendimiento más profundo de la arquitectura de la computadora y de como es que realmente se ejecuta el programa. Por cierto, buenísimo tu canal.
Bien daltó no había visto un curso qué hablaran de esto que es importante, ésto lo aprendí en parte fue por los libros porque las personas qué impartía solo iban directo a un lenguaje
Necesito aprender lenguaje ensamblador, más que todo para conocer las estructura y arquitectura de los múltiples tipos de condicionales, creo que eso me abrirá un abanico de ideas nuevas de lógica de cómo hacer cosas que antes no hacia.
Grande bro, sigue asi cada dia aprendo más cosas nuevas contigo. Y por favor haz el curso de ensamblador seria muy interesante y nos ayudaria a comprender mas este mundo de la programacion
Yo entendi este rollo ahora que soy programador porque tambien soy electrónico, y tuve que hacer en protoboard calculadoras con compuertas logicas....ademas programe tambien con ensamblador para microcontroladores PIC 😊
Está genial el tema, me recuerda a mi primer cuatrimestre en una tecnicatura de desarrollo de software en la materia de lógica computacional, donde veíamos desde los sistemas binario y hexacedimal hasta longitudes de palabra y compuertas lógicas. Es bueno profundizar en el tema para saber qué hay más detrás de escena, buen video.
Tremendo video crack. Para la gente que recién empieza, algo que les puede servir para entender mas fácil estas lógicas, es hacer un par de cosas con "raptor", funciona con diagramas de flujo y ayuda a entender de manera muy simple los conceptos como: condicionales, variables, bucles, etc. Después se hace mas fácil trabajar con cualquier lenguaje porque entienden como funciona la lógica.
Alguien tenía que decirlo, la mayoría de los programadores olvidan que están manipulando cuando programan. De mi parte adelante con el curso de ensamblador, me dedicaré a verlo y darte el like correspondiente. Excelente tu canal!
Dalto pedazo de video que te subiste!! Podrías hacer un curso de Programación en R y Python para ciencia de datos? Agradecerte por los cursos de Python y SQL me han ayudado un montón gracias por darte el tiempo de hacer todo este conjunto de videos.
Profe llegué, estoy intentando cambiar mi vida hace un tiempo, este video es un pasito mas, siento que va a ayudar muchisimo a este cambio. Nos vemos en un tiempo.
Muy biennn! @Soy Dalto, no sé si hay otros programadores que explican esto, peri hasta ahora este aporte es de lo que deben ver las personas cuando se inician en la programación. Es de suma, pero de.muchísima importancia conocer cómo funciona tu herramienta de trabajo ( No es lo mismo coger un cuchillo de cocina para desatornillar que tomar el destornillador) asi que desde que han salido los lenguajes de programación han salido una serie de encapsulamiento de procesos que para las personas hoy día sería irrelevante siempre y cuando haga lo que necesito, esto se deja para las personas de a pie, pero el programador debe saber que sucede por debajo. Cuando llegaste a las listas pense que seguías con arrays vs map.😂😂😂😂
lo de emsamblador es verdad, yo lo vi en la universidad, ya que estudio ingenieria electronica, ya que se utiliza para programar micro controladores ya que es muy eficiente para cuando se trata de gastar el menos consumo energetico
Muy buen video. Te felicito por todo lo que hacés, muy buenot, y la idea de Assembler está genial! aunque me parece que debe estar acompañado por algo de arquitectura de computadores y circuitos lógicos. Seguí así capo!
Dalto excelente video. Muchas gracias por tanta informacion tan productiva. seria bueno y bastante funcional un curso de INTELIGENCIA ARTIFICIAL. Los q encuentro no es q sirvan mucho q digamos
Creo que a lo que le llamas lista es en verdad un array estático, al ser del mismo tipo los elementos se puede buscar en O(1) pero en una lista enlazada se debe recorrer objeto por objeto desde el head lo que da O(n)
Daltooooo, por favor hacer el curso de assembler (y si es con MPLAB mejor), es verdad que ya casi no se usa, pero yo tuve que empezar a aprenderlo para la facu para programar PICs, y encima todavia debo esa materia jajaja Apenas vi la miniatura y el titulo del video sabía a que te referias, porque ya me toco sufrirla pero es como decis vos, te abre la mente en cuanto lógica de programación, lo que antes eran 2 lineas se vuelven 6 y te querés volver loco cuando encima son anidados. Es dificil encontrar videos del tema en español, y mucho más dificil un curso actualizado. Espero que lo hagas, son un genio! Abrazo grande!
Pague un curso de Cayetano Juan Ubeda, en assembly. Estaria muy interesante ver un curso de assembly tuyo, teniendo en cuenta que tomas esos detalles pequeños y los marcas.
Por eso los índices de los arrays y las listas comienzan por cero, porque así para calcular el índice de otro elemento pueden multiplicar directamente el número del indice por los bytes de memoria y les da directamente la dirección de memoria, mientras que si empezara en 1 tendrían que hacer una resta adicional
Hace el curso de ensamblador! Seria muy útil no solo para programación sino también para otras áreas tales como analisís de malware. Muy bueno el canal!
24:08 Te faltó algo en la fórmula, Dalto: 1. Dirección Base del Array 2. Índice del Elemento 3. Tamaño del Elemento La fórmula corregida es: Dirección del Elemento = Dirección Base del Array + (Índice del Elemento * Tamaño del Elemento);
Dalto estaría buenísimo el curso de lenguaje ensamblador, yo lo estoy viendo ahora en la facultad después de aprender a codear y la verdad son buenisimos, sería súper interesante
Ya lo espesificastes al pricipo depende mucho de la plataforma de desarrollo y lenguaje por ejemplo si necesitas hacer un sistema con muchos calculos recurrentes en paralelo en hardware que permita el multithreading tu opcion es C++ por encima de python puedes ver en muchos software en ocaciones una mescla de varios lenguajes pero en aras de una mayor coecion he integracion que resulta en mejor rendimientos la intencion es llevar todo al mismo lenguaje del core, ahora todo esto ya alguien lo penso por ti o son parte del flujo de trabajo lo importante es saber utilizar las buenas practicas de desarrollo aplicadas al ámbito teórico mientras tanto puedes estar implementando en cualquier lenguaje incluso sistemas logicos visuales a partir de nodos la eficiencia es tu lógica
Nota, las validaciones siempre se tienen que hacer en backend. En el front se hacen para mejorar la UX pero no es seguro hacerlo precisamente por lo que has dicho, porque el hardware está en el cliente y es manipulable
Muy buena la perspectiva que abordaste para el video, es clave entender el funcionamiento de la computadora mas allá de las instrucciones que uno le da, un libro muy bueno para complementar que toca lógica de programacion en sus raíces es: "But how do it know " de J. Clark Scott. Buen video rey, nos vemos en el ada13! 💪
Man me gusta ese tema de cómo funciona todo al más bajo nivel, te diría q hicieras más vídeos así pero no creo q a todos le guste, pero podrías decirme cómo se le llama a eso, a ese nivel de comprensión pa buscar y aprender más? Gracias por tus vídeos Man los aprecio
ya me suscribí a tu canal , ha si vamos por ese millón jejejejejeje 😁😁😁😁 el día 7 de agosto del 2023 a las 22:36 horas desde Buenos Aires, Argentina jejejejjee
Muy buen video! 👏👏.Toca temas muy importantes, todas estás cuestiones de la que está hablando se ven mucho en la facultad. Cuando un empieza en la carrera y estudian un lenguaje , siempre nos enseñan que está pasando detrás de ese código. Muy pocos cursos hablan de esto , sólido dalto 😎👏
muy interesante el video me sirvió para darme cuenta que sí entendía las bases de la programación. creo que es la única ventaja que tiene hacer la carrera universitaria que te obligan a aprender ensamblador. y te enseña lenguajes antiguos como c y c++ en los que se nota más cómo funciona por detrás la programación
Eso lo de que manda a llamar como que su propio bucle me vino una ves a la mente cuándo estaba haciendo un if y dije...al final de cuentas es parecido que un bucle solo falta con regresar a las mismas lineas, sin embargo no se podía llamar, ya hasta que aprendí métodos que dije, ahora si es como falsear un bucle sin necesidad de el mismo bucle, me explotó la cabeza ese día
@@agustinfarias9207, en la universidad, existen materias específicas en las que aprendes estos aspectos. No son ningún “truco”. Por ejemplo, en la mía, durante el el primer ciclo, en “Matemática para informática”, se aprende teoría de conjuntos, álgebra de boole, se introduce a los algoritmos, se aprenden los principios de recursividad, etc. Más adelante, en materias como “sistemas operativos, diseño de bases de datos, estructuras de datos”, aprender sobre el uso de la memoria, y todos los otros temas que menciona el video, yo no los consideraba “trucos”, por qué para mí como estudiante universitario, todo eso era OBVIO, y ver que había gente que en realidad no sabía eso, me hace cuestionarme muchas cosas.
@@alekelbarree son bellísimas esas materias ahora mismo estoy en complejidad algorítmica y veo que todo lo que vi hasta cálculo 3 y álgebra lineal si se aplicará desde ahora en adelante
Entonces se podría decir que en realidad los condicionales como los conocemos en algún lenguaje de programación, no son condicionales como tal, ¿sino que son interruptores?
Yo estoy aprendiendo mucho preguntando al Copilot las razones de cuestiones de programación, y muchas veces contesta aludiendo a elementos básicos de la máquina que normalmente se desconocen y da mucha comprensión
se pueden apoyar con matematicas discretas es una rama de matematicas, dirigida a la logica booleana. o logica matematica, esto te ayuda a comprender mas sobre las compuertas logicas operadores logicos ya que existen mas, solo que no se ven a detalle. como la teoria de conjuntos, proposiciones o la tabla de verdad. hasta el mapa de karnoug ayuda a comprender esta logica.
Banco la idea de un curso de ensamblador pero me disgusta la idea de que tengas que invertir tanto tiempo y esfuerzo en algo que quizás no vaya a utilizar nunca. Aprovecho este comentario para agradecerte, ya que gracias a vos, hoy en día estoy trabajando de lo que amo, te deseo el mayor de los éxitos y espero poder seguir aprendiendo junto a vos.
No he aprendido y ya voy aprender a desaprender🧐
No mames 🤣🤣🤣🤣
🧐
En 5 semestres no aprendendi :(
Yo sabía HTML y CSS pero ahora olvide todo 🤕
😂😂😂
Haz el curso de ensamblador. El nivel de programación subira al maximo al aprenderlo, felicidades por tu canal
No laburó en su vida, nunca toco codigo y vos queres que haga un curso de ASM? jajjaja
@@nicos1776 estas seguro de eso? has visto sus videos? primero informate y despues habla
Ya lo está armando, lo tengo hackeado, no lo sabe, lo le digan.
@@kingkamii_yt7165 100% seguro
Tengo años de experiencia y las cosas que hace, dice y muestra dalto son como de junior
@@nicos1776 y justamente ese es su objetivo, no enseña TODO de un lenguaje sino lo básico
Bueno yo aprendi todo esto en la universidad pero se agradece que este tipo de videos existan para la gente autodidacta y pueden aprender de verdad los fundamentos de la programación.
ya he aprendido muchos lenguajes y tecnologias, pero fue por youtube y udemy asi que estos videos son muy buenos
Minutos:
2:25 Condicionales
6:58 La mecanica de los bucles
13:04 operaciones y sus efectos secundarios en la memoria
18:09 Funciones y la pila de llamadas
Esto es BASICO... Lo estas presensanto como algo super avanzado y no lo es.
En realidad no es tan básico, detrás de toda esa sintaxis hay millones de circuito lógicos y cuando programas en lenguaje de bajo nivel recién lo podrás entender.
@@francogarcia2668 por que choto me comentan a mi
@@Pepe_Grillo41 Vi assembly. Te lo dan el primer año. No discuto que está buenísimo, discuto que eso es básico, por algo te lo dan el primer año, para que sepas de entrada que pasa por detrás.
@@francogarcia2668 entiendo lo que dices bro, pero para la mayoria de nosotros que somos autodidactas y empezamos por lenguajes de alto nivel como python esto nos parrece simplemente algo nuevo que se podria decir añade un poco mas de nivel a lo que ya sabias, es basico pero como dijiste es algo que al aprenderlo te sorprende.
ppd: donde aprendiste tu?
Como ingeniero en computación valoro mucho el trabajo de síntesis que hiciste en este vídeo y les invito a todos los interesados en las temáticas del vídeo a investigar mas por su cuenta, les juro que hay un mundo detras de cada punto que nombró.
De acuerdo, el la carrera te enseñan todos los fundamentos detrás
Esto sería como un "FILOSOFAR SOBRE LA LÓGICA DE LA PROGRAMACIÓN" me encanta
Porque en fin de cuentas los programadores somos eso, y nos apasiona eso, el entender la lógica de las cosas, que es la lógica por la que se mueven todas las cosas de este mundo. Nos encanta ver un problema y intentarle encontrar la vuelta para resolverlo, y no sacárnoslo tan fácilmente de la cabeza, y sentirnos obligados a que ese problema que se nos presentó, encontrarle la vuelta para reconfortarnos con ese placer final de haber entendido el secreto que había dentro de él, y qué era lo que nos faltaba para llegar a ello (y maldecirlo por ser tan rebuscado y complejo, y haberte hecho pasado momentos de estrés)... Hasta algunos me han hecho replantearme de si realmente es la programación lo que me apasiona, si realmente disfuto de mi labor. Y hasta a veces sigo dudando de si es lo que realmente me gusta o no. Pero me quedo, al final, con el placer y el orgullo de haber logrado resolver todos los problemas que la vida me puso, y de haber seguido luchando por conseguir ese sueño, que no sé si al final de cuentas me va a hacer feliz del todo, pero necesito llegar a él y sacarme esa duda. O por lo menos sentirme orgulloso de haber llegado a algo que no me hubiese imaginado antes que iba a poder llegar.
Excelente che, me encantaron tus explicaciones!!! Eso que tengo casi 50 años me pareció bastante entendible todo lo que explicaste!!!
En mi caso aprendi todo esto atando cabos, se podria decir, ya que no fuí a la facultad, sino que por simple curiosidad y la ansiedad que me genera el hecho de no saber cómo funciona realmente algo.
Por otro lado, tambien enseño programación y muchas veces busco analogias simples para comunicar mejor una idea y algunos detalles de este video los voy a utilizar.
Buen video.
uff dalto este video simplemente es grandioso, tuve que repetir algunas partes pero entendi todo, gracias bro, esperando el video de emsamblador.
felicitaciones Lucas en el camino hiciste que un montón de personas aprendan y ese es el mejor merito.
abrazo grande desde Mar del Plata
Cabooooooooon!!! Soy profe de programación y robótica, justo les había preparado una clase de transición de un lenguaje de programación a la robótica con Arduino a mis alumnos y tenía armado algo como esto, aunque me hiciste ver unos detalles que se me habían pasado
En realidad tengo que discutir su explicación sobre las condicionales. En una CPU x86, tenemos una serie de registros, pero para el caso de los condicionales lo que interesa es el registro de banderas. Cuando se hace un if, la cpu ejecuta una instrucción llamada "cmp" la cual viene de la palabra inglesa comparar. A bajo nivel lo que representa cmp es una resta, por tanto es la ALU la que realiza esta operación, dependiendo de cual se el resultado de la operación, el registro de banderas sufrirá cambios. Por ejemplo, supongamos que comparamos A = 2 con B = 2, ambos valen dos, y se realiza un cmp A, B. Aquí cmp efectúa la resta y activa la flag ZF (ZeroFlag) lo que implica que el resultado de la comparación(resta) es 0. Ahora, tenemos una instrucción de salto llamada JE(JumpEquals) que realiza un salto si la flag ZF fue activada, en este caso como si fue activada el salto se efectúa hacia una dirección de memoria donde proseguirá con la ejecución. Ahora, hay mas de 10 instrucciones de saltos o algo asi, una para cada operación que se pueda realizar con un if, osea tenemos una instrucción de salto para ver si un valor es igual a otro, si un valor es mas grande, menor, diferente u similar, pero tmb tenemos otras que están relacionados a si el valor tiene signo,, o causa o overfload y etc:
Aqui nombro alguna de las instrucciones de salto posibles:
JMP
JA (JNBE)
JAE (JNBE)
JB (JNAE)
JBE (JNA)
JE (JZ)
JNE (JNZ)
JG (JNLE)
JGE (JNL)
JL (JNGE)
JLE (JNG)
JC
JNC
JNO
JNP (JPO)
JNS
JO
JP (JPE)
JS
También he de poner a discusión el tema de los LOOPS, por que aun que es cierto que algunos lenguajes hacen el mecanismo de etiqueta-condiciona-salto, en los procesadores x86 tenemos instrucciones de bucles especificas para estas cosas que el compilador puede tomar mas oportuno usar, alguna de las instrucciones de LOOPs posibles:
LOOP
LOOPE
LOOPNE
También tengo que poner en cuestión lo del tema de la pila y funciones, no necesariamente el programa a de poner la dirección de retorno en la pila eso depende de la convención de llamadas, mañana puede venir alguien y decidir crear su propia convención de llamadas y en lugar de poner los argumentos de la función en la pila o en los registros y la dirección de retorno en la pila, decida ponerlo en otro lugar.
@@desmon3341 Yo pienso que el objetivo del video no es ir tan al detalle ni dar información reveladora, sino, introducir al "programador x correspondencia" que se hizo un cursito de JS en udemy a lo que realmente implica saber programar. Yo creo que suma al menos un poco y, quien te dice, tal vez logra que alguno se anote a hacer la carrera de verdad o a estudiar al menos un poquito de lógica.
@@ElKolimar entiendo el punto, tal.vez se me van las palabras por que me gusta el tema de bajo nivel y cuando tengo la oportunidad de hablar de lo que me gusta la exploto
@@desmon3341 Me encanta leer a gente que sabe de lo que habla y que se nota que le gusta. Felicidades. También entiendo el otro punto de vista, de no tener que ir a tanta "profundidad" porque la gente se perderá como le metas ensamblador de golpe jajajaja.
Un saludo!
¿Profe de robótica? Además de usar Arduino podrías bajar durante una semana al ensamblador del microprocesador, más que nada para que vean que hay cerca del metal: registros, interrupciones y segmentos especiales de memoria.
Que pedazo de vídeo. Estoy en el segundo año de la carrera de Desarrollo de Software y tu vídeo fue la síntesis de mis dos primeros cuatrimestres. Algoritmia + programación + arquitectura + sistemas operativos. Felicitaciones 👏🏾👏🏾👏🏾👏🏾
Ya que estás con el tema, podrias hacer otra parte del video hablando de algoritmos y complejidad computacional, un tema super interesante!
Me subió el autoestima. Conocia todo (algunas en mayor o menor medida) como con la pila de ejecucion y las closures
Sos un genio. El millón va a llegar, al igual que en la programación y dato no menor, todo proceso tiene su tiempo en que se cumpla lo que pedimos o llamamos. Tenes que estar en el #1ro
muy bueno, al final capas que hubiese estado bueno agregar listas dinamicas, que son basicamente esapacios en memoria que almacenan el valor, el tipo de valor y un puntero al lugar de donde esta el siguiente espacio en memoria, ahi la ejecucion yo no tarda tan poco como en una lista fija, pero si te pormite extender la lista a n elementos
Dalto! Esperamos el curso de ensamblador con ansias! que de verdad, como usted lo dice va abrir mucho la parte lógica, que es uno de los factores más importantes en el mundo de la programación, ya que no solo es tirar código. Te felicito por brindar ese apoyo, y dedicación a tus videos! Excelente!!!
25:20 Según tenía entendido, la operación de acceder a listas en Python no toma un tiempo constante, ya que esto puede variar según el largo de la lista y en dónde esté ubicado el valor requerido, pudiendo el tiempo tomar, en el peor de los casos, lo que toma acceder al último elemento en dicha lista. Otras estructuras de datos como los HashMap permiten acceder a elementos almacenados en tiempo constante, ya que se entrega una key para buscar dicho elemento, mientras que en las listas se deben recorrer los elementos almacenados. La operación de acceso tiene una medida de complejidad O(1) en ambas estructuras de datos, pero no es constante en las listas. No sé si te confundiste en ese momento o yo he errado en algo, pero lo hago notar por si acaso a alguien le sirve, es muy importante saber que, en algunas situaciones, usar listas disminuye bastante el rendimiento, en relación a diccionarios y demás.
Creo que Dalto estaba pensando en lenguajes de bajo nivel solamente, por cómo lo dice.
Si si, en python eso tiene una complejidad de tiempo promedio de O(1), me referia a lenguajes de bajo nivel exactamente!
Muy buen video, yo soy nuevo en programación es la primera vez que me explican todo el código que conlleva en realizar una acción en un lenguaje de alto nivel
Me encantan estas cosas, saber lo basico que se hace en el hardware con la programacion!
Estaría buenísimo un curso de ensamblador, muchísimos dirían como: "Ah!, por eso este código me daba un error" o "Ah, por eso se crasheaba el programa" ya que se aprendería mucho de programación a bajo nivel, también estaría bueno un curso de c++
En 5 semestres no pude aprender a programar, por trabajar deje la universidad y es frustrante al final no saber nada.
La constancia no la conocí, ánimos a quienes estan empezando con todo.
Tu puedes todavia hay tiempo.
Nice! Increible que todo eso que mencionaste lo intuia por que empece a programar en c++ con arduino y pues soy electronico asi que pude comprender conceptos de programacion ya que al final son on/off o switch mas complejos que hacen los IC
Señores! un consejo si quieren aprender programación desde una perspectiva mas completa les sugiero empezar por electronica por que al final lo que hacen los microcontroladores que se programan, uno las hace con los IC o circuitos integrados osea que tu haces las PCB y ahi no hay programación digital mas si no de unir puertas dicho en otras on/off con MOSFETS, transistores, ic, o hasta capacitores, etc
Cuando estaba en la uni en una de las clases nos pusieron a programar un microcontrolador para encender y apagar luces de forma que creara patrones. Para eso aprendimos un poco de ensamblador, particular para ese microcontrolador y como decís en el video, se te abre la cabeza totalmente. Al programar en ensamblador obtenes un entendimiento más profundo de la arquitectura de la computadora y de como es que realmente se ejecuta el programa.
Por cierto, buenísimo tu canal.
2:28 inicio
Mereces que te vaya bien! gracias por todo!
Bien daltó no había visto un curso qué hablaran de esto que es importante, ésto lo aprendí en parte fue por los libros porque las personas qué impartía solo iban directo a un lenguaje
Excelente explicación, el detalle hace la diferencia, debemos ser artesanos del SW! Saludos man!
Necesito aprender lenguaje ensamblador, más que todo para conocer las estructura y arquitectura de los múltiples tipos de condicionales, creo que eso me abrirá un abanico de ideas nuevas de lógica de cómo hacer cosas que antes no hacia.
Sii Dalton Assembler es lo más para aprender!!!
@19:02 Menciona función (def) y se lee en el vídeo if (condicional). Seguramente es un error de tipeo. Saludos
Grande bro, sigue asi cada dia aprendo más cosas nuevas contigo. Y por favor haz el curso de ensamblador seria muy interesante y nos ayudaria a comprender mas este mundo de la programacion
Yo entendi este rollo ahora que soy programador porque tambien soy electrónico, y tuve que hacer en protoboard calculadoras con compuertas logicas....ademas programe tambien con ensamblador para microcontroladores PIC 😊
Está genial el tema, me recuerda a mi primer cuatrimestre en una tecnicatura de desarrollo de software en la materia de lógica computacional, donde veíamos desde los sistemas binario y hexacedimal hasta longitudes de palabra y compuertas lógicas. Es bueno profundizar en el tema para saber qué hay más detrás de escena, buen video.
Haz el curso de ensamblador. Cuenta conmigo.
Vaya, me has hecho recordar cosas que ya tenía olvidadas como el ensamblador que aprendí a finales de los ochenta.
Me dejo buen aprendizaje este video sobre todo por la frase "El alto nivel es la abstracción del alto nivel".
Tremendo video crack. Para la gente que recién empieza, algo que les puede servir para entender mas fácil estas lógicas, es hacer un par de cosas con "raptor", funciona con diagramas de flujo y ayuda a entender de manera muy simple los conceptos como: condicionales, variables, bucles, etc. Después se hace mas fácil trabajar con cualquier lenguaje porque entienden como funciona la lógica.
like para que dalto haga el curso de assembler!
Hola Dalto, Estaría bueno un curso de Estructuras de Datos... Saludos soy tu fan
Alguien tenía que decirlo, la mayoría de los programadores olvidan que están manipulando cuando programan. De mi parte adelante con el curso de ensamblador, me dedicaré a verlo y darte el like correspondiente. Excelente tu canal!
Excelente info¡¡¡¡ Te superas con un curso de ensamblador¡¡¡¡
Me gustaría ver un curso de lenguaje ensamblador
no te gustaria
@@coldcoder23 XDD
Dalto pedazo de video que te subiste!! Podrías hacer un curso de Programación en R y Python para ciencia de datos?
Agradecerte por los cursos de Python y SQL me han ayudado un montón gracias por darte el tiempo de hacer todo este conjunto de videos.
Profe llegué, estoy intentando cambiar mi vida hace un tiempo, este video es un pasito mas, siento que va a ayudar muchisimo a este cambio. Nos vemos en un tiempo.
Muy biennn! @Soy Dalto, no sé si hay otros programadores que explican esto, peri hasta ahora este aporte es de lo que deben ver las personas cuando se inician en la programación. Es de suma, pero de.muchísima importancia conocer cómo funciona tu herramienta de trabajo ( No es lo mismo coger un cuchillo de cocina para desatornillar que tomar el destornillador) asi que desde que han salido los lenguajes de programación han salido una serie de encapsulamiento de procesos que para las personas hoy día sería irrelevante siempre y cuando haga lo que necesito, esto se deja para las personas de a pie, pero el programador debe saber que sucede por debajo. Cuando llegaste a las listas pense que seguías con arrays vs map.😂😂😂😂
lo de emsamblador es verdad, yo lo vi en la universidad, ya que estudio ingenieria electronica, ya que se utiliza para programar micro controladores ya que es muy eficiente para cuando se trata de gastar el menos consumo energetico
Muy buen video. Te felicito por todo lo que hacés, muy buenot, y la idea de Assembler está genial! aunque me parece que debe estar acompañado por algo de arquitectura de computadores y circuitos lógicos. Seguí así capo!
Dalto excelente video. Muchas gracias por tanta informacion tan productiva. seria bueno y bastante funcional un curso de INTELIGENCIA ARTIFICIAL. Los q encuentro no es q sirvan mucho q digamos
Creo que a lo que le llamas lista es en verdad un array estático, al ser del mismo tipo los elementos se puede buscar en O(1) pero en una lista enlazada se debe recorrer objeto por objeto desde el head lo que da O(n)
Daltooooo, por favor hacer el curso de assembler (y si es con MPLAB mejor), es verdad que ya casi no se usa, pero yo tuve que empezar a aprenderlo para la facu para programar PICs, y encima todavia debo esa materia jajaja
Apenas vi la miniatura y el titulo del video sabía a que te referias, porque ya me toco sufrirla pero es como decis vos, te abre la mente en cuanto lógica de programación, lo que antes eran 2 lineas se vuelven 6 y te querés volver loco cuando encima son anidados.
Es dificil encontrar videos del tema en español, y mucho más dificil un curso actualizado.
Espero que lo hagas, son un genio! Abrazo grande!
24:10 en los arrays es algo que siempre quise ver cuando empece, porque si se almacena pero queria ver el como o donde.
Pague un curso de Cayetano Juan Ubeda, en assembly. Estaria muy interesante ver un curso de assembly tuyo, teniendo en cuenta que tomas esos detalles pequeños y los marcas.
Por eso los índices de los arrays y las listas comienzan por cero, porque así para calcular el índice de otro elemento pueden multiplicar directamente el número del indice por los bytes de memoria y les da directamente la dirección de memoria, mientras que si empezara en 1 tendrían que hacer una resta adicional
Se puede cambiar el if por un array... Llamar a la función a[0]() si no se cumple, y a[1]() si se cumple.
Te quiero mucho luquitas! tengo ganas de conocerte ya el 13 de septiembre
de donde sos? así capaz podemos ir juntos
Seeee a romper todo el 13, ahi estare como invitado vip, gracias por la invitacion... saludos
Hace el curso de ensamblador! Seria muy útil no solo para programación sino también para otras áreas tales como analisís de malware. Muy bueno el canal!
necesito un curso de C++ tuyo Dalto, sería otro éxito
24:08
Te faltó algo en la fórmula, Dalto:
1. Dirección Base del Array
2. Índice del Elemento
3. Tamaño del Elemento
La fórmula corregida es:
Dirección del Elemento = Dirección Base del Array + (Índice del Elemento * Tamaño del Elemento);
Jajajaja no ví que era de hace unos minutos, apoyo la idea de hacer el vídeo de ensamblador
Amigo @Soy Dalto gracias por tus videos, yo siempre recomiendo tus videos a mi grupo de WhatsApp de programación!
Wuau dalto sos un verdadero maestro 👏 ❤.. Además del Millon, te mereces un Oscar o Martin Fierro.
¡Me apunto al curso de lenguaje ensamblador!
Por cierto, tienes a un nuevo suscriptor.
¡Saludos!
Necesito el curso de ensamblador, posta sería una bomba hecho por dalto
Dalto estaría buenísimo el curso de lenguaje ensamblador, yo lo estoy viendo ahora en la facultad después de aprender a codear y la verdad son buenisimos, sería súper interesante
Quánticamente! entendido o desentendido, bueno tu entiendes!
Ya lo espesificastes al pricipo depende mucho de la plataforma de desarrollo y lenguaje por ejemplo si necesitas hacer un sistema con muchos calculos recurrentes en paralelo en hardware que permita el multithreading tu opcion es C++ por encima de python puedes ver en muchos software en ocaciones una mescla de varios lenguajes pero en aras de una mayor coecion he integracion que resulta en mejor rendimientos la intencion es llevar todo al mismo lenguaje del core, ahora todo esto ya alguien lo penso por ti o son parte del flujo de trabajo lo importante es saber utilizar las buenas practicas de desarrollo aplicadas al ámbito teórico mientras tanto puedes estar implementando en cualquier lenguaje incluso sistemas logicos visuales a partir de nodos la eficiencia es tu lógica
Nota, las validaciones siempre se tienen que hacer en backend. En el front se hacen para mejorar la UX pero no es seguro hacerlo precisamente por lo que has dicho, porque el hardware está en el cliente y es manipulable
Muy buena la perspectiva que abordaste para el video, es clave entender el funcionamiento de la computadora mas allá de las instrucciones que uno le da, un libro muy bueno para complementar que toca lógica de programacion en sus raíces es: "But how do it know " de J. Clark Scott. Buen video rey, nos vemos en el ada13! 💪
Grande, estos videos valen millones.
me gusto ver una mencion a ensamblador, nunca se menciona y justo hace 3 dias empece a leer un libro de ensamblador :)
Man me gusta ese tema de cómo funciona todo al más bajo nivel, te diría q hicieras más vídeos así pero no creo q a todos le guste, pero podrías decirme cómo se le llama a eso, a ese nivel de comprensión pa buscar y aprender más? Gracias por tus vídeos Man los aprecio
ya me suscribí a tu canal , ha si vamos por ese millón jejejejejeje 😁😁😁😁 el día 7 de agosto del 2023 a las 22:36 horas desde Buenos Aires, Argentina jejejejjee
Muy buen video! 👏👏.Toca temas muy importantes, todas estás cuestiones de la que está hablando se ven mucho en la facultad. Cuando un empieza en la carrera y estudian un lenguaje , siempre nos enseñan que está pasando detrás de ese código. Muy pocos cursos hablan de esto , sólido dalto 😎👏
ECX es un registro, se almacena en el procesador . Las variables se almacenan en memoria RAM
esperamos el curso de ensamblador! pronto Dalto!!!!!
Sí por favor haz el curso de ensamblador.Hay pocos videos sobre eso en la red y eso me ayudaría mucho!
Me encanto la idea del curso de ensamblador!!!! buen laburo
Estaría chévere el curso de assembly para fortalecer lógica fundamental
Cuenta en ascendencia jajaja.
Muy buen video DALTO!
muy interesante el video me sirvió para darme cuenta que sí entendía las bases de la programación. creo que es la única ventaja que tiene hacer la carrera universitaria que te obligan a aprender ensamblador. y te enseña lenguajes antiguos como c y c++ en los que se nota más cómo funciona por detrás la programación
porfavor, haz el curso de emsamblador, nos abrira la mente, buen video, felicidades
Eso lo de que manda a llamar como que su propio bucle me vino una ves a la mente cuándo estaba haciendo un if y dije...al final de cuentas es parecido que un bucle solo falta con regresar a las mismas lineas, sin embargo no se podía llamar, ya hasta que aprendí métodos que dije, ahora si es como falsear un bucle sin necesidad de el mismo bucle, me explotó la cabeza ese día
El ciclo de la vida supongo.
Nacemos, crecemos, morimos. Aprendemos, usamos, desaprendemos.
🫠🫠🫠
Excelente video!!! porfavorr un cursito de ensamblador!! saludos y abrazo grande desde Uruguay
por favor curso de ensamblador daltoooo!
Hoy entendí cuál es la diferencia entre una persona que aprendió a programar en la Universidad y una que fue solamente autodidacta.
jajaaj y cual fue la dif
@@agustinfarias9207, en la universidad, existen materias específicas en las que aprendes estos aspectos. No son ningún “truco”. Por ejemplo, en la mía, durante el el primer ciclo, en “Matemática para informática”, se aprende teoría de conjuntos, álgebra de boole, se introduce a los algoritmos, se aprenden los principios de recursividad, etc.
Más adelante, en materias como “sistemas operativos, diseño de bases de datos, estructuras de datos”, aprender sobre el uso de la memoria, y todos los otros temas que menciona el video, yo no los consideraba “trucos”, por qué para mí como estudiante universitario, todo eso era OBVIO, y ver que había gente que en realidad no sabía eso, me hace cuestionarme muchas cosas.
@@alekelbarree son bellísimas esas materias ahora mismo estoy en complejidad algorítmica y veo que todo lo que vi hasta cálculo 3 y álgebra lineal si se aplicará desde ahora en adelante
Depende de la universidad igual, no todo el que vaye a una quiere decir que sea igual
Entonces se podría decir que en realidad los condicionales como los conocemos en algún lenguaje de programación, no son condicionales como tal, ¿sino que son interruptores?
Hoy en el dia de la programación pasaste de caerme muy mal a caerme muy bien, feliz día a todos los programadores🎉❤
haz uno de COBOL te lo agradeceriamos muchisimo muchas personas ya tiene un campo laboral increible y esta super bien pagado. 🙏
Esto lo acabo de ver en este semestre de la carrera en lenguajes y autómatas 2. Está bonito jsjs
Yo estoy aprendiendo mucho preguntando al Copilot las razones de cuestiones de programación, y muchas veces contesta aludiendo a elementos básicos de la máquina que normalmente se desconocen y da mucha comprensión
se pueden apoyar con matematicas discretas es una rama de matematicas, dirigida a la logica booleana. o logica matematica, esto te ayuda a comprender mas sobre las compuertas logicas operadores logicos ya que existen mas, solo que no se ven a detalle. como la teoria de conjuntos, proposiciones o la tabla de verdad. hasta el mapa de karnoug ayuda a comprender esta logica.
buen video Dalto, lo unico que sabia era los de las condicionales, la tengo re grande 💪
Bueno Dalto, aquí estoy, considero que tengo buena lógica, escribo esto antes de comenzar con el desarrollo del víodeo, a ver si aprendo algo nuevo!
No sabía todo esto che. Muy bueno!
Esto es lo mas interesante que has hecho.
dale dalto, queremos ese curso de assembly
Banco la idea de un curso de ensamblador pero me disgusta la idea de que tengas que invertir tanto tiempo y esfuerzo en algo que quizás no vaya a utilizar nunca. Aprovecho este comentario para agradecerte, ya que gracias a vos, hoy en día estoy trabajando de lo que amo, te deseo el mayor de los éxitos y espero poder seguir aprendiendo junto a vos.