Algoritmos Clave en Entrevistas Técnicas

Updated: Oct 20

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í!

Recopilamos para ti los algoritmos más preguntados por reclutadores!



Con respecto a los algoritmos y las estructuras de datos, a muchos desarrolladores no les parece importante o encuentran sin sentido realizar una prueba de ejercicios técnicos si al final del día no van a desempeñarse trabajando con estos temas... Una opinión general muy dividida 🥲...

Y los entendemos, así que acá te explicamos cómo funciona.


Haciendo la historia corta:

Los algoritmos son el paso a paso en el que un programador puede resolver eficientemente un problema determinado.

Por ende, lo correcto en las entrevistas es evaluar la capacidad de resolución de estos problemas pero de la forma más optima posible y luego de los ejercicios, usualmente se realizan preguntas detalladas sobre la estructura del mismo en función de medir conocimientos y buenas prácticas.


Se cree que para dominar estructuras de datos y algoritmos debes resolver cientos de problemas. Y sí, es importante practicar, pero también se vale centrarse sólo en ciertos ejercicios que te ayudarán a obtener una comprensión profunda sobre estructura de datos y algoritmia.


Conoce los Algoritmos clave y más usados en las pruebas técnicas de entrevistas de trabajo como desarrollador o programador 🧑🏻‍💻 y ¿Dónde puedes practicarlos? 📝👀 ¡Los detalles aquí!




ALGORITMOS CLAVE

TALK DE LA SEMANA



¿Por dónde iniciar?

Primero debes conocer tu nivel, si por ejemplo estás dando tus primeros pasos en el mundo del desarrollo y la programación, te recomendamos revisar primero esta guía✨ donde puedes aprender a desarrollar la 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!


Básicos...

  1. 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.

  2. Encontrar repeticiones o conocer un palíndromo Conocer si un número o palabra se lee igual en orden inverso. Ej: "level", 12021, "somos". La implementación es cuestión de optimizar en pocas líneas una validación con booleanos, pero en problemas complejos se implementarán hashs y programación dinámica para búsqueda de aproximados o repeticiones.

  3. 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 Es el caso del ejercicio del Ratón en el Laberinto, 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.


Practica algoritmos con complejidad

  1. Ejercicios de Ordenamiento Son algoritmos que pueden reorganizar una matriz o lista de elementos de acuerdo con un operador de comparación, este decide el nuevo orden en una nueva estructura de datos. Existen 3 sorting algoritmos que puedes implementar para la resolución de ejercicios: - 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 2 algoritmos de clasificación que debes conocer: - 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... 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.

  2. Búsquedas binarias Estos algoritmos son la forma rápida y eficiente de hallar datos dados en listas ordenadas. Tiene muchas aplicaciones actuales, en consultas y bases de datos se puede encontrar, por ejemplo, la información de un usuario validando millones de credenciales milisegundos. Los 3 algoritmos en los que debes centrarte son: Pre-Order, In-Order y Post-Order.

  3. Algoritmos de búsqueda de gráfos Estos funcionan en árboles también, revisa documentación sobre búsqueda en profundidad (DFS), en amplitud (BFS) y el algoritmo de Dijkstra.

Aprender estos algoritmos lo ayudará a comprender cómo recorrer recursivamente todos los nodos de un árbol.

Las búsquedas, son algoritmos que cuentan con su notación de eficiencia, como el asunto puede volverse tedioso y extenso 🥲 te recomendamos familiarizanrte con BigO Notation o al menos, con la gráfica de complejidad, puedes revisar esta miniguía de braveDeveloper


Porque de nada sirven los algoritmos que demorarán una vida en dar un resultado, además, hace parte de las buenas prácticas y te suma para un cargo superior al developer principiante


Los ejercicios que te podrían colocar pueden variar con el lenguaje de programación, una pregunta usual puede ser: Implemente un SortedMap en JavaScript...


Ejercicio: Número de islas 🏝️

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.


Especializado para cada lenguaje

Desde este punto, puedes optar por plataformas para practicar algoritmos basado en tu enfoque.


Temas como Programación orientada a objetos (P.O.O) dependerá del paradigma y sí, tanto teoría como la práctica. Todo va depender mucho del cargo al que estés aplicando, por ejemplo si eres desarrollador web, probablente quieran evaluar tus conocimientos prácticos en Consumo APIs 🖥, y si es así, en ese caso implementa REST o RESTful, y aprende sobre el tipo de protocolo, direccionamiento y las respuestas de los HTTP status ¡ah! conoce también #Spring #MVC 🌼


Lo anterior tanto práctico como teórico.

.

Y obvio no se te pueden pasar temas como: Las metodologías ágiles y las buenas prácticas que esas sí que son un ¡plus! a la hora de perfilarte como semi-senior o darte el seniority de cualquier nivel. Conoce prácticas del Clean Code, principios SOLID, SCRUM y así...


Además, si aún no lo has hecho y te gusta leer, asegúrate de obtener una copia en español del libro Cracking the Coding Interview uno de los mejores recursos para aprender estos algoritmos y comenzar a prepararse para las entrevistas de código.



¿Dónde practicar?

Este TOP 5 quizás ya lo hemos mencionado varias veces en otros blogs y en redes sociales (que por cierto, ¡Síguenos! Tips sobre desarrollo todos los días 🏻‍✨). Como les decía, son las mejores plataformas para practicar, con opción gratuita, path de estudios y una de ellas ¡en español! 👌🏻


Para fortalecer tus habilidades de coding, es importante practicar algoritmos con un sistema que te permita hacer checks sobre la eficiencia y resolución óptima de los mismos. Sólo es escoger cualquier lenguaje de programación (una vez hayas comprendido sus fundamentos, e incluso si quieres reforzarlos los mismos).


  • The-algorithms.com: Biblioteca de algoritmos openSource en inglés y español, integrada con GitHub, con opción gratuita e interfaz amigable para la resolución de ejercicios en sitio.

  • FreeCodeCamp/espanol Recursos gratuitos como vídeos, artículos y lecciones de código interactivos, para aprender a programar gratis construyendo proyectos de programación.

  • Leetcode.com: Además de practicar habilidades y ampliar conocimientos en programación, también puedes ¡prepararte para entrevistas técnicas!

  • HackerRank.com: Plataforma que ayuda a tanto a empresas como a desarrolladores en el proceso de hiring y crecimiento en programación.

  • Coderbyte.com: Retos de programación en distintos lenguajes de programación que van desde los más básicos hasta los necesarios para acceder a un nivel alto de desarrollo.


También proporcionan una colección de tutoriales de algoritmos, videos introductorios y cursos de preparación para entrevistas. A diferencia de HackerRank y otros sitios web similares, puedes ver las soluciones que otros usuarios proporcionan para cualquier desafío, además de las soluciones oficiales publicadas por Coderbyte.


¡Pronto! Ideas para tu Portafolio Dev 💼 Proyectos OpenSource que son un súper plus 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👇


32 views

Join our newsletter to receive information about latest technologies trends and job offers

Thanks for subscribing!