Cómo prepararse para una entrevista en Google y reprobarla. Dos veces

Cómo prepararse para una entrevista en Google y reprobarla. Dos veces

El título del artículo suena a fracaso épico, pero en realidad no todo es tan sencillo. Y en general esta historia acabó muy positivamente, aunque no en Google. Pero este es un tema para otro artículo. En este mismo artículo hablaré de tres cosas: cómo fue mi proceso de preparación, cómo se desarrollaron las entrevistas en Google y por qué, en mi opinión, no todo está tan claro como podría parecer.

¿Cómo empezó todo

Una fría tarde de invierno chipriota, de repente se me ocurrió que mis conocimientos de informática clásica estaban muy lejos de ser promedio y que era necesario hacer algo al respecto. Si, por cierto, alguien aún no ha leído por qué la tarde es chipriota y fría, entonces puedes informarte. aquí. Después de pensarlo un poco, se decidió empezar por realizar un curso online sobre algoritmos y estructuras de datos. Uno de mis antiguos colegas me habló del curso de Robert Sedgewick en Coursera. El curso consta de dos partes (Parte 1 и Parte 2). Si de repente los enlaces cambian, siempre puedes buscar en Google el nombre del autor. Cada parte tiene una duración de 6 semanas. Las conferencias se dan al comienzo de la semana y durante la semana todavía es necesario hacer ejercicios. La primera parte del curso cubre estructuras de datos básicas, tipos básicos de clasificación y la complejidad de los algoritmos. La segunda parte ya es más avanzada, comienza con gráficos y termina con cosas como Programación lineal e Intratabilidad. Después de pensar en todo lo anterior, llegué a la conclusión de que esto es exactamente lo que necesito. Por cierto, un lector curioso se preguntará: ¿qué tiene que ver Google con esto? Y efectivamente, hasta ese momento no tuvo nada que ver con eso. Pero necesitaba una meta, ya que estudiar durante 12 semanas por las tardes sin una meta es algo difícil. ¿Cuál podría ser el propósito de adquirir nuevos conocimientos? Por supuesto, su aplicación en la práctica. En la vida cotidiana esto es bastante problemático, pero durante una entrevista con una gran empresa es fácil. Un vistazo rápido a Google mostró que Google (perdón por la tautología) es una de las empresas más grandes de Europa (y estaba mirando específicamente a Europa) que realiza este tipo de entrevistas. Es decir, su oficina está ubicada en Zurich, Suiza. Así que está decidido: estudiemos y vayamos a una entrevista en Google.

Preparándose para el primer acercamiento

Las 12 semanas pasaron rápidamente y completé ambos cursos. Mis impresiones de los cursos son más que positivas y puedo recomendarlos a cualquiera que esté interesado. Me gustaron los cursos por las siguientes razones:

  • El profesor habla inglés bastante claro.
  • El material está bien estructurado.
  • Magníficas presentaciones que muestran el interior de cada algoritmo.
  • Selección competente de material.
  • ejercicios interesantes
  • Los ejercicios se verifican automáticamente en el sitio, después de lo cual se genera un informe.

Mi trabajo en los cursos normalmente era así. Escuché conferencias en 1-2 días. Luego hicieron una prueba rápida de su conocimiento del material. El resto de la semana hice el ejercicio en varias iteraciones. Después del primero obtuve mi 30-70%, los siguientes llevaron el resultado al 97-100%. El ejercicio generalmente implicaba implementar algún algoritmo, p. talla de costura o bzip.

Después de completar los cursos, me di cuenta de que mucho conocimiento conlleva mucha tristeza. Si antes simplemente sabía que no sabía nada, ahora comencé a darme cuenta de que era yo quien no sabía.

Como era sólo el mes de mayo y programé la entrevista para el otoño, decidí continuar mi educación. Luego de revisar los requisitos para la vacante, se decidió ir en dos direcciones en paralelo: seguir estudiando algoritmos y realizar un curso básico de aprendizaje automático. Para el primer objetivo, decidí pasar de los cursos a un libro y elegí la monumental obra de Steven Skiena “Algoritmos. El manual de diseño de algoritmos. No tan monumental como el de Knut, pero aun así. Para el segundo objetivo, volví a Coursera y me inscribí en el curso de Andrew Ng. Aprendizaje automático (Machine learning & LLM).

