Quels sont les bons side-projects de programmation sur lesquels travailler dans votre undergrade et qui auront une bonne apparence sur un CV ?


Le meilleur avantage des projets de programmation est que le ciel est la limite (vraiment !). J'ai tenté ma chance en explorant diverses branches du sujet au cours de mon undergrad et ma recommandation serait de participer à des projets de divers domaines dès le début et seulement ensuite de passer à des sous-domaines plus spécifiques d'un domaine particulier.

Voici quelques idées de projets regroupées par les domaines connexes. En choisir quelques-uns dans chaque seau devrait vous aider à avoir un excellent profil.


1. Algorithmes

  • Algorithmes graphiques : Un domaine très fondamental mais critique applicable à de nombreux problèmes du monde réel. Les idées de projets possibles comprennent le problème du plus court chemin, l'analyse des réseaux sociaux, le PageRank et bien d'autres encore.
  • Structures de données : Tout le monde se rend compte de leur importance dans les problèmes à grande échelle. Vous pouvez essayer de mettre en œuvre la compression des fichiers en utilisant le codage de Huffman, le problème du point le plus proche en utilisant les arbres Quad et les filtres Bloom
  • Algorithmes géométriques : L'une de mes sous-branches préférées. Il y a de nombreux problèmes stimulants ici aussi, des coques convexes, la programmation linéaire, la recherche simplex/plage et bien d'autres

2. systèmes

  • Client FTP : Implémentation d'un client FTP simple et rudimentaire, supportant éventuellement le transfert sécurisé de fichiers.
  • Serveur HTTP : Impliquerait une connaissance un peu plus approfondie du sujet. Mais hé, pas de douleur - pas de gain.
  • Système d'exploitation : Tweak un OS existant et apprendre les détails de mise en œuvre pour le même. Un manuel standard pour cela serait NachOS.

3. applications Web, bases de données

  • Web Scrapers : Pas un projet à part entière, mais j'ai adoré en faire un en première année. Je me suis senti vraiment responsabilisé en étant capable d'automatiser presque tout en utilisant un simple python.
  • Système de gestion : Mettre en œuvre un système pour gérer un service disons un système de réservation de vols ou un portail de gestion des cotisations.
  • Nombreuses autres possibilités : La plupart des trucs cool nécessitent une combinaison de plusieurs champs. La seule limite est votre imagination.

4. Apprentissage automatique (mon préféré)

  • Traitement du langage naturel : Tâches d'apprentissage automatique dédiées à la compréhension du langage naturel. Parmi les idées possibles, citons, la classification de documents, la reconnaissance de sentiments de critiques de films, la création d'un chat-bot et bien d'autres
  • L'apprentissage par renforcement : L'un de mes préférés dans le monde du ML. Vous pouvez travailler sur la formation d'un bot pour jouer à Mario, PacMan, apprendre à se comporter dans des systèmes physiques et quoi encore...
  • Vision par ordinateur : Mon domaine super préféré dans l'apprentissage automatique. Il y a de nombreux défis sur lesquels vous pouvez tenter votre chance. Vous pouvez également jeter un coup d'œil à mes projets pour avoir quelques idées.
  • Apprentissage automatique à usage général : Pas besoin d'être limité par des restrictions de domaine. Essayez de faire votre propre moteur de recherche, un système de recommandation de films, essayez de résoudre n'importe quel problème de la vie réelle avec ML.

Avant de vous précipiter pour commencer à travailler sur votre projet, je voudrais mentionner que les projets les plus cool sur lesquels vous pouvez travailler seront généralement un mélange de plusieurs idées. Vous pouvez créer un service de messagerie, votre propre réseau social, des échecs multijoueurs (enfin, seulement deux joueurs pour être précis), un jeu 3D avec une IA bien entraînée... la liste continue (Reportez-vous à cette liste d'idées de projets pratiques pour plus d'idées).

Où et comment commencer, vous demandez-vous ? Je pense que la meilleure façon de mener à bien un projet est de commencer rapidement à travailler dessus et d'aborder les difficultés une étape à la fois. Pas besoin de lire des dizaines de livres avant même de commencer le projet pour le plaisir d'accumuler des connaissances théoriques. Il existe un grand nombre de tutoriels pour la plupart des projets que j'ai décrits ci-dessus, il suffit de les suivre lentement et vous devriez bien vous débrouiller.