Si pronto tienes una entrevista o sesión de programación en vivo, aquí hay algunas herramientas básicas que todo programador debe tener en su arsenal a la hora de una entrevista que involucre programación en vivo:
Estructuras de Datos y Tipos de Dato Abstractos
- Array (Arreglos)
- Linked Lists: Sencillos y Dobles
- El ADT ‘List’ (Listas)
- Árboles: Binarios y BSTs
- El ADT ‘Set’ (Conjunto)
- Tries
- Heaps
- Los ADT Stack, Queue y Priority Queue
- Grafos: dirigidos, no dirigidos, diferentes representaciones y sus ventajas
- Hashtables: estrategias de resolución de colisiones, funciones hash y sus ventajas
- El ADT ‘Map’
- Algoritmos
Búsqueda Binaria
- Algoritmos de Ordenado: Selection Sort, Insertion Sort, Bubble Sort, Quicksort, Mergesort, Heapsort
- Algoritmos de Busqueda: Depth-first search, Breadth-first search, Dijkstra’s
- Recorrer Arboles: pre-order, post-order, in-order, level-order (BFS)
- Tecnicas Algoritmicas: Brute force, Divide and conquer (e.g. Mergesort), Greedy, Dynamic Programming (avanzado)
- Problemas NP-hard
Elementos Basicos de Programacion en JAVA
- Los básicos, por supuesto (bucles, condicionales, funciones, etc)
- Entrada y Salida: desde archivos y desde la línea de comandos
- Las clases ‘String’ y ‘Character’
- Convertir entre tipos de datos
- Diseno orientado a objetos: Herencia y Polimorfismo, Clases y Objetos, static and non static, modificadores de acceso (public, private, protected)
- La librería java.util (y sus clases contenedoras)
- El patrón del ‘Iterador’ (intermedio)
- Generación y manejo de excepciones
- Programación dirigida por eventos
- Clases internas y anónimas.
- Expresiones Lambda(avanzado)
Preguntas comunes en entrevistas de programacion.
- Diseno orientado a objetos, usando cualquier estructura de datos.
- Manipulación a nivel de bit para representar enteros.
- Acertijos de Teoría de Juegos: «muddy children», volcano eruptions.
- Estimar límites: «Cuántos pollos hay en Chicago?»
Recursos online para prepararnos.
- HackerRank. Un website con infinidad de retos de programación y algoritmos.
- PRAMP. Un website que ofrece entrevistas de programación de prueba. Gratis!