¿Es posible que un ingeniero sin experiencia en CS obtenga un trabajo en Google, Facebook, Microsoft o Amazon en 6 meses?

Para buscar registros en la web, vaya a backgroundtool.com. Tanto el público en general como la información no pública. Va más allá de lo que un único recurso puede hacer por usted o qué motores como Google pueden proporcionarle. Tendrá acceso a información de registros públicos, resumen de redes sociales, una búsqueda general en línea, registros de la corte, registros de delincuentes, registros telefónicos (directorios tanto públicos como privados), información de manejo y mucho más.

¿Es posible que un ingeniero sin experiencia en CS obtenga un trabajo en Google, Facebook, Microsoft o Amazon en 6 meses?

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. Aprende 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áticas abstractas. 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.

No estoy seguro de que pueda obtener un trabajo en estas empresas en 6 meses, pero como alguien que se enamoró de la programación que estaba en el lado del diseño, puedo decirle 3 cosas importantes.

  1. La “Programación de aprendizaje” es MUY diferente de la programación * en realidad *. Puedes aprender muy rápido, pero la programación se revela en los problemas que resuelves. Es un poco como la diferencia entre leer libros de cocina y cocinar.
  2. Encuentra un proyecto o un problema para resolver. Así es como aprendes. Es muy difícil “aprender programación” en términos abstractos; Me sorprendió lo fácil que se vuelve cuando lo APLICAS en lugar de memorizar los detalles del lenguaje. Realmente lo entiendes. Así es también cómo los empleadores potenciales lo evaluarán, en cómo aplica lo que aprendió (es decir, la resolución creativa de problemas) en lugar de simplemente memorizar cosas. Ahora que he construido un par de cosas, lo entiendo totalmente; Si una persona es un ingeniero que no tiene suficiente curiosidad, resistencia o persistencia para resolver un problema grande (compuesto por cientos de pequeñas decisiones) por su cuenta al construir * algo * que les importa, eso significa que no Realmente me importa la programación. No tienen suficiente curiosidad intelectual. Simplemente están haciendo “un trabajo”.
  3. Mire una entrevista de Eric Schmidt, ex CEO de Google en YouTube, donde habla sobre la contratación de ingenieros por completo (busque “Eric Schmidt Blitzscaling Stanford”); en un momento describe a las personas que NO quieren contratar. Se les llama las “personas de pegamento”. Son las personas que realmente recomiendan los empleados actuales, sus amigos: “a los tipos” agradables “a las personas inteligentes les gusta estar cerca de ellos, pero no aportan nada y nunca tienen ideas, y estas son las personas que deben evitar a toda costa” . También dijo que contratan en su mayoría personas de las escuelas de la Ivy League y de otros antecedentes SI SON EXCEPCIONALES. Se refería a conseguir un trabajo como ingeniero, creo.

Las personas que desean convertirse en programadores solo para poder conseguir un trabajo “en Google o Facebook” no lo hacen porque les encanta la programación. Además, si lee muchas respuestas y preguntas sobre Quora, puede ver que muchas de estas personas que realmente son contratadas, se deprimen cuando llegan a estas empresas porque están en un entorno competitivo, rodeadas de personas que a menudo están los mejores de su clase en informática … haciendo un trabajo que a veces no es necesariamente desafiante.

Eso significa que trabajar en “Google o Facebook” podría consistir en lo que yo llamaría el “síndrome del engranaje en la máquina”: contratado como ingeniero número 61086, compitiendo con otros brillantes ingenieros de 12845 a su nivel, limpiando el código o lo que sea para el cual NO estudiaste programación, podrías terminar desmotivado, sintiendo que no tienes propiedad de nada.

A2A. Para ser franco, a menos que cometieran un error, la mayoría de las personas no deberían ser contratadas como programadoras por una prestigiosa compañía de software en esta situación. Rechazan mucho más de los solicitantes de CS de lo que aceptan, por lo que una persona que trata de competir con ellos sin la experiencia previa tiene muy pocas esperanzas. Sin embargo, hay excepciones, por lo que la pregunta es si puede identificarse ante esas empresas como excepcional con sus esfuerzos .

Si está ansioso por trabajar para esas compañías, aquí hay algunas opciones que he visto que otras personas usan para ingresar:

  • Regrese a la escuela para obtener un título de CS. No tiene que ser una licenciatura: conozco personas que lo hicieron con un título de asociado, o simplemente con cursos.
  • Comience a trabajar en proyectos de código abierto y similares para obtener experiencia. Concéntrese en los aspectos prácticos, con suficiente teoría para hablar el idioma y la práctica de apoyo (por ejemplo, la complejidad del tiempo de ejecución). Esta ruta es útil para áreas donde generalmente no hay startups y las comunidades son pequeñas, como los controladores y los compiladores.
  • Únete a una startup y trabaja gratis o casi gratis. El truco aquí es unirse a una startup que le enseñará buenas prácticas de ingeniería de software: código limpio, buena infraestructura y mecanismos, etc. El problema es que la cantidad de compañías que hacen eso, pero aceptan talento no capacitado, es muy pequeña.

Probablemente 6 meses es demasiado poco tiempo para entrenar, pero ya se ha hecho. 1-2 años es bastante alcanzable. Esfuérzate: puedes ser afortunado o desafortunado, pero si disfrutas trabajar en ciertas cosas y encuentras personas con ideas afines en una gran empresa, eso superará la educación con bastante facilidad.

Puede ser posible, pero es extremadamente improbable.

