✅ Resuelvo PRUEBA TECNICA para PROGRAMADOR SEMI SENIOR
HTML-код
- Опубликовано: 7 сен 2024
- De nuevo nos enfrentamos a una entrevista técnica para puesto de programador, ingeniero de software o desarrollador web.
La de hoy es una prueba de código real, que yo mismo realicé para entrar en una empresa (y que pasé!) en remoto y para la que me dieron 30 minutos para realizarla.
Este tipo de pruebas son comunes para puestos de trabajo de Senior Frontend Developer o Senior Software Engineer.
Esta es otra PRUEBA TECNICA RESUELTA en otro video del canal
► • Resuelvo PRUEBA TÉCNIC...
También te puede interesar
Probamos GITHUB COPILOT, la IA que ¿Te ayuda? a programar
► • PROBANDO GITHUB COPILO...
Si estás buscando trabajo relacionado con el mundo de la programación, dale un vistazo a estos vídeos:
► • 🙇 Quiero iniciarme com...
Si quieres aprender PROGRAMACION DESDE CERO con JAVASCRIPT
dale un vistazo a esta serie de videos
► • CURSO DE PROGRAMACION ...
Y si ya sabes programar y conoces JAVASCRIPT, estos videos te ayudarán a DOMINARLO:
► • ✨ APRENDE JAVASCRIPT Y...
🔔 No olvides suscribirte y activar la campanita para no perderte ningún vídeo
► ruclips.net/user/ca...
🏆 Si te gusta el contenido que comparto, puedes apoyarme de una manera más directa uniéndote al programa de MIEMBROS del canal
► / @carlosazaustre
Estoy aprendiendo JS, llevo 1 mes y me ha dolido y Vi este video y entendí todo... AHHHHH que emoción me dió jsjsjs, siento que me acerco cada vez más a este mundo
Que bien felicidades 🎊
Ahora llevas 5 meses, como vas con eso? 😎
@@vuejsdev Fino pa, ahora entiendo bien..
Pero lo deje un poco de lado para aprender ingles... Sin inglés no eres nadie en este mundo y menos en este trabajo, así que estoy a full con inglés y repasando javascript, para seguir con react y react native
@@darianmorat Excelente, el tema del ingles depende de uno si busca algo multinacional o mas local. React con el stack MERN tiene muchisima salida laboral, a no bajar los brazos!
@@vuejsdev Si bro con todo 🙌✨
Que exelente me gustaria que hicieras un video montado un sitio web en hosting Espero lo puedas hacer algun dia seria muy importante aprender eso
Buen video! Justo lo que mencionas, muchas veces los problemas a solucionar en las entrevistas son sencillos, pero los nervios juegan en tu contra
Gracias por tus videos, son geniales. Me han servido muchísimo!!
Mi propuesta para el tercer problema
function cityRanking(myArray, ranking = 1) {
const counter = myArray.reduce((acc, value) => ({
...acc,
[value]: (acc[value] || 0) + 1
}), {});
return Object.entries(counter)
.sort((a, b) => b[1] - a[1])
.map(el => el[0])
.slice(0, ranking)
}
console.log(cityRanking(citiesList, 5))
console.log(cityRanking(citiesList)) // [ 'nashville' ]
* OBS: si hay dos ciudades que más se repiten, sólo aparece una, la que está primero en el array
Habia visto este video hace 6 meses y justo me salio este challenge en una entrevista para mid jajaja, lo termine resolviendo de otra manera pero si recorde algo de tu video Carlos muchas gracias!!!
Me alegro!!! ☺️
Gran video, Carlos! Siempre aprendo mucho con estos ejercicios
8:00 Como aporte en esta parte, puedes utilizar Object.entries() y te devuelve un Array de Arrays con la llave y el valor del Objeto que le pases. Así puedes filtrarlo por el segundo valor de cada elemento del array.
Buen vídeo.Muchas gracias.
Mi solución para el tercer caso:
function topCities(amount){
let cities = {};
citiesList.forEach( item => { cities[item] = cities[item] ? cities[item] += 1 : 1 });
return Object.entries(cities).sort( (a, b) => b[1] - a[1] ).map( item => item[0] ).slice(0, amount);
}
console.log( topCities(3) );
Genial la forma tan clara de explicar cosas, muchas gracias. Si puedo hacerte una sugerencia, esta sería que, al principio del vídeo o en la descripción del mismo, pusieras el o los ejercicios que vas a resolver para poder parar el vídeo e intentarlo antes de que tú lo resuelvas, y así comparar los resultados. Pero vamos, esto es solo por dejarte algún apunte constructivo al magnífico vídeo.
Lo dicho, muchas gracias y más vídeos como este. Creo que así se aprende más javascript que siguiendo un curso, 🤔
Excelente vídeo !!
Felicitaciones, justo mañana tengo una entrevista técnica. Voy a refrescar métodos de búsqueda y ordenamiento.
Abrazo
Muy util el video...
Sabes que personalmente rechazo hacer este tipo de entrevistas técnicas en directo pero así de bien explicado podría hasta hacerla, jajajaja.
Creo que esta prueba es razonable y todas las personas programadoras deberíamos conocer bien las funciones de este estilo: map, reduce, filter, any, all, sort etc. (Los nombres podrán variar según el lenguaje).
Excelente vídeo! Un saludo.
Muchas gracias Rafa! Yo tampoco soy partidario, como te pille un dia con la guardia baja, entre los nervios y demás, se te olvida hasta sumar.
Pero coincido en lo que dices, conocer esas funciones es esencial, mas que nada porque las acabas usando en el dia a dia.
Un abrazo, y espero que estés mejor :)
No te detengas Carlos me inspiras soy tu fan!
Carlos te sigo sigo desde hace ya un buen tiempo y cada vez me gusta más y aprendo más de tu contenido
La cantidad de veces que me ha salido la última pregunta (con sus variaciones) en entrevistas laborales en inglés es mucha para acordarme... 🤭
Y es que saber trabajar con estructuras de datos es un requisito casi que imprescindible que necesitas aprender como desarrollador de aplicaciones.
Excelente video como siempre, Carlos.
Lo leíste de un aguacate🥑
Muchas gracias Aguacate! Sin duda, conocer los metodos de arrays y de Object te da el 80% de los que usas en el día a día.
Eso es.. es mejor enfocar esto en vez de problemas definidos, más de como funcionar con lo que hay que hacer y como hacerlo para resolver según que tipos de problemas.. me refiero a como accionar.. generar mapas.. ordenar las ciudades con el ciclo for.. darle forma a la info con el map.. y asi..
Con github copilot se haría en 1 minuto o menos, una vez se normalice el uso de copilot las empresas ya no requerirán tanto esfuerzo mental por parte de los candidatos, solo valorarán el ingenio y la pericia del programador a la hora de dar las instrucciones precisas a copilot para montar toda la lógica.
De lujo esto videos.
Yo creo que la presión me podría, jajaja
Esta sería mi propuesta para la resolución del 3er problema
[...new Set(citiesList)]
.map(e => {
return {
name: e,
times: citiesList.filter(f => f === e).length
}
})
.sort((a, b) => b.times - a.times)
.slice(0, 5)
.map(e => e.name)
Muchisimo mejor el uso de Set, en ese momento no daba con la tecla y use un forEach, pero mucho más elegante tu solución 👏👏👏👏
El uso del set no quitaba los elementos duplicados de un array? Esa duda la tengo hace mucho
maravilloso, la mejor forma de aprender.
1:17 Cómo lo supo 😭 xddd. Por cierto, qué buen video macho! Muy interesante e importante
Jejej, Me alegro que te haya servido Eliseo!
Gracias Carlos! Yo me hubiese desmayado con las preguntas.. 🙃, gracias por el consejo!
jajajjaja
Me tomé una barrita energética antes :D
Suscríbete para más videos 👉 ruclips.net/user/CarlosAzaustre
Excelente, más vídeos así
Excelente, a mi me ha tocado un examen similar donde debia contar el numero de letras que se repetian en un anagrama, yo lo he resuelto utilizando reduce, saludos!
Son muy comunes ese tipo de tests, se busca ver que tal te manejas con estructuras y metodos.
Llevo 8 meses aprendiendo a profundidad html y ya estoy por terminar css y la verdad es que me ah gustado más esto que mi carrera de mkt, no se siento que con esto todo es más fácil.
Es porque solo has visto html y css cuando veas temas mas avanzados vera que se vuelve mas complejo
Excelente carlos, espero más videos de algoritmos tipo codewars, un saludo
Esta es mi solución del segundo ejercicio:
function Count (array) {
let count=0
let newArray=[]
array.map(element => {
for(i=0;i
Gracias
muy bueno, queremos más pruebas!!!
Tengo un par más en el armario ;)
@@CarlosAzaustre genial!!!
buen vidéo, felicitaciones, yo soy más de c++ pero estoy viendo que no sirve para nada lo que yo sé hacer porque nadie me contrata
Muy útil! Por cierto, soy un programador experimentado pero creo que esta prueba no la habría pasado. Muchas gracias, Carlos.
increible!!
Gracias Carlos Alarcón, muy buenos videos que nos dan un vistazo a la realidad. Saludos desde México
Jajaja, Gracias a ti @Epin, por tus comentarios. :)
genio
Hola, gracaus por tus videos. Me gustaría saber cómo le haces para ejecutar javascript directamente en el vscode. Gracias.
No es VS code, es otra app llamada RunJS, descárgala bro, es muy didáctica para aprender JS
@@luisp0160 Estaba buscando el nombre de esa app desde hace mucho tiempo, me has salvado, ¡Gracias!
excelente!
Excelente video y resolución. Yo hubiese pensado en iterar el array y crear otro solo con la ciudad y la cantidad en función de cantidad de veces que se repite.
Pregunto, te define los live code como Developer?, pregunto por que hay muchos a favor y muchos en contra. Sin contar si tuviste un mal día o si el que te evalúa está sesgado a lo que tenga ganas esa mañana de evaluar no?. Es cierto q te da un print general de que tanto codeas o que tan a gusto estás, pero mas alla de eso, no se si te define el perfil de la persona.
Buena pregunta.
Para nada, yo los odio y creo que es de las peores formas de valorar una candidatura.
Mejor prueba técnica para resolver “en casa” y luego explicar como lo has hecho.
Hace poco vi una prueba donde el primer punto era, recibes un string y donde encuentres vocales, añadir luego de la vocal un par guiones "--" y retornar el nuevo string. Cómo lo harían con JS?
Con tu video me ha dado por pensar que puedo ser senior y no soy consciente de serlo. Me cago en to.
Pensé que usarías Jest para cada ejercicio.
Muy interesante
en el primer ejercicio, ¿Se puede pasar parámetros a el método hello()? algo así:
const person = {
hello: (name) => console.log(`Hello ${name}`)
}
que al llamarlo puedas hacer
person.hello('Carlos')
Claro que si, funcionaria de igual manera, lo ejecutas: person.hello('Tu nombre')
@@MiguelChinchay ok, muchas gracias :)
Grande Carlos como siempre viendote hacer esa prueba hace que se vea tan sencillo pero a la hora de la hora uno freeze jaja
Por supuesto, no es lo mismo este video que la prueba real. En vivo el corazon va a mil y la mente a --1000 :D
jummmm, toca aprender programacion funcional y todo ese reguero de metodos y funciones, saber como funcionan
Hola, yo en el minuto 7:00 ya me perdí, tienes en tu canal como entender eso del forEach y lo de !cities[city] ? 1 porque no lo entiendi porque se escribe así.
Una clase mas pesada que un objecto? Pues abria que aclarar a que te refieres con "pesada". Pero en terminos muy generales no es asi. Esto en caso de cuantificar los dos caso con el mismo numero de propiedades. Por lo que "es mas pesada" no es una verdad asi como asi.
Buenas, muy bueno el video, te hago una consulta: que Code Runner estás usando?
RunJS
Enseñas lo que haces y eso está muy bien, pero no explicas el código que escribes y se me hace difícil alguna cosa... de todos modos mil gracias y por supuesto estoy suscrito.
Semi senior? parece para junior esta prueba! Eh visto pruebas para trainee o junior mas difíciles
me demore 27 minutos en el ejercicio del array :(
Me pongo muy nervioso!
40 mins para el ultimo pero lo logre 😎🤙
Gracias Grack
Excelente video.
en la ultima yo demoraria como media hora y la hizo como en 3 minutos ._____. creo q el camino a senior esta un poco lejano xd
Yo creyendo que esta prueba tecnica era para junior y aprendiendo todo >>>>>>>>>>>
Crack
Dure 11 minutos y 29 segundos asustado por que solo entendí la mitad. Luego me di cuenta que es para un programador SENIOR jajajaj
ufff, excelente explicacion
let cities = citiesList.reduce((a,c)=>{a[c]=(a[c]??0)+1;return a},{})
Object.entries(cities).sort((a,b)=>b[1]-a[1]).slice(0,n).map(e=>e[0])
one liner XD
```Object.entries(citiesList.reduce((a,c)=>{a[c]=(a[c]??0)+1;return a},{})).sort((a,b)=>b[1]-a[1]).slice(0,n).map(e=>e[0])```
En VSCode hay algo que me permita hacer eso de ver el resultado de la ejecucion del code ?
es un plugin creo que se llama quokka
Hola , que programa ocupas programa ocupas para que te entregue el resultado al costado derecho ?
Run.js
Hola Carlos veo que usas RUnJS habra algun plugin para visual code que haga lo mismo?
Quokka
Que editor estás utilizando?
🔥
Lean la biblia hermanos, JavaScript es el mal.
@@CarlosAzaustre amen
es javascript?
En caso que la entrevista sugiera usar reduce
const counterLetters = countries.reduce((acc, current, idx, array) => {
return acc.hasOwnProperty(current) ?
{ ...acc, [array[idx]]: acc[array[idx]] + 1 }
: { ...acc, [array[idx]]: 1 };
}, {});
pero esa prueba es para senior verdad??
No se por que no me imprime ni en VSC y ni en stackBlitz y lo tengo tal cual como el lo tiene....
function mostCities(numCities){
const cities = {}
citiesList.forEach(city => {
cities[city] = !cities[city] ? 1 : cities[city] += 1
})
return Object.keys(cities)
.map(city => ({name: city, times: cities[city]}))
.sort((a,b)=> b.times - a.times)
.map(city => city.name)
}
mostCities(5)
bajate runJs y correlo ahi
mi frankestein me salio algo similar, aun asi pienso que en una entrevista real me congelaria :v (En la pregunta 2 para evitar modificar todos los atributos con freeze seria mas interesante usar el defineProperty y modificar el writable a false, para que solo afecte a el atribute name por supuesto).. igual aca esta mi code:
const showTopCities = (citiesList,limit) => {
const objCities = citiesList.reduce((finalObject, city) => {
if(!finalObject.hasOwnProperty(city)) finalObject[city] = 1; // crear la ciudad, y contandola
else finalObject[city] += 1; // actualizando el contador
return finalObject;
},{});
return Object.entries(objCities)
.sort((objA, objB) => objB[1] - objA[1])
.map(obj => obj[0]).slice(0,limit);
}
ssr? Hoy en día esto se lo piden a un trainee
😈
🧢
Gracias kiko por recomendar cosas buenas
03:58 **badum tss**
🤣🤣
Eso es SSR?, muy izi
Personalmente odio este tipo de entrevistas me bloqueó totalmente ....
Más material para Víctor Robles 😂😂
Siempre me ha parecido absolutamente absurdo que hagan ejercicios de este tipo. Cualquiera fe ellos lo buscas en google y lo encuentras.... Deberian solicitar algo mas realista, por ejemolo que hagas un pequeño proyecto en tienpo real o algo asi... Ademas las estructuras de datos ya tienen soluciones conocidas a todos los problemas... Por no hablar fe las bibliotecas wspecificas para wstructuras de datos...
foreach!!!! 😱😱😱😱😝 Seria mejor haber usado un reduce
Object.entries(citiesList.reduce((acc, city) => ({...acc, city: acc[city] ?? 0 + 1}), {})).sort(([_, timesA], [_, timesB]) => timesB - timesA).slice(0, 5).map(([name]) => name)
Nunca se deberia usar un foreach para provocar efectos laterales, por eso se huyo de los for tradicionales
Que editor de texto utilizas?? Mola un monton como sale el contenido de los objetos a la derecha
😈
😈