¿Es posible ingresar a Google como ingeniero de software en 5 meses, si todo lo que sé es Java?

Si tuviera que ignorar los detalles y simplemente responder a la pregunta principal, la respuesta sería sí. Conocer solo Java (o cualquier lenguaje razonable) es suficiente, en lo que respecta al conocimiento del lenguaje de programación.

Sin embargo, ser un principiante en su lenguaje de programación principal es un gran obstáculo. Debe sentirse cómodo en él, de modo que pueda expresar rápida, idiomáticamente y correctamente una solución a un problema técnico durante la entrevista. Cinco meses podrían ser suficientes para llegar a ese punto si está razonablemente dotado en el área de programación y está dispuesto a trabajar en ello.

Pero todo esto no es demasiado relevante, porque poder programar es el menor de sus desafíos. Primero debe poder resolver problemas algorítmicos y practicar hacerlo. Esto es mucho más difícil de hacer que simplemente aprender a programar, y aparentemente ni siquiera en su radar, dada la pregunta que está haciendo.

Finalmente, no hay diferencia incluso si en estos cinco meses te conviertes en el programador más brillante de todos, ya que Google no te dará una entrevista en primer lugar, a menos que hagas algo impresionante primero, y simplemente estudiar durante 5 meses no va para proporcionarle cualquier logro de este tipo.

Los factores más importantes para conseguir un trabajo en Google serán:

  • Conocimiento de la aplicación y análisis de estructuras de datos y algoritmos.
  • Experiencia laboral previa (programación, pasantías, sitios web o aplicaciones).
  • Competencia en al menos un lenguaje (preferiblemente orientado a objetos).

Si conoce Java, al menos tiene el tercer punto hacia abajo, pero los problemas más apremiantes son los dos primeros.

Recomiendo obtener el libro Cracking the Coding Interview. Si puede seguir todo el libro y resolver todos los problemas (o al menos comprender completamente sus soluciones, una vez explicado), entonces debería poder conseguir un trabajo en Google. Si no, tómese el tiempo para aprender realmente sobre las lagunas en su conocimiento. Tome un curso de CS, trabaje en proyectos paralelos, etc.

Finalmente, una vez que te sientas seguro de que puedes pasar el listón, debes ponerte en el radar de un reclutador de Google. Intente crear algunas aplicaciones, publicarlas y obtener un número decente de usuarios. O intente trabajar para una empresa más dispuesta a apostar por alguien sin experiencia laboral previa.

Sospecho que cuando todo esté dicho y hecho, esto te llevará mucho más de 5 meses, pero está bien. No te preocupes por no estar donde quieres estar hoy, solo concéntrate en mejorar. Cuando esté listo para trabajar en una empresa de alta tecnología, lo sabrá.

Probablemente dependerá sustancialmente de qué tan bien conozca los algoritmos.

Es bueno si conoces un idioma realmente bien, pero eso no te dará mucha exposición a los algoritmos a menos que hayas usado una gran cantidad. Las habilidades de programador de Java tienden a ser:

0 – Fui a un campamento de codificación ——— 10 Hola, mi nombre es James Gosling

Google espera que conozcas al menos un lenguaje informático muy, muy bien; prácticamente no les importa cuál es ese idioma, porque te enseñarán el idioma que necesitan saber.

Pero todas las clases internas suponen que tiene suficiente CS que podrá generalizar desde el idioma que conoce hasta el idioma que necesita que pueda usar. Por lo tanto, podrá aprender lo suficiente del idioma en un curso de dos semanas que será lo suficientemente competente como para lanzar un proyecto inicial.

Pero si no conoce al menos la notación “Big O”, y no puede explicar la complejidad temporal del algoritmo que eligió para algo, casi seguramente fallará en las entrevistas técnicas para un puesto de ingeniero de software.


Como un aparte…

Desafortunadamente, conocer solo Java generalmente significa que conoce al menos algunos de los algoritmos, tal vez incluso más que la mayoría, porque están empaquetados como clases.

Pero no conoce los aspectos internos de cómo se implementan esas clases, por lo que no conoce su orden de complejidad.

Esto es increíblemente importante cuando implementa algo “en Google Scale”, lo que significa centros de datos redundantes y distribuidos geográficamente, en miles o decenas de miles de máquinas.

Sin conocer los algoritmos más baratos para usar en una tarea determinada. le costará mucho dinero a Google, porque sus algoritmos no serán tan eficientes como podrían haber sido. Entonces su código tomará más servidores. Más servidores == más dinero.

Esto se traduce en que eres malo para diseñar programas.

Esta es la razón principal por la que me avergüenzo cuando alguien “solo conoce Java” o “solo conoce Python”.

