El espacio de algoritmos que operan sobre gráficos es maravilloso. Después de dos meses, escribiría un programa que analiza gráficos sociales para hacer cosas como, por ejemplo, encontrar personas del tipo de “conector” que unen múltiples grupos sociales, identificar grupos sociales, analizar tamaños de grupos sociales extendidos, encontrar personas que se están convirtiendo socialmente aislado, etc.
El espacio de los algoritmos de búsqueda de rutas también es muy divertido. Escribir un pacman automatizado que pueda comer todos los puntos en un laberinto mientras evita los fantasmas es un desafío interesante. O incluso simplemente escribiendo la primera parte, que es la navegación de un laberinto desde la entrada hasta la salida. O bien, encontrar varios caminos más cortos a través de una región navegable.
Las transformaciones de objetos también son muy divertidas, si eres tan geek como yo. Por ejemplo, implementar un motor que pueda convertir datos tabulares en agregados jerárquicos arbitrarios, por ejemplo, “agrupe esta tabla por campo foo, luego bar, luego baz, y en el camino genere sumas, promedios, minutos, máximos, medianas, etc.” El algoritmo para aplanar los agregados también es genial. Finalmente, encontrar formas de paralelizar estos algoritmos es extremadamente interesante.
- ¿Cómo aprendió Brad Friedman las habilidades de ingeniería en ingeniería de software?
- ¿Cuáles son algunas de las habilidades que debe poseer todo ingeniero de software?
- ¿Qué trabajos hay para los ingenieros de software que prefieren ser especialistas?
- ¿Cuál será el destino de los ingenieros de software en India después de 4 a 5 años? Todos los países están prohibiendo a los ingenieros de TI, primero los EE. UU., Malasia y ahora es el Reino Unido.
- ¿En qué gastan sus compañías de software miles de millones de dólares?
Además de eso, escribir un motor de unión distribuido simple también es muy divertido. Dadas las estadísticas sobre sus datos, hacer que el motor decida cómo mezclar información entre máquinas (o evitar hacerlo) es genial, aunque quizás un poco agresivo para un principiante. (Ok, ridículamente agresivo).
Por supuesto, para principiantes reales, escribir un montón de implementaciones de algoritmos de clasificación puede ser una introducción “suficientemente buena” para hacer un trabajo de ingeniería real. Tal vez, una vez hecho esto, profundizar en la creación de índices es interesante, para que pueda hacer una ordenación arbitraria, y tal vez incluso índices invertidos para que pueda mostrar la coincidencia básica de cadenas .
¡Que te diviertas!