En el verano, ¿debería hacer algunos proyectos pequeños o mejorar mi conocimiento de las estructuras de datos y algoritmos teniendo en cuenta que tendré que presentarme para las ubicaciones después de unos meses?

Estructuras de datos y algoritmos” es el tema favorito de las empresas entrevistadas. Puede comenzar con la resolución de problemas en estructuras de datos y libros de algoritmos.

Los enlaces de los libros en Amazon están abajo:

1. Resolución de problemas en estructuras de datos y algoritmos utilizando C

2. Resolución de problemas en estructuras de datos y algoritmos usando C ++

3. Resolución de problemas en estructuras de datos y algoritmos utilizando Java

4. Resolución de problemas en estructuras de datos y algoritmos utilizando C #

5. Resolución de problemas en estructuras de datos y algoritmos usando Python

“Resolución de problemas en estructuras de datos y algoritmos” es una serie de libros sobre el uso de estructuras de datos y algoritmos en la programación de computadoras. El libro es fácil de seguir y está escrito para el punto de vista de preparación de la entrevista . En varios libros, los ejemplos se resuelven en varios lenguajes como C, C ++, Java, C #, Python, VB, JavaScript y PHP.

Composición del libro
Este libro está diseñado para entrevistas, por lo que en el Capítulo 0 se proponen varios planes de preparación. Luego, en los capítulos 1, se explica una breve introducción del lenguaje de programación y el concepto de recursión. Se explican varios problemas basados ​​en recursividad y matriz.

Luego, en el próximo capítulo, analizaremos el análisis de complejidad. Luego analizaremos las técnicas de clasificación y búsqueda.

Luego estudiará las diversas estructuras de datos y sus algoritmos. Buscaremos en una lista vinculada, pila, cola, árboles, montón, tabla hash y gráficos.

Luego analizaremos el análisis de algoritmos, analizaremos algoritmos de fuerza bruta, algoritmos codiciosos, algoritmos de división y conquista, programación dinámica y retroceso.

Al final, analizaremos el diseño del sistema, que proporcionará un enfoque sistemático para resolver los problemas de diseño en una entrevista.

Tabla de contenido
Capítulo 0: Cómo usar este libro.
Capítulo 1: Introducción – Descripción general de la programación
Capítulo 2: Análisis de Algoritmos
Capítulo 3: Enfoque para resolver problemas de diseño de algoritmos
Capítulo 4: Tipo de datos abstractos
Capítulo 5: Búsqueda
Capítulo 6: Clasificación
Capítulo 7: Lista vinculada
Capítulo 8: Pila
Capítulo 9: Cola
Capítulo 10: Árbol
Capítulo 11: Cola prioritaria
Capítulo 12: Hash-Table
Capítulo 13: Gráficos
Capítulo 14: Algoritmos de cadena
Capítulo 15: Técnicas de diseño de algoritmos
Capítulo 16: Algoritmo de fuerza bruta
Capítulo 17: Algoritmo codicioso
Capítulo 18: Divide y vencerás
Capítulo 19: Programación dinámica
Capítulo 20: Retroceso
Capítulo 21: Teoría de la complejidad
Capítulo 22: Estrategia de entrevista
Capítulo 23: Diseño del sistema

Bueno, incluso si realiza buenos proyectos, necesitaría un fuerte control sobre la estructura de datos y los algoritmos para descifrar las entrevistas. Así que toma tus prioridades correctas. Puede comenzar a trabajar en algún proyecto paralelo, pero concéntrese más en construir sus fundamentos.

Espero que sepas C, estudíalo nuevamente de:
1. “El lenguaje de programación C” de Brian Kernighan y Dennis Ritchie.

Codifique mucho, comience a codificar en HackerRank o PRACTICE | CodeChef. Si incluso no está tan cómodo con la programación, puede comenzar con Problemas de práctica: MyCodeSchool.

Leer
2. “Estructuras de datos y algoritmos simplificados” por Narasimha Karumanchi ”
3. “Romper la entrevista de codificación” por Gayle Laakmann McDowell

Lea esto también si no se siente cómodo con los temas:
4. “Conceptos de sistemas operativos” por Silberschatz, Galvin y Gagne
5. “Redes de computadoras” por Tanenbaum

Hacia el final de sus vacaciones, haga cualquier mini proyecto, que podría completarse en aproximadamente 15 días con un esfuerzo de 2-3 horas por día.

Bueno, en última instancia, depende de lo que quieras hacer en la vida. Si está realmente interesado en entrar en la programación, elija el idioma que más le guste y manténgalo. El conocimiento de DS y Algo es bastante importante y la mejor manera de mejorar sus habilidades es escribir programas, compilarlos, ejecutarlos y aprender de los errores que comete. Obtenga sus fundamentos correctos .

Cuando se presenta para entrevistas en el campus, la mayoría de las empresas tienen un examen escrito que consta de MCQ de 1 punto y preguntas que verifican las aptitudes / habilidades verbales / analíticas.

