Cómo convertirse en un pasante de Google

Recuerdo mi primera entrevista técnica, y eso también fue para una pasantía en Google. Siendo un programador competitivo rápido, calculé mal el objetivo de la entrevista como “codificar los problemas lo más rápido posible”. Pensé que había aplastado las entrevistas, hasta que unos meses después recibí rechazos.

Como otros ya podrían haber dicho, dos cosas más críticas para un ingeniero de software de nivel básico son la resolución de problemas y la codificación .

Google, o cualquier organización de ingeniería de primer nivel, no está buscando ingenieros para resolver problemas en los que ya se han capacitado. Lo que importa es su capacidad para encontrar respuestas a preguntas que nunca antes haya encontrado. Las entrevistas ideales tienen como objetivo activar su pensamiento sistémico, analizar su proceso de pensamiento y probar sus habilidades para comunicar estas cosas al entrevistador. Lo que trae la tercera cosa crítica para ser la comunicación . La razón es que los ingenieros de software no trabajan solos en sus proyectos; muy raramente obtendrá una pieza autónoma y clara para trabajar. Agregar una característica simple a un proyecto de proporciones gigantescas como Gmail / Docs puede llevarle meses de discusión entre equipos, aunque codificar su parte no durará más que unas pocas semanas.

Por supuesto, hay otros aspectos menores de una entrevista como lo que reclamas frente a lo que sabes, qué tan curioso eres respecto a la cultura de la empresa, qué tipo de preguntas haces al entrevistador, etc. Pero hasta cierto punto pueden ser falsas (no es lo que debería) si lo compara con otras habilidades requeridas.

Prefiero no entrar en demasiados detalles sobre cómo mejorar sus habilidades analíticas, aprender la estructura de datos, algoritmos, habilidades de implementación, etc., ya que encontrará fácilmente varios enfoques y guías sobre cómo puede hacer eso, y el enfoque más divertido es programación competitiva Sin embargo, lo que he observado en mi vecindad es que la gente se pierde la tercera parte crítica, la comunicación. Encontrarán soluciones, rápidamente; pero se pierden en abrir sus mentes al entrevistador. Una forma muy sencilla de aprender estas habilidades es salir de nuestro caparazón, encontrar personas similares a usted e interactuar con ellas. Por ejemplo, comencé discutiendo concursos algorítmicos con mis estudiantes de último año en la universidad, luego formé equipos para ACM ICPC y tomé la sesión del club de programación para estudiantes de tercer año en mi último año. Sin embargo, debe tener en cuenta que el requisito previo para explicar las abstracciones complejas a otras personas requiere que se comprenda a fondo.

Un año es mucho tiempo; puedes pasar tiempo preocupándote por tu objetivo final o encontrar un camino, desarrollar un interés y planear este año hacia la pasantía de tus sueños. Depende de usted. Me encantaría conocerte como Googler el año que viene 🙂 ¡Buena suerte!

Le responderé sobre lo que se necesita para obtener una pasantía en Google, en lugar de cómo debe desarrollarse para ingresar a Google como pasante.
Lo primero importante son sus conceptos de programación, no sobrevivirá por mucho tiempo si sus conceptos de programación no son claros, así que asegúrese de ser bueno con los conceptos básicos de programación.

  • ¿Sabes cómo un compilador analiza un idioma?
  • Diferencia entre declaración de variables y definición.
  • ¿Eres bueno con las matrices?
  • ¿Eres bueno con los punteros?
  • ¿Sabes cómo funciona el manejo excepcional?
  • ¿Entiendes cómo funcionan los bucles?

Cada concepto básico se cuenta al final, así que asegúrese de sentirse cómodo con todos los conceptos básicos.

Algoritmo y estructuras de datos: estas son la clave para el trabajo / pasantía en cualquier empresa basada en productos. Solo practíquelos tanto como pueda. La mejor manera de practicarlos es la programación competitiva. Comience con HackerRank, HackerEarth, una vez que pueda resolver fácilmente los problemas en estas plataformas, luego cambie a CodeChef y luego a SPOJ o TopCoder.

Puede leer más sobre ¿Cómo comenzar con la programación competitiva?

