Con más de diez años de experiencia en programación y un título de CS, me llevó aproximadamente un mes y medio de práctica diaria prepararme para la entrevista. “Listo”, para mí, se define ambiciosamente como la capacidad de abordar casi cualquier pregunta de entrevista técnica en 30 minutos o menos y llegar a una solución óptima. Lo siguiente se basa en lo que hice para preparar: su millaje puede variar.
Ingredientes:
- Cómo prepararse para la entrevista de SSB siendo una candidata
- ¿Cuánto tiempo tarda UPSC en reclutar a IPS después de completar la entrevista?
- Cómo prepararse para una entrevista técnica para ingeniero eléctrico
- ¿Cómo calificaría el entrevistador a un candidato que esté visiblemente nervioso durante una entrevista pero que sepa sus cosas?
- ¿Cuáles son los temas comunes de GD que se preguntan principalmente en una entrevista de una empresa de software?
- Cerca de dos años de experiencia en codificación sólida
- Lápiz y papel
- Romper la entrevista de codificación ( CTCI )
- Tu libro de algoritmos favorito
- La introducción a los algoritmos, el manual de diseño de algoritmos y las perlas de programación son algunas buenas opciones. ¿Puedo sugerirle que use tecnología baja y compre copias físicas?
- Dos o tres horas al día
- Muy recomendable: pizarra blanca
- Muy recomendable: grado CS
- Opcional: MIT OpenCourseware u otro sitio de aprendizaje
Direcciones :
1) Aprenda todo lo que pueda sobre el proceso de entrevistas de Google (días 1 y 2)
Al igual que una comprensión incompleta de una pregunta técnica lo arruinará en la entrevista real, la información errónea desbaratará su preparación previa. Aprendí esto de la manera difícil cuando fallé en mi primer intento después de enfatizar los enigmas sobre el estudio de algoritmos y estructuras de datos.
Comience con la fuente: consulte google.com/careers para obtener información sobre cómo contrata Google. Luego mire este video de Google sobre lo que buscan los entrevistadores en la entrevista y, finalmente, vea un ejemplo de entrevista con verdaderos ingenieros de Google.
Una vez que tenga una base sólida, le recomiendo que siga leyendo CTCI . Particularmente enfóquese en los capítulos 5 y 6 titulados Preguntas de comportamiento y Preguntas técnicas .
Cuando finalmente leas mi breve artículo sobre las seis cosas que debes hacer absolutamente durante la entrevista real, debes tener una buena idea de cómo es un candidato bien preparado.
2) Compare usted mismo (días 3–5)
Ahora que sabe qué tan preparado debe estar, averigüe dónde se encuentra ahora. Use CTCI para esto. Tome un par de preguntas de cada sección y resuélvalas usando los seis pasos que mencioné anteriormente. Mantenga un registro de cuánto tiempo le lleva alcanzar una solución óptima para cada problema que resuelva.
Si y solo si ha resuelto el problema usted mismo, eche un vistazo a la solución que lo acompaña para evaluar cómo lo hizo. ¿Alcanzaste la solución óptima o al menos progresaste más allá de la respuesta ingenua / de fuerza bruta? ¿Cuánto tiempo te llevó? ¿Se escribió su código en la menor cantidad de líneas posible?
Haz esto para cada sección. Cuando termine, puede priorizar las secciones que no hizo tan bien desde el principio en su régimen de práctica y dejar las otras secciones para más adelante. Debe repetir este ejercicio justo antes de la entrevista para conocer sus puntos débiles antes del día de la entrevista.
3) Haga una lista de estudio (días 3-5)
Usando los datos que adquirió del paso anterior, haga una lista priorizada de cosas que necesita estudiar. Esta lista debe incluir:
- Memorizar dos buenos algoritmos de clasificación y su Big-O
- Memorizar búsqueda binaria
- Memorizar cómo implementar estructuras de datos básicas como hashmap, lista vinculada, pila, cola y árboles (n-ary, trie, heap) y sus complejidades Big-O
- Memorización de algoritmos de recorrido de gráficos (BFS, DFS y un algoritmo de ruta más corto como el de Dijkstra)
- Memorizar poderes de 2
- Practicar ejercicios de manipulación de bits (trabajar con mapas de bits, desplazamiento de bits)
- Terminología de programación orientada a objetos (abstracción, herencia, cohesión, acoplamiento)
- Conozca las colecciones y las API de matemáticas para su lenguaje de programación dado
- Recursión, retroceso y memorización.
- Revisar los principios básicos de matemática discreta y estadística.
Todo esto está cubierto en CTCI y su libro de algoritmos favorito. Nota: ¡ el punto de la memorización es la comprensión! Probablemente nunca se le pedirá que escriba un algoritmo literalmente. Más bien, se espera que conozcas cada uno lo suficientemente bien como para poder usarlos creativamente para resolver un problema que nunca has visto.
4) Practique algoritmos y estructuras de datos diariamente (días 6–30)
Elija dos o tres elementos de su lista y comprométase aproximadamente dos o tres horas cada día a trabajar en estas cosas (por ejemplo, 1 hora antes del trabajo, pausa para el almuerzo, 1 hora después del trabajo). A medida que memoriza cosas, pruébelo escribiendo un algoritmo o estructura de datos en papel o en una pizarra. Escriba el peor de los casos Big-O complejidades de tiempo y espacio para el algoritmo cuando haya terminado. ¡Siempre revisa tu trabajo, siempre!
Ahora copie lo que ha escrito en su IDE favorito y compílelo. Tome nota de los errores de compilación para evitarlos cuando repita el ejercicio nuevamente. Puede y también debe crear pruebas unitarias para verificar la exactitud de su código.
Siga haciendo esto hasta que pueda transcribir y compilar su código sin errores lógicos o sintácticos.
5) Aborde tantas preguntas de programación como pueda (días 16-30)
En este momento, debe tener un buen manejo de las habilidades que necesita para tener éxito en la pregunta de la entrevista. Comenzando con CTCI, aborde todos los problemas de programación que pueda, nuevamente utilizando los seis pasos. Dedique aproximadamente la mitad de su tiempo de estudio a esto mientras pasa la otra mitad revisando elementos de su lista de estudios.
Si lo está haciendo bien, probablemente comenzará a quedarse sin preguntas en el libro. Puede encontrar toneladas más de muestras reales en línea en sitios como CareerCup o Interview Cake. O simplemente use su motor de búsqueda favorito. Sé que puedes usar uno bastante bueno;).
Practique algunas veces con otra persona, tanto con alguien técnico como con alguien no técnico. Pregúnteles si:
- Parecías y parecías relajado
- Parecías un solucionador de problemas disciplinado
- Seguiste pensando en voz alta durante todo el ejercicio
6) Relájate y duerme bien (día 30)
¡Felicidades! Has trabajado muy duro. No hay nada más que puedas hacer. Relájate y entra en tu buen lugar. Has llegado hasta aquí. Eso significa que realmente disfruta la codificación o que no se detendrá ante nada para obtener ese trabajo en Google. Creo que realmente disfrutarás de tu experiencia de entrevista. ¡Asegúrate de divertirte! Espero verte en la sala de reuniones.
Encuentre este y otros artículos en https://anthonydmays.com .