Hablemos primero de cosas no tecnológicas . Cuando me estaba preparando para aparecer en las ubicaciones del campus, eché un vistazo a los materiales de estudio que poseían algunos de mis compañeros de clase aspirantes a CAT. Para aumentar sus habilidades no técnicas, recomendaría lo siguiente:

1. Matemáticas: tenía una versión anterior del siguiente libro, lo que me ayudó mucho a acelerar mis cálculos durante las pruebas escritas.

Aptitud cuantitativa para exámenes competitivos 24ª edición –

2. Habilidades verbales: le recomendaría que comience a leer periódicos, revistas, etc. en inglés. Al principio, no tengo un material de estudio adecuado aparte de copias xerox de notas de mis amigos que se estaban preparando para CAT. Más tarde, decidí unirme a una clase a las TIME para obtener una mejor preparación.

3. Habilidades analíticas: debería estar bien si intenta algunas preguntas en línea.

Yo solía seguir el sitio: documentos de ubicación y trabajos de TI para el sitio web de FRESHERS. para obtener patrones de preguntas en papel para cada empresa.

Ahora, vamos a las cosas tecnológicas.

Primero y más importante. Decide un idioma y sé un maestro de ese idioma . Te ayudaría mejor que cuando tratas de ser un gato de todos los oficios.

Mi lenguaje de elección fue C cuando estaba estudiando (que se cambió a Java una vez que comencé a trabajar).

Para C, C ++ y Java, recomendaría lo siguiente:

1. El lenguaje de programación C – Kernighan y Ritchie
2. Libro C ++ de Bjarne Stroustrup
3. Guía SCJP por Kathie Sierra y Bert Bates.

Además del libro de Dennis M. Ritchie, utilicé el libro “Test Your C Skills” de Yashwant Kanetkar para verificar cuánto conocimiento obtuve cada vez que leo ese libro.

En segundo lugar, asegúrese de conocer los fundamentos del sistema operativo, los fundamentos de la red, las estructuras de datos y los algoritmos.

En mi opinión, la respuesta de Pulkit Verma es detallada sobre cómo obtener este conocimiento.

Por último, solo mis dos centavos sobre cómo prepararse, no intentes acumular lo que está en el libro. Intenta desarrollar una pasión por el tema que estudias. Tu valor real no está determinado por la compañía en la que te metiste o qué notas obtuviste en la universidad. Está determinado por cómo puede probarse a sí mismo una vez que comience su carrera en la empresa. 🙂

¡Buena suerte!

Como alguien que tiene un título de Btech (de BCIT, Vancouver), diría que una de las mejores cosas que puede hacer es pensar mucho en proyectos o dominios de conocimiento que conoce poco: matemáticas, algoritmos, aplicaciones aplicadas de estructuras de datos (excelente forma de escribir pequeñas aplicaciones y perfiles para el rendimiento), compilación cruzada para arquitecturas integradas, comprensión de la salida del compilador, etc.

La mayoría de las universidades y escuelas vocacionales enseñan poco sobre cosas como los controladores de programación, la interacción con las API (y escribir buenas), el mantenimiento del código y cómo refactorizar el código feo / heredado. La documentación de código adecuada y los diversos estándares de documentación automática rara vez se enseñan. Habilidades como estas te harán destacar entre la multitud de graduados y pasantes escritos.

Únase a grupos y reuniones locales en su área que compartan sus intereses, incluso si no se alinean exactamente, las redes no pueden ser algo malo 🙂

La mayoría de las cosas que sé se han incluido aquí.

Hay dos cosas más que sugiero que debería tener una idea de

1) Comience a contribuir al código abierto. No tiene que convertirse en un magnate de código abierto, solo comience a contribuir y usar software de código abierto.
Cómo ? Mucho quora para leer
Plan 9 Tech Incubator: ¿Cómo empiezo a contribuir a un sistema operativo de código abierto?
¿Cómo comienzo a contribuir al proyecto de código abierto de Chromium?
¿Cómo empiezo a contribuir a proyectos de código abierto?

2) Resuelva algunas preguntas de aptitud y razonamiento diariamente (solo 4-5 preguntas por día lo harán) y asegúrese de tomar nota de las fórmulas y conceptos.

Aquí hay un buen sitio web: Preguntas y respuestas de Aptitude

3) Los cursos de certificación también son una buena manera de mejorar / revisar habilidades.

Certificación profesional (tecnología informática)

Buena suerte

Yo sugeriría:

  • Revisa tus fundamentos. Cubierto en entrevista
  • Los mini proyectos agregan peso. Prefiero proyectos en vivo
  • Asista a un curso en línea sobre la era del curso. Agregue a sus académicos
  • Prepárate para las pruebas de aptitud. Muchos no borran las ubicaciones iniciales 3-5, entonces es demasiado tarde.

¡Todo lo mejor!