Articles

42 projets pour pratiquer des compétences en programmation

Posted by admin

avant d’aller plus loin, mettez ce site en signet:

avoir beaucoup d’idées de projets de programmation est une mauvaise chose, ne pas les partager avec vous est encore pire. Donc, c’est un défi d’un an (quelque chose que les enfants D’Instagram adorent ces jours-ci), étiqueté comme #42skillschallenge. Voici comment participer à ce défi incroyablement complexe, pour chacun des 42 projets:

  1. choisissez un projet dans la liste.
  2. créer un dépôt GitHub pour le projet.,
  3. commencez à travailler, essayez de tout implémenter à partir de zéro, réinventez la roue si possible (parfois vous devez le faire).
  4. Une fois terminé, testez-le, postez le tag #42skillschallenge quelque part dans le repo (README ou quelque part visible).
  5. Partagez votre repo avec le monde.

Certains projets sont simples. Certains d’entre eux sont difficiles. C’est un excellent moyen de mettre en pratique vos compétences, surtout avant les entretiens techniques importants.

cependant, certains projets sont ridiculement complexes. Cela peut prendre des semaines ou des mois pour les mettre en œuvre. C’est là que les vraies rock stars survivent., Celui qui termine tous les projets en premier, débloque un nouveau niveau d’expertise. Regardez les projets, je sais de quoi je parle.

En outre, certains projets pourraient servir d’excellentes idées pour les startupers (ceux qui détestent travailler et aiment s’enrichir rapidement). Je suggère de rassembler une équipe pour certains projets ci-dessous (ou sur le site web) et de publier une application ou un service assez cool et de conquérir le monde.,

La liste des projets

Concevoir et mettre en œuvre un serveur web léger qui traite réseau entrante sur le protocole HTTP. Le serveur web traite et fournit des pages web aux clients (généralement, les navigateurs). Les pages sont des documents HTTP. Bien que la fonction principale soit de servir du contenu, une implémentation complète de HTTP inclut également des moyens de recevoir du contenu des clients., Cette fonctionnalité est utilisée pour soumettre des formulaires web, y compris le téléchargement de fichiers (source). Pour une inspiration, essayez d’imiter le serveur web Nginx.

un Renifleur de Paquets

Un renifleur de paquets (packet analyzer) est utilisé pour surveiller le trafic réseau en examinant les flux de paquets de données qui circulent entre les ordinateurs sur un réseau. Pour commencer avec le projet, étudiez bien les protocoles réseau., Plongez ensuite dans la mise en œuvre d’une application qui traque les paquets réseau et analyse son contenu sous une forme lisible par l’homme.

Analyseur de Code Statique

Statique des analyseurs de code sont utilisés pour analyser (évidemment), le code source sans l’exécuter et de découvrir les problèmes qui pourraient conduire à des bugs dans l’application en cours d’exécution. De cette façon, l’exécution d’un analyseur de code statique pour votre projet pourrait faire gagner beaucoup de temps au débogage., Les projets sérieux ou les systèmes critiques utilisent des analyseurs statiques commerciaux pour vérifier la qualité du code.

concevez et implémentez votre propre analyseur statique pour n’importe quelle langue de votre choix.

Détecteur de Spam

Mettre en œuvre une bibliothèque ou d’un service qui analyse les e-mails pour détecter le spam. Vous êtes libre de l’implémenter en tant que plugin de navigateur, ou en tant que produit SaaS. Essayez d’utiliser des algorithmes d’apprentissage automatique pour améliorer votre système.,

Moteur d’Échecs

Un moteur d’échecs analyse de l’échiquier et suggère les meilleurs prochain mouvement. En plus de cela, il pourrait servir d’adversaire en jouant avec l’ordinateur. Implémentez le moteur D’Échecs alimenté par L’IA de nouvelle génération. Pour une inspiration, jetez un oeil au Stockfish.,

Moteur de Recherche

Mon préféré. J’ai toujours voulu mettre en œuvre un moteur de recherche Web super-duper qui concurrencera Google. Comme vous pouvez le deviner, rien ne s’est passé. Peut-être Pouvez-vous implémenter un tel moteur?