Pasaron otros 3 meses y terminé el curso y el libro.

Empecemos con el libro. La lectura resultó bastante interesante, aunque no fácil. En principio recomendaría el libro, pero no de inmediato. En general, el libro proporciona una mirada más profunda a lo que aprendí en el curso. Además, descubrí (desde un punto de vista formal) cosas como la heurística y la programación dinámica. Naturalmente, los había usado antes, pero no sabía cómo se llamaban. El libro también contiene una serie de relatos de la vida del autor (War Story), que diluyen un poco el carácter académico de la presentación. Por cierto, la segunda mitad del libro se puede omitir; contiene más bien una descripción de los problemas existentes y los métodos para resolverlos. Es útil si se utiliza regularmente en la práctica; de lo contrario, se olvidará inmediatamente.

Quedé más que satisfecho con el curso. El autor claramente sabe lo que hace y habla de una manera interesante. Además de una buena parte de ello, concretamente álgebra lineal y los fundamentos de las redes neuronales, lo recordaba de la universidad, por lo que no experimenté ninguna dificultad especial. La estructura del curso es bastante estándar. El curso se divide en semanas. Cada semana hay conferencias combinadas con pruebas cortas. Después de las conferencias, se le asigna una tarea que debe realizar, enviar y se verificará automáticamente. Brevemente, la lista de cosas que se enseñan en el curso es la siguiente:
- función de costo
- regresión lineal
- descenso de gradiente
- escalado de características
- ecuación normal
- Regresión logística
— clasificación multiclase (uno contra todos)
- Redes neuronales
- propagación hacia atrás
- regularización
— sesgo/varianza
- curvas de aprendizaje
— métricas de error (precisión, recuperación, F1)
— Máquinas de vectores de soporte (clasificación de margen grande)
— K-medias
-Análisis de componentes principales
- Detección de anomalías
— filtrado colaborativo (sistema de recomendación)
— descensos de gradiente estocásticos, mini-lotes y por lotes
- aprender en línea
- Mapa reducido
- análisis del techo
Después de completar el curso, se presentó una comprensión de todos estos temas. Después de 2 años, casi todo quedó naturalmente olvidado. Se lo recomiendo a aquellos que no están familiarizados con el aprendizaje automático y desean comprender bien los aspectos básicos para seguir adelante.

Primer intento

Ya era septiembre y tocaba pensar en una entrevista. Como presentar la solicitud a través del sitio es bastante desastroso, comencé a buscar amigos que trabajen en Google. La elección recayó en compilador de datos, ya que él era el único al que conocía directamente (aunque no personalmente). Aceptó enviarme mi currículum y pronto recibí una carta del reclutador ofreciéndome reservar un espacio en su calendario para la primera conversación. Un par de días después se produjo la llamada. Intentamos comunicarnos a través de Hangouts, pero la calidad era terrible, así que cambiamos al teléfono. Primero, discutimos rápidamente el estándar cómo, por qué y por qué, y luego pasamos a la evaluación técnica. Consistía en una docena de preguntas con el espíritu de "¿cuál es la dificultad de insertar en un mapa hash?", "¿qué árboles equilibrados conoces?". No es difícil si tienes un conocimiento básico de estas cosas. La proyección fue bien y en base a los resultados decidieron organizar la primera entrevista en una semana.

La entrevista también se realizó a través de Hangouts. Primero hablaron de mí durante unos 5 minutos y luego pasaron al problema. El problema estaba en los gráficos. Rápidamente me di cuenta de lo que había que hacer, pero elegí el algoritmo equivocado. Cuando comencé a escribir código me di cuenta de esto y cambié a otra opción, que completé. El entrevistador hizo varias preguntas sobre la complejidad del algoritmo y preguntó si se podría hacer más rápido. De alguna manera me volví aburrido y no podía hacerlo. En ese momento se acabó el tiempo y nos despedimos. Luego, después de unos 10 minutos, me di cuenta de que en lugar del algoritmo de Dijkstra que usé, en este problema en particular podría usar la búsqueda en amplitud y sería más rápido. Después de un tiempo, el reclutador llamó y dijo que la entrevista en general había ido bien y que se debería organizar otra. Acordamos otra semana.