Ambos son excelentes lenguajes de enseñanza, porque tienen curvas de aprendizaje cortas y suaves antes de que pueda comenzar a programar. Eso los hace excelentes para las universidades, porque significa que en realidad no tienen que enseñarte cómo programar.

Así fue Commodore BASIC: fantástico lenguaje de enseñanza; Lenguaje de diseño terrible.

Lo siento pero no. Esto es asombrosamente improbable.

Digamos que pasas los próximos 5 meses estudiando Java. Al final de 5 meses, ¿qué evidencia puede presentar de que puede escribir software de clase mundial?

Déjame responder eso: Ninguno. Su currículum simplemente no tendrá suficiente para que cualquiera que esté revisando currículums lo llame.

Esto es muy parecido a preguntar: “Si estudio actuación durante los próximos 5 meses, ¿es posible ser elegido como actor principal en una película”.

La respuesta es, por supuesto, que a menos que sea increíblemente especial o esté bien conectado, no tiene absolutamente ninguna posibilidad.


Pase los próximos 5 meses creando una aplicación que le entusiasme y apasione. Olvídate de Google y Microsoft, de Amazon y la fruta. Ve y construye algo increíble. Encuentra personas para construir cosas increíbles con: La codificación es un deporte grupal. Deja de estudiar y comienza a hacer cosas. Codifique por amor, por la alegría de crear algo y aprender cosas y ver, idealmente, que otras personas usen lo que usted hizo.

Si. Conocer un lenguaje de programación es suficiente para entrar en todas estas grandes empresas.

Ya conoce Java, por lo que conoce los conceptos básicos de las estructuras de datos y los conceptos de Uy que es un bloque importante para resolver cualquier problema.

Llegando al segundo punto, ahora tiene 5 meses, permítame decirle lo que necesita:

  1. Resolver problemas de programación – InterviewBit (InterviewBit). Están teniendo una plataforma interactiva bastante buena.
  2. Resolver problemas de problemas – LeetCode
  3. Haz algunos cálculos y resuelve problemas de Acerca de – Proyecto Euler
  4. Lea este maravilloso artículo Obtenga ese trabajo en Google
  5. Leer más Preguntas de la entrevista de Google
  6. Haga este curso sobre el diseño del sistema del campo de entrenamiento de HiredInTech para codificar entrevistas
  7. Leer más WebCrazyLabs / system-design-primer
  8. Lea algunas cosas más WebCrazyLabs / qué pasa cuando
  9. Ahora respire profundamente y comience a desarrollar algunas aplicaciones y proyectos que resuelvan problemas del mundo real.
  10. Participe en la programación competitiva, cree una cartera y muestre habilidades en línea para que el reclutador pueda identificarlo entre la multitud.

5 meses es realmente difícil de cubrir todos los puntos anteriores, pero si su sueño es entrar en grandes empresas, debe comenzar en alguna parte. Nada es imposible, sigue el camino y obtendrás tus sueños. Puede llevar tiempo, pero no dejes que alguien te diga que no puedes hacerlo.

Concéntrese en su objetivo final. Todo lo mejor

Un consejo muy serio entonces.

  1. Asumiré que no tienes experiencia laboral previa.
  2. Asumiré que no tienes un título de ninguna universidad.

La suposición 1 debería ser lo suficientemente justa por la forma en que formuló su pregunta. La suposición 2 probablemente depende de países / universidades, pero usted habría estado expuesto al menos a Python / C para afirmar que conocía el “nivel de principiante C” o el “nivel de principiante Python”, por supuesto.

Esos dos puntos, si se demuestra que son ciertos, deberían más que responder a su pregunta, pero le daré otros consejos:

5 meses son aproximadamente, digamos 22 días al mes para descansar algunos fines de semana, 22 * ​​5 = 110 días.

8 horas al día * 110 = 880 horas.

Si comienza desde el “nivel de principiante Java”, y al final de, 900 horas, ha creado, digamos, dos aplicaciones de tamaño pequeño a mediano que tocan un poco todo lo que está de moda hoy en día: diseño receptivo, móvil, , consumiendo algunas API públicas para mostrar algunos datos tabulares, tal vez algunas parcelas, enviar algunos correos electrónicos, una pequeña base de datos noSQL y alguna forma básica de autenticación de usuarios, me atrevería a decir que usted termina período de entrenamiento con más experiencia práctica que algunos graduados que solo hacen cursos. Lo cual es genial, de verdad.

