J'ai toujours cru que lorsque vous commencez à apprendre qu'un nouveau programmeur de langues de programmation doit créer certains projets pour mieux comprendre la langue et / ou les cadres. Personnellement pour moi, c'était avec PHP (Guestbook, DB Abstraction, Moteur de modèles), Ruby (sur Rails, Twitter comme site Web, plug-in actif, gemme simple et objectif-C (cacao, todo-liste, client Twitter). p>
Je me demande quels sont les projets must-programmes pour d'autres langages de programmation tels que Java, C ++, Python, etc.? Peut-être avez-vous eu d'autres langages d'apprentissage de chemin? P>
5 Réponses :
Le défi Python est bon amusant et encourage l'utilisation de fonctionnalités de langue et de bibliothèque intéressantes. http://www.pythonchallenge.com/ p>
Pour Java, je pense que quelque chose comme un système d'inventaire serait correct car il couvre la plupart des éléments tels que les concepts orientés objet, GUI, la programmation de la base de données, etc. Il est assez intelligent de commencer avec p>
en C ++, je suppose que quelque chose lié à la performance pourrait être génial. Vous suggère de développer une application de traitement d'image simple en C ++. Vous comprendrez une bonne compréhension sur les pointeurs et la gestion de la mémoire p>
Malheureusement, ça fait longtemps que j'ai appris une nouvelle langue. P>
Mais quand j'apprendais de nouvelles langues tout le temps, j'ai eu une stratégie simple: mon premier programme était votre "Bonjour, World" de base, quelque chose qui affiche simplement un message et ses sorties. Mon deuxième programme était la vie. (Voir, par exemple http://www.math.com/students/wonders/ Life / Life.html ) P>
Dans les jours plus récents, mes prochains efforts sont devenus un programme de base de données simple, bien que je n'ai jamais eu de standard. Mais quelque chose à lire et à écrire dans une base de données. P>
Je pense que c'est une bonne idée d'écrire le même programme dans différentes langues. De cette façon, vous connaissez déjà le problème et les principes de la solution, de sorte que la seule nouvelle chose que vous traitez est la langue de mise en œuvre. P>
Point intéressant. Mais ne s'approche-t-il pas les mêmes problèmes que les mêmes solutions défie le paradigme «Là-à-un-way-way-à-faire»? Après tout, chaque langue porte sa propre philosophie. Ne va pas ça?
Sûr. Mais quand j'apprends une nouvelle langue, la première chose que je veux apprendre est la base des bases. Comment puis-je faire des E / S? Comment puis-je lire un fichier? Comment puis-je appeler un sous-programme? Etc. Mon premier programme C ++ / Windows avait l'air très différent de mon premier programme Fortran car, oui, la philosophie de conception derrière eux est très différente, c'est-à-dire orientée objet et gui contre la procédure et l'AT. Je n'ai pas voulu que mon commentaire "connaissez déjà la solution" soit pris aussi loin. Ce que je voulais dire était, quand j'écris mon premier programme, je voudrais penser à la façon dont la langue fonctionne, pas de lutte avec les exigences fonctionnelles.
Projecteuler p>
Les 20 premiers sont de nombreux petits problèmes qui vous permettent d'expérimenter avec des langues de contrôle d'exécution de base. Vous donne une bonne idée de la façon dont une langue fonctionne dans le «petit». P>
J'aime habituellement faire des jeux pour quelques raisons. P>
Commencez avec quelque chose de simple comme un hanvman, un esprit maître ou des tours de Hanoi. Ensuite, vous pouvez passer à un jeu plus complet comme poker / monopole. Avec un jeu comme celui-là, vous pouvez ensuite ajouter des fonctionnalités arbitraires telles que sauver des jeux dans une base de données si vous souhaitez expérimenter le cadre d'accès aux données de la langue. P>
Hangman est exactement le genre de chose que je ferais - voir mon poste précédent. Le monopole semble être un jeu assez complexe pour programmer un problème de pratique de jeton. Peut-être que vous consacrez beaucoup plus d'efforts pour un problème de pratique que moi. Ou peut-être que je suis surestimé à quel point il est effort. Tant pis.
Le monopole est sur la haute fin des jeux que je ferais pour la pratique. Bien que si vous n'avez qu'une interface utilisateur basée sur un texte, je ne saisis que de faire une vraie interface utilisateur si je veux pratiquer le cadre de l'interface utilisateur, ce n'est pas mauvais avec 20-30 règles majeures que vous souhaitez vous soucier. Plus si vous êtes pressé pendant le temps ou ce que vous ne pouvez pas toujours jeter des règles arbitraires. La principale chose que j'aime à propos, c'est qu'une approche OO fonctionne bien avec elle et le rend plus simple. Presque n'importe quand, j'essaie de l'écrire, je me retrouve avec au moins un joueur et une classe de propriété. Dans quelque chose comme Hangman, j'ai tendance à écrire dans la procédure depuis son si simple.
Hmm, fait penser à une pensée intéressante: avec la plupart des langues modernes, un problème de bonne pratique est peut-être un problème de bonne pratique qui exerce plusieurs objets qui ont des méthodes réelles et ne sont pas que des conteneurs de données, ce qui inclut une sous-classement. De cette façon, vous vous pratiquez un peu sur la manière dont fonctionne les "objets d'objet" dans cette langue.