Los algoritmos y estructuras de datos que aparecen en las entrevistas de las empresas de tecnología de mayor nivel: árboles, grafos, programación dinámica y las técnicas de resolución de problemas que diferencian al candidato que pasa de FAANG del que no.
Cuándo usarlo: Prepararse sistemáticamente para superar los coding interviews de nivel avanzado en empresas de tecnología de primer nivel.
Herramienta recomendada: Claude
Eres un experto en preparación de entrevistas técnicas de alto nivel con experiencia en procesos de selección de empresas como Google, Meta, Amazon, Microsoft, Apple y otras empresas de tecnología de referencia. Necesito que me ayudes a prepararme de forma sistemática para superar los coding interviews de nivel avanzado. Mi contexto: - Nivel actual de experiencia: [junior / mid / senior / staff] - Lenguaje de programación preferido para las entrevistas: [Python / Java / C++ / JavaScript / Go / otro] - Estado de preparación actual: [empezando desde cero / tengo las bases pero fallo en problemas difíciles / he fallado entrevistas recientes y quiero entender por qué] - Empresas objetivo: [las empresas o tipos de empresa a los que aplicas o planeas aplicar] - Tiempo disponible para la preparación: [horas por semana y semanas disponibles hasta el primer proceso] - Principal debilidad técnica: [árboles y grafos / programación dinámica / diseño de sistemas / todos los anteriores] Con ese contexto, dame: 1. EL MAPA DE CONOCIMIENTOS NECESARIOS ¿Qué estructuras de datos y algoritmos son imprescindibles para los coding interviews de nivel avanzado? Dame el mapa completo organizado por frecuencia de aparición: Estructuras de datos esenciales: arrays y strings, listas enlazadas, pilas y colas, árboles binarios y BST, heaps, grafos, tablas hash y sets — para cada una, el nivel de dominio esperado y los patrones de problema más frecuentes. Algoritmos esenciales: búsqueda binaria, two pointers, sliding window, BFS y DFS, backtracking, programación dinámica, divide y vencerás, algoritmos de grafos (Dijkstra, Bellman-Ford, topological sort, Union-Find) — para cada uno, cuándo aplicarlo y las variantes más frecuentes. 2. EL FRAMEWORK DE RESOLUCIÓN DE PROBLEMAS EN ENTREVISTA La técnica de resolución es tan importante como el conocimiento técnico. Dame el framework paso a paso que debo aplicar en cada problema: - Los primeros dos minutos: cómo clarificar el problema, identificar los edge cases y confirmar el entendimiento antes de escribir código - La exploración de enfoques: cómo pensar en voz alta mientras exploras desde la solución bruta hasta la óptima, y por qué hacer esto convence al entrevistador aunque no llegues a la solución perfecta - El análisis de complejidad: cómo calcular y comunicar la complejidad temporal y espacial de cada solución - La implementación: las prácticas de codificación que demuestran seniority (nombres de variables claros, funciones auxiliares, manejo de edge cases) - El testing en entrevista: cómo trazar la ejecución del código con un ejemplo antes de declararlo correcto 3. PROGRAMACIÓN DINÁMICA: EL TEMA QUE MÁS ASUSTA La programación dinámica (DP) es el tema donde más candidatos fallan. Dame el framework sistemático para atacar cualquier problema de DP: - Cómo reconocer que un problema tiene solución de DP: las características (optimal substructure, overlapping subproblems) y las pistas en el enunciado - El proceso de cinco pasos para resolver cualquier problema de DP: definir el estado, la transición, el caso base, el orden de cálculo y la respuesta - Los patrones de DP más frecuentes en entrevistas: knapsack, longest common subsequence, edit distance, matrix path, interval DP, tree DP, digit DP - La diferencia entre top-down (memoización) y bottom-up (tabulación): cuándo usar cada uno y cómo convertir uno en el otro 4. GRAFOS: EL TEMA QUE DEFINE AL CANDIDATO SENIOR Los problemas de grafos distinguen a los candidatos senior de los mid. Dame el framework completo: - Las representaciones de grafos: lista de adyacencia vs matriz de adyacencia — cuándo usar cada una y cómo implementarlas limpiamente - BFS vs DFS: las diferencias fundamentales, cuándo usar BFS (caminos más cortos, nivel por nivel) y cuándo DFS (backtracking, componentes conexas, topological sort) - Los algoritmos de grafos que aparecen en entrevistas y cómo implementarlos: Dijkstra con heap, detectar ciclos, topological sort (Kahn y DFS), Union-Find (con path compression y union by rank) - Los problemas de grafos disfrazados: los problemas de matrices (BFS/DFS sobre grid), los problemas de dependencias (topological sort) y los problemas de conectividad (Union-Find) 5. ÁRBOLES: PATRONES Y TÉCNICAS AVANZADAS Los árboles son el tema más frecuente en entrevistas. Dame el dominio completo: - Los recorridos de árbol y cuándo usar cada uno: inorder, preorder, postorder (DFS) vs level order (BFS) - Los problemas de LCA (Lowest Common Ancestor) y cómo resolverlos en diferentes tipos de árbol - Los problemas de path en árboles: cómo atacar los problemas que piden el camino de mayor suma, mayor longitud o que cumple una condición - Los árboles BST y sus propiedades: búsqueda, inserción, eliminación y los problemas que aprovechan la propiedad de orden - Los árboles equilibrados: cuándo mencionarlos en la entrevista y cuánto detalle dar sobre AVL, Red-Black o B-trees 6. ESTRATEGIA DE PREPARACIÓN Y PRÁCTICA ¿Cómo estructuro las semanas de preparación para maximizar las probabilidades de pasar los procesos? Dame el plan: - La secuencia de temas en el orden óptimo de aprendizaje para alguien con mi nivel actual - Las plataformas y recursos recomendados: LeetCode, NeetCode.io, Blind 75 / Grind 169, libros, vídeos — con la recomendación de cuántos problemas por tema y qué nivel (easy/medium/hard) - El proceso de revisión: cómo sacar el máximo aprendizaje de un problema que no he sabido resolver - Las señales de que estoy listo: cómo saber cuándo he preparado suficiente para empezar a aplicar - La práctica de la comunicación: por qué practicar en voz alta o con un compañero es imprescindible aunque conozcas los algoritmos 7. LOS ERRORES QUE CUESTAN EL TRABAJO Dame los errores no técnicos más frecuentes que hacen que un candidato técnicamente capaz falle el coding interview: - El silencio: codificar sin comunicar el razonamiento - El overconfidence: lanzarse a implementar sin verificar el entendimiento del problema - La rendición temprana: declarar que un problema es imposible antes de explorar todas las opciones - El código no limpio bajo presión: nombres de variables de una letra, ausencia de funciones auxiliares, código que funciona pero que no podría mantenerse - La falta de testing: declarar el código correcto sin trazarlo con un ejemplo