¿Cuáles son los requisitos necesarios para convertirse en ingeniero de software en Google o en ese tipo de empresas?

Google es el empleador más deseable en la Tierra.

Los ingenieros son las estrellas de rock allí, y se les paga en consecuencia.

Los pasantes comienzan con salarios de $ 70,000 a $ 90,000, mientras que los ingenieros de software obtienen $ 118,000 y los ingenieros de software superiores ganan un promedio de $ 152,985.

Pero uno no simplemente entra en Googleplex.

La compañía recibe más de 2.5 millones de solicitudes de empleo al año, pero solo contrata a unas 4,000 personas.

Afortunadamente para los aspirantes a Googlers, el equipo de Google in Education ha publicado una lista de habilidades que quieren ver en ingenieros potenciales.

“Tener una base sólida en informática es importante para ser un ingeniero de software exitoso”, dice la compañía. “Esta guía es un camino sugerido para que los estudiantes universitarios desarrollen sus habilidades técnicas académica y no académicamente a través de un aprendizaje práctico a su propio ritmo”.

Estas son las habilidades que Google quiere que domine su talento tecnológico, junto con recursos en línea para comenzar:

1. Dominar los cimientos. Debe poder completar una introducción al curso de CS, como los de Udacity o Coursera.

2. Aprenda a codificar en al menos un lenguaje de programación orientado a objetos. Como C ++, Java o Python. Consulte a MIT o Udacity.

3. Aprenda otros lenguajes de programación. Agregue Java Script, CSS, Ruby y HTML a su conjunto de habilidades. W3school y CodeAcademy están ahí para ayudar.

4. Prueba tu código. Porque Google quiere que puedas “detectar errores, crear pruebas y romper tu software”. Udacity, una vez más.

5. Tener experiencia en matemática abstracta. Al igual que el razonamiento lógico y las matemáticas discretas, en las que se basa mucha informática. MIT puede ayudarlo con las matemáticas para la informática.

6. Comprender algoritmos y estructuras de datos. Google quiere que aprenda sobre los tipos de datos fundamentales, como pilas, colas y bolsas, así como que comprenda algoritmos de clasificación como clasificación rápida, combinación combinada y clasificación múltiple. MIT proporciona los recursos en línea recomendados, y el libro “The Algorithm Design Manual” también es muy útil.

7. Conozca los sistemas operativos. Porque estarán donde haces gran parte de tu trabajo. La Universidad de California, Berkeley, proporciona una cartilla.

8. Familiarícese con la inteligencia artificial. Google ama a los robots. Stanford tiene el conocimiento.

9. Aprende a construir compiladores. Stanford dice que cuando haces eso, “aprenderás cómo un programa escrito en un lenguaje de alto nivel diseñado para humanos se traduce sistemáticamente en un programa escrito en ensamblaje de bajo nivel más adecuado para máquinas”. Dirígete a Coursera para el aprendizaje.

10. Aprende criptografía. Porque la ciberseguridad es crucial. Coursera y Udacity ofrecen cursos.

11. Aprende programación paralela. Porque poder realizar toneladas de cálculos al mismo tiempo es súper poderoso. La Universidad de Illinois puede ayudarlo.

Fuente: 11 habilidades que debes dominar para conseguir un trabajo de ingeniería de $ 100,000 en Google

No estoy seguro de si mi respuesta a esta pregunta tendrá convicción, ya que no he trabajado en esas empresas. Pero, gracias por A2A, permítanme compartir mis observaciones.

Para la mayoría de las empresas orientadas al servicio, lo que se requiere es más productividad y conocimiento de las herramientas. Por ejemplo, no necesito saber cómo ordenar, pero necesito saber qué paquete / módulo se usará para ordenar y cómo usar esa ‘api’. En otras palabras, sin saber nada sobre la teoría básica, puedo convertirme en programador. Por ejemplo, un programador de DBMS ni siquiera necesita saber qué es la normalización.

Pero, compañías como Goggle requieren una comprensión sólida de los conceptos. Si comprende el concepto de Java, puede aprender PHP siempre que pueda asignar las propiedades de uno a otro o la falta de esa facilidad en el otro. En otras palabras, puede crear imágenes de empresas como Google para definir ‘API’ que otros usan para aprender. Pero entonces la persona que define ‘API’ tiene que ser un gurú.

¿Cuántas veces te encuentras con la situación en la que alguien piensa que usar WORD te convierte en un experto? La pregunta es: a medida que usa WORD, ¿puede adivinar la estructura de datos subyacente? ¿Puedes predecir el comportamiento de una función en WORD que nunca has usado hasta ahora?

Por lo tanto, para hacerse apto para tales empresas, desarrolle una pasión por meterse en los fundas. No piense que usar una herramienta (como un IDE, un lenguaje de programación o incluso un sistema operativo) lo convertirá en un experto, pero su capacidad para desarrollar dicha herramienta es lo que debe buscar.

Todo lo mejor.

More Interesting

Cómo salvar mi espalda baja si soy ingeniero de software

En una entrevista con un ingeniero de software, ¿cómo describo mis proyectos sencillos / aburridos y "muestro" su profundidad técnica?

¿Cómo es la vida de un ingeniero de software en Berlín, en términos de salario y calidad de vida?

¿En Java es tan fácil manejar la interfaz de usuario como en JavaScript?

¿Los programadores competitivos se patrocinan como lo hacen los atletas en otros deportes?

¿Cuál es su mayor temor como ingeniero de software?

¿Las bases de datos SQL, ASP y PHP siguen siendo la base de muchos sistemas de back-end?

¿Debo cambiarme de una empresa multinacional a una startup de Big Data (totalmente rentable) en el mercado indio actual de TI si obtengo el mismo salario?

¿Cómo es ser ingeniero de software de una universidad de mierda?

¿Cuáles son algunas cosas interesantes relacionadas con la ingeniería de software que solo los ingenieros antiguos saben?

Trabajo: ¿Realmente los ingenieros de Facebook, Google, Dropbox, etc. utilizan su conocimiento algorítmico en su trabajo diario o solo se usa como una forma de eliminar a los candidatos inadecuados?

¿Cuáles son las clases de CS más importantes para un ingeniero de software?

He estado programando durante 2 meses y tengo un ingeniero de software altamente experimentado dispuesto a guiarme regularmente. ¿Cómo puedo utilizar mejor su ayuda?

¿Cuál es la pregunta más difícil que ha enfrentado en una entrevista de ingeniero / desarrollador de software Java?

¿Cuándo diría que un aspirante a programador está listo para comenzar a aprender y aplicar el texto de Introducción a los algoritmos (CLRS)?