66 votes

Très petits programmes destinés à améliorer les compétences en programmation?

Je me rends compte que pour devenir un meilleur développeur, vous devez le programmer! Alors, évidemment, le plus pratique, vous devenez le mieux.

Mon problème est le suivant. Je suis actuellement à l'université, et je trouve que ma charge de cours est un peu effrayant, et je n'ai pas beaucoup de temps libre. Je ne pense pas que je pourrais vraiment prendre sur un gros projet, en particulier, je ne pense pas que j'aurais la motivation de le voir à travers, il serait plus facile pour moi de continuer à le mettre hors tension en faveur du travail qui est en cause est l'école.

Mais je veux encore de la pratique. Donc, je suis à la recherche de toutes les ressources qui ont des défis de programmation qui peut être complété en une quantité relativement faible de temps. Idéalement, quelque chose que je pouvais faire en moins de 10 heures de travail (et donc un peu plus d'une heure de travail par jour), si pas plus.

J'ai entendu parler de Google Code Jam, mais je ne suis pas sûr de la longueur de la programmation qu'il spécifie, ni le niveau de compétence.

Quelqu'un aurait-il des suggestions? Peut-être même un recueil de tutoriels pour différentes fonctions peuvent être utiles. Par exemple, un tutoriel sur les e / s de fichier serait utile (si je ne la connaissez pas déjà), même si elle peut être un assez petit sujet.

33voto

Nix Points 22944

Vous devriez regarder dans le code des katas, ils font exactement ce que vous êtes en train de parler. De courts exercices qui sont conçus pour perfectionner votre codage/thining capacités.

Autres références:

  1. Coding Dojo KataCatalog
  2. CodingKata.org

20voto

schnaader Points 26212

Projet Euler a quelques math/nombre de problèmes connexes, qui sont très intéressant et varié de facile à très difficile. Vous pouvez choisir la langue de votre choix et de n'envoyer que la solution (un grand nombre entier). Après avoir présenté la solution correcte, vous avez accès à un forum/commentaire de la page, là où d'autres ont posté leurs commentaires et solutions.

17voto

dyslexicanaboko Points 2116

Par expérience, je recommande de trouver une tâche que vous le faites de façon répétitive et le transformer en un programme. Je recommande également, sérieusement, ré-inventer la roue, afin d'obtenir la pratique de la programmation. Ne laissez pas les gens vous disent de ne pas faire quelque chose juste parce qu'il existe déjà. Si vous ne savez pas comment il fonctionne, essayer de l'écrire vous-même.

Je ne sais pas exactement quel niveau de la programmation, vous êtes sur, mais n'essayez pas de faire quelque chose de trop fou au large de la chauve-souris, c'est juste un facteur de démotivation (comme par exemple essayer d'écrire un jeu pour la PS3).

Si vous avez déjà pouvez naviguer à votre guise autour de IO, alors vous devriez essayer de vraiment apprendre à utiliser les Collections de manière efficace. Je pense que l'un des meilleurs exercices pratiques que j'ai jamais fait a été de réécrire la Java de la Classe TreeMap. C'était un énorme défi et j'ai beaucoup appris en le faisant.


Voici quelques suggestions pour les travaux pratiques:

Prendre un fichier texte qui a une juste quantité d'informations, de saisir quoi que ce soit, vous pouvez obtenir quelque chose à partir d'ici si vous souhaitez: http://www.gutenberg.org/ et de faire un programme qui va faire ce qui suit:

  1. Lire dans le fichier
  2. Créer une collection de mots et de leurs occurrences
  3. Créer une collection d'anagrammes
  4. Créer une collection de mots et les positions dans lesquelles ils se produisent (n ° de la ligne, la position du mot)
  5. D'élaborer des statistiques sur les mots dans le fichier - sens - le traitement de chaque mot comme un individu dont les mots se produire avant et après elle.
  6. Enlever tout le blanc de l'espace à partir du fichier
  7. Écrire toutes les données ci-dessus à leurs propres fichiers

Une de mes choses préférées à faire est de gâchis avec les données du web, aller à un bureau de vote site web, vous trouverez une page qui contient des données d'enquête sous la forme de tableaux et de faire ce qui suit:

  1. Télécharger les données
  2. Analyser les données et les tableaux de données dans un fichier CSV
  3. L'ouvrir dans excel sans erreur

Ou il suffit de regarder pour n'importe quel site et en extraire des données, assurez-vous que le site est robot amical http://www.robotstxt.org/, vous ne voulez pas un site pour se sentir comme il est sous attaque. La plupart du temps si ce n'est normalement pas un problème, car si vous lisez les conditions d'utilisation qu'il indique clairement que vous êtes autorisé à télécharger 1 copie de ce que vous affichez aussi longtemps que vous n'avez pas l'intention de le vendre. Bien sûr, cela change à chaque site.


Aller à un site web et d'obtenir tous les liens de la page de la programmation.


Ici est un plaisir, Susan Programme (je ne me souviens pas pourquoi il est nommé Susan), que j'ai d'abord écrit à l'aide d'un programme C et deux Bourne shell scripts dans un environnement Unix. L'idée de ce programme est de fourche 4 enfant de processus et de leur donner à chacun une tâche comme suit:

Enfant 1: Lit dans un fichier, crée un dictionnaire de chaque mot et de sa position dans le fichier, c'est la sortie à un fichier.

Enfant 2: Enfant 1 sortie et reconstruit le document, elle est sortie à un fichier.

Enfant 3: Enfant 2 est de sortie et de l'enfant 1 n'a encore

Enfant 4: Enfant 3 est de sortie et fait ce que l'enfant fait à nouveau 2

Le but ici est d'avoir une réplique exacte de l'original une fois que l'Enfant de 4 sorties. Cela est difficile et quelque peu inutile, mais le but de cet exercice est d'obtenir la pratique.

Dans votre cas, ne vous sentez pas que vous avez besoin d'utiliser des threads différents pour cela, vous pouvez simplement utiliser un seul programme avec deux fonctions différentes et il suffit d'appeler dans l'ordre.


Encore une fois, vous ne savez pas si vous êtes à ce niveau encore, mais essayer de remplacer tout "pour" ou "foreach" boucle que vous avez dans votre programme avec la récursivité, tout comme la pratique. La récursivité est une douleur dans le cul, mais il est précieux de connaître et de comprendre.

Ce sont quelques suggestions qui, je pense va vraiment vous aider à affiner vos compétences.

Profitez de

9voto

Fábio Perez Points 1716

J'aime SPOJ et Projet Euler prendre rapidement des défis de programmation et d'exercices.

5voto

Nikita Rybak Points 36641

Code de la Confiture est une bonne programmation, concours, bien que, comme vous l'avez mentionné, la plupart des problèmes ne sont pas pour les débutants.

Il y a une bonne sélection de problèmes du passé topcoder algorithme de compétitions. (Ils sont détenus ~2 fois par mois depuis presque 10 ans déjà, tellement il y a déjà beaucoup de choses.)
La difficulté gamme de très simple (mais toujours intéressant) les problèmes de la 2e division de très dur. En outre, il y a des éditoriaux avec des solutions et des vivre de l'environnement où vous pouvez vous présenter et tester votre code. Vous pouvez également apprendre à partir de présentations par d'autres personnes.

Vérifiez le problème d'inscription.
Un autre avantage de topcoder est le régulièrement à des concours en ligne qu'ils détiennent. Je trouve qu'en compétition contre d'autres personnes en temps réel est un grand coup de pouce pour la motivation.

Il y a beaucoup plus de problème archives, comme SPOJ, les rayons UVA et Timus, mais ils fournissent rarement des solutions ou même des notes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X