Bueno, cualquiera te aconsejará que vayas a través de sitios de programación como geeksforgeeks, carrera, código leet, etc. Pero créeme, esa no es la forma correcta.
Es un proceso paso a paso . Primero elige tu lenguaje de programación . Te recomendaría elegir uno de C ++ o Java . Aprende a usar las bibliotecas en ese idioma. La mejor manera de practicar esto es codificar los problemas Div 250 puntos en el topcoder . Resuelva unas 50 preguntas extrañas, vea la solución de otros codificadores en ese idioma. Vea cómo usan las bibliotecas para resolver esas preguntas en muy poco tiempo. Aprenda a encontrar la complejidad del algoritmo. Cree un analizador XML o lisp. Aprenda los conceptos de OOP .
Aprenda las estructuras de datos: árbol binario de código , pilas, listas enlazadas, colas, montón, tabla hash . Aprenda a usarlos en STL. Para cada tema, encuentre un conjunto de preguntas de codificación, resuélvalas y codifíquelas. Al igual que para el árbol binario, las listas vinculadas puede consultar estos problemas de la lista vinculada de árboles binarios. Incluso puedes ir a la carrera profesional , ordenar por la mayoría de las preguntas que se votaron y resolverlas , pero debes tener cuidado ya que las soluciones dadas en la carrera profesional son incluso incorrectas a veces.
- ¿Podemos pedir más detalles sobre la entrevista con Google?
- ¿Me harán preguntas específicas de C ++ si lo he incluido en mi currículum pero la descripción del trabajo dice que debería tener experiencia con Python, Java o C ++?
- Cómo dividir dos números, utilizando solo operaciones de bits, en Java
- Cómo abordar sistemáticamente los problemas de retroceso
- ¿Qué debo esperar en una entrevista de ingeniero de software en Google y cómo debo prepararme?
Ahora pase a Algoritmos: Aprenda Finding-Primes, DFS, BFS , Recorrido de orden de nivel, Programación dinámica , Distancia más corta, Árbol de expansión. Puede seguir editoriales topcoder para eso. Resolver preguntas dadas en enlaces. Ver también Tutoriales de algoritmos (Matemáticas). Resolver preguntas dadas en enlaces.
Ahora vaya a los llamados sitios de preguntas de entrevistas . Resolver problemas en ellos. Codifique algunos de ellos, lo cual es nuevo para usted. Puede encontrar algunos conceptos que no sabía antes. Anótelos. Aprende esos. Vea algunas preguntas de diseño también.
Supongo que todo lo mencionado anteriormente se puede completar en un máximo de 60-80 días, considerando que incluso es posible que desee centrarse en lo académico.
Ahora comience a participar en un concurso mensual en codechef . Como su objetivo es ser ubicado, solo trate de resolver las primeras 4-5 preguntas fáciles. Al menos una vez a la semana resuelve preguntas en GeeksForGeeks o Careercup. Aprenda DBMS y SQ L. Conceptos teóricos como Cómo se realiza la indexación, qué estructuras de datos se utilizan, incluso las que deben aprenderse. La forma más fácil de aprender es crear un sitio web usando Javascript, CSS, SQL y HTML. Incluso puede tomar la tarea de construir una biblioteca javascript desde cero. Siga sitios como High Scalability, TechCrunch, etc. Aprenda cómo funciona Google, Twitter, Facebook, etc. Tener una idea básica sobre su arquitectura .
Aprenda temas avanzados como procesamiento de imágenes o aprendizaje automático . Puedes tomar sus cursos en línea en COURSERA . Vea algunos proyectos en línea sobre ellos. Impleméntelo usted mismo.
Después de estas cosas, tendrá suficiente práctica de codificación para limpiar la ronda en línea y la primera entrevista. Tiene suficiente conocimiento sobre algunos temas avanzados para borrar la segunda y tercera entrevista de cualquier empresa.
Su objetivo debe ser aprender cosas, no ser colocado. De todos modos, la mejor de las suertes 🙂