Tenga en cuenta que los lectores y entrevistadores de currículum vitae en las principales empresas suelen tener una gran cantidad de currículums para filtrar, y no hay suficiente tiempo. Entonces, el proceso involucra una gran cantidad de falsos negativos: candidatos rechazados por razones relativamente menores. La falta de educación CS puede compensarse con una buena experiencia (muchas personas en la industria ahora llegaron allí después de un cambio de carrera), y la falta de experiencia a menudo se ve compensada por la educación (como la mayoría de los empleados universitarios). Pero no tener ninguno hace que sea fácil pasar por alto su currículum.

Debería tener algo en su currículum que compense su falta de educación y experiencia. Lo único que se me ocurre es que podría ser un software impresionante escrito por usted mismo.

Algo así como, “trabajando solo, escribí una pieza de software que permite a los usuarios ___________”. Lo que pones en ese espacio en blanco debe hacer que los evaluadores piensen “wow, si esto es cierto, entonces este candidato podría ser excelente a pesar de la falta de educación y poca experiencia”.

No tengo ideas brillantes sobre qué poner en ese espacio en blanco.

Normalmente, contribuir a un proyecto de código abierto no puede hacer daño, pero en este caso su experiencia probablemente llevaría a los lectores de currículums a asumir que sus contribuciones fueron proporcionales a su falta de experiencia. Así que creo que realmente necesitas un proyecto en solitario.

Si pasa los próximos 6 meses escribiendo software excepcional, del tipo que consigue usuarios y / o es reconocido en los sitios web de la industria de la tecnología, eso podría hacerle una entrevista.

Claro, si puede aportar una habilidad a cualquiera de las compañías que sea de gran valor además de la programación. Tanto Google como Facebook están desarrollando infraestructura para expandir la conectividad a Internet más allá del mundo desarrollado.

Aproveche sus habilidades allí donde puede agregar más valor como buen ingeniero civil que como un programador mediocre. O eso, o practique la programación hasta que le guste, adórelo, sueñe con él y pueda responder preguntas de ciencias de la computación e ingeniería de software tan fácil como parpadear.

Me gustaría hacer preguntas típicas de Google en una entrevista técnica y obtener una vista previa de lo que se desea.

Espero que esto ayude.

Seis meses no es tiempo suficiente para demostrar algo solo por tener un trabajo. Tendrás que construir algo, y tendrá que ser genial. Y 6 meses tampoco es tiempo suficiente para comenzar un negocio y ser contratado, por lo que tendrá que ser de código abierto. Entonces, descubra un gran problema que podría resolverse con el software, que aún no está resuelto, y resuélvalo con código. Y luego espero que tenga suerte: hay una buena cantidad de suerte en el proceso de contratación en el mejor de los casos, y especialmente para los candidatos no tradicionales.

Si está listo para practicar la codificación de algos y estructuras de datos, sí puede.
Busque ayuda de cualquier persona que conozca bien Algos y estructuras de datos.

Intente resolver la programación en línea, hay una gran cantidad de ellos y ofrezca prácticas gratuitas para resolver problemas.

Si eres bueno con las matemáticas, es una ventaja. Ayuda tanto en la resolución de problemas como en la prueba de aptitud, si corresponde.

La mayoría de los diablillos dejan de perder el tiempo dudando y comienzan a practicar como el infierno. Definitivamente cualquiera puede lograrlo en 6 meses.

Bueno, según yo, depende de cuánto conocimiento adquieras en el campo de software y programación en el período de tiempo que especificaste. Si adquiere el interés y las habilidades que buscan (las empresas mencionadas), ¡felicidades! Estás contratado.

More Interesting

¿Cómo debe un estudiante de ECE de último año solicitar empleos fuera del campus en Amazon / Microsoft?

¿Resolver 3000 preguntas de algoritmos en 3 años es suficiente para prepararse para las entrevistas de Google y Facebook?

¿Qué atributos del proceso de entrevistas de Google son problemáticos, ya sea para los entrevistados de Google o en su impacto en la forma en que otras compañías hacen entrevistas?

¿Cuáles son algunas de las últimas preguntas de la entrevista de programación de Google?

¿Tenemos que prepararnos para una entrevista tecnológica? Me preparo para las entrevistas, pero los entrevistadores hacen otras preguntas.

¿Cuál es el algoritmo más eficiente y fácil (en términos de implementación) para la coincidencia de patrones en una cadena?

Si no puedo resolver problemas de algoritmos en la entrevista técnica, ¿cómo debería fallar la entrevista de una manera excelente?

Una matriz int arr [10] = {}, la dirección de arr es 100, en una máquina de 32 bits, entonces & arr + 4 =? 116 o 260 u otros?

¿Cuáles son algunas aplicaciones divertidas o divertidas que se pueden desarrollar utilizando subprocesos múltiples en Java?

¿Qué debo esperar en una entrevista de ingeniero de software en Google y cómo debo prepararme?

Dada una lista de 'n' palabras, verifique si forman una cadena de palabras. En una cadena de palabras, las palabras adyacentes deben diferir exactamente en una letra, por ejemplo, ¿curar, cabeza, muerto, escritura, ciervo, cerveza?

¿Cuáles son mis posibilidades de aclarar la entrevista técnica telefónica donde no pude terminar la codificación a tiempo, aunque el entrevistador estuvo de acuerdo con mi enfoque de resolver el problema?

Cómo mejorar mi proceso de pensamiento para las entrevistas de codificación

¿Por qué el libro de Gayle Laakmann McDowell Cracking the Coding Interview tiene más éxito en India que en otros lugares?

Dados n números reales positivos, encuentre si existe un triplete entre este conjunto de modo que la suma del triplete esté en el rango (1, 2). Hazlo en tiempo lineal y espacio constante.