No lo llevará a ninguna compañía de primer nivel, pero mostrará algo mucho más importante: sabe cómo usar un poco de tiempo de estudio para autoaprendizaje y hacer crecer su conjunto de habilidades, y sabe cómo hacer que las cosas funcionen. No puedo decir esto lo suficiente, pero hacer que las cosas funcionen es lo que cuenta. No puede ser NADA. Puede ser una página web estática estúpida con una plantilla ajustada por algún diseñador, para adaptarse a su CV. Hospedelo gratis con paginas github. Personalice CSS, ajústelo, hágalo suyo y, de repente, cuando un empleador le solicite su CV, envíelo en formato PDF y “oye, también puede consultar mi CV en Bruno Oliveira – Currículum Responsivo / Plantilla de CV (descaradamente auto promocionando el mío: p) “. Esta es una gran ventaja y una gran ventaja para usted, porque muestra iniciativa, trabajo duro y a su empleador le gustará.

No renuncies a tu sueño, pero no te desanimes. Construye cosas. Romper cosas. Arreglar cosas. Repetir. Y estarás exactamente donde debes estar 🙂 ¡Buena suerte!

No. También necesita evidencia de que es más probable que se convierta en un ingeniero superior autosuficiente que otros candidatos. Eso requiere al menos un título acreditado por ABET en Ciencias de la Computación, Ingeniería de Software o Ingeniería de Computadores; o varios años de experiencia en cada uno de varios trabajos que generalmente requieren un título que lo convirtió en un ingeniero sénior. De lo contrario, no obtendrá una pantalla de teléfono en ninguna empresa decente, grande o pequeña, especialmente una empresa conocida que atrae a millones de solicitantes anualmente como Google, Microsoft, Amazon y Apple.

Las personas que aún no son residentes permanentes legales de los EE. UU. Necesitan un título de 4 años o 12 años de experiencia para obtener la visa más común.

Si bien es posible ingresar sin un título, 2–3 años para obtener un MS CS comenzando con algún otro título universitario o 4–5 comenzando desde cero para obtener un BS CS es un camino más rápido y seguro hacia trabajos de ingeniería de software decentes, especialmente en ” empresas de primer nivel “.

Si puede hacer lo que ha mencionado en sus datos, ¿por qué necesita trabajar en Google? Puedes ser tu propio maestro. Con el profundo interés que ha demostrado en la programación, puede aprender / hacer lo que quiera. No tiene por qué ser un caramelo aplastado / choque de tipo clan. Puede crear aplicaciones de Android, juegos con una lógica simple pero única. Google / Facebook y otras compañías importantes parecen contratar personas talentosas, pero la mayoría de ellas realizan la robótica durante todo el día. Hay algunas personas de nivel superior que les piden que realicen ciertas tareas y sigan el proceso. Compran talento / personas con el dinero que limita su creatividad para que no puedan crecer más. Esa es la razón por la que muchos empleados dejan la empresa de nivel superior y comienzan su propia búsqueda.

Ingresé a Microsoft como contratista hace mucho tiempo. Fue una entrevista muy intensa, extremadamente técnica.

Mi sugerencia es usar ese tiempo para hacer algo interesante más allá de solo estudiar, por ejemplo, escribir una aplicación de Android no trivial. Todavía es una posibilidad remota, pero si los entrevistadores están impresionados por la aplicación, tienes una oportunidad real.

More Interesting

Como ingeniera de software femenina, ¿cómo puedo saber si soy discriminada por mi género (por equipos exclusivamente masculinos) o si simplemente no tengo habilidades de comunicación?

¿Todos los ingenieros de software de Google aprendieron el diseño del compilador y la inteligencia artificial en algún momento de su vida?

¿Cómo pueden llevarse bien los gerentes de producto e ingeniería?

¿Hay algún punto para continuar estudiando algoritmos avanzados y estructuras de datos?

Soy un viejo estudiante ¿Debo ser ingeniero de software o analista cuantitativo?

Soy ingeniero de software con 2 años de experiencia laboral. Pero ahora me doy cuenta de que no es a largo plazo para mí. ¿Qué otras opciones tengo aparte de TI? Estoy interesado en la enseñanza. ¿Como empiezo?

¿Por qué los ingenieros de electrónica y telecomunicaciones tienen que trabajar como ingenieros de software en una empresa de TI?

Aparte de los algoritmos, ¿hay algo que los ingenieros de software sepan que los evaluadores de penetración no?

¿Cómo es el proceso de entrevista en Microsoft Irlanda?

¿Qué hacen los ingenieros de software que escaparon del 9 al 5 y cómo llegaron a donde están ahora?

¿Una hora de evaluación es suficiente para evaluar a un ingeniero de software con 5 años de experiencia?

¿Los ingenieros de software usan software CAD?

¿Debo incluir mi posición como CTO en mi currículum de Ingeniero de Software para Facebook?

¿Cuál es la diferencia entre ingeniería de software y arquitectura de software?

¿Qué es lo mejor que puede hacer una carrera profesional para un ingeniero de software en este largo fin de semana?