La plupart de ce que vous apprenez en premier cycle sont des "grandes idées" qui ont eu un impact profond sur l'informatique et l'ont façonnée pendant plusieurs décennies. Si vous avez eu des professeurs inspirants, ils peuvent également vous avoir présenté des "grands problèmes" que beaucoup de gens sont intéressés à résoudre.
Ceci, malheureusement, comme vous allez l'apprendre, ne vous donne pas une très bonne image de ce qu'est la recherche réelle en CS.
La plupart des recherches en CS ne sont pas aussi sexy et révolutionnaires que ce que vos cours peuvent vous laisser imaginer. La plupart des recherches consistent en de "petites idées" qui sont présentées d'une manière spécifique pour avoir le plus grand impact possible auprès d'une petite communauté de chercheurs qui travaillent sur des problèmes similaires. Ces "petites idées" ont généralement une portée limitée (c'est pourquoi elles ne finissent pas immédiatement par être enseignées dans les salles de classe ou utilisées par l'industrie), mais l'espoir des chercheurs est qu'au fur et à mesure que les "petites idées" se construisent les unes sur les autres au fil du temps, elles conduisent à des "grandes idées".
L'autre chose à garder à l'esprit est que toutes les "petites idées" ne se valent pas. Selon la communauté de recherche dans laquelle vous'travaillez, certaines idées seront considérées comme plus à la mode que d'autres dans cette communauté. Et les lignes de mode changent constamment chaque année.
Pragmatiquement, pour devenir un chercheur à succès, vous devrez développer 3 compétences :
- Devenir bon à digérer rapidement la recherche d'autres personnes'pour déterminer quel est le mérite relatif de leurs contributions, et quelle "petite idée" clé a rendu ces contributions nouvelles.
- Comment suivre les tendances de la mode dans la communauté de recherche dont vous voulez faire partie.
- Apprenez à présenter vos propres idées de manière à ce que la communauté de recherche dont vous voulez faire partie vous prenne au sérieux.
Laissez-moi commencer en disant que devenir bon dans ces compétences n'est pas facile. Rien de ce que vous avez appris en tant que undergraduate vous aide à développer ces compétences, et il's aucun cours que vous pouvez prendre qui vous aidera à devenir meilleur à eux.
C'est pourquoi la plupart des autres réponses ici suggèrent que vous devez travailler avec un professeur pour faire de la recherche en tant que undergrad, parce que les professeurs ont déjà ces compétences. Les professeurs peuvent s'assurer que vous'travaillez sur quelque chose qui intéresse d'autres personnes, et ils peuvent également vous encadrer lorsque vous êtes frustré ou que vous rencontrez des obstacles dans votre recherche. Ils rédigeront également des références pour vous à l'avenir, ce qui sera important pour vos ambitions professionnelles. Parfois, ils peuvent même vous aider à établir un réseau de contacts avec des personnes qui ont les mêmes intérêts que vous. Avoir un professeur comme bon conseiller ou mentor est une expérience inestimable pour de nombreuses raisons.
Cela dit, je pense qu'il'est jamais trop tôt pour commencer à développer les 3 compétences de recherche que j'ai mentionnées ci-dessus par vous-même. Même en tant qu'étudiant de premier cycle. J'aurais aimé commencer en tant qu'étudiant de premier cycle. Et ne supposez pas que juste parce que vous'travaillez avec un professeur qui pourrait autrement être un excellent mentor, qu'il'vous aidera à développer ces compétences.
Voici donc'ce que vous devez faire :
Apprenez comment les gens dans votre domaine communiquent entre eux. Le principal mode de communication en informatique est l'article de conférence. Vous avez peut-être déjà pris quelques articles de conférence CS et réalisé qu'ils'sont beaucoup plus difficiles à lire que vos manuels. Comment cela se fait-il ? La raison en est que les articles de conférence sont généralement soumis à des limites très strictes en termes de longueur de page, ce qui oblige les auteurs à les rédiger de manière très dense. Souvent, les articles de journaux sont beaucoup plus faciles à lire que les articles de conférence, parce que les articles de journaux ont des pages plus longues et sont beaucoup plus soignés et édités pour plus de clarté. Malheureusement, les revues sont loin d'être aussi populaires dans le domaine de la CS que les conférences - le temps qu'un article soit publié dans une revue, il n'est plus considéré comme une recherche de pointe en CS. Donc, tant que la CS est dominée par les conférences, vous devez devenir bon à lire ce format de publication bref.
Le deuxième mode de communication en informatique est la conférence. Cela ne devrait pas être une surprise, étant donné l'importance des conférences en CS. Lorsque les gens se rendent à des conférences, ils écoutent des exposés. Ainsi, pour être un chercheur performant, vous devez devenir bon pour parler, et observer comment les autres personnes parlent de leurs recherches. Si vous allez dans une université où vous avez la chance d'avoir beaucoup de visiteurs qui viennent donner des conférences, assurez-vous d'en profiter en allant à autant de conférences que possible.
- Découvrez quelles sont les 3 principales conférences dans un domaine de la CS qui vous intéresse, et commencez à lire les articles de ces conférences qui ont été publiés au cours des dernières années. Si vous ne savez pas ce que c'est, vous pouvez probablement le découvrir facilement en demandant autour de vous. Recherchez des thèmes communs. Un sujet spécifique est-il mentionné dans un grand nombre d'articles récemment ? Quels sont les différents sous-domaines de la conférence, et quels chercheurs publient dans ces sous-domaines ? Il est bon d'avoir une idée de qui travaille sur quoi, et des différents territoires que les chercheurs se sont taillés, car cela vous donnera aussi une idée de l'endroit où vous pourriez vouloir faire des études supérieures (je suppose que c'est dans votre agenda).
- Si c'est possible, essayez d'assister réellement à certaines de ces conférences. Oui, cela peut être coûteux, mais il existe des moyens de le rendre plus abordable si vous planifiez à l'avance. Le tarif étudiant pour la conférence est généralement beaucoup moins cher que pour n'importe qui d'autre, et souvent, les étudiants peuvent même bénéficier d'une entrée gratuite s'ils s'inscrivent pour faire du bénévolat. Il existe également diverses subventions de voyage auxquelles vous pouvez prétendre, qu'elles soient offertes par la conférence elle-même ou par l'école que vous fréquentez. N'oubliez pas que tout le monde peut assister à des conférences et qu'il n'est pas nécessaire d'avoir publié un article dans le cadre de la conférence pour y assister. La participation à une conférence vous permettra d'en avoir pour votre argent, car non seulement vous découvrirez les recherches les plus récentes dans le domaine qui vous intéresse, mais il est souvent plus facile d'assimiler les tendances de la recherche en assistant à une conférence en personne qu'en lisant uniquement les articles. Vous repartirez avec de nombreuses idées de recherche. Vous aurez également l'occasion d'associer des visages réels à des noms dont vous avez entendu parler, ce qui sera bon pour le réseautage et pour déterminer avec qui vous pourriez vouloir travailler à l'avenir.
- Gardez à l'esprit qu'habituellement les meilleures conférences dans un domaine donné de la CS sont très larges et couvrent beaucoup de sujets de recherche. Comme ces conférences sont extrêmement compétitives, souvent, seul un petit nombre d'articles de chaque sujet y sera effectivement publié. Si vous constatez qu'un sujet particulier est surreprésenté et qu'un grand nombre d'articles y sont publiés au cours d'une année donnée, cela signifie que ce sous-domaine est très chaud et à la mode pour faire de la recherche en ce moment. À l'inverse, ne partez pas du principe que le fait qu'un sujet particulier ne fasse pas l'objet de nombreux articles publiés dans une conférence de premier plan signifie qu'il y a très peu de recherche sur ce sujet. Il se peut qu'il y ait une tonne de recherche sur ce sujet, mais qu'elle se soit divisée en conférences plus spécialisées qui ont leurs propres communautés. Ainsi, si vous trouvez des sujets spécifiques qui vous intéressent et dont le champ d'action est plus étroit que celui des conférences les plus importantes du domaine de recherche général, vous devriez également rechercher des conférences spécialisées dans ces sujets spécifiques. Cela vous donnera une meilleure idée de la recherche existante, du niveau de la recherche sur un sujet particulier, de ce qui a été fait et de ce qui n'a pas été fait. Essayez également de vous demander pourquoi des articles particuliers sur un sujet donné peuvent se retrouver dans une conférence de premier plan, et d'autres non ? Voyez-vous une différence ?
Apprenez les méthodes de recherche que les personnes de votre domaine utilisent. De manière générale, la recherche en informatique se divise en deux catégories : la recherche théorique et la recherche empirique. Certaines recherches peuvent appartenir aux deux catégories. La recherche théorique est validée par des preuves mathématiques. La recherche empirique est validée par des méthodes expérimentales établies pour le domaine dans lequel vous travaillez. La plupart des recherches en CS sont empiriques.
Ne perdez pas de vue que la recherche en CS nécessite plus que de trouver une idée et d'écrire un peu de code pour l'implémenter. Vous passerez probablement beaucoup de temps à écrire et à déboguer du code (à moins que vous'fassiez de la recherche purement théorique) mais ce code n'est pas le produit réel de votre recherche. En fait, souvent, personne d'autre que vous (et peut-être votre conseiller) ne verra ce code, car il ne sera jamais publié. C'est en fait l'une des principales lacunes du milieu universitaire de la CS, car peu de chercheurs en CS publient réellement leur code.
Au lieu de cela, le produit de la recherche en CS provient des données produites par les tests que vous effectuez pour vérifier le bien-fondé de votre idée. Le type de test que vous devez faire varie beaucoup selon les normes de la communauté de recherche dans laquelle vous voulez publier.
Par exemple, dans certaines communautés, il peut être suffisant de tester votre idée en exécutant simplement votre code sur quelques exemples. Dans d'autres domaines, vous devrez faire un test qui implique beaucoup de données, et faire beaucoup d'analyses statistiques sur votre sortie. Vous constaterez peut-être que beaucoup de personnes dans votre domaine utilisent un ensemble de données spécifique dans leurs tests, et il peut être conseillé d'utiliser le même ensemble de données pour la comparaison. Gardez à l'esprit que si vous utilisez un ensemble de données que personne n'a vu auparavant (même si vous pensez que cet ensemble de données est plus adapté à votre recherche), vous allez passer un espace précieux dans votre article à expliquer ce qu'est cet ensemble de données et comment il a été construit. Il peut être important pour vous de comparer votre idée directement avec les recherches d'autres personnes, et il peut y avoir un point de référence standardisé spécifique pour le faire. Parfois, vous pouvez comparer le point de référence simplement en regardant les articles publiés par ces personnes, si elles se sont penchées sur la même question que vous, mais d'autres fois, vous devrez réimplémenter leur travail pour le comparer au vôtre. Oui, la recherche exige beaucoup de travail, et tout n'est pas nouveau.
La partie la moins nouvelle de la recherche est les méthodes expérimentales que vous allez utiliser. Les gens veulent voir que vous'utilisez le même type de méthodes que les autres chercheurs dans votre domaine ont utilisé dans le passé, afin de pouvoir comparer votre travail au leur. Vous devrez également savoir quels types de justifications spécifiques seront attendus de vous pour impressionner les gens avec votre idée. De plus, oui, les gens veulent des résultats positifs. Les résultats négatifs ne sont presque jamais publiés, même si vous pouvez apprendre beaucoup en faisant la recherche.
Il est utile de garder ces méthodes à l'esprit lorsque vous recherchez un bon sujet de recherche. Arriver avec un nouveau système d'exploitation est-il un bon sujet de recherche ? Probablement pas s'il n'y a pas de moyen établi de démontrer que votre système d'exploitation est meilleur que celui des autres. Vous pourriez peut-être faire des études sur les utilisateurs pour voir si les gens préfèrent votre système d'exploitation aux autres systèmes d'exploitation, mais vous devez alors trouver une communauté qui accepte les études sur les utilisateurs comme une méthode de recherche valide. Il peut s'agir d'une communauté qui n'a rien à voir avec la recherche sur les systèmes d'exploitation, comme la HCI. Vous pouvez également tester une fonctionnalité spécifique du système d'exploitation pour laquelle il existe une référence établie, mais il pourrait y avoir un moyen plus facile de tester cette fonctionnalité sans construire le système d'exploitation en premier lieu. Ce n'est pas pour vous décourager si vous'êtes destiné à être le prochain Linus Torvalds, mais il'y a une raison pour laquelle peu de chercheurs en CS créent de nouveaux systèmes d'exploitation -- les méthodes établies dans ce domaine n'encouragent pas ce type de recherche.
Ce'est juste un exemple bien sûr, mais j'espère que vous avez compris l'idée. Encore une fois, vous devriez vous attendre à apprendre quelles méthodes sont en vogue dans la recherche actuelle en lisant les articles de recherche publiés actuels.
Pour la recherche théorique, il'n'y a qu'une seule méthode de test valide et cela's'appelle une preuve. Mais même là, il est utile de savoir quels précédents existent pour voir quel type de résultats de théorèmes intéresse les gens. Les gens aiment voir des résultats analogues. Ainsi, si un type de résultat spécifique a attiré beaucoup d'attention lors d'une conférence précédente, vous pouvez vous attendre à ce qu'un article soit publié en montrant le même type de résultat dans un domaine différent. Par ailleurs, certaines personnes seront intéressées par les types de techniques que vous utilisez dans vos preuves (en particulier si vos techniques sont nouvelles et peuvent être appliquées à d'autres problèmes), tandis que d'autres ne s'intéresseront qu'aux résultats eux-mêmes. Vous devriez regarder les deux lorsque vous lisez les articles des gens's. Essayez de trouver des tendances.