Bases de datos: este también es un tema crucial. Hiciste algún proyecto, necesitas almacenar los datos de la aplicación de alguna manera y en algún lugar. ¿Cómo vas a hacerlo? SQL es tu amigo aquí. Comprender la normalización, el modelo ER y las uniones. El conocimiento de estos temas es suficiente hasta y a menos que aparezca para el puesto de Administración de la base de datos.

Idiomas: seleccione un lenguaje de programación y sea bueno en eso. Aprenda algunas tecnologías web como HTML, CSS, JavaScript, Angular.js.

Haga un gran proyecto (diga no a proyectos como la gestión de la biblioteca, etc.), piense en algo, no importa si es una buena idea o no, simplemente comience a trabajar en él, al menos aprenderá algo. Si realmente quieres aprender cosas nuevas, comienza a hacer proyectos, aprenderás muchas cosas mientras haces proyectos.
Aprenda a usar GitHub, cargue el código de su proyecto en GitHub. Aprende a usar Git Shell.

Luego viene cómo vas a obtener una pasantía en Google. Si Google visita tu campus, aparece para la prueba de pasantía. Si no, entonces tienes dos opciones:

  1. Referencia: si conoce a alguien que trabaja en Google, pregúntele si puede darle una referencia. Si obtiene una referencia de un empleado de Google, es probable que al menos sea seleccionado para la entrevista.
  2. Google Careers: postúlate en las carreras de Google. Si su currículum es atractivo, recibirá una llamada del reclutador, de lo contrario, ni siquiera se preocuparán por responder a su solicitud si su solicitud es rechazada.
  3. CodeJam: aparece para Codejam, si puedes borrarlo, se te llamará para una entrevista en el sitio en Google HQ.

También te sugiero que leas las respuestas de Ashish Kedia.

En caso de que me haya perdido algo importante, avíseme.

Las otras respuestas aquí capturan los requisitos bastante bien, si no, un poco más ampliamente, incluso.

En primer lugar, me gustaría decir que: la barra para una contratación interna es casi la misma que la barra para una contratación de nivel de entrada a tiempo completo . Hay poca o ninguna diferencia entre la pasantía y el proceso de contratación de FTE en términos de complejidad o conjunto de habilidades requeridas.

Como de costumbre, se prueban las habilidades crudas. Los bloques de construcción de CS fundamentales, como las estructuras de datos y los algoritmos, son primordiales. La comprensión de la complejidad de las soluciones en tiempo de ejecución se prueba a fondo. La forma en que el candidato puede llegar a soluciones óptimas para los problemas de CS y traducirlos al código es fundamental. Cuanto mejor codifique en un lenguaje de programación estándar (sin errores), mayores serán las posibilidades de pasar. Las preguntas abiertas que involucran grandes diseños complejos pueden no tener demasiada importancia para una contratación interna de nivel de entrada. Solo se requieren los principios básicos. Pero uno necesita ser realmente bueno en lo básico.

Si Google no visita su campus, es posible que deba comunicarse con ellos a través de otros medios, como descifrar su CodeJam. Si visitan su campus, necesitará borrar su proceso de prueba / entrevista como lo haría un empleado regular. Por lo general, el ancho de banda de la entrevista es limitado para el procesamiento de pasantías, por lo que incluso pueden aplicar criterios de filtrado mucho más rigurosos. Como resultado, tener un CGPA alto en su universidad (en una sucursal de CS) realmente puede ayudar. De tal manera, la barra para contratar a un interno puede incluso superar la de un empleado FTE, en algunos casos.

Espero que eso aclare.

Puedo darte una respuesta para las prácticas de ingeniería de software. Debe ser un apasionado de la codificación y esta pasión debe reflejarse en su currículum. Los proyectos en la universidad / trabajo están muy bien, pero también debes mostrar tu interés fuera de estos lugares. Siga pensando en ideas, ideas que puedan acercar a las personas, ideas que puedan hacer la vida más fácil, y luego trabaje para lograrlo. Desarrolle aplicaciones, desarrolle software, desarrolle cualquier cosa que demuestre que realmente le apasiona la codificación. Haga todo esto y tendrá una alta probabilidad (no 100%) de ser convocado para una entrevista. Ahora, si realmente te apasiona la codificación, las entrevistas no deberían ser un gran problema para ti. Puede requerir un poco de trabajo duro, pero nada que tu pasión no pueda manejar.

¡¡Y voilá!! Usted es un pasante de Google (o tal vez no, nunca puede estar 100% seguro: P)