Esta vez las cosas empeoraron. Si la primera vez el entrevistador se mostró amable y sociable, esta vez se mostró algo lúgubre. No pude resolver el problema de inmediato, aunque las ideas que se me ocurrieron podrían, en principio, conducir a su solución. Al final, después de varias indicaciones del entrevistador, se me ocurrió la solución. Esta vez resultó ser de nuevo una búsqueda amplia, sólo que desde varios puntos. Escribí las soluciones, las encontré a tiempo, pero me olvidé de los casos extremos. Después de un tiempo, el reclutador llamó y dijo que esta vez el entrevistador no estaba contento porque, en su opinión, necesitaba demasiadas pistas (3 o 4 piezas) y cambiaba constantemente el código mientras escribía. Con base en los resultados de dos entrevistas, se decidió no ir más lejos, sino posponer la próxima entrevista por un año, si así lo deseaba. Por eso nos despedimos.

Y de esta historia saqué varias conclusiones:

  • La teoría es buena, pero es necesario navegarla rápidamente.
  • La teoría sin práctica no ayudará. Necesitamos resolver problemas y llevar la codificación a la automaticidad.
  • Mucho depende del entrevistador. Y no se puede hacer nada al respecto.

Preparándose para la segunda carrera

Después de pensar en la situación, decidí intentarlo de nuevo al cabo de un año. Y editó ligeramente el gol. Si antes el objetivo principal era estudiar y una entrevista en Google era como una zanahoria lejana, ahora pasar una entrevista era el objetivo y estudiar el medio.
Entonces, se desarrolló un nuevo plan, que incluía los siguientes puntos:

  • Continúe estudiando teoría leyendo libros y artículos.
  • Resuelva problemas algorítmicos en una cantidad de 500 a 1000 piezas.
  • Continúe aprendiendo la teoría viendo videos.
  • Continuar estudiando teoría a través de cursos.
  • Estudia las experiencias de otras personas con entrevistas en Google.

Completé el plan en un año. A continuación describiré qué hice exactamente para cada uno de los puntos.

Libros y artículos

Ni siquiera recuerdo la cantidad de artículos que leí; los leí tanto en ruso como en inglés. Probablemente el sitio más útil. este. Aquí puede encontrar una descripción de una gran cantidad de algoritmos interesantes con ejemplos de código.

