Las entrevistas de codificación se componen principalmente de preguntas basadas en algoritmos y estructura de datos, así como algunas de las preguntas lógicas como, ¿Cómo se intercambian dos números enteros sin usar una variable temporal?
Hay muchos graduados en informática y programadores que solicitan funciones de programación, codificación y desarrollo de software en nuevas empresas como
Uber y Netflix. Grandes organizaciones como Amazon , Microsoft y Google ; y empresas basadas en servicios como Infosys o Luxsoft, pero muchas de ellas no tienen idea de qué tipo de preguntas de entrevista de programación esperar cuando solicita un trabajo con estas empresas.
En este artículo, compartiré algunas preguntas frecuentes de entrevistas de programación de diferentes entrevistas para programadores con diferentes niveles de experiencia, desde personas que se acaban de graduar de la universidad hasta programadores con uno o dos años de experiencia .
Creo que es útil dividir las preguntas de la entrevista de codificación en diferentes
áreas temáticas. Las áreas temáticas que he visto con mayor frecuencia en las entrevistas son matriz, lista enlazada, cadena, árbol binario, así como preguntas de algoritmos (por ejemplo, algoritmo de cadena, algoritmos de clasificación como clasificación rápida o clasificación radix , y otros misceláneos), y eso es lo que encontrarás en este artículo.
No está garantizado que le hagan estas preguntas algorítmicas o de estructura de datos o codificación, pero le darán una idea suficiente de los tipos de preguntas que puede esperar en una entrevista de trabajo de programación real.
Una vez que haya respondido a estas preguntas, debe sentirse lo suficientemente seguro como para asistir a cualquier entrevista telefónica o cara a cara.
Por cierto, no tiene sentido intentar estas preguntas si no tiene suficiente conocimiento de la estructura de datos y los algoritmos esenciales o si no los ha tocado durante años.
En ese caso, deberías tomar un buen curso como Algorithms and Data Structures Part 1 and 2 Por Robert Horvick para actualizar sus habilidades de DS y algoritmos.
Mira este video relacionado sobre la programación a continuación .
Sin más preámbulos, aquí está mi lista de algunas de las preguntas más frecuentes de entrevistas de codificación de entrevistas de trabajo de programación :
Una matriz es la estructura de datos más fundamental, que almacena elementos en una ubicación de memoria contigua. También es uno de los temas queridos de
entrevistadores y escuchará muchas preguntas sobre una matriz en cualquier entrevista de codificación , por ejemplo, invertir una matriz, ordenar la matriz o buscar elementos en la matriz.
El beneficio clave de una estructura de datos de matriz es que ofrece una búsqueda rápida de O(1) si conoce el índice, pero agregar y eliminar un elemento de una matriz es lento porque no puede cambiar el tamaño de la matriz una vez que se crea.
Para crear una matriz más corta o más larga, debe crear una nueva matriz y copiar todos los elementos del antiguo al nuevo.
La clave para resolver preguntas basadas en matrices es tener un buen conocimiento de la estructura de datos de matrices, así como de los constructores básicos de programación, como los operadores de bucle, recursión y fundamentales.
Estas son algunas de las preguntas populares de la entrevista de codificación basada en matrices para su práctica:
Estas preguntas no solo lo ayudarán a desarrollar sus habilidades para resolver problemas, sino que también mejorarán su conocimiento de la estructura de datos de matriz.
Si necesita preguntas más avanzadas basadas en una matriz, también puede ver The Coding Interview Bootcamp: Algorithms + Data Structures , un curso de estilo bootcamp sobre algoritmos, especialmente diseñado para
preparación de entrevistas para conseguir un trabajo en gigantes técnicos como Google,
Microsoft, Apple, Facebook, etc.
Y, si cree que 10 no son suficientes preguntas y necesita más práctica, también puede consultar esta lista de 30 preguntas de matriz .
Una lista enlazada es otra estructura de datos común que complementa la estructura de datos de matriz. Similar a la matriz, también es una estructura de datos lineal y
almacena elementos de forma lineal.
Sin embargo, a diferencia de la matriz, no los almacena en ubicaciones contiguas; en cambio, están dispersos por todas partes en la memoria, que está conectada entre sí mediante nodos.
Una lista enlazada no es más que una lista de nodos donde cada nodo contiene el valor almacenado y la dirección del siguiente nodo.
Debido a esta estructura, es fácil agregar y eliminar elementos en una lista enlazada , ya que solo necesita cambiar el enlace en lugar de crear la matriz, pero la búsqueda es difícil y, a menudo, requiere O (n) tiempo para encontrar un elemento en el lista enlazada simple.
Este artículo proporciona más información sobre la diferencia entre una matriz y estructuras de datos de lista enlazada.
También viene en variedades como una lista de enlaces individuales, que le permite atravesar en una dirección (hacia adelante o hacia atrás); una lista doblemente enlazada ,
que le permite atravesar en ambas direcciones (hacia adelante y hacia atrás);
y finalmente, la lista enlazada circular, que forma un círculo.
Para resolver preguntas basadas en listas enlazadas, es importante un buen conocimiento de la recursividad , porque una lista enlazada es una estructura de datos recursiva .
Si toma un nodo de una lista enlazada, la estructura de datos restante es
sigue siendo una lista enlazada, y debido a eso, muchos problemas de listas enlazadas han
soluciones recursivas más simples que las iterativas.
Estas son algunas de las preguntas de entrevista de lista enlazada más comunes y populares y sus soluciones:
Estas preguntas también lo ayudarán a desarrollar sus habilidades para resolver problemas.
como mejorar su conocimiento de la estructura de datos de la lista enlazada.
Si tiene problemas para resolver estas preguntas de codificación de listas vinculadas, entonces
sugiero que actualice su estructura de datos y habilidad de algoritmos yendo
a través de estructuras de datos y algoritmos: curso Deep Dive usando Java .
También puede consultar esta lista de 30 preguntas de entrevista de lista enlazada para más preguntas de práctica.
Junto con las estructuras de datos de matriz y lista enlazada, una cadena es otra opción popular.
Tema sobre programación de entrevistas de trabajo. Nunca he participado en un
entrevista de codificación en la que no se hicieron preguntas basadas en cadenas .
Lo bueno de la cadena es que si conoce la matriz, puede resolver fácilmente las preguntas basadas en cadenas porque las cadenas no son más que una matriz de caracteres .
Entonces, todas las técnicas que aprende al resolver preguntas de codificación basadas en matrices
también se puede usar para resolver preguntas de programación de cadenas.
Aquí está mi lista de preguntas frecuentes sobre codificación de cadenas de entrevistas de trabajo de programación:
Estas preguntas ayudan a mejorar su conocimiento de la cadena como estructura de datos. Si puede resolver todas estas preguntas de cadenas sin ninguna ayuda, entonces está en buena forma.
Para preguntas más avanzadas, le sugiero que resuelva los problemas dados en el Manual de diseño de algoritmos de Steven Skiena , un libro con las preguntas más difíciles sobre algoritmos.
Si necesita más práctica, aquí hay otra lista de 20 preguntas de codificación de cadenas .
Hasta ahora, hemos visto solo la estructura de datos lineal, pero todos
la información en el mundo real no se puede representar de forma lineal,
y ahí es donde ayuda la estructura de datos de árbol.
La estructura de datos de árbol es una estructura de datos que le permite almacenar sus datos de forma jerárquica. Dependiendo de cómo almacene los datos, existen diferentes tipos de árboles, como un árbol binario , donde cada nodo tiene, como máximo, dos nodos secundarios.a
Junto con su árbol de búsqueda binaria primo cercano, también es una de las estructuras de datos de árbol más populares. Por lo tanto, encontrará muchas preguntas basadas en ellos, como atravesarlos, contar nodos, encontrar profundidad y verificar si están equilibrados o no.
Un punto clave para resolver las preguntas del árbol binario es un sólido conocimiento de la teoría, por ejemplo, cuál es el tamaño o la profundidad del árbol binario, qué es una hoja y
qué es un nodo, así como una comprensión del recorrido popular
algoritmos, por ejemplo, antes, después y en orden transversal.
Aquí hay una lista de preguntas populares de codificación basada en árboles binarios de entrevistas de trabajo de ingenieros de software o desarrolladores:
Si cree que su comprensión de la codificación de árboles binarios es inadecuada
y no puede resolver estas preguntas por su cuenta, le sugiero que regrese
y elija un buen curso de estructura de datos y algoritmos como From 0 to 1: Data Structures & Algorithms in Java .
Si necesita más recomendaciones, aquí está mi lista de libros y cursos útiles sobre algoritmos de estructura de datos para comenzar.
Además de las preguntas basadas en la estructura de datos, la mayor parte del trabajo de programación
las entrevistas también preguntan algoritmo, diseño, manipulación de bits y general
preguntas basadas en la lógica, que describiré en esta sección.
Es importante que practiques estos conceptos porque a veces
volverse difícil de resolver en la entrevista real. Habiéndolos practicado
antes no sólo te familiariza con ellos, sino que también te da más
confianza al explicar la solución al entrevistador.
Si necesita más preguntas de codificación de este tipo, puede obtener ayuda de libros como Cracking The Code Interview , de Gayle Laakmann McDowell. que presenta más de 189 preguntas y soluciones de programación. Un buen libro para prepararte para programar entrevistas de trabajo en poco tiempo.
Por cierto, cuantas más preguntas resuelva en la práctica, mejor será su
la preparación será. Entonces, si crees que 50 no es suficiente y necesitas
más, luego consulte estas 50 preguntas de programación adicionales para entrevistas telefónicas y estos libros y cursos para una preparación más completa.
Estas son algunas de las preguntas más comunes fuera de la estructura de datos y
algoritmos que te ayudan a hacerlo realmente bien en tu entrevista.
También he compartido muchas de estas preguntas en mi blog , así que si estás realmente interesado, siempre puedes ir allí y buscarlas.
Estas preguntas comunes de codificación, estructura de datos y algoritmos son las que necesita saber para entrevistarse con éxito con cualquier empresa, grande o pequeña, para cualquier nivel de trabajo de programación.
Si estás buscando un trabajo de programación o desarrollo de software en 2018,
puede comenzar su preparación con esta lista de preguntas de codificación.
Esta lista proporciona buenos temas para preparar y también ayuda a evaluar su
preparación para descubrir sus áreas de fortaleza y debilidad.
Un buen conocimiento de la estructura de datos y los algoritmos es importante para
éxito en la codificación de entrevistas y ahí es donde debe enfocarse la mayor parte del tiempo
Su atención.
Aprendizaje adicional
Estructuras de datos y algoritmos: inmersión profunda usando Java
10 libros para preparar entrevistas de trabajo de programación técnica/codificación
10 libros de algoritmos que todo programador debería leer
Los 5 mejores libros de estructuras de datos y algoritmos para desarrolladores de Java
De 0 a 1: estructuras de datos y algoritmos en Java
Estructura de datos y análisis de algoritmos: entrevista de trabajo
Gracias, Llegaste al final del artículo… ¡Buena suerte con tu entrevista de programación! Ciertamente no será fácil, pero siguiendo esta hoja de ruta y esta guía, estará un paso más cerca de convertirse en un ingeniero de DevOps .
Si le gusta este artículo, compártalo con sus amigos y colegas, ¡y no olvide seguir a javinpaul en Twitter!