Resuelvo esta PRUEBA T脡CNICA para PROGRAMADORES Junior en cualquier LENGUAJE
喔澿副喔
- 喙喔溹涪喙佮笧喔`箞喙喔∴阜喙堗腑 7 喔.喔. 2025
- 馃 Mi nuevo campus de programaci贸n: mouredev.pro
Cursos, ejercicios, test, certificados, soporte, comunidad y mucho m谩s.
(Usa el cup贸n "PRO" para ahorrar un 10% en tu primera suscripci贸n)
He adaptado la prueba t茅cnica del Tetris para Junior y cualquier lenguaje de programaci贸n. Aqu铆 te ense帽o c贸mo resolverla.
馃 Estudia Inteligencia Artificial en Platzi: platzi.com/bra...
馃枼 Practica l贸gica de programaci贸n: retosdeprogram...
馃摫 Mis redes y enlaces de inter茅s | moure.dev
馃暪 Twitch (En directo de Lunes a Viernes): / mouredev
馃懢 Discord: mouredev.com/d...
馃摉 隆He publicado mi primer libro! "Git & GitHub desde cero"
鈥 Amazon: mouredev.com/l...
鈥 Leanpub: mouredev.com/e...
#Python #Programaci贸n #Junior
馃 Estudia Inteligencia Artificial en Platzi: platzi.com/braisai
馃枼 Practica l贸gica de programaci贸n: retosdeprogramacion.com/semanales2023
30 a帽os en programaci贸n y me parece interesante el video, estas practicas son muy recomendables como retos para la gente que se dedica a esto para coger agilidad mental en resolver problemas, intentar crear, que salte un problema, resolverlo y continuar, esto es el d铆a a d铆a de un proyecto. No rendirse ni desesperarse, solo re intentarlo, el lenguaje casi es lo de menos :)
C贸mo junior igual te agradece como el otro sujeto
Consejo:Si llegas a pedir trabajo como programador jr. Y te piden como prueba que programes un tetris en 40 min, aparte de ser una falta de respeto al trabajo de Aleksei Pazhitnov. Alejate de ese lugar o no te sorprendas a que llegen un viernes a las 6pm pidiendote que programes algo con que hacerle competencia al midjourney y al chat gpt y que lo quieren temprano para el sabado a lss 9am. 馃槄
No necesariamente. A veces adem谩s de la espertis t茅cnica lo que se puede evaluar es como nos manejamos en dichas situaciones.
@@LuisGerardoCollazosCastro pero no hay forma de que un junior pueda hacer un tetris y menos en 40 minutos
Llevo a帽os programando en JavaScript y sin saber nada de Python he entendido todo el c贸digo.
A veces no es tanto saber el lenguaje sino comprender los conceptos de la programaci贸n.
隆Muy buen tutorial! 馃挋
Program茅 un tetris en Java hace algo m谩s de d茅cada y media... Me sent铆a muy orgulloso del resultado... Lo hice usando una matriz y un par de vectores y n煤meros 馃嵑
Ah mira, ya tengo el 50% de mi pr贸ximo video.
xD
En COBOL?
tiene que ser en cobol o sql no acepto otro :v
en CSS
En PROLOG
Apenas estoy iniciando y pues por obvias razones me pareci贸 complejo, pero igual es un disfrute ver como explicas. Muchas gracias por resolver la prueba t茅cnica y ense帽arnos como.
7 a帽os programando y este tipo de videos son muy importantes, es la base que todo programad@r debe tener, tengo que confesar que reci茅n ahorita, estoy viendo m谩s y m谩s este tipo de contenido por su valor educativo.
para mi que llevo un mes con la programaci贸n me parece alucinante, evidentemente para el que sabe es f谩cil, para mi, aun me pierdo en algunas cosas.Buen铆sima la explicaci贸n para salir de muchas dudas.. A seguir estudiando .
Tambien llevo 1 mes con Python y es alucinante ese codigo
muy bueno!
peque帽a aclaraci贸n: no tiene sentido usar map(str, row) en ese punto, porque de hecho map() retorna un , por lo que usarlo como par谩metro del join es medio raro, aunque funciona porque ese objeto es iterable.
incluso es raro definir cada fila como una colecci贸n de caracteres, porque eso es, justamente, un string.
se puede usar: "".join(row) y es mucho m谩s efectivo (y certero).
de todos modos, estuvo genial toda la explicaci贸n.
Hola. Muchas gracias por el feedback 馃檶 La idea de los retos es hacer c贸digo que no sea demasiado "exclusivo" del lenguaje para que pueda verse como algo gen茅rico.
Muy buen tutorial y enfoque para resolverlo. 12 a帽os trabajando de programador y considero que ponerte un problema como este y que se espere resolver en 40 minutos es de traca xD Y mas si dices que la prueba adaptada que has hecho es mas sencilla que la que se pedia de origen... Me gusta mucho como has explicado, suscrito! :)
Me ha encantado, y creo que lo has explicado s煤per bien. Yo lo habr铆a planteado de manera completamente diferente (OOP con la pieza como objeto, las rotaciones como m茅todos, etc), y continuamente pensaba "haci茅ndolo como lo hace va a tener este y este problema". Pero no, has sorteado de manera excelente todo los problemas que yo imaginaba. Por cierto, quer铆a comentar que menuda gesti贸n de lo del input de teclado en Mac, no? Para evitar un potencial problema, te meten uno terriblemente m谩s real, como es el obligarte a ejecutar como administrador un c贸digo random de Python. A nada que tengas un bug, Apple te ha obligado a que ejecutes ese bug como root. Ale, t贸cate los huevos. Y si te mandan un programa malicioso y lo ejecutas, en vez de hacer un da帽o limitado como usuario, acabas haciendo un da帽o terrible por obligarte a ser administrador. Alucinante.
Ese fue mi proyecto de final de estudios (formaci贸n profesional en Espa帽a). Un tetris que corria en Msdos. Parte escrito en Pascal y parte en Ensamblador, para acceder a la memoria de video (de aquella no hab铆a tarjetas de v铆deo) 馃槄
Tenes un nuevo suscriptor en Argentina. Voy a empezar a hacer una marat贸n por tus videos. Felicidades por semejantes videos.
Excelente v铆deo!
Me ha gustado mucho la manera que tienes de explicar las cosas :)
Esta complicadillo para mi nivel de python, pero lo has explicado muy bien
Todo muy bien pero como no se hizo en 40 min no pasas a la siguiente etapa de la entrevista. Hubo una persona que lo hizo en 30min y seguiremos el proceso de seleccion con esa persona. Esa seria la frase que te dirian los de recursos humanos de una empresa.
Buen tutorial amogo, gracias!
la diferencia es que la otra persona no se pone a explicar todo el c贸digo en el proceso...
Llevo 6 meses d谩ndole duro a la programaci贸n, y me ha parecido bastante complejillo la parte de la rotaci贸n de la pieza la verdad, interesante ver como lo resuelves, muchas gracias Mouredev! :D
Que nivel, que claridad de conceptos y que forma de programar, yo soy autodidacta y aficionado a la programaci贸n, uso la plataforma VB NET, ahora bien, lo que veo en este v铆deo me parece tan extra帽o y tan "concentrado" que no sabr铆a ni por empezar a programar as铆.
Voy a intentar hacer la pieza de TETRIS en VB NET, 驴se podr铆a hacer?. voy a intentarlo y veremos que pasa.
Enhorabuena por el canal.
EEEEEEEEEH Queremos las 2sa y 3ra parte.. esto merece ser desplegado. Esta super este tutorial te a quedado de maravilla.. 馃槷馃槷馃槷馃槷馃槷馃槷馃槷馃槷 me siento m谩s seguro de programar cuando veo un tutorial tuyo. QUEREMOOOOOS MAS..
Para mi examen final de programaci贸n I me hicieron hacer un Frogger en Python con OOP. Debo decir que la mec谩nica es bastante similar, aunque la rotaci贸n es algo totalmente nuevo y que la verdad, lo veo bastante complicado. Un v铆deo buen铆simo.
A mi me pidieron hacer un tablero de ajedrez en C y sin matrices solamente con printf . Yo se que lo estuviste haciendo en python al juego del tetri. A mi se me ocurri贸 hacerlo con un while y dos for uno con un for anidado.
2 a帽os programando. Actualmente le estoy dando duro a Python. Esto Messirve
llevo 4 semanas aprendiendo programaci贸n y obviamente este ejercicio me parece nivel Dios
Antes de rotate 馃槑Despu茅s de rotate 馃く Ahora en 3D por Thorin! La explicaci贸n brillante. Dan ganas de hacer cursos de Moure.
No entiendo qu茅 significa esa flecha (->) que agrega al final de def move_piece() -> list. Para qu茅 sirve y c贸mo se llama eso?
min 26:58 (th-cam.com/video/3UCZltG8iCY/w-d-xo.htmlfeature=shared&t=1618)
Es lo que debe retornar la funci贸n
@@Spphr03 gracias
Es el tipo de dato del retorno
se llama type hint y es muy util para documentar las funciones
Buen铆simo gracias!!
para rotar la matriz 90潞 yo hubiese usado np.transpose() y luego np.flip()
Pero no se trata de ver operaciones conceptos m谩s avanzados de matrices. Siempre quiero que con estos ejercicios puedas llegar a soluciones con los fundamentos del lenguaje y sin mucha experiencia para que todo el mundo lo pueda entender.
Excelente video, Serj Tankian!
Wow Excelente video.. muy bien explicado 馃槈, felicitaciones
驴Como se pueden agregar esos cuadros en python? 驴Esas figuras?
Como curiosidad. En gallego no se hace uso de las preposiciones? Saludos!
Muy interesante, esto me tomaron examen para un cargo hace tiempo, mover un asterisco en pantalla y aprob茅. Consejo hacer videos m谩ximo de 30 min. Saludos
Muy buen video colega, enhorabuena. Saludos y 茅xitos! 馃憤馃憦馃憦
Vaya prueba 馃槀馃槀 por cierto cu谩les extensiones utilizas, disculpa si es una pregunta rara pero es que acabo de descargar vscode y no que extensiones usar
Apenss estoy iniciando con la programaci贸n pero siento que entend铆 la l贸gica en los pasos que hiciste
Muy bueno tu v铆deo, me ha servido de mucho
Muchas gracias, Brais, no s贸lo eres un gran comunicador y programador, adem谩s eres un solete y es un placer estudiar contigo
Muy interesante. 隆Un saludo!
"De alguna manera" un v铆deo muy interesante.
Creo que me dieron ganas de aprender Python que le vengo esquivando hace a帽os 馃槄
Ya esto es muy pro para m铆 馃槀馃槀 excelente video Brais 鉂
Genio ,gracias por generar estos videos
para que tipo de puestos se puede pedir esta prueba tecnica?
me encant贸! Muy buena manera de explicar la l贸gica
驴D贸nde compraste tu playera de Javascript?
tengo una duda aqui se que babel hace algo por hay pero no consigo configurarlo en mi caso
tengo un microservicio que literalmetne solo envia 3 archivos escenciales js, ejs y librerias js
en este caso todo se arma en la vista del usuario no tengo nada renderizado desde el servidor estoy usando vanilla la cosa es que el js que tengo es ultima generacion configure babel para atajar siertas cosas pero no logro el metodo array.at() me da error por que esos js en navegadores viejitos no se arma nada en la vista por la version de ESM cuando tengo ese metodo y por lo que vi babel no ataja ese metodo tal cual si no con algo como corejs pero me pone unos inport y eso al llegar a la vista menos funciona podrias hacer un tuto sobre como hacer ese tipo de cosas un microservice que responda con js para construir cosas en la vista pero que sea compatible con navegadores viejos especialmete el metodo at()
muy buen video, pero solo un problema, para Mac funciona, pero para windows por lo menos a m铆 no me funciona con right, left, down, solo space, pero lo he podido solucionar cambiandolo por a, d, x, d谩ndole esa funci贸n y dentro del programa poniendo unas """ ya que sino me est谩 dando error continuamente.
A mi igual me esta dando error. 驴El error que te dio tambien fue "ConnectionRefusedError: [WinError 10061] No se puede establecer una conexi贸n ya que el equipo de destino deneg贸 expresamente dicha conexi贸n"?
Creo que decubri el problema. Estabamos poniendo mal los nombres de las teclas. Por eso no funcionan las flechas. En mi caso las teclas de flechas se llaman asi:
"flecha derecha"
"flecha izquierda"
"flecha abajo"
Tal vez el tuyo se llama igual, puedes averiaguarlo poniendo: "print(event.name)" abajo de la validacion de "KEY_DOWN". Asi podras ver tambien el resto de nombres de teclas que se precionen.
@@jeisonhernandez-ue1nq que capo sos, era exactamente eso
Hola Brais. Me gusta mucho la apariencia que usas en VSC! Cu谩l es?
隆Me ha encantado!.
Excelente video,si no estoy mal podias usar tambien ........ 0 > new_column_index > 9, voy a intentar hacer el reto.
Est谩 durita la prueba en mi universidad solo me ense帽aron a realizar crud y p谩ginas web ajaja
En la mia ni eso...
Confirmo!
@@A4O_TSL jmm y yo hablando mal de mi universidad ajajaja
Hola, consulta que gestor de c贸digo, usas, quiero practiccar python pero no me decido por uno bueno.
Es ejercicio de una gran ilusion optica, pense que era creando un sprite de verdad, sobre una matriz screen.
Como evito que se est茅n imprimiendo las teclas cuando las presiono?
alguien me dice por qu茅 no me deja poner el + 1 a lo ultimo del if de Movement.ROTATE? hace una hora estoy me estoy volviendo loco con eso
Muy buen video.
Me gustar铆a implementarlo en java con GUI o C++
Saludos, pura vida
Dile a chat gpt y ah铆 lo tienes..
@@grtourscartagena 馃槀 m谩s f谩cil!
Un capo de la programaci贸n 馃憦
muy interesante e instructivo
en la mitad del video voy con dos embolias, pero igual me sirve para mejorar en programaci贸n
de donde eres?
驴C贸mo hace esos "cuadrados"?
Creo que es un c贸digo ASCII en concreto, que se debe poder buscar por internet. Si por ejemplo, el c贸digo fuese el n煤mero 117, pues se escribir铆a, si lo recuerdo bien, pulsando ALT GR +117
gracias!@@akualung
Muy buen video, me encanto la explicacion y el codigo limpio hizo muy facil entender todo
pregunta del mill贸n, cuanto dur贸 el video original ?? sin edicion jejeje
Media hora m谩s supongo.
Bueno, no entiendo las pruebas t茅cnicas en la mayor铆a de los casos, entiendo que en una entrevista te expongan un caso y te pregunten c贸mo plantear铆as una soluci贸n a un problema, pero esta prueba c贸mo que no tiene mucho sentido. Por otro lado, yo utilizar铆a una clase pieza y varias clases de piezas que indiquen sus dimensiones en una submatriz (con eso ser铆a m谩s sencilla la rotaci贸n y movimiento, desde mi punto de vista). Tambi茅n har铆a m谩s sencillo el c谩lculo de intersecciones entre piezas. Por lo dem谩s, creo que una explicaci贸n sencilla de c贸mo plantear un problema y, en ese punto, ya dar铆a por buena la prueba de este problema m谩s complejo.
Excelente video. Solo me qued茅 en el punto del sudo. Fui a settings pero no me sale esa pantalla para colocar sudo...
me pasa lo mismo lo pudiste resolver?
@@leonelorellana9804 no. Ah铆 qued贸
Para mi te la complicaste, yo hubiera usado una matriz 3x2 y le hago la traspuesta para las rotaciones y despues un cambio de filas y columnas para lo que seria la espejada. Lo voy a hacer y mostrarte el codigo.
Hola,
驴este c贸digo es python?
Hace a帽os program茅 en C++, Java y algunos m谩s, ya no me dedico desde hace mucho.
驴Me hab铆an hablado del python, es mejor que los que comento?
驴Que ventajas tiene?
Me gustar铆a empezar de nuevo, pero ahora estoy un poco oxidado, m谩s que nada por pasar el tiempo libre pero con un lenguaje nuevo.
Gracias.
S铆, es Python. Python es bueno, pero no tanto para este tipo de cosas, en esos casos es mejor utilizar otros lenguajes
@@michaeltaboada8912 Gracias. 驴Para que es bueno el python?
Yo voy a empezar ahora el segundo a帽o del ciclo de desarrollo de aplicaciones web, se supone que cuando acabe ya deber铆a saber estas cosas? Aun se me hace dif铆cil pensar por mi mismo que clases o variables crear para estas cosas U.U'
Pi茅nsalo como si fuera algo f铆sico.
Para jugar Tetris en f铆sico, necesitas un tablero y las piezas (esas son las clases), y las variables son las caracter铆sticas de esas clases (color, posici贸n, tipo de pieza).
No se si en aplicaciones web te ense帽en esto.
@@CarlosParrach Sii estoy aprediendo Java, SQL, Git... y lo siguiente es JavaScript, Angular, Springboot... empiezo el segundo a帽o en unos d铆as
Yo que a duras penas estoy siguiendo un tutorial de Pygame xD
Pero bueno, a mi ritmo nomas.
Gracias por el video, cuando termine lo que estoy haciendo en Pygame har茅 esta prueba t茅cnica.
Buenisimo video para aprender desde lo fundamental, en la uni el unico juego que hice fue el buscaminas 馃槀
Hola MoureDev, gracias por el v铆deo, que fuente utilizas, mi fuente no me reconoce los cuadros que tienes en el c贸digo fuente de Github
son caracteres en unicode, trata de definir tu archivo en utf-8 asi: # -*- coding: utf-8 -*-
@@alfonsodavilasaavedra413 Gracias por la respuesta, pero continua sin funcionar, adicione la linea que indicas al inicio del c贸digo python pero nada, yo utilizo como S.O Linux, no se si influya eso
@@riloco22 no deber铆a a menos que sea un Arch o alguna distro muy custom, yo por ejemplo tengo ubuntu budgie y funciono perfecto el ejercicio, y si pruebas correr el ejercicio en un jupyter?
mouredev donde has comprado ese polo esta elegante ...
Si a un junior le pide hacer un tetris en 40 mins, a un senior le piden hacer la nueva version de chatgpt
Buenas, me gustar铆a un poco de informaci贸n sobre como convertirme en desarrollador de software. No tengo ning煤n tipo de conocimiento y tengo hasta bachillerato hecho. Me gustar铆a Saber que pasos debo de seguir , que opciones hay y a帽adir que tengo 31 a帽os pero nunca es tarde para aprender.
Si est谩s en Espa帽a hay cursos subvencionados de desarrollo, sino puedes hacer un t茅cnico superior inform谩tica o la carrera de ingenier铆a. Para ser desarrollador m谩s que un t铆tulo universitario necesitas mucha paciencia y ganas de formarte, opciones hay muchas. 脕nimos!
Por tu cuenta, libros, plataformas estilo ibmskillsbuild, coursera gratis, pruebas de LinkedIn. Codewars o ProjectEuler. Hacer y hacer proyectos y buscar trabajo fuera de Espa帽a. En upwork, Fiverr etc puedes conseguir alg煤n trabajo.
Es un mundo bastante err谩tico el del desarrollo de software. Si te quer茅s mandar de modo autodidacta, primero podr铆as ver a qu茅 ramas te gustar铆a entrar (desarrollo web, apps m贸viles, backend, ciencia de datos, machine learning, microcontroladores, etc ) y buscar "roadmaps" que te digan qu茅 necesitas para ese subrubro. Si en cambio quer茅s arrancar de cualquier manera y decidir despu茅s podr铆as arrancar aprendiendo un primer lenguaje de programaci贸n (yo recomendar铆a Python o JavaScript que son accesibles y muy vers谩tiles). Luego pod茅s ver ejercicios pr谩cticos (los "desaf铆os" de programacion) y tratar de resolverlos en PC, esto es para practicar algoritmia y conocer mejor al lenguaje que usaste. Y tambi茅n pod茅s crear proyectos personales: eleg铆 un pu帽ado de frameworks y librer铆as que te parezcan interesantes y trat谩 de armar aplicaciones, modificar rutinas de ejemplo y todo eso.
Otros contenidos 煤tiles: lo m谩s elemental de HTML y CSS para sitios web (frontend); familiarizarte con alguna base de datos (backend); aprender GIT para guardar y versionar software; aprender m谩s sobre algoritmos,etc.
Primero: aprender dise帽o de algoritmos (lo basico es suficiente, 1 semana). Segundo: paralelamente con algoritmos programar en Python, 3ro: lo anterior en un mes con 2 o 3 programas diarios. Ya luego tu veras que sigue. SIN PERDIDA DE TIEMPO. Saludos.
Me encant贸
Me qued茅 loco con la segunda rotaci贸n (0,2),(1,1),(-1,1),(-2,0). No entend铆a de donde proven铆an las 2 primeras duplas. 驴Puede ser que, siguiendo el "orden" de las piezas, este fuera el orden correcto: (1,1),(0,2),(-1,1),(-2,0)? .
Muchas gracias por tus v铆deos y sobre todo por tu valioso tiempo que nos dedicas y a煤n m谩s tus conocimientos.
Si no me equivoco, es el movimiento que tiene que realizar cada coordenada de la pieza desde su 煤ltima posici贸n.
Facilito bro
con ganas de hacerlo yo .....
Excelente reto
Lo voy a hacer con php a ver que tal
Quien lo haga en C, mis respetos jaja
Yo lo hice hace un tiempo en C++ que es pr谩cticamente lo mismo
th-cam.com/video/SZSxV3dNpT4/w-d-xo.htmlsi=mC907moCkHyFkhNT
@@GabrielxC no, no es lo mismo amigo. C es un poco m谩s complejo, ya que al no poder utilizar el paradigma orientado a objetos se vuelve un poco m谩s complejo.
@@melchiah6603 bueno la verdad que tengo experiencia con los dos lenguajes y literalmente esa es la 煤nica diferencia, c tiene algo llamado struct que es pr谩cticamente como una clase no me parece que por tener el oop lo haga m谩s o menos dif铆cil, adem谩s de que coloque pr谩cticamente la correcci贸n no se justifica ya que la sintaxis es literalmente la misma amigo
@@GabrielxC pues entre cambio de paradigmas hay un abismo, pero igual te invito a hacerlo en c nativo. Por lo que me comentas ser铆a pr谩cticamente copiar y pegar de c++ a c.
Muy bien explicado, aunque a mi me sacas del "Hola Mundo" ya est谩 liada....
Es necesario aprender algunos conceptos para hacer un mejor codigo que este. Aqui se ven algunas malas pr谩cticas que no cre贸 que sea buena idea que aprenda un estudiante.
No confundamos que es un ejercicio con conceptos Junior b谩sicos. Hacerlo de la manera m谩s 贸ptima implicar铆a conocimientos que no quiero que se tengan en cuenta en un v铆deo de una hora. Ante todo, se trata de que sea un problema l贸gico abordable por todo el mundo.
Eso es para Junior?
Est谩s complicando los movimientos izquierda, derecha y abajo demasiado.
55 min, no apruebas te pasaste por 15 min
Vaya, nunca podr茅 cobrar los 250k
me parecio una logica facil pero dificil de plasmar xD
Se sabe que todo est谩 mal cuando hace una matriz manual para hacer el juego
Venga, a que no hay huevos en Assembler
Xd
Ni Microsoft pide tal cosa 馃う
Que Empresa es esa ??? XD XD me gustaria saber ????
Y en python
Esa prueba tecnica no es para juniors.
Platzi es la peor plataforma porque su contenido, no es nada completo. No vale la pena pagar por esa plataforma. Prefiero verme el contenido en youtube que se encuentra mas facil mas completo el contenido que uno quiere.
Udemy tiene cursos buenos y m谩s baratos.
Es verdad
Me llama la atenci贸n tu playera ya te est谩s pasando del lado front? 馃槄
Me la regalaron 馃榿
Yo me qued茅 en Pascal馃槩
MouraDev es mi padre
Bonito pullover
te lo hago en 10 con un motor xd
馃憣馃憣馃帀
Que estupidez q te pida esto en jna entrevista cuando en el d铆a a d铆a a menos q te dediques al desarrollo d e juegos no vas usar frecuentemente no matrices ni todo eso. Es absurdo
Absurdo es no entender que la l贸gica que implica resolver un ejercicio tan simple como este demuestra que tienes capacidades para pensar y resolver problemas.
Nos tienen que pagar por pensar, no por saber replicar algo que ya hemos hecho con anterioridad, para eso ya existe el copy paste y las IA.