Antes de comenzar a solicitar programas de doctorado, decidí que quería saber exactamente cómo funcionaba el compilador gcc. Y así pasé varias semanas descomponiéndolo en sus componentes. Eso llevó a la pregunta de cómo el “¡Hola, mundo!” binario funcionó – tenía 8k bytes de largo, ¿qué hizo cada uno de esos bytes?
Cuando hice mi viaje por carretera para entrevistar a los posibles asesores de doctorado, pude hablar sobre ese trabajo y hacia dónde pensé que podría conducir. Resultó ser un callejón sin salida, pero esos profesores pudieron obtener una evaluación muy precisa de mis intereses y fortalezas de ese proyecto.
Entonces, para investigar, elija algo simple y pregúntese “Ok, ¿cómo funciona esto realmente ?” Toma “¡Hola, mundo!” por ejemplo. ¿Qué hace cada byte? Cuando ejecuta el programa, ¿qué sucede ciclo por ciclo? ¿Qué partes del núcleo se tocan?
- ¿Cuál es el lenguaje de programación potente y fácil de hoy y de mañana?
- ¿Alguien puede dar una idea de la investigación en informática?
- ¿Qué necesito saber para hacer un software que pueda leer y hacer un resumen de cualquier información?
- ¿Cuáles son algunos campos crecientes y relativamente desconocidos de la informática (fuera de los campos como IA, criptografía, bioinformática, minería de datos)?
- ¿Qué tan bueno es el departamento de informática en la Universidad de Wisconsin, Madison para la escuela de posgrado?
O si está más interesado en la optimización del rendimiento, elija un algoritmo de matriz de multiplicación e impleméntelo. Obtenga la documentación de arquitectura de su procesador y aprenda a usar los contadores de rendimiento del hardware. Luego determine, ciclo por ciclo, dónde están los cuellos de botella en su código. ¿Puedes eliminar esos cuellos de botella con una combinación de cambios de codificación y marcas de compilación? ¿Se puede mejorar con un ensamblaje codificado a mano? ¿Puede llegar al punto en que pueda probar que, para un tamaño de problema dado, no se puede hacer que su código se ejecute más rápido?
Si está haciendo esto sin el beneficio de un mentor, es poco probable que sea de calidad publicable. Pero aprenderá mucho, y tal vez se tome el tiempo para escribir sus resultados y publicarlos en arXiv.org.