Suggestions de projets à faire soi-même pour affiner les compétences en programmation ou apprendre une nouvelle langue [fermé]


10

Étant donné que la meilleure façon d'apprendre est de travailler sur des projets, quels sont les bons logiciels pour essayer de se fabriquer dans le but d'affiner certaines compétences en programmation ou d'apprendre un nouveau langage?


3
Clonez ce site.

Réponses:


11

J'ai trouvé que les programmes suivants donnent un bon départ avec de nouvelles langues:

Le jeu de la vie de Conway

Facile à mettre en œuvre. Vous donne un bon départ avec une utilisation simple des classes de conteneurs. N'a pas nécessairement besoin de graphiques pour la sortie des résultats.

De plus, vous pouvez en écrire une version 3D et utiliser un moteur de jeu pour la sortie (par exemple quelque chose de simple comme Panda3D)

Solveur de Sudoku

Un peu plus complexe. La complexité peut être ajustée à vos besoins. Soit simplement annuler les numéros et arrêter quand ce n'est plus possible ou continuer et implémenter un arbre de recherche pour résoudre des problèmes plus complexes. Des problèmes et des solutions pour Sudokus à tous les niveaux de difficulté pour tester votre programme sont disponibles en abondance sur le Web. Idem pour le matériel sur les stratégies possibles.

Projet Euler

Des problèmes à tous les niveaux de difficulté que vous souhaitez. Et comparez vos solutions à celles de programmeurs expérimentés dans tous les principaux langages de programmation.


Vous pouvez essayer de mettre en œuvre le Game of Life sur différentes plateformes. Je l'ai fait sur un canevas HTML5 / Javascript. C'était génial!
mauris

5

Je ne sais pas ce que vous voulez dire par «quels sont les bons logiciels à essayer ...», mais je peux recommander le livre «sept langues en sept semaines»

Cela vous donne un bon point de départ pour essayer de nouvelles langues.


Je viens de recevoir ce livre, et ma résolution du nouvel an est de le suivre.
Tangurena

5

Connectez-vous simplement à l'un des sites suivants et voyez si vous êtes à la hauteur des défis de codage qu'ils présentent: SPOJ , TOPCODER, etc.

La plupart de ces sites vous offrent la possibilité de coder dans plusieurs langages de programmation afin que vous puissiez utiliser celui que vous connaissez le mieux.

Et si vous êtes un maître dans votre jeu, il y a toujours ICPC .


3

Je dirais que tout projet qui répond aux trois exigences suivantes:

  • Quelque chose que vous trouvez intéressant
  • Quelque chose où vous pouvez obtenir un sentiment de progrès très rapidement (alors, par exemple, essayez d'éviter quelque chose comme la création d'un jeu 3D)
  • Quelque chose qui correspond au paradigme de programmation de ce langage. Par exemple, s'il s'agit d'un langage fonctionnel, alors un projet où vous feriez de la manipulation de données, des mathématiques ou quelque chose.

2
Votre premier point est essentiel. Si le projet ne vous intéresse pas, il sera plus difficile de maintenir les progrès et l'enthousiasme dont vous avez besoin pour apprendre.
ChrisF

2
  • Allez sur Sourceforge.net ou GitHub, recherchez des projets dans cette langue et voyez ceux qui vous intriguent.
  • Pensez aux bibliothèques avec lesquelles vous travaillez le plus souvent dans la «vraie vie». Écrivez-vous beaucoup de services Web? Essayez d'écrire un cadre de services Web pour la nouvelle langue. Faire beaucoup de programmation graphique? Essayez d'écrire un moteur de rendu simple. Faites l'analyse des données? Implémentez un package de statistiques de base. Etc., etc. Cela a l'avantage que vous verrez déjà l'utilitaire (parce que vous utilisez quelque chose de similaire au jour le jour) et vous aurez déjà une certaine connaissance du domaine. Ces types de projets ont également tendance à être ceux que vous pouvez passer un temps infini à peaufiner (c.-à-d., Apprendre plus de choses), que vous voudrez peut-être ouvrir en fin de compte, et qui vous maintiendront impliqué dans la langue s'ils deviennent un passe-temps en cours; l'inconvénient est qu'il ne se sentira peut-être jamais vraiment "fini" et
  • Selon le domaine de développement, il peut y avoir des livres spécifiquement destinés à vous guider à travers les projets. Cela a tendance à être particulièrement vrai pour les plates-formes de développement de jeux (iOS, XNA).

1

Pour les débutants

Manipulation des chaînes:

  • Jeu du pendu.

Base de données:

  • liste de choses à faire
  • une sorte d'entraînement ou un journal personnel

Manipulation de nombres aléatoires:

  • Tourne la roue

Graphiques matriciels et de base

  • Tetris

1

Tout ce que vous aimez assez pour continuer à faire. Le plus d'apprentissage se fait dans ce dernier 1% qui est généralement ignoré dans un projet parallèle, mais qui est une partie très importante d'un produit de travail.

En conséquence, c'est un choix très personnel de ce que pourrait être le projet. C'est pourquoi il y a tellement de grands projets OS là-bas, et pourquoi tout le monde dit qu'ils comptent tellement quand ils sont sur votre CV / CV: cette personne a travaillé dur dessus et a beaucoup appris en travaillant sur ce dernier 1% de celui-ci pour faire il est utilisable par d'autres et apprécie ce qu'ils font.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.