Leí 5 libros: Algoritmos, cuarta edición (Sedgewick, Wayne), Introducción a los algoritmos, tercera edición (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview, cuarta edición (Gayle Laakmann), Programming Interviews Exposed, segunda edición (Mongan, Suojanen , Giguere), Elementos de programación de entrevistas (Aziz, Lee, Prakash). Se pueden dividir en 4 categorías. El primero incluye libros de Sedgwick y Corman. Esta es una teoría. El resto es preparación para la entrevista. Sedgwick cuenta lo mismo en el libro que en sus cursos. Sólo por escrito. No tiene mucho sentido leerlo detenidamente si has realizado el curso, pero vale la pena leerlo de todos modos. Si no ha visto el curso, tiene sentido leerlo. Cormen me pareció demasiado aburrido. Para ser honesto, me costó mucho dominarlo. Lo acabo de sacar de ahí teorema maestroy varias estructuras de datos poco utilizadas (montón de Fibonacci, árbol de van Emde Boas, montón de radix).

Vale la pena leer al menos un libro para prepararse para una entrevista. Todos se basan aproximadamente en el mismo principio. Describen el proceso de entrevista en grandes empresas de tecnología, dan cosas básicas de Informática, problemas para estas cosas básicas, soluciones a problemas y análisis de soluciones. De los tres anteriores, probablemente recomendaría Cracking the Coding Interview como el principal, y el resto son opcionales.

Problemas algorítmicos

Este fue probablemente el punto más interesante de la preparación. Por supuesto, puedes sentarte y resolver problemas estúpidamente. Hay muchos sitios diferentes para esto. Usé principalmente tres: ranking de hackers, CodeChef и Código Leet. En CodeChef, los problemas se dividen por dificultad, pero no por tema. En Hackerrank tanto por complejidad como por tema.

Pero como descubrí inmediatamente por mí mismo, hay una forma más interesante. Y estos son concursos (retos de programación o concursos de programación). Los tres sitios los proporcionan. Es cierto que hay un problema con LeetCode: una zona horaria inconveniente. Por eso no participé en este sitio. Hackerrank y CodeChef ofrecen una cantidad bastante grande de competiciones diferentes, que duran desde 1 hora hasta 10 días. Los diferentes formatos tienen reglas diferentes, pero podríamos hablar de eso durante mucho tiempo. El principal motivo por el que las competiciones son buenas es la introducción de un elemento competitivo (y nuevamente tautología) en el proceso de aprendizaje.

En total participé en 37 concursos en Hackerrank. De estos, 32 fueron de calificación y 5 fueron patrocinados (incluso recibí $25 en uno de ellos) o por diversión. En el ranking estuve en el 10% superior 4 veces, en el 11% superior 12 veces y en el 5% superior 25 veces. Los mejores resultados fueron 27/1459 en las 3 horas y 22/9721 en la semana.

Me cambié a CodeChef cuando Hackerrank empezó a organizar competiciones con menos frecuencia. En total logré participar en 5 concursos. La mejor puntuación fue 426/5019 en los diez días de competición.

En total, en competiciones y así, resolví un poco más de 1000 problemas que encajaban en el plan. Ahora, lamentablemente, no hay tiempo libre para continuar con las actividades competitivas, como tampoco existe un objetivo para el cual se pueda cancelar el tiempo no libre. Pero fue divertido. Recomiendo que aquellos que estén interesados ​​en esto encuentren personas con ideas afines. Juntos o en grupo es mucho más interesante. Me divertí con esto con un amigo, así que tal vez salió bien.

Ver video

Después de leer el libro de Skiena, me interesé en lo que estaba haciendo. Al igual que Sedgwick, es profesor universitario. En este sentido, se pueden encontrar vídeos de sus cursos en la red. Decidí revisar el curso. COMP300E - Desafíos de programación - 2009 HKUST. No puedo decir que me haya gustado mucho. En primer lugar, la calidad del vídeo no es muy buena. En segundo lugar, no intenté resolver yo mismo los problemas discutidos en el curso. Entonces el compromiso no fue muy alto.
Además, mientras resolvía problemas y trataba de encontrar el algoritmo correcto, me encontré con el vídeo de Tushar Roy. Trabajó en Amazon y ahora trabaja en Apple. Como descubrí más tarde por mí mismo, él tiene Canal de Youtube, donde publica un análisis de varios algoritmos. Al momento de escribir este artículo, el canal contiene 103 videos. Y debo decir que su análisis estuvo muy bien hecho. Intenté observar a otros autores, pero de alguna manera no funcionó. Así que definitivamente puedo recomendar este canal para verlo.

tomando cursos

No hice nada especial aquí. Vi un vídeo del Nanogrado para desarrolladores de Android de Google y tomé un curso de ITMO Cómo ganar concursos de codificación: secretos de los campeones. Nanogrado es bastante bueno, aunque, naturalmente, no aprendí nada nuevo de él. El curso de ITMO está un poco sesgado en términos teóricos, pero los problemas fueron interesantes. No recomendaría empezar por ello, pero en principio fue un tiempo bien aprovechado.

Aprende de las experiencias de otras personas.

Por supuesto, mucha gente intentó acceder a Google. Algunos entraron, otros no. Algunos han escrito artículos sobre esto. De las cosas interesantes que probablemente mencionaré. este и este. En el primer caso, la persona preparó una lista de lo que necesita aprender para convertirse en ingeniero de software y entrar en Google. Al final acabó en Amazon, pero eso ya no es tan importante. El segundo manual fue escrito por la ingeniera de Google, Larisa Agarkova (Larrr). Además de este documento, también puedes leer su blog.

Tiene sentido leer reseñas de entrevistas en Glassdoor. Todos son más o menos similares, pero puedes obtener información útil.

No proporcionaré enlaces a otros artículos pequeños; puedes encontrarlos fácilmente en Google.

Segunda carrera

Y ahora ha pasado un año. Resultó ser muy intenso en términos de estudios. Pero afronté el nuevo otoño con conocimientos teóricos mucho más profundos y habilidades prácticas desarrolladas. Todavía quedaban algunas semanas antes de que terminara el año que me había asignado para la preparación, cuando de repente llegó al correo una carta de un reclutador de Google, en la que me preguntaba si todavía tenía ganas de trabajar en Google y si Me importa hablar con él. Naturalmente, no me importó. Acordamos llamar en una semana. También me pidieron un currículum actualizado, al que le agregué una breve descripción de lo que había hecho durante el año en el trabajo y en general.

Después de comunicarnos de por vida, decidimos que en una semana habría una entrevista en Hangout, como el año pasado. Pasó una semana, llegó el momento de la entrevista, pero el entrevistador no apareció. Pasaron 10 minutos, ya me empezaba a poner nervioso, cuando de repente alguien irrumpió en el chat. Como resultó un poco más tarde, mi entrevistador, por alguna razón, no pudo presentarse y se le encontró urgentemente un reemplazo. La persona no estaba algo preparada ni a la hora de configurar el ordenador ni a la hora de realizar la entrevista. Pero luego todo salió bien. Resolví el problema rápidamente, describí dónde eran posibles los errores y cómo evitarlos. Discutimos varias versiones diferentes del problema y la complejidad del algoritmo. Luego hablamos otros 5 minutos, el ingeniero nos contó sus impresiones sobre el trabajo en Munich (aparentemente no encontraron un reemplazo urgente en Zurich) y luego nos despedimos.

El mismo día, el reclutador se puso en contacto conmigo y me dijo que la entrevista había ido bien y que estaban dispuestos a invitarme a una entrevista en la oficina. Al día siguiente llamamos a través de Hangouts y discutimos los detalles. Como necesitaba solicitar una visa, decidimos programar una entrevista en un mes.

Mientras preparaba los documentos, simultáneamente hablé de la próxima entrevista con el reclutador. Una entrevista estándar en Google consta de 4 entrevistas algorítmicas y una entrevista de diseño de sistemas. Pero, como estaba solicitando un trabajo como desarrollador de Android, me dijeron que parte de la entrevista sería específica de Android. No pude sacarle al reclutador exactamente cuáles y cuáles serían los detalles. Según tengo entendido, esto se introdujo hace relativamente poco tiempo y él mismo no era muy consciente. También me inscribí en dos sesiones de formación: cómo superar una entrevista algorítmica y cómo superar una entrevista de Diseño de Sistemas. Las sesiones fueron de utilidad media. Allí tampoco nadie supo decirme qué preguntan a los desarrolladores de Android. Por tanto, mi preparación para este mes se redujo a lo siguiente:

  • Comprar una pizarra y escribir de memoria entre 2 y 3 docenas de los algoritmos más populares. 3-5 piezas todos los días. En total, cada uno fue escrito varias veces.
  • Refresca tu memoria con información diversa en Android que no usas todos los días
  • Viendo algunos videos sobre Big Scale y cosas así.

Como ya dije, al mismo tiempo estaba preparando los documentos para el viaje. Para empezar me pidieron información para hacer una carta de invitación. Luego intenté durante mucho tiempo averiguar quién expide visas para Suiza en Chipre, ya que la embajada suiza no se ocupa de esto. Al final resultó que, esto lo está haciendo el consulado de Austria. Llamé y concerté una cita. Pidieron un montón de documentos, pero nada particularmente interesante. Fotografía, pasaporte, permiso de residencia, un montón de certificados diferentes y, por supuesto, una carta de invitación. Mientras tanto la carta no llegó. Al final, opté por una copia impresa normal y funcionó bastante bien. La carta en sí llegó 3 días después y FedEx de Chipre no pudo encontrar mi dirección y tuve que ir a buscarla yo mismo. Al mismo tiempo recibí un paquete del mismo FedEx, que tampoco pudieron entregarme porque no encontraron la dirección y que estaba allí desde junio (5 meses, Karl). Como no lo sabía, naturalmente no supuse que lo tuvieran. Recibí mi visa a tiempo, luego de lo cual me reservaron un hotel y me ofrecieron opciones de vuelo. He ajustado las opciones para hacerlo más conveniente. Ya no había vuelos directos, así que terminé volando hasta allí vía Atenas y de regreso vía Viena.

Una vez resueltos todos los trámites del viaje, pasaron unos días más y volé a Zúrich. Llegué allí sin incidentes. Del aeropuerto a la ciudad tomé el tren, de forma rápida y cómoda. Después de vagar un poco por la ciudad, encontré un hotel y me registré. Como el hotel estaba reservado sin comida, cené en la casa de al lado y me fui a la cama, porque el vuelo salía por la mañana y ya quería dormir. Al día siguiente desayuné en el hotel (por dinero extra) y fui a la oficina de Google. Google tiene varias oficinas en Zurich. Mi entrevista no fue en la central. Y, en general, la oficina parecía bastante normal, por lo que no tuve la oportunidad de ver todas las ventajas de una oficina "normal" de Google. Me registré con el administrador y me senté a esperar. Al cabo de un rato, el reclutador salió y me contó el plan del día, tras lo cual me llevó a la sala donde se iban a realizar las entrevistas. En realidad, el plan incluía 3 entrevistas, almuerzo y 2 entrevistas más.

Entrevista número uno

La primera entrevista fue solo en Android. Y no tenía nada que ver con algoritmos. Sorpresa, sin embargo. Bueno, está bien, es aún más común de esta manera. Nos pidieron que creáramos un determinado componente de la interfaz de usuario. Primero discutimos qué y cómo. Se ofreció a crear una solución utilizando RxJava, describió qué haría exactamente y por qué. Dijeron que esto es ciertamente bueno, pero hagámoslo usando el marco de Android. Y al mismo tiempo escribiremos el código en la pizarra. Y no sólo un componente, sino toda la Actividad que utiliza este componente. Esto es para lo que no estaba preparado. Una cosa es escribir un algoritmo de 30 a 50 líneas en la pizarra, y otra cosa es escribir fideos de código de Android, incluso con abreviaturas y comentarios con el espíritu de "bueno, no escribiré eso, porque ya es obvio". El resultado fue una especie de vinagreta para 3 tablas. Aquellos. Resolví el problema, pero parecía una tontería.

Entrevista número dos

Esta vez la entrevista versó sobre algoritmos. Y hubo dos entrevistadores. Uno es el entrevistador real y el segundo es un joven padawan (entrevistador en la sombra). Era necesario idear una estructura de datos con determinadas propiedades. Primero, discutimos el problema como de costumbre. Hice diferentes preguntas, respondió el entrevistador. Después de un tiempo, se les pidió que escribieran en la pizarra varios métodos de la estructura inventada. Esta vez tuve más o menos éxito, aunque con algunos errores menores, que corregí a instancias del entrevistador.

Entrevista número tres

Esta vez Diseño de sistema, que de repente resultó ser también Android. Era necesario desarrollar una aplicación con determinada funcionalidad. Discutimos los requisitos para la aplicación, el servidor y el protocolo de comunicación. A continuación, comencé a describir qué componentes o bibliotecas usaría al crear la aplicación. Y luego, al mencionar Job Scheduler, hubo cierta confusión. El caso es que nunca lo usé en la práctica, ya que en el momento de su lanzamiento acababa de cambiar a aplicaciones de soporte donde no había tareas para su uso. Lo mismo ocurrió al desarrollar los posteriores. Es decir, en teoría, sé qué es esto, cuándo y cómo se usa, pero no tengo experiencia en su uso. Y al entrevistador no pareció gustarle mucho. Luego me pidieron que escribiera un código. Sí, al desarrollar una aplicación es necesario escribir código inmediatamente. Nuevamente código de Android en la placa. Volvió a resultar aterrador.

almuerzo

Se suponía que vendría otra persona, pero no lo hizo. Y Google comete errores. Como resultado, fui a almorzar con la entrevistadora anterior, su colega, y un poco más tarde se unió la siguiente entrevistadora. El almuerzo fue bastante decente. Una vez más, dado que esta no es la oficina principal en Zurich, el comedor parecía bastante normal, aunque muy bonito.

Entrevista número cuatro

Por último, algoritmos en estado puro. Resolví el primer problema con bastante rapidez y eficacia inmediata, aunque me perdí un caso límite, pero cuando el entrevistador me indicó este caso límite, encontré el problema y lo corregí. Por supuesto, tuve que escribir el código en la pizarra. Luego se le encomendó una tarea similar, pero más difícil. Para ello, encontré un par de soluciones no óptimas y casi encontré la óptima, 5-10 minutos no fueron suficientes para terminar el pensamiento. Bueno, no tuve tiempo de escribir el código.

Entrevista número cinco

Y de nuevo la entrevista de Android. Me pregunto por qué estudié algoritmos todo el año.
Al principio hubo algunas preguntas sencillas. Luego, el entrevistador escribió un código en la pizarra y pidió encontrar problemas en él. Lo encontré, lo expliqué, lo arreglé. Discutido. Y luego comenzaron algunas preguntas inesperadas con el espíritu de "qué hace el método Y en la clase X", "qué hay dentro del método Y", "qué hace la clase Z". Por supuesto, respondí algo, pero luego dije que no me había encontrado con esto en mi trabajo últimamente y, naturalmente, no recuerdo en detalle quién hace qué y cómo. Después de eso, el entrevistador me preguntó qué estaba haciendo ahora. Y las preguntas continuaron sobre este tema. Ya respondí mucho mejor aquí.

Una vez finalizada la última entrevista, me quitaron el pase, me desearon buena suerte y me despidieron. Caminé un poco por la ciudad, cené y me dirigí al hotel, donde me acosté, ya que el vuelo volvía a salir temprano en la mañana. Al día siguiente llegué sano y salvo a Chipre. A petición del reclutador, escribí comentarios sobre la entrevista y completé un formulario en un servicio especial para devolver el dinero gastado. De todos los gastos, Google paga directamente sólo las entradas. El hotel, la comida y el viaje corren por cuenta del candidato. Luego completamos el formulario, adjuntamos los recibos y lo enviamos a una oficina especial. Procesan esto y transfieren dinero a la cuenta con bastante rapidez.

Tomó una semana y media procesar los resultados de la entrevista. Después de lo cual me informaron que estaba “un poco por debajo del listón”. Es decir, me quedé un poco corto. Más específicamente, 2 entrevistas salieron bien, 2 un poco no tan bien y Diseño de sistemas no muy bien. Ahora bien, si al menos 3 hubieran salido bien, entonces hubiésemos podido competir, sino no hay posibilidades. Ofrecieron volver en un año más.

Al principio, por supuesto, me enojé porque se había dedicado mucho esfuerzo a la preparación y, en el momento de la entrevista, ya estaba pensando en irme de Chipre. Unirse a Google y mudarse a Suiza me pareció una gran opción.

Conclusión

Y aquí llegamos a la parte final del artículo. Sí, reprobé dos veces la entrevista de Google. Es triste. Probablemente sería interesante trabajar allí. Pero puedes mirar el asunto desde el otro lado.

  • En año y medio aprendí una gran cantidad de cosas relacionadas con el desarrollo de software.
  • Me divertí mucho participando en concursos de programación.
  • Fui a Zurich por un par de días. ¿Cuándo volveré a ir allí?
  • Tuve una interesante experiencia de entrevista en una de las empresas de TI más grandes del mundo.

Así, todo lo sucedido durante este año y medio puede considerarse simplemente formación, o formación. Y los resultados de esta formación se hicieron sentir. Mi idea de dejar Chipre maduró (debido a algunas circunstancias familiares), pasé con éxito varias entrevistas con otra empresa conocida y me mudé después de 8 meses. Pero esa es una historia completamente diferente. Sin embargo, creo que debo agradecer a Google tanto por el año y medio que trabajé en mí mismo como por los 2 días interesantes en Zurich.

¿Qué puedo decir finalmente? Si trabajas en TI, prepárate para entrevistas en Google (Amazon, Microsoft, Apple, etc.). Quizás algún día vayas allí para llegar allí. Incluso si no lo desea, créame, esa preparación no lo empeorará. En el momento en que te des cuenta de que puedes (aunque sólo sea con suerte) conseguir una entrevista con una de estas empresas, se te abrirán muchos más caminos que antes de comenzar tu preparación. Y todo lo que necesitas en el camino es propósito, perseverancia y tiempo. Te deseo éxito :)

Fuente: habr.com

Añadir un comentario