Algoritmos más usados en pruebas técnicas de entrevistas de trabajo como desarrollador o programador 🧑🏻💻 ¿Cómo resolverlos? y ¿Dónde puedes practicarlos? 📝👀 ¡Los detalles aquí!
Con respecto a ejercicios sobre optimización o estructuras de datos, a muchos desarrolladores no les parece importante o encuentran sin sentido realizar una prueba técnica de este estilo si al final no van a desempeñarse realizandolos en su día a día... Una opinión general muy dividida 🥲
Y los entendemos, así que acá te explico cómo funciona realmente:
Los algoritmos son el paso a paso en el que un dev resuelve eficientemente un problema determinado.
Por ende, en las entrevistas se evalúa la capacidad de resolución de estos problemas de la forma más optima posible y luego de los ejercicios, usualmente se realizan preguntas detalladas sobre el mismo en función de medir conocimientos y buenas prácticas.
Desde mi óptica como recruiter en Meltstudio.co he creado junto al CTO una lista de algoritmos clave que se usan para medir correctamente el conocimiento de un aplicante Dev en JavaScript y de paso te cuento ¿cómo resolverlos? y ¿dónde puedes practicarlos? 📝👀 ¡Los detalles en este blogpost!
ALGORITMOS CLAVE
TALK DE LA SEMANA
¡Inicia Practicando Algoritmos Claves!
Primero debes conocer tu nivel, si por ejemplo estás dando tus primeros pasos en el mundo del desarrollo y programación, te recomendamos revisar primero esta guía✨ donde puedes ir mejorando tu lógica de programación, es decir, la forma en la que se pueden dividir problemas en partes más pequeñas y darles solución.
Luego viene la parte feliz ¡Practicar! 🙌🏻
Algoritmos para pruebas básicas
Secuencias o Series, por ejemplo: Fibonacci Fórmula matemática an = an−2 + an −1... y retorna: 0, 1, 1, 2, 3, 5, 8, 13, hasta el infinito ¿Cuál podría ser el escenario posible para este algoritmo? - Si te piden calcular millas a kilómetros y viceversa.
Encontrar repeticiones o conocer un palíndromo Optimiza en pocas líneas una validación con booleanos para conocer si un número o palabra se lee igual en orden inverso. Ej: "level", 12021, "somos". ¿Cuál podría ser el escenario posible para este algoritmo? - Implementar hashs / programación dinámica en búsqueda de aproximados o repeticiones.
Sucesión y procesos: Listas enlazadas Cuando crea una lista de reproducción las canciones se reproducen una por una pero no puede volver atrás: lista enlazada. En sentido contrario sería una: lista doblemente enlazada. Y en modo de repetición, sigue el comportamiento de una lista enlazada circular o bucle donde, una vez que se completa la última canción, la primera canción se reproducirá nuevamente y nunca se detendrá. Ejercicio: Recorridos inteligentes en Matrices, donde existen dos caminos para llegar a un destino (3,3), siendo una matriz de N*N dimensiones...
Para resolverlo debes revisar esta serie de pasos y condiciones:
El ratón puede atravesar de 4 formas posibles: hacia abajo, arriba, derecha o izquierda.
Las celdas visitadas serán marcadas con 1 y las no visitadas con 0
Si la posición (x,y) está bloqueada (0) y retroceda al paso anterior
Si no es celda de destino, desmarque (x,y) como visitado y retroceda al paso anterior.
Algoritmos Ordenamiento y Optimización
Ordenado o Sorting algorithms: - Quick sort: Es el llamado ordenación rápida porque utiliza recursividad para ordenar - Insert sort: No usa recursividad o una matriz separada para almacenar elementos. - Merge sort: Y la ordenación combinada utiliza algunas técnicas recursivas para ordenar. Y algoritmos de clasificación: - Selección: Requiere un número mínimo de intercambios para ordenar la entrada - Bubble Sorting: Recorre repetidamente comparando el elemento actual con el siguiente y luego intercambiando si es necesario... ¿Cuál podría ser el escenario posible para este algoritmo? Las secciones de recomendación tipo "Te puede gustar" de tiendas en línea o plataformas como Netflix , implementan algoritmos de ordenamiento y búsqueda binaria. Puedes conocer más googleando este término:
Búsquedas en árboles binarios Hallar datos dados en listas ordenadas. Los 3 algoritmos en los que debes centrarte son: Pre-Order, In-Order y Post-Order.] ¿Cuál podría ser el escenario posible para este algoritmo? - Con muchas aplicaciones actuales, en consultas de bases de datos permite encontrar la información de un usuario validando millones de credenciales en milisegundos. Y Algoritmos de búsqueda en gráfos Búsqueda en profundidad (DFS), en amplitud (BFS) y el algoritmo de Dijkstra. Las búsquedas, son algoritmos que cuentan con notación de eficiencia, no haré este blog más extenso 🥲 así que te recomindo familiarizanrte con BigO Notation: miniguía de braveDeveloper✨
Aprender estos algoritmos lo ayudará a comprender cómo recorrer recursivamente todos los nodos de un árbol.
Ejercicio: Recorridos inteligentes en Matrices: Implemente un SortedMap en JavaScript...
Para resolverlo debes revisar esta serie de pasos y condiciones:
Dos islas están conectadas solo si son adyacentes vertical u horizontalmente
Si todos los nodos de una isla están conectados, se puede usar un algoritmo de búsqueda de gráfos para visitar los nodos comenzando en cualquier punto (x,y).
La búsqueda (que puede ser primero en profundidad) se inicia al encontrar un nodo 1 no visitado como nodo raíz. Y los nodos visitados serán 0
La cantidad de nodos raíz que activan DFS sería la cantidad de islas.
Algoritmos especializados en JavaScript
Desde este punto, puedes optar por plataformas para practicar algoritmos basado en tu enfoque.
Temas como Programación orientada a objetos (P.O.O) y sí, tanto teoría como práctica: herencia, polimorfismo, mutación. Todo va depender mucho del cargo al que estés aplicando.
Si eres desarrollador web, repasa tus conocimientos prácticos en Consumo API 🖥 REST o RESTful, y aprende sobre el tipo de protocolo, direccionamiento y las respuestas de los HTTP status. No olvides que habrá una sesión de live coding donde debes ir explicando a medida que vas resolviendo, se observará el dominio técnico y uso de herramientas que dices tener en tu hoja de vida, pero más que conocimientos técnicos, los que son importantes, se evalúan tus virtudes:
Buena estructura mental para resolución de problemas
Realizar las preguntas adecuadas para entender las pruebas
Que sea muy ordenado a la hora de codear o debuggear
Y finalmente, metodologías ágiles y buenas prácticas: Principios SOLID, SCRUM, Clean Code, que son un ¡plus! a la hora de perfilarte como semi-senior. Si te gusta leer, asegúrate de obtener una copia en español del libro Cracking the Coding Interview.
¿Dónde Practicar Algoritmos?
Este TOP 5, publicado también en nuestras redes sociales (que por cierto, ¡síguenos! sacamos tips de desarrollo todas las semanas) recopila las mejores plataformas 2023 para practicar algoritmos 🏻✨, con opción gratuita, path de estudios y algunas en español ¡dale click! 👌🏻
[Pronto] Conoce también Ideas para tu Portafolio Dev 💼 Proyectos Open-Source que son un súper boost en tu hoja de vida como developer🧑🏻💻 Además, practicarás temas actuales de programación y desarrollo... 😎
¡Gracias por leer!
📍 Conéctate con nosotros en instagram👇
Comments