Como pasa el tiempo. Recuerdo que ese día estaba muy nerviso porque sentía que mis conocimientos aún eran muy basicos y me faltaba mucho por aprender, bueno aun me falta. Gracias a tu retroalimentación Juan me setení mucho más seguro de cuales eran mis fuertes y mis debilidades. Gracias a eso le perdí el miedo a postularme, y con un poco de suerte un par de semanas después tuve mi primer entrevista y al siguiente día ya estaba contratado; no se muy bien cómo porque no me tome muy en serio la entrevista 😅. Ahora ya tengo un año de experiencia y sigo aprendiendo cada día más. Muchas gracias Juan por haberte tomando el tiempo para hacer estas dinamicas.
yo salté a hacer el mismo ejercicio y también usé reduce casi de la misma forma, creo que te fue excelente, en el final creo que te referias a la estructura de datos Set , no se me habia ocurrido pero quizas filtrar los repetidos podría eventualmente ayudar en otros lugares es muy buena idea, ahora creo que la solución final es mas simple de lo que uno podria imaginar, usar el sort() ascendente O(n log n) ( aprox . seria interesante saber que algoritmo usa JS internamente) y por lógica el primer elemento es el minimo y el último es el máximo ! espero te haya ido super en otras entrevistas!
JAVASCRIPT: 07:00 Que es JavaScript? 08:05 Versiones de JS - ECMASCRIPT 08:50 Variables en JS - Var, let, const - hoisting 10:00 Declarar constante en forma de arreglo, se puede modificar mas adelante? 10:25 Que pasa cuando intentamos redeclarar una constante? 10:55 Funciones en JS - funcion tradicional, arrow function - hoisting 11:50 Que pasa si declaramos una funcion dentro de una constante? Aplica hoisting? 11:25 Que es un closure? 13:25 Que es un callback? Usos de un callback 14:25 Arreglos vs Objetos en JS 16:00 Pregunta practica de arreglos y objetos 16:45 Como trabajar con arreglos en javascript? 17:45 Paradigmas de programacion en JS (Imperativa, funcional,POO) 18:45 Javascript syntactic sugar 19:30 Es mejor trabajar con prototipos? 20:10 Como declarar un objeto en JS? Clases? 20:45 Objetos del tipo JSON 21:30 Cual es la diferencia entre renderizar directamente en el dom y con React? 23:30 Con que estructura de datos relacionarias el DOM? Arreglos, Arboles 23:45 JavaScript Asincrono - fetch - promesas - async - await FRONTEND: 25:30 Que es el DOM? 26:10 Como manejar los estilos en JavaScript? 27:00 Preprocesadores, Postprocesadores en CSS 28:00 bem (block element modifier) 29:00 Como optimizar un sitio web? 29:30 Como probas si un diseño es responsive? 30:00 Como debuggear el Codigo en Javascript? PRUEBA TECNICA: 31:30
No me parece tan Junior la entrevista. Pero entiendo q al contar con características tan amplias, el lenguaje difumina el límite del saber personal. Son temas de teoría, rendimiento, paradigmas, buenas prácticas, asincronía, apis, dom, librerías, y un largo etcétera pff. Una entrevista de "Super Senior" sería magnífica!
Luis tenia un conocimiento bastante sólido, lo fuimos llevando hasta un nivel intermedio por asi decirlo. Pero si, lo consideraria hasta mid de no se porque es su primer experiencia
Entendi la mayoria de las preguntas excepto la parte de prototipos y la parte de la pregunta live code la resolvi a mi manera. Lo vi meses antes sin entender casi nada y ahora con todo lo que fui avanzando pude realizarlo me hace muy feliz, gracias por el contenido.
Gracias por tan util video. Solo para complementar algo: Para resumir, las promesas y async await resuelven la asincronía de distinta forma. Con las promesas no sabemos cuándo se va a resolver y con async await forzamos una espera en la función
apesar de estar bien nervioso como si tratara de una entrevista real responde todo acorde a la pregunta..Eso es lo bueno de estudiar la logica de un lenguaje y codear muchos proyectos propios, Bravo
Luis un genio total y absoluto. Aguante Luis, es y va a ser un grande programando!. En mi opinión la entrevista fue creo algo compleja para un junior sin experiencia, y muy robotica, pero Luis un genio.
Lo primero que se me ocurrio fue hacer un .sort 😅 y devolver como Minimo el primero y como Maximo el ultimo, ya que ya esta ordenado de menor a mayor con el Sort
Se me ocurrio el sort tambien, pero lo intente hacer y cuando en la consola me imprime el array en orden, me imprime por ejemplo [1, 2, 2345, 3, 4], fui a la documentacion y dice que las reglas unicode hacen que el sort funcione asi
siempre se agradecen este tipo de videos, esta fue la respuesta que llegue del ejercicio, tengo mi metodo de hallar min, mi metodo de hallar max independientes, luego los llamo para sumar la respuesta de ambos, abajo una llamada al metodo , me devuelve 11. function minmaxSumadeEllos(arreglo) { let minimo = getMin(arreglo); let maximo = getMax(arreglo); console.log(minimo + maximo); } function getMin(arreglo) { let respuesta = 0; for (let index = 0; index < arreglo.length; index++) { if (index === 0) { respuesta = arreglo[index]; } else { if (arreglo[index] < respuesta) { respuesta = arreglo[index]; } } } console.log("el minimo es " + respuesta); return respuesta; } function getMax(arreglo) { let respuesta = 0; for (let index = 0; index < arreglo.length; index++) { if (index === 0) { respuesta = arreglo[index]; } else { if (arreglo[index] > respuesta) { respuesta = arreglo[index]; } } } console.log("el maximo es " + respuesta); return respuesta; } minmaxSumadeEllos([7, 1, 2, 5, 8, 3, 10, 9]);
Yo creo que el nivel esta bien... desde mi experiencia y con la suerte que he tenido... por más que te hayas preparado y estudiado, sin experiencia laboral ni trabajando como freelance siempre te consideraran entry level, incluso llevando un portafolio de proyectos en algún hosting y dependiendo del pais y empresa puedes caer en trabajos tipo: Entry level --> no he visto que mi pais se use este termino pero si en paginas de empleo extranjeras y se refiere a recien graduados Intern --> paga muy poca o nula y en ocasiones hay contrato por 1 año (a veces lo usan para practicas profesionales e incluso graduado de universidad, medio o tiempo completo) Junior --> ya hay pago pero llegan a pedir 1 año asi que lograr el junior con 0 años ya es un logro desde mi perspectiva y también es cierto que en el trabajo puedes encontrarte compañeros con mas años que no comprenden las bases y compañeros más jovenes un conocimiento mejor asentado y profundo como este joven
En la parte del código creo que tienden a evitar un simple for para recorrer un arreglo porque no lo ven como algo "avanzado" . Si uno se traba mucho es más fácil ir a las bases
Supongo que son los nervios de las primeras entrevistas. Lo ideal siempre es pensar la solución en abstracto y luego plasmarlo en un lenguaje de programación y por ultimo intentar mejorarlo. Concuerdo en que la solucion era simplemente iterar en todo el array e ir comparando con el actual mayor y menor.
Como sufro con la parte de la práctica, no sé si será cierto, pero ojala que los entrevistados hayan tenido la posibilidad del empleo. Como me dijo una vez un profesor, que te vaya mal en un parcial no significa que no hayas estudiado. Muy bueno todo, abrazos desde Argentina.
function maxMin (arreglo) { return Math.max(...arreglo) + Math.min(...arreglo) } Ya existe un método que te encuentra el número mayor o menor dentro de un arreglo, solamente hay que deestructurarlo con los "..." y listo
Sabes que estaria bien? que la o las preguntas que NO sabe el entrevistado, las respondieras y lo ayudaras tu, no se... nos ayudarias a muchos. ya independientemente del ejercicio de entrevista, bueno, que todas las entrevistas fueran asi... Gracias Juan por el contenido.
Hola, genial !! Deberia haber asignado al valor max: -Infinity, ya que si todos los valores del array son negativos, daria como resultado de valor minimo 0, lo cual no seria correcto. Obviamente hay soluciones mas simples utilizando Math.min() y Math.max()
En el primer ejercicio si estoy seguro de que todos los valores son de tipo number, haría un ordenamiento con el método sort y simplemente retorno la suma del primer elemento y del último.
No te das una idea de cuanto me puede servir estas simulaciones de entrevistas! por casualidad va a haber uno para trainees que buscan su primer trabajo o con este que subiste es casi lo mismo las preguntas? gracias!
Esto tal cual como lo pones no funcionaria si utilizas numeros superiores a 10 dentro del array, ya que el sort() justo como lo pones ordena segun unicode, ejemplo: const arr = [4, 3, 5, 15, 10]; const result = arr.sort(); console.log(result); // el resultado seria // [ 10, 15, 3, 4, 5 ] ya que según unicode el 10 va primero; sin embargo para solucionar seria así: const result = arr.sort((a, b) => a - b) ; console.log(result); // el resultado seria // [ 3, 4, 5, 10, 15 ] donde su logica se basa en que si 'a' ES MENOR QUE 'b' iria primero a que b. Espero que te haya servido mi aporte.
Nooo me sentí basura viendo el video porque después de 9 meses de no tener práctica con la programación en JS por un trabajo. Ahora que quiero aplicar a uno dentro de 2 días con un ejercicio con tiempo de casi 2 horas para hacerlo, siento que me voy a quedar en blanco jajaja. Al menos me abrió el panorama de lo que masomenos me falta por repasar
Creo que habia 2 arrays y solo trabajo con uno y tenia que sacar el valor maximo de un y el valor minimo del otro y hacer la suma pienso que eso era el ejercicio de lo contrario no tendria sentido el otro array estar alli y ya que el segundo array tenia numeros repetidos y entoces ocuparia primero eliminar los numeros repetidos con haciendo una copia del primer segundo array y con Set(); y despues sacar el valor minimo con Math.min() pero se que cuando te estan viendo lo que estas haciendo te puede poner nervioso y mas cuando sabes que depende que si te contratan o no pero en lo persona vi que se puede hacer de otras formas
Lo de obtener el mayor y menor yo lo haría con sort, ya que te devuelve el array ordenado de mayor a menor y viceversa, luego de eso solo escojería el número que está en la posición 0 para el valor mínimo y length - 1 para el número mayor. Lo haría de esa forma para no escribir muchas líneas de código. Algo así function maxMin(numbers){ let list = numbers.sort((a,b) => a - b) return { max:list[list.length - 1], min:list[0] } } console.log(maxMin([8,9,1])) Sé que no me preguntaron, pero me gustaría aportar con mi solución en caso de que alguien se encuentre con esa pregunta. Se agradece la sección de entrevistas, me ha servido un monton, muchas gracias.
@@crackzz8913 Con fines de aprender, me gustaría que nos comentaras cual sería una solución eficiente para casos como estos. Gracias por la aportación.
@@garyyaral lo que haría sería inicializar 2 variables(mayor y menor) con el valor del índice 0 del array. Luego hacer un for al arreglo que inicia desde la posición 1 hasta el final. En cada iteración evaluaría if(arr[i] > mayor) mayor = num; if(arr[i] < menor) menor = num. Al final solo retornarías la suma de mayor + menor. Esta solución es O(n) ya que das con la respuesta en un barrido. Otra opción sería usar Math.min() y Math.max() aunque con esto se hace 2 barridos O(2n), pero sigue siendo lineal. Como consejo les diría que no siempre el camino más corto será el eficiente. Tal vez esto no lo vean tan necesario, porque la aplicación sea pequeña y no procese tanta data, pero para aplicaciones gigantes cada uno de estos detalles vale oro. Saludos
como es que estudias ingenieria en computacion para terminar haciendo desarrollo frontend ?, es como si yo estudiar fisica pura para terminar enseñando en un colegio secundario publico
Hola el ejercicio yo lo pensé más con un for tradicional y comporando con if si es menor o igual a 1 es el número más pequeño y hay comparar número min, pero teniendo encuenta que hay infinitas posibilidades de que el numero sea - tendria que comparar hasta el infinito, pero en este caso ya te dio el array por lo que no impoetaria los negativos por que no hay. Y luego comparar el número máximo.😅 esa es mi solución bien de Jr básico que solo conoce html,css y un poco de js y lo básico de python
Tu solución es correcta. Lo único que le cambiaría sería que evalues si el array es vacío. Si no lo es, tu máximo y mínimo inicial es el primer elemento del array. Ya luego puedes usar el for desde el siguiente elemento. Con eso te evitas problemas de si el array tiene numeros negativos o no.
Una pregunta ¿Por qué el hecho que haya contestado que los objetos se almacenan como referencia en la pregunta de arrays vs objetos es una buena respuesta? Tanto los arrays como los objetos en JavaScript se almacenan en variables como referencias y en ese caso no habría como tal una distinción.
En la parte de la entrevista estaria bien hacer esto? function maxMin(number){ const max = Math.max(...number); const min = Math.min(...number) console.log( max + min); } maxMin([1,1,1,2,10])
Sip, y de hecho ni hace falta declarar las variables "max" y "min" si querés que sea una sola línea de código: function maxMin (arreglo) { return Math.max(...arreglo) + Math.min(...arreglo) }
Hola Juan José excelente video, una pregunta, sería valida esta respuesta al ejercicio? let maxMinSum = (array => Math.max(...array)+Math.min(...array));
@@crackzz8913 que opinas de esta solucion const myArray = [11, 11, 1, 5, 1, 500, 6, 9, 5, 55, 55]; function MinMaxAndPlus(myArray) { let num = myArray.sort((a, b) => a - b); console.log(num); let suma = num[0] + num[num.length - 1]; return `EL numero minimo es ${num[0]} el numero maximo es ${ num[num.length - 1] } y la suma de ambos es ${suma}`; } MinMaxAndPlus(myArray); console.log(MinMaxAndPlus(myArray));
@@davidgutierrez2396 Hola David, ambas soluciones son válidas y desde un principio no debería preocuparte si no te genera un problema en el rendimiento de tu aplicación. La solución más eficiente al problema es lineal O(n). La función sort tengo entendido que es O(log(n)) por lo que si evaluamos arreglos muy grandes se verá la deficiencia del algoritmo. Saludos
La primera solución const maxMin = (value) => { number = value.sort((a, b) => a - b ) positionEnd = number.length -1 console.log(number[0] + number[positionEnd]) } maxMin([3,1,4,2,5])
me gusto se parece a mi solucion const myArray = [11, 11, 1, 5, 1, 500, 6, 9, 5, 55, 55]; function MinMaxAndPlus(myArray) { let num = myArray.sort((a, b) => a - b); console.log(num); let suma = num[0] + num[num.length - 1]; return `EL numero minimo es ${num[0]} el numero maximo es ${ num[num.length - 1] } y la suma de ambos es ${suma}`; } MinMaxAndPlus(myArray); console.log(MinMaxAndPlus(myArray));
Hola Juan excelente este tipo de videos, ayudan mucho, te pregunto tu como entrevistador que pensarías si la respuesta al ejercicio de código hubiese sido esta, return Math.min(...numbers) + Math.max(...numbers)
que opinas de esta solucion const myArray = [11, 11, 1, 5, 1, 500, 6, 9, 5, 55, 55]; function MinMaxAndPlus(myArray) { let num = myArray.sort((a, b) => a - b); console.log(num); let suma = num[0] + num[num.length - 1]; return `EL numero minimo es ${num[0]} el numero maximo es ${ num[num.length - 1] } y la suma de ambos es ${suma}`; } MinMaxAndPlus(myArray); console.log(MinMaxAndPlus(myArray));
He intentado conseguir un trabajod e programador movil con kotlin y android, pero nunca he podido conseguir una entrevista, y si no tengo experiencia trabajando con equipos o trabajando con empresas, aunque me he dedicado a aprender, a tomar cursos a hacer mi inventos, y siempre he tenido un poco de miedo sobre como seria una entrevista para Junior... no se si despues de ver este video tengo mas miedo que antes... me gustaria poder tener la experiencia de una entrevista para dev android Jr
Tenes que empezar a concentrarte en linkedin. acabo de recibir una entrevista con solo 2 proyectos y sin siquiera saber bien React solo por tener una red grande de contactos allí que me permitió aparecer en las busquedas. si ya tenes los conocimientos tenes que concentrarte en entrar al mundo para conseguir entrevistas y fallar hasta conseguirlo.
@@sebastian3rc Es cuestión de empezar a seguir gente de tú mismo ámbito y a recruiters, ademas compartir tus proyectos u opiniones sobre temas y generar que tu perfil llame la atención.
@@JuanOrtizDev Y por favor si no es molestia inge, puede tocar temas/preguntas más sobre React, hooks, componentes, props, estados, preguntas muy a fondo, saludos y muchas gracias
la forma mas optima de solucionar lo del funcion seria con el metodo sort() ya que ordena el arreglo solo hay que agregar una funcion de comparacion dentro sort((a,b)=> a-b) y listo cualquier numero sera ordenado y solo hay que tomar el numero con el indice 0 y el numero con el indice array.lenght -1 y sumarlos asi const myArray = [11, 11, 1, 5, 1, 500, 6, 9, 5, 55, 55]; function MinMaxAndPlus(myArray) { let num = myArray.sort((a, b) => a - b); console.log(num); let suma = num[0] + num[num.length - 1]; return `EL numero minimo es ${num[0]} el numero maximo es ${ num[num.length - 1] } y la suma de ambos es ${suma}`; } MinMaxAndPlus(myArray); console.log(MinMaxAndPlus(myArray));
Con 3 líneas alcanza function maxMin (arreglo) { return Math.max(...arreglo) + Math.min(...arreglo) } Ya existe un método que te encuentra el número mayor o menor dentro de un arreglo, solamente hay que destructurarlo con los "..." y listo Y si querés una sola línea de código también se puede: const maxMin = (arr) => (Math.max(...arr) + Math.min(...arr))
Hola, muy buen video, yo llegué esta a solución usando forEach pero no sé si es una buena forma. const minMax = (arr) => { let max = 0 let min = arr.at(0) arr.forEach(element => { if(element > max) max = element if(element < min) min = element }) return min + max }
Hola Prof.Juan, yo lo resolvería de la siguiente forma: ``` function sunMaxMin(array: Array) { return Math.max(...array) + Math.min(...array); } console.log(sunMaxMin(array)); ``` Consulta para una prueba estaría mal hacerlo asi deberia hacerlo con ciclos. Gracias
Es válida, pero siempre trata por ir por el camino más eficiente. En este caso podrías almacenar el primer valor del array como mínimo y máximo y luego recorrer el arreglo desde la posición 1. La complejidad sale O(n). Saludos
Yo comparto mi solución mas adaptada para la vista de principiantes function maxMin(arreglo){ if(Array.isArray(arreglo)){ arreglo.sort(function(a, b) {return a - b}); let suma = arreglo[0]+arreglo[arreglo.length-1]; return suma; } }
Yo también había pensado en esta solución, pero dentro de la programación funcional es importante que los arreglos sean inmutables, son sort estas alterando el arreglo original y esto es incorrecto para muchos, creo que fue buena decisión el usar reduce porque es es una función que no altera al arreglo original. Si estoy mal acepto correcciones, saludos!
esa solución con el reduce es complicarse demasiado xd es mas fácil una función sencilla que retorne la suma de Math.min + Math.max del array y listo y asegurarse de que sean numbers y no venga vacío
Hola, dejo una solución muy sencilla para el problema de min/max por si a alguien le ayuda const minMax = (numbers) => Math.min(...numbers) + Math.max(...numbers) minMax([1,-5,2,3,67,109, 300, 78])
Es buena esa solucion, pero esta es mas facil: const minmax = (numbers) => { const min = Math.min(...numbers); const max = Math.max(...numbers); return min + max; }
@@ryan2000 Me gustó, el sort puede ser confuso. Igual cuidado el return que estas retornando la suma del min y el max, para retornar multiples valores tiene que ser un objeto
De hecho ya no es necesario sacar el maximo, con el sort estás oredenando el arreglo entonces por lógica el primer elemento es el menor y el ultimo es el mayor, entonces basta con obtener uno y apuntar a la última posición del arreglo -1
Hola , el valor del acc.max tendría que iniciar con el valor del arreglo en posición 0 (arr[0]) ya que si todos los componentes dentro del mismo son negativos, nos sale como valor máximo 0 el cual no estaría dentro . También podríamos hacer lo mismo para el min.
Porque las empresas siguen haciendo ese tipo de ejercicios en entrevistas técnicas, hablo de resolver un ejercicio en vivo y con un tiempo límite...? Ese tipo de ejercicios en lo personal no me gustan, me pongo nervioso xD
hola me encantan tus videos. yo la solución que implemente fue esta, espero que me digas si es correcta o no jaja. Andar anda....saludos: const arrayNUmeros=[2,3,54,78] const minMax=(numeros)=>{ if(Object.keys(numeros).length===0) return numeros=[] else{ const max=Math.max(...numeros) const min=Math.min(...numeros) const sumaMinMax=min+max return {min,max,sumaMinMax} } } //destruturacion const{min,max,sumaMinMax}=minMax(arrayNUmeros) if(min || max || sumaMinMax) console.log(`minimo:${min} maximo:${max} suma de ambos= ${sumaMinMax}`)
el ejercicio le quedo muy largo y poco entendible, hubiera hecho esto: function maxMIn(arr) { let max = Math.max(...arr); let min = Math.min(...arr); let res = max + min; return res; } console.log(maxMIn([1, 2, 3, 4, 56, 7, 8, 9, 10]));
Un mes después aplique a un trabajo, ya que después de esta entrevista me sentía mucho menos nervioso e incluso me lo tome como a juego porque yo sentía que aún me faltaba mucho por aprender. La cuestión es que al siguiente día me dijieron que estaba contratado y llevo un año ahí.
Si en el array hay elementos vacíos o que no sean enteros, se podria hacer algo asi: const arr = [1,5,8,10,4,23,,'c',4] function sumaMinMax(arr){ return Math.max(...arr.filter(x => !x.IsNaN).filter(x => x > 0)) + Math.min(...arr.filter(x => !x.isNan).filter(x => x>0)); } console.log(sumaMinMax(arr));
y si hay que retornar los valores mínimos y máximos entonces function maxMin(arr) { arr.sort((a, b) => a - b); min = arr[0]; max = arr[arr.length - 1] result = arr[0] + arr[arr.length - 1]; return `El min es: ${min}. El max es: ${max}. El resultado es: ${result}`; }
pues no conocia sort supongo, es junior, yo creo que lo importante es ver la logica que implemento no una funcion que te da la solucion a la primera ya despues con experiencia sabras que con sort logras lo mismo. Por lo menos no ha sido ineficiente como algunos por aca han puesto con el Max.min y Max.max que itera dos veces sobre el array.