¿Trabajar en Google le brinda una oportunidad inigualable para aprender a construir sistemas escalables?

Depende de lo que quieras decir. ¿Podrías diseñar un sistema desde cero? No. Tendría que trabajar con sistemas heredados, y lo más probable es que no llegue a ser Jeff Dean y defina iniciativas completamente nuevas para Google. La falta de tales oportunidades fue la razón por la cual Facebook logró robar tantos ingenieros de Google. (Facebook ya no puede hacerlo, pero esa es una historia diferente)

Ahora, si está trabajando en el nivel esencial, entonces nadie construye sistemas a la escala que Google tiene. Por ejemplo, Google tiene tanta memoria que al indexar / servir la web, es muy probable que haya varios registros dañados debido a los rayos cósmicos que golpean la RAM. Tienes la alegría de descubrir cómo lidiar con eso. (Este problema en particular es bastante sencillo: descarta los registros ofensivos) Es muy probable que te encuentres con cosas como esta que nadie más lo haría. Por otro lado, puede ser bastante frustrante porque puede llevar un tiempo darse cuenta de que el problema no está en el código que escribió o incluso en el hardware (malo). No es para todos, pero para la persona adecuada, es muy divertido.

No necesariamente consideraría la escalabilidad como una competencia central o un diferenciador clave para trabajar en Google. Sí, Google construye sistemas a gran escala, pero también lo hace cualquier otra empresa exitosa de Internet.

MapReduce, una de las principales tecnologías de Google para escalar, se basa en gran medida en la agrupación virtual, que existe desde la década de 1960. Google lo popularizó, pero si tienes un título de CS, probablemente tomaste una clase de agrupación como parte de tu título.

En cambio, consideraría el aprendizaje automático como un diferenciador. ML es parte del ADN en Google, y probablemente no aprenderá más sobre ML en ninguna otra compañía que en Google. Si eso es interesante para usted, podría ser un buen lugar para estar.

Google es una empresa muy grande, y solo unas pocas personas pueden construir sistemas distribuidos profundos. Mucha gente usa esos sistemas, implícita o explícitamente.

Fui a google esperando trabajar en la infraestructura del sistema distribuido. En cierto sentido, esto es lo que sucedió: estaba usando su almacenamiento distribuido y las tuberías de procesamiento distribuido. Pero, bien podría haber estado llamando a las bibliotecas locales por toda la diferencia que hizo en el trabajo que realmente estaba haciendo.

Entonces la respuesta es un sí calificado. Sí, si obtienes una de las pocas docenas o cientos de posiciones haciendo eso. De lo contrario, estás trabajando en otra cosa y la respuesta es no.

Tendrá la oportunidad de escribir software que se ejecute dentro de sistemas masivos y escalables, pero puede aprender mucho menos sobre cómo construir esos sistemas. Esto es cierto en cualquier gran empresa de software con servicios de internet populares.

Trabajar en Google te obliga a producir código y soluciones escalables, pero principalmente a través de limitaciones y trabajando dentro de sistemas / marcos que aseguran la escalabilidad. Como usuario de esos sistemas, diría que es menos probable que aprenda a construir sistemas escalables.

Puede ser más difícil aprender del éxito de otras personas que del fracaso de algo que tienes en tus manos directamente.

Al contrastar esto con trabajar en una empresa nueva o más pequeña, es probable que comience con sistemas más pequeños / simples que deberán ampliarse si su empresa tiene éxito. En mi opinión, aprenderá más sobre la escalabilidad ampliando un sistema más pequeño / simple que utilizando un sistema más grande y preescalado. Es posible que tenga más espacio para fallar y más información sobre los sistemas con los que está trabajando en su conjunto, lo que puede crear un ciclo de aprendizaje más rápido.

No. No es “inigualable”. Hay varios lugares donde puede aprender cómo construir sistemas escalables, y en muchos casos esos lugares podrían ser mejores porque en la mayoría de los casos los sistemas de Google ya están bien establecidos. Si bien Google presenta un buen estudio de caso, la realidad es que aprenderá más de una falla o de participar en la limpieza después de una falla que de mantener un éxito. Eso no quiere decir que Google no sea un gran lugar para aprender sobre sistemas escalables, simplemente no es el único lugar o incluso necesariamente el mejor lugar.

Probablemente. Claro, probablemente podría aprender mucho sobre la alta escala en Yahoo, Amazon, Facebook y algunos otros lugares, pero incluso ellos no tienen la escala que Google tiene. Google también paga bastante bien. El gran inconveniente, para muchas personas, es que trabajará para una empresa de publicidad y desaparecerá en un agujero negro en lo que respecta al código abierto. Todo depende de cuáles son tus objetivos.

Sí, en el sentido de que lo que construyes es (casi) escalable por defecto. Y no, en el sentido de que no tiene que construir o cambiar la infraestructura que lo hace posible.
Lo que aprende es hacer que su aplicación sea escalable mediante el uso de la tecnología disponible que es específica de Google. Sin embargo, siempre puedes interpolar y tener una idea de lo que podría estar involucrado en hacer que las cosas sucedan, pero esa es otra historia.

More Interesting

Asesoramiento profesional sobre qué camino tomar como ingeniero electrónico: ¿diseño de CI de señal mixta, arquitectura informática o bioelectrónica?

Estoy muy interesado en la informática. ¿Cómo puedo mejorar mi conocimiento?

Cuando se lo considera para una escuela de posgrado en función de la aplicación, ¿es el conocimiento del dominio y la comprensión de habilidades más importantes o difíciles?

Me ofrecieron un lugar como asistente de atención al cliente bilingüe en Atenas, ¿es una buena idea mudarse allí conociendo el estado financiero de Grecia?

Cómo conseguir un trabajo después de una brecha de 4 años

Soy un chico que estudia el ECE segundo año en la Universidad VIT. ¿Qué debo hacer para obtener un buen paquete de una empresa de TI en el último año?

¿Qué debo decir en una entrevista cuando me preguntan por qué cambio de carrera?

¿Qué harías si te despertaras hoy y te dieras cuenta de que los últimos 10 años de tu vida habían sido un sueño muy detallado?

He completado mi título de BE pero no sé el idioma inglés. ¿Cómo debo aprender?

Soy un joven ingeniero de software con 3-4 años de experiencia, pero solo alcanzo los 50 en el área de Los Ángeles. ¿Sería imprudente saltar al trabajo por una mejor paga?

¿Qué es mejor, una maestría en línea en ciencia de datos de la Universidad de Indiana Bloomington o una maestría en CIS con concentración de ciencia de datos de la Universidad de Boston?

No puedo decidir entre la neurociencia computacional y la ciencia cognitiva. Sabiendo que quiero estudiar más matemáticas y evitar bio / química cargada de teoría, ¿cuáles deberían ser los factores decisivos?

¿Qué experiencia debo tener para convertirme en diseñador / desarrollador web independiente?

¿Es mejor ser un electricista oficial o un maestro electricista cuando manejas tu propio negocio local?

¿Es posible que un ingeniero mecánico gane más que el de un ingeniero informático sin un MBA?