¿Cómo creo más interés en la programación y soy un buen programador en algoritmos?

Pista: cuando use un software, piense cómo funciona, desde el nivel arquitectónico hasta el nivel de implementación (aquí es donde los algoritmos y las estructuras de datos aparecen).

  1. ¿Cómo funciona Google Map? Si da los puntos de inicio y finalización, ¿cómo muestra la ruta? ¿Cómo decide la ruta óptima? ¿Cómo le muestra los restaurantes, cajeros automáticos, etc. más cercanos?
  2. ¿Cómo se implementan los motores de física en los juegos? ¿Cómo se detectan las colisiones? ¿Cómo se simulan las fuerzas? En general, los motores de juego tienen que ser extremadamente rápidos y en juegos con muchos gráficos detallados (como Call of Duty o Skyrim), los cálculos y la representación deben ser muy rápidos. ¿Cómo se las arreglan para hacer eso?
  3. ¿Alguna vez jugaste un juego como Age of Empires o Rise of Nations? ¿Cómo toman decisiones los jugadores de computadora? ¿Cómo se implementan?
  4. Utiliza compiladores e intérpretes para una variedad de tareas. ¿Correcto? ¿Qué se necesita para crear tu propio idioma? ¿Qué hay de hacerlo orientado a objetos, funcional o lógico?
  5. Uno más simple: ¿qué tal escribir un programa para resolver acertijos de Sudoku? Aún más simple: ¿qué tal escribir un bot que juegue Tic-Tac-Toe? Comience de la nada, permita que juegue contra sí mismo y aprenda. Esto es interesante. (como DeepMind?)
  6. ¿Qué tal escribir versiones externas de algoritmos que ya conoces? ¿Piensa cómo puede reducir la cantidad de accesos al disco? ¿Cómo se organizan los datos para lograrlo? Las bases de datos hacen esto.
  7. ¿Qué hay de aprovechar el poder de las GPU y cachés (escribir código de tal manera que se reduzcan las pérdidas de caché)? Comience desde los más simples como la multiplicación de matrices.
  8. ¿Cómo funcionan las herramientas de construcción como Gradle, Maven, GNU Make, etc.? ¿Cómo calculan el orden de compilación, las cosas relacionadas con la dependencia, etc.?

La lista sigue y sigue. Mira la imagen completa. Aquí hay muchas cosas interesantes: tenga en cuenta que es posible que no estén relacionadas con los algoritmos.