Estructuras de datos, algoritmos y construcciones de código que necesitarás para una entrevista de software.

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!