La mayor parte de lo que se aprende en la licenciatura son "grandes ideas" que han tenido un profundo impacto en las ciencias de la computación y las han moldeado durante varias décadas. Si has tenido profesores inspiradores, es posible que también te hayan presentado "grandes problemas" que mucha gente está interesada en resolver.
Desgraciadamente, esto, como aprenderás, no te da una muy buena imagen de cómo es la investigación real en CS.
La mayor parte de la investigación en CS no es tan sexy y rompedora como lo que tus clases pueden llevarte a imaginar. La mayor parte de la investigación consiste en "pequeñas ideas" que se presentan de una manera específica para tener el mayor impacto posible a una pequeña comunidad de investigadores que están trabajando en problemas similares. Estas "pequeñas ideas" suelen tener un alcance limitado (por lo que no acaban enseñándose inmediatamente en las aulas o utilizándose en la industria), pero la esperanza entre los investigadores es que, a medida que las "pequeñas ideas" se vayan superponiendo con el tiempo, den lugar a "grandes ideas".
La otra cosa que hay que tener en cuenta es que no todas las "pequeñas ideas" son iguales. Dependiendo de la comunidad de investigación en la que trabajes, ciertas ideas se considerarán más de moda que otras en esa comunidad. Y las líneas de moda cambian constantemente cada año.
Pragmáticamente, para convertirse en un investigador de éxito, tendrá que desarrollar 3 habilidades:
- Ser bueno para digerir rápidamente la investigación de otras personas para averiguar cuál es el mérito relativo de sus contribuciones, y qué "pequeña idea" clave hizo que esas contribuciones fueran novedosas.
- Averiguar cómo seguir las tendencias de moda en la comunidad de investigación de la que se quiere formar parte.
- Aprender a presentar las propias ideas de forma que la comunidad de investigación de la que se quiere formar parte le tome en serio.
Permítame empezar diciendo que conseguir ser bueno en estas habilidades no es fácil. Nada de lo que aprendiste en la licenciatura te ayuda a desarrollar estas habilidades, y no hay ninguna clase que puedas tomar que te ayude a mejorar en ellas.
Esto es por lo que la mayoría de las otras respuestas aquí sugieren que necesitas trabajar con un profesor para hacer investigación como estudiante, porque los profesores ya tienen estas habilidades. Los profesores pueden asegurarse de que estás trabajando en algo que interesa a otras personas, y también pueden guiarte cuando te sientas frustrado o te encuentres con obstáculos en tu investigación. También pueden escribir referencias para ti en el futuro, lo que será importante para tus ambiciones profesionales. A veces, incluso pueden ayudarte a establecer redes con personas que tienen intereses similares a los tuyos. Tener un profesor como buen consejero o mentor es una experiencia inestimable por muchas razones.
Dicho esto, creo que nunca es demasiado pronto para empezar a desarrollar por tu cuenta las 3 habilidades de investigación que he mencionado anteriormente. Incluso como estudiante de grado. Me gustaría haber empezado como estudiante de grado. Y no asumas que sólo porque estés trabajando con un profesor que podría ser un gran mentor, te ayudará a desarrollar estas habilidades.
Así que esto es lo que tienes que hacer:
Aprende cómo se comunica la gente en tu campo. El principal modo de comunicación en Ciencias de la Computación es el documento de la conferencia. Puede que ya hayas cogido algunos artículos de conferencias de CS y te hayas dado cuenta de que son mucho más difíciles de leer que tus libros de texto. ¿Por qué? La razón es que los artículos de conferencias suelen tener límites muy estrictos en cuanto a la longitud de las páginas, por lo que los autores se ven obligados a escribirlos de forma muy densa. A menudo, los artículos de las revistas son mucho más fáciles de leer que los de las conferencias, porque los artículos de las revistas tienen más páginas y se pulen y editan mucho más para que sean más claros. Desgraciadamente, las revistas no son tan populares en el campo de la informática como las conferencias: cuando algo se publica en una revista, ya no se considera investigación de vanguardia en informática. Así que mientras la CS esté dominada por las conferencias, debes hacerte bueno en la lectura de este breve formato de publicación.
El segundo modo de comunicación en Ciencias de la Computación es la charla. Esto no debería sorprender, dada la importancia de las conferencias en CS. Cuando la gente va a las conferencias, escucha charlas. Así que para ser un investigador de éxito, tienes que ser bueno hablando, y observando cómo otras personas hablan de su investigación. Si vas a una universidad en la que tienes la suerte de que vengan muchos visitantes a dar charlas, asegúrate de aprovecharlo yendo a tantas charlas como sea posible.
- Averigua cuáles son las 3 principales conferencias en un área de la informática que te interesa, y empieza a leer los artículos de esas conferencias que se han publicado en los últimos años. Si no sabes cuáles son, probablemente puedas averiguarlo fácilmente preguntando por ahí. Busque temas comunes. ¿Se menciona un tema específico en muchas ponencias recientes? ¿Cuáles son las diferentes subáreas de la conferencia y qué investigadores publican en esas subáreas? Es bueno tener una idea de quién está trabajando en qué, y los diferentes territorios que los investigadores han tallado para sí mismos, ya que esto también le dará una idea de dónde podría querer ir a la escuela de posgrado (supongo que está en su agenda).
- Si es posible, trate de asistir realmente a algunas de estas conferencias. Sí, esto puede ser caro, pero hay formas de hacerlo más asequible si se planifica con antelación. La tarifa de estudiante para la conferencia suele ser bastante más barata que para cualquier otra persona, y a menudo los estudiantes pueden incluso conseguir la entrada gratuita si se apuntan para hacer algún voluntariado. También hay varias becas de viaje a las que puedes optar, ya sean proporcionadas por la propia conferencia o por la escuela a la que asistes. Ten en cuenta que cualquiera puede asistir a las conferencias, y no es necesario que tengas un trabajo publicado en la conferencia para ir. Asistir a una conferencia le proporcionará una gran cantidad de beneficios, ya que no sólo aprenderá sobre las investigaciones más recientes en el área que le interesa, sino que a menudo es más fácil digerir las tendencias de la investigación al estar en una conferencia en persona que sólo leyendo los documentos. Se irá con muchas ideas de investigación. También podrá asociar caras reales con nombres de los que ha oído hablar, lo que será bueno para establecer contactos y averiguar con quién podría querer trabajar en el futuro.
- Tenga en cuenta que normalmente las principales conferencias en cualquier área de la informática son muy amplias y cubren muchos temas de investigación. Debido a que estas conferencias son extremadamente competitivas, a menudo sólo un pequeño número de trabajos de cada tema se publican allí. Si encuentra que un tema en particular está sobrerrepresentado y tiene muchos trabajos publicados en él en un año determinado sobre ese tema, significa que esa subárea está muy caliente y de moda para investigar en ese momento. A la inversa, no dé por sentado que el hecho de que un tema concreto no tenga muchos artículos publicados en una conferencia de primera línea significa que se está investigando muy poco sobre ese tema. Puede que haya una gran cantidad de investigación sobre ese tema, pero puede que se haya dividido en conferencias más especializadas que tienen sus propias comunidades. Por lo tanto, si encuentra temas específicos que le interesan y que tienen un enfoque más limitado que las principales conferencias del área de investigación general, entonces debería buscar conferencias especializadas para esos temas específicos también. Esto le dará una mejor idea de lo que se está investigando, cuál es el listón de la investigación sobre un tema concreto, lo que se ha hecho y lo que no se ha hecho. Además, intente preguntarse por qué determinados trabajos sobre un tema determinado pueden acabar en una conferencia de primera línea y otros no. ¿Ves alguna diferencia?
Aprende los métodos de investigación que utiliza la gente de tu campo. En términos generales, la investigación en ciencias de la computación se divide en dos categorías: investigación teórica e investigación empírica. Algunas investigaciones pueden entrar en ambas categorías. La investigación teórica se valida mediante pruebas matemáticas. La investigación empírica se valida mediante métodos experimentales establecidos para el campo en el que se trabaja. La mayor parte de la investigación en ciencias de la computación es empírica.
Tenga en cuenta que la investigación en ciencias de la computación requiere algo más que tener una idea y escribir algún código para implementarla. Probablemente pasará mucho tiempo escribiendo y depurando código (a menos que esté haciendo una investigación puramente teórica) pero ese código no es el producto real de su investigación. De hecho, a menudo, nadie más verá el código aparte de ti (y tal vez tu asesor) porque ese código nunca se publica. Esta es en realidad una de las principales deficiencias en la academia de CS, porque no muchos investigadores de CS realmente liberan su código.
En cambio, el producto de la investigación de CS proviene de los datos producidos por las pruebas que usted hace para verificar el mérito de su idea. El tipo de prueba que necesitas hacer varía mucho según los estándares de la comunidad de investigación en la que quieres publicar.
Por ejemplo, en algunas comunidades, puede ser suficiente con probar tu idea simplemente ejecutando tu código en unos pocos ejemplos. En otras áreas, tendrá que hacer una prueba que implique muchos datos, y hacer muchos análisis estadísticos sobre su resultado. Puede que descubras que mucha gente en tu área utiliza un conjunto de datos específico en sus pruebas, y puede ser aconsejable que utilices el mismo conjunto de datos para comparar. Tenga en cuenta que si utiliza un conjunto de datos que nadie ha visto antes (incluso si cree que el conjunto de datos es más adecuado para su investigación), va a gastar un espacio precioso en su documento explicando qué es ese conjunto de datos y cómo se construyó. Puede ser importante para usted comparar su idea directamente con la investigación de otras personas, y puede haber un punto de referencia estandarizado específico para hacerlo. A veces se puede comparar el punto de referencia simplemente mirando sus artículos publicados, si ellos estaban considerando la misma cuestión que usted está considerando, pero otras veces, es posible que tenga que volver a implementar su trabajo sólo para compararlo con el suyo. Sí, la investigación requiere mucho trabajo, y no todo es novedoso.
La parte menos novedosa de la investigación son los métodos experimentales que vas a utilizar. La gente quiere ver que usted' está utilizando el mismo tipo de métodos que otros investigadores en su área han utilizado en el pasado, para que puedan comparar su trabajo con el de ellos. También tendrá que saber qué tipos específicos de justificaciones se esperan de usted para impresionar a la gente con su idea. Además, sí, la gente quiere resultados positivos. Los resultados negativos casi nunca se publican, aunque puedas aprender mucho al hacer la investigación.
Ayuda tener estos métodos en mente cuando buscas un buen tema de investigación. ¿Es un buen tema de investigación la creación de un nuevo sistema operativo? Probablemente no si no hay una forma establecida de demostrar que su sistema operativo es mejor que el de los demás. Tal vez pueda hacer estudios de usuarios para ver si la gente prefiere su sistema operativo a otros sistemas operativos, pero entonces tendrá que encontrar una comunidad que acepte los estudios de usuarios como un método de investigación válido. Puede ser una comunidad que no tenga nada que ver con la investigación de sistemas operativos, como la HCI. Otra posibilidad es probar una característica específica del sistema operativo para la que existe un punto de referencia establecido, pero podría haber una forma más fácil de probar esa característica sin tener que construir el sistema operativo en primer lugar. No quiero desanimarte si estás destinado a ser el próximo Linus Torvalds, pero hay una razón por la que no muchos investigadores de CS están creando nuevos sistemas operativos - los métodos establecidos en esa área no fomentan ese tipo de investigación.
Este es sólo un ejemplo, por supuesto, pero espero que entiendas la idea. Una vez más, usted debe esperar para aprender acerca de lo que los métodos están en boga en la investigación actual mediante la lectura de los documentos de investigación publicados actuales.
Para la investigación teórica, sólo hay un método de prueba válido y eso se llama una prueba. Pero incluso ahí, es útil saber qué precedentes existen para ver qué tipo de resultados de teoremas le interesan a la gente. A la gente le gusta ver resultados análogos. Así que si un tipo específico de resultado obtuvo mucha atención en una conferencia anterior, se puede esperar que se publique un artículo mostrando el mismo tipo de resultado en un dominio diferente. Además, algunas personas se interesarán por el tipo de técnicas que utilizas en tus pruebas (especialmente si tus técnicas son novedosas y podrían aplicarse a otros problemas), y otras sólo se preocuparán por los resultados en sí. Deberías fijarte en ambas cosas cuando leas los artículos de la gente. Intente encontrar tendencias.