concevez et implémentez un système qui indexe des milliards de documents dans le monde, les stocke de manière efficace et répond aux requêtes des utilisateurs avec la liste de documents la plus pertinente.,

Command-Line Terminal

This one is easy to describe. Implement a terminal app that replicates all the main Linux commands. Try to make the interface as fancy as you can.

Web Browser

Sounds simple, but it’s not., Tout d’abord, c’est une application graphique. Ensuite, il comprend les documents HTTP, et bien sûr, il comprend et rend correctement HTML et CSS. Et oui, il exécute également JavaScript (au moins les choses de base).

donc, aucun moteur Chromium autorisé. Un navigateur Web simple mis en œuvre à partir de zéro. Celui-ci est dur. Au moins pour moi. Vous pouvez sauter certaines parties désagréables et le garder basique, mais quand même, c’est difficile.,

Base de données En Mémoire

un Autre de mes favoris. Le projet consiste essentiellement à ré-implémenter le Redis. Une base de données en mémoire conserve tout en mémoire. Si vous y ajoutez un langage de requête, une entreprise sérieuse vous embauchera certainement.,

Minimaliste OS

Un rêve de beaucoup. Je connais de nombreux programmeurs qui rêvaient de mettre en œuvre leur propre système d’exploitation à partir de zéro. Et l’une des motivations de ces intentions suicidaires est de plonger dans les niveaux les plus bas de codage et de se familiariser avec le métal. Tout le monde aime le métal!

Vous pouvez rester simple, mais au moins implémenter plusieurs fonctionnalités critiques pour le système d’exploitation., Et le faire à partir de zéro, mais vous pouvez jeter un oeil au noyau Linux. Après tout, Linus a jeté un oeil à Minix à certains égards.

sous-titres Vidéo Générateur

Mettre en œuvre un programme qui prend une vidéo que d’une entrée, d’analyser le contenu, fait un peu de traitement de la voix et produit des sous-titres pour la vidéo. C’est bien d’avoir une limitation sur la durée de la vidéo (1 ou 2 minutes serait génial).,

Personnalisé de Chiffrement

Rappelez-vous ces films pirates? Vous avez toujours rêvé de le devenir? C’est votre chance de faire un pas vers ce rêve enfantin.

la Conception d’un algorithme de chiffrement. Implémentez une application qui code et décode les informations en fonction de votre chiffrement.

Ce serait génial si vous écriviez des tests automatisés pour vérifier la force de votre création. En d’autres termes, piratez votre propre sécurité.,

le P2P est l’Application de Messagerie

Mettre en œuvre une application pour discuter avec un ami. Le défi est de le faire d’une manière qui omet un serveur centralisé et initie une connexion directe entre deux clients de chat.,

Machine de Traduction

Quelque chose comme Google Translate. Concevez et implémentez un service (si vous avez du temps libre, implémentez également l’application) qui traduit un tas de texte d’une langue à l’autre.

choisissez les deux langues que vous voulez. Essayez de rendre le traducteur plus intelligent, entraînez-le ou corrigez-le en cours de route.,

automatique des informations du Présentateur

Vous allez aimer celui-ci. Imaginez les lecteurs de nouvelles réguliers, comme Feedly. Et maintenant, imaginez le présentateur de nouvelles de CNN, parlant de nouvelles de dernière heure, de coronavirus, etc. Maintenant, imaginez un personnage de dessin animé, qui vous lit les nouvelles (à l’utilisateur) comme le font les vrais présentateurs.,

concevoir et mettre en œuvre un logiciel qui collecte des nouvelles (généralement, abonne aux flux RSS définis par l’utilisateur), et les lit à haute voix comme un présentateur de nouvelles animé.

Système de Paiement

Vous avez probablement entendu parler de PayPal ou de Bande ou de tout autre système de paiement. Maintenant, concevez une nouvelle (ou nouvelle génération?) système de paiement similaire à un de ceux-ci. Simulez des transactions financières et prouvez que le système est infaillible aux attaques., Celui-ci est difficile à obtenir.

Base de données Relationnelle Système de Gestion de l’

Déjà demandé comment les bases de données de travail sous le capot? Maintenant vous avez la chance d’en construire un. Concevoir et implémenter un SGBD relationnel similaire à MySQL ou PostgreSQL (ne supportant pas nécessairement SQL). Ne pas oublier à propos de l’indexation. Ce sera génial d’avoir des transactions, mais celle-ci n’est pas obligatoire.,

Virtual Assistant

Quelque chose comme Siri, mais sans contrôle de la voix. Il suffit de taper un texte, créer des rappels, poser des questions, etc. L’ensemble des fonctionnalités dépend de vous, mais l’utilisateur doit le ressentir comme une application d’assistant virtuel solide.

Ce projet est destiné aux spartphones, c’est-à-dire que vous devez l’écrire soit pour Android, soit pour iOS, soit pour les deux en utilisant des éléments de type React Native/Flutter.,

Garbage Collector

Petite question: quelle est la différence entre C++ et C#? L’une des différences est que ce dernier a un garbage collector. Maintenant, implémentez un garbage collector qui peut être utilisé soit comme un service séparé, soit comme un module intégré. La langue et la cible sont de votre choix.,

Dropbox Clone

Dropbox est une application de partage de fichiers. Se compose de clients pour presque tous les systèmes d’exploitation, y compris Android et iOS. Il a également un énorme backend. Concevez et implémentez votre propre version d’une application de partage de fichiers qui fonctionne au moins pour 10 utilisateurs et fournit 100 Mo d’espace à chacun d’eux. Implémentez à la fois le serveur et le client (au moins pour un système d’exploitation).,

Conteneur de Gestion de Système

Permettez-moi de mettre la description du menu fixe.

Docker est un ensemble de produits PaaS (platform as a service) qui utilise la virtualisation au niveau du système d’exploitation pour fournir des logiciels dans des packages appelés conteneurs. Les conteneurs sont isolés les uns des autres et regroupent leurs propres logiciels, bibliothèques et fichiers de configuration; ils peuvent communiquer entre eux via des canaux bien définis., Tous les conteneurs sont exécutés par un seul noyau de système d’exploitation et sont donc plus légers que les machines virtuelles.

implémentez votre propre Docker.

Conteneur Orchestrator

Il devient de plus en plus difficile. Après avoir terminé avec Docker, concevez et implémentez un orchestrateur.

Pour l’inspiration, regardez le Panneau Essaim ou Kubernetes.,

Logiciel Antivirus

Il n’a pas d’importance que vous utilisez Linux. C’est la quarantaine partout à cause des virus. Implémentez un bon antivirus et testez-le en implémentant quelques virus. Celui-ci n’est pas une tâche facile, mais lorsque vous avez terminé avec la mise en œuvre d’un système D’exploitation minimaliste, il devrait être plus facile de s’attaquer à celui-ci.,

Pare-feu

Les pare-feu moniteur réseau demandes, d’ouvrir ou de fermer des ports sur l’ordinateur. Ils sont fondamentalement le premier échelon du système de défense. Concevoir et mettre en œuvre un logiciel de pare-feu. Essayez au moins quelque chose comme netstat qui dispose également d’autorisations pour fermer les ports ou alerter sur les demandes réseau suspectes.,

Système de Contrôle de Version

Vous le plus probablement à l’aide de Git. Vous avez peut-être utilisé SVN ou même CVS. De toute façon, l’idée est simple. Implémentez un nouveau système de contrôle de version. Visez quelque chose de mieux que Git.

aussi, rappelez-vous, Linus a écrit la première version de Git en deux semaines environ. Acceptez le défi, écrivez votre VCS en moins de 13 jours. Dans ton visage, Torvalds!,

Diagramme UML Générateur

Prendre l’un de vos préféré des langages de programmation qui prennent en charge la programmation orientée objet. Implémentez un outil qui prend le code source du projet en entrée et génère des diagrammes UML pour celui-ci.,

le Temps de la Série de Base de données

C’est un logiciel de base de données qui stocke et traite les temps de la série de manière plus efficace que les systèmes de gestion de base de données. Découvrez ce que sont les séries chronologiques, puis concevez et implémentez un système de base de données de séries chronologiques.,

sans Verrouillage des Structures de Données

sans Verrouillage de la programmation est difficile à saisir. J’ai essayé, simplement compris.

implémentez un ensemble de structures de données sans verrouillage en tant que Bibliothèque pouvant être utilisée dans des projets de programmation.,

Trafic Déclarant

Mettre en œuvre une application (ou un service) qui informe l’utilisateur sur le trafic de la confiture.

plus que cela, il suggère un meilleur itinéraire vers une destination (définie par l’utilisateur).

c’est l’une de ces applications qui pourraient être une bonne idée pour une startup. Mettre en œuvre un service vraiment de qualité et le succès est garanti., Vous pouvez combiner celui-ci avec l’assistant virtuel présenté plus tôt, et le résultat sera merveilleux.

la Musique de Fusion

Mettre en œuvre un logiciel qui permet de fusionner deux ou plusieurs morceaux de musique de concert pour produire un nouveau.,

Recette Générateur

L’application (ou de service), génère de nouvelles recettes et apprend par le biais de la voie. Donc, lorsque vous cuisinez par sa recette, vous l’évaluez ensuite pour lui dire à quel point il était bon. Pas une idée fraîche, mais peut toujours être utile.,

Plugin de Navigateur pour les Cartes Flash

Il y avait beaucoup de projets à mettre en œuvre. Celui-ci est un peu plus facile. Implémentez un plugin de navigateur (pour n’importe quel navigateur) qui permet de stocker des cartes flash puis de les montrer aléatoirement à l’utilisateur (peut être configuré).,

Appel Vidéo de l’Application

Il existe plusieurs applications appel vidéo, Zoom, Skype, Google Hangouts.

Mais encore, ils travaillent mal si la connexion internet est mauvaise. Peut-être devriez-vous inventer un nouvel algorithme de compression (voir ci-dessous) et le combiner avec cette application pour implémenter une nouvelle superbe application d’appel vidéo? Pas sûr., Fondamentalement, ce projet représente PiperChat, concevoir et mettre en œuvre la meilleure application de chat vidéo de qualité là-bas.

l’Aléatoire Testeur

Semble fou, un ami m’a suggéré de celui-ci. Ecrire un logiciel (ou un outil), ou peut-être concevoir une formule (pas sûr) qui teste les résultats d’un générateur de nombres aléatoires et vérifie si ceux-ci sont vraiment aléatoires.,

Microservices Cadre

La conception d’une très soigné microservices cadre qui soutient les modèles de base et fournit un ensemble de mises en œuvre hors de la boîte. Assurez-vous de couvrir la découverte des services et la communication des microservices.

plus vous ajoutez de fonctionnalités à votre framework, meilleures sont les chances de gagner le défi.

choisissez le langage de programmation que vous souhaitez.,

Langage de Programmation Fonctionnel

Inventer un nouveau langage de programmation dans le paradigme fonctionnel. Soyez succinct, mais fournissez tout l’environnement pour implémenter des programmes dans votre langue et les exécuter sans douleur.,

la Stratégie du Moteur de Jeu

Une des meilleures façons d’étudier la programmation orientée objet est par le biais de la conception de jeux. Les jeux sont généralement basés sur des moteurs.

concevoir et mettre en œuvre un moteur de jeu pour les jeux de stratégie. De préférence, implémentez un jeu basé sur le moteur pour le tester.,

le Monde de la Simulation

Westworld est à venir.

implémenter un service qui permet de simuler des mondes complexes avec différents ensembles de données initiales. Plus il y a de détails, meilleur est le système. Celui-ci est assez difficile, pourrait prendre très longtemps pour le finir. Gardez les choses simples lorsque vous vous sentez coincé.,

Film de Système de Recommandation

C’est un mensonge, Netflix du système de recommandation suce. En plus des listes de films triées sur le volet, Je n’ai vu aucun système de recommandation de film solide nulle part.

s’il vous plait, réparez cette folie. Concevoir et mettre en œuvre le meilleur système de recommandation de film là-bas.

(vous pourriez avoir besoin de gratter beaucoup de bases de données pour collecter des données sur les films.,)

pipo

Quelqu’un doit le faire. Concevoir et mettre en œuvre un algorithme de compression qui compresse les gros fichiers en petits. Il est vrai que l’obtention du résultat parfait est très difficile, mais essayez de ne pas vous limiter à ces pensées. Viser l’impossible, https://en.wikipedia.org/wiki/Weissman_score

Leave A Comment