¿Cuáles son algunos proyectos de C ++ que puedo hacer para mejorar mi conocimiento de la estructura de datos y ayudarme en entrevistas técnicas?

Respuesta de:

La respuesta de Abdelrahman Hamdy a ¿Qué proyectos de C ++ debería comenzar para aprender mucho?

En mi opinión, el mejor proyecto con el que puedes comenzar es un JUEGO.

Mi primer proyecto fue un juego simple hecho por C ++ con una biblioteca llamada SFML, es una biblioteca de gráficos, algo que le permite agregar colores e imágenes a su consola. Aprendí mucho de esta experiencia, y tengo mucha confianza en mí mismo.

Hará un gran uso de estructuras de datos y algoritmos aquí, y tal vez también alguna base de datos si le gustó eso.

Te daré un poco de motivación para ir con un juego, describiendo mi primer juego.

Mi primer proyecto, fue una caja de juego simple hecha en SFML usando C ++, y no sabía nada en ese momento, excepto C ++ muy básico.

Mi caja de juego consistía en dos juegos, el muy famoso juego pack-man, un juego en el que estás jugando con esa criatura amarilla que intenta comer esos puntos, y que los monstruos están tratando de comerte.

El otro juego fue el asombroso Bomber-man, un juego en el que estás jugando con ese héroe blanco, y estás tratando de bombardear todos los bloques para encontrar el puerto para ganar.

En realidad, SFML es genial, pero será cada vez más sorprendente si trabajaste duro con él, SFML no te dará muchas opciones avanzadas como XNA (codificado en C #), ¡pero eso no es malo! esa es una gran oportunidad para liberar su creatividad, resolución de problemas y habilidades de cómo hacerlo, por ejemplo, hice un menú, aunque SFML no le da la posibilidad de agregar un menú, pero usando algunas imágenes que cambiarán si presionaste algunas teclas del teclado, en realidad podría hacerlo.

SFML te permitirá agregar videos o imágenes o incluso sonidos (mi juego contiene muchos sonidos).

Usar una herramienta no muy avanzada no significa que no puedas hacer cosas mágicas, mira:

Algunas de las cosas mágicas que podría hacer es que, los lugares de monstruos y bloques se generan aleatoriamente en bomber-man, es un truco muy fácil, solo use la función aleatoria de generación de c ++ (función incorporada) pero no en números, en posiciones de bloques

Otro truco es cómo hacer que los monstruos sigan al héroe en pack-man.

De hecho, te divertirás y aprenderás mucho simplemente usando una biblioteca de gráficos no muy avanzada como SFML.

Puedes descargar mi código fuente del juego y todo el proyecto desde aquí:
AbdelrahmanRadwan / X-Game

NOTAS

Cuando hice ese proyecto, no sabía que había algo llamado OOP, así que escribí todo mi código en un archivo.cpp como algunas funciones, a través de eso, pude saber cuál es realmente la importancia de OOP, justo después escribiendo más de 3500 líneas de código.

El proyecto me llevó 2 semanas aprendiendo SFML e implementando el juego.

También puede consultar algunos proyectos de código abierto aquí:
La respuesta de Abdelrahman Hamdy a ¿Cuáles son algunos buenos proyectos de código abierto para principiantes en línea en los que puedo involucrarme?

Espero que haya sido útil de todos modos.

Dependiendo de su experiencia en C ++, (quiero decir en la medida en que conozca la esencia de C ++ como la programación del sistema, los punteros, los patrones de diseño involucrados).

Supongo que usted es un estudiante universitario que desea mejorar sus habilidades en la estructura de datos utilizando C ++, así que aquí están mis pocas entradas que puede seguir para obtener una buena comprensión de DS:

  1. Intente leer un buen libro sobre la estructura de datos y el algoritmo (como CLR: Introducción al algoritmo), esto le dará una idea sobre los diferentes DS y cuál usar según los requisitos del algoritmo.
  2. Trate de seguir buenos blogs de programación como: GeeksforGeeks: un portal informático para geeks, página en topcoder.com, LeetCode y muchos más.
  3. Aquí hay algunos proyectos simples en los que puede comenzar inicialmente, para obtener una buena idea:
  • 7 proyectos etiquetados “estructuras de datos”
  • Proyecto de estructuras de datos básicos en c ++: uso del algoritmo de Welch y Powell.

(Nota: hay muchos blogs disponibles en Google que obtendrá).

Pero, trate de pensar en todos los casos de esquina, como la utilización del espacio, la velocidad de procesamiento, la utilización de los recursos:> esto se puede lograr al perfilar su aplicación, obtendrá una idea aproximada de estos parámetros.

Una vez que haya terminado con los pasos anteriores, vea cómo los proyectos del mundo real están utilizando los conceptos que ha aprendido. Por ejemplo, pueden estar usando los diferentes DS para resolver el mismo problema (lógica), pero la elección de la estructura de datos depende del tamaño del problema, el tipo de datos involucrados (como cadenas, enteros, números de punto flotante, datos binarios, etc.) )

Personalmente desarrollé un juego de ping pong para mejorar mis habilidades.

También puede optar por desarrollar gráficos animados como reloj, autos en movimiento o juegos como Sankes.

Todos estos gráficos y juegos incluyen una gran cantidad de estructura de datos y también son interesantes.

En lo que respecta a las cosas aburridas, puedes intentar jugar con las ubicaciones de memoria de la computadora usando C ++. También puede hacer que algunos puertos de computadora se comporten de manera diferente de lo que normalmente lo hacen. Esto lo expondrá al poder de C como lenguaje flexible.

Si está aprendiendo a programar y es un principiante, entonces un buen desafío sería implementar Huffman Coding. Obtendrá las manos sucias en la cola prioritaria implementada a través de una DLL y BST. Todo lo mejor 😀

Implemente los algoritmos de clasificación de divide y vencerás en tantos lenguajes de programación como pueda comenzar con la clasificación por fusión, trabaje hacia arriba y aprenda la diferencia entre varias eficiencias de dichos Algos como O (n) O (1) O (n log n) O (n ^ 2).

More Interesting

¿Qué debo esperar en la entrevista de pasantía en IIT Bombay?

Cómo superar mi miedo al rechazo al asistir a entrevistas técnicas de codificación

¿Cuáles son algunas de las preguntas técnicas más falsas que le han hecho en una entrevista de desarrollador?

Dada una matriz representada como int [n] [n], gírela 90 grados en sentido horario en el lugar. (En el lugar significa un mínimo de memoria adicional para usar, es decir, no haga una nueva matriz para copiar).

¿Será difícil descifrar la entrevista del desarrollo de Android con solo el conocimiento básico de la estructura de datos y el algoritmo y no más que eso para los principiantes? ¿Las preguntas son demasiado complejas?

¿Cómo puede un ingeniero de ECE aclarar la ronda de entrevistas técnicas?

¿Cuántas veces puedes posponer aceptablemente una entrevista de Google?

Se nos da una serie ordenada de números reales. ¿Qué es una secuencia aritmética que minimiza el error cuadrático medio con respecto a la matriz?

Cómo responder preguntas de diseño en una entrevista de ingeniero de software

¿Cuál es la relevancia de hacer preguntas de algoritmos en una entrevista de trabajo?

¿Cuáles son las preguntas más comunes formuladas en las entrevistas para EEI?

¿Cuál es la forma más fácil de aprender C ++ y estructuras de datos?

Si hay una matriz que contiene N números, cuyo rango es de 1 a N + 1, y solo puedo usar el espacio O (1) y no puedo modificar la matriz, ¿puedo encontrar cualquier número repetido no peor que O (NlogN) ¿hora?

Si la resolución de problemas algorítmicos es lo que quieren probar, ¿por qué no contratan directamente a los mejores codificadores o fuerzas de código?

¿Los libros sobre preguntas de entrevistas de programación ayudan a los candidatos?