2009-09-11 5 views
19

Je suis en train d'apprendre à programmer à l'âge de 17 ans. Il m'est difficile de parler à d'autres programmeurs car je ne suis pas au lycée (ce qui signifie que je ne peux pas suivre de cours de programmation). Je sais que j'écris un code terrible, and not like Jeff Atwood terrible code, mon code est vraiment nul. Alors, où puis-je poster une partie de mon code et obtenir de vrais programmeurs pour l'examiner. Je sais que si j'avais une question, je pourrais la poser sur StackOverflow, mais je veux poster une classe entière et obtenir un avis dessus.Où obtenir une évaluation par les pairs du code et comment attirer l'attention sur mon code?

Le vrai problème ici est que je ne vais pas écrire le prochain grand morceau de logiciel. Je vais écrire un cours vraiment inutile, qui ne servira à rien d'autre qu'à m'apprendre à programmer. Ce code ne sera jamais utilisé, jamais! JAMAIS! Comment puis-je obtenir un programmeur avancé (ou même intermédiaire) pour regarder mon code?

Merci d'avance! ;-)

+2

hors-sujet, mais si votre nom est Bob Dylan, vous êtes clairement pour l'écriture destinés grand code. Accrochez-vous là. – JoshJordan

+9

+1 pour réaliser votre code n'est pas le meilleur. Beaucoup de programmeurs l'oublient. Réaliser que vous avez de la place pour apprendre est un grand pas dans la bonne direction. – Kit

+2

«Je ne peux pas suivre de cours de programmation» - J'ai suivi des cours de programmation collégiale à l'âge de 17 ans dans un collège communautaire accrédité (peu coûteux). Si vous posez des questions comme celles-ci, vous devriez vraiment y aller, vous obtiendriez une tonne de cours. J'espère que vous pouvez en trouver dans votre région. –

Répondre

14

Regardez vers la communauté open source. Il ya beaucoup de projets existants et nouveaux qui aimeraient un développeur désireux (si inexpérimenté) d'offrir un soutien.

Aller cet itinéraire présente deux avantages:

  1. Vous pouvez voir grand code en action et en tirer des leçons
  2. Toute modification que vous soumettez seront examinés par un développeur expérimenté et ils vous donneront souvent excellentes suggestions pour améliorer votre code avant qu'il ne soit accepté

Commencez par choisir un projet dans votre langue (il y en a beaucoup en C++) et consultez le code. Vous n'avez pas besoin de tout comprendre, mais vous devez être capable d'en comprendre au moins une partie.

Si le projet semble compliqué, continuez à chercher. Les jeunes projets ont tendance à avoir moins de code que vous devez apprendre.

9

Si vous ne pouvez pas obtenir de bons programmeurs pour regarder votre code, faites la meilleure chose suivante: regardez le leur!

Recherchez un ensemble d'extraits de code qui font la même chose (simple). Avant de les regarder de trop près, écrivez votre propre code pour effectuer la même tâche. Comparez tous les extraits avec les vôtres (et les uns avec les autres!) Et essayez de comprendre les raisons des différences.

Je recommande de chercher le code de projets bien établis. Le code des didacticiels ignore souvent les détails importants par souci de simplicité.

4

Je pense que la meilleure façon d'apprendre est la façon dont j'ai appris (je peux être biaisé): essais et erreurs. J'ai juste écrit des programmes tout le temps, m'enseignant comme je suis allé. J'écrirais un code terrible, et je lutterais pour le faire faire ce que je voulais. Souvent, cela me ferait abandonner ce projet particulier. Mais sur le prochain projet, j'adopterais une approche différente, et cela fonctionnerait mieux. Répétez l'annonce nauseam. Une fois que vous savez où sont les points durs dans vos conceptions, vous serez en mesure de poser des questions spécifiques sur des endroits comme SO, ou, mieux encore, à mon humble avis, proposer de meilleurs designs vous-même. J'ai inventé de façon indépendante tous les principaux modèles de design, juste à cause de la frustration causée par les solutions que j'avais créées dans le passé. Je pense que cela me donne une perspective précieuse, car pour la plupart des gens, les modèles de design ne sont qu'une "meilleure pratique", mais je connais la douleur liée à l'utilisation d'autres designs. un pour en connaître un). Cette dernière compétence est celle que je vois souvent manquer dans d'autres programmeurs ...ils ne peuvent pas voir pourquoi leur conception est déficiente et ils devraient utiliser autre chose.

5

Je voudrais essayer de ne pas écrire de code inutile, mais tenter de résoudre un problème particulier. Votre apprentissage sera plus avancé si vous apprenez dans le contexte d'un scénario réel. Il ne doit pas être un grand domaine d'affaires; pourrait même être un jeu ou un utilitaire shareware. Pour ce qui est de la révision de votre code, la communauté open source est un bon moyen d'y aller, comme le dit The Lame Duck - en fait, vous avez la garantie d'obtenir une forme de révision si vous contribuez réellement à un projet. D'autres avenues à explorer: le groupe d'utilisateurs C++ de votre région, l'examen d'un programme coopératif offert dans un collège junior ou l'embauche d'une personne dans une entreprise qui parraine des stagiaires.

Je n'ai pas essayé de sites tels que RefactorMyCode comme suggéré par Gilad Naor, mais cela semble prometteur. Et, oui, StackOverflow est un bon endroit pour des morceaux de code de petite taille. Si vous faites cela, expliquez ce que vous essayez de faire, et pourquoi vous essayez de le faire de cette façon, et demandez-vous s'il existe une meilleure approche. Bonne chance!

0

Faites quelque chose d'amusant et ne vous inquiétez pas trop pour le style de code. J'ai commencé avec BASIC sur Commodore 64 sans même me rendre compte qu'il y avait une chose telle que le code propre et le code corrompu. Si je m'étais beaucoup inquiété à ce sujet, cela aurait pu m'empêcher de progresser. Vous apprenez toujours mieux quand vous le faites de façon ludique.

+1

Depuis quand la recherche d'une critique intelligente et constructive dans le but d'améliorer la qualité entrave-t-elle le progrès? –

+0

Lors de l'apprentissage d'une langue étrangère, un conseil souvent donné est de parler beaucoup, sans trop se soucier de faire des erreurs. Je crois que c'est aussi le cas lorsque vous faites vos premiers pas dans le monde de la programmation. – StackedCrooked

+0

Touché. Vous devriez remarquer plus spécifiquement la valeur de la pratique dans votre réponse. –

1

Vous pouvez toujours essayer un site comme Project Euler, où il y a toute une série de problèmes qui vont tester vos compétences et tout un tas de solutions à ces problèmes, soumis par d'autres. Le projet Euler a tendance à se concentrer sur des algorithmes plutôt que sur des constructions de programmation de plus haut niveau, mais j'imagine qu'il y en a d'autres dans la même veine.

0

Peut-être un peu en retard, mais depuis StackExchange a Code Review, il vaut la réponse:

Code Review Stack Exchange est une question et le site réponse pour les pairs revues de code de programmeur. C'est 100% gratuit, aucune inscription requise.

Voici le lien: Code Review Stack Exchange

Questions connexes