Techniques pour augmenter la logique à la programmation [clôturé]

21

Je suis en programmation depuis 3 ans. Mais il me semble que je m'y perds. Je ne suis pas capable de devenir bon même si je code tous les jours.

Supposons que je résolve un problème, je vais errer de solution en solution et implémenter une autre solution. Je ne peux pas me concentrer beaucoup. J'obtiens de nombreux défauts pour le code que j'écris. J'ai peur du code, je ne sais pas pourquoi si je ne le termine pas à temps, mon patron me licenciera, etc. J'aime le codage mais pas tout le temps. Comment augmenter la patience?

Je me demande toujours comment devenir le meilleur codeur comme de nombreux programmeurs exceptionnels. Je sais que cela semble subjectif, mais je pense que cela aidera la communauté des programmeurs à se perfectionner, en particulier pour les programmeurs moyens comme moi ou débutants.

Umesh Kacha
la source
8
Il est courant de ressentir cela. Nous n'écrirons pas tous des compilateurs ou des programmeurs inconditionnels. Je n'ai aucune formation formelle en programmation, mais la résolution de problèmes est essentielle. La technologie évoluant très rapidement, il est très difficile de rester au-dessus de l'eau. Je m'efforce d'améliorer continuellement. C'est mon but. Comprenez que ce métier est très différent, efforcez-vous de faire de votre mieux et continuez d'avancer. Je prends toujours du temps chaque semaine pour apprendre ou comprendre quelque chose de nouveau. Tant que vous gardez cette attitude, vous irez mieux.
Jon Raynor
«J'ai peur du code ... si je ne le termine pas à temps, mon patron me licenciera, etc.» - Ce n'est pas un excellent environnement pour profiter, et donc s'améliorer, de la programmation.
Paul D. Waite,
@ PaulD.Waite Certes, ce n'est pas génial mais c'est très très courant.
Pramesh Bajracharya

Réponses:

12

Personnellement, je suggérerais de commencer par de plus petits obstacles; essayez de coder en plus petits morceaux et obtenez plus de victoires intermédiaires. Il semble que vous soyez débordé ou ennuyé si quelque chose dure trop longtemps ou ne montre pas de progrès. Je peux dire définitivement que j'ai été dans le même bateau.

Pensez-y comme s'attaquer à un sandwich: vous ne mangez pas le tout en une seule bouchée, vous le décomposez. Faites la même chose avec vos projets, tâches, etc. Selon le niveau auquel vous vous trouvez, vous voudrez peut-être demander à votre superviseur / gestionnaire de le décomposer pour vous. Si vous êtes responsable de votre propre charge de travail, fixez-vous de petites lignes d'arrivée réalisables (ne fixez pas un objectif que vous n'atteindrez jamais, cela vous décourage davantage et vous met dans une position indésirable). c'est-à-dire "à midi, je veux que cette classe soit définie", "à 2 heures, je veux que cette interface soit implémentée", etc.

Mon entreprise est connue pour commencer et accélérer un projet, ce qui me permet d'atteindre la barre des 90%, puis de glisser le tapis sous moi pour passer à la "prochaine grande chose". Je commence à me décourager de ne rien faire et me met dans un "funk" (si vous voulez). Finalement, j'ai repoussé et leur ai dit que je n'avançais pas jusqu'à ce que j'aie terminé ce que j'avais presque terminé. Cela a fait des merveilles pour mon estime, ma morale et mon énergie (bien que je ne puisse pas en dire autant de mes employeurs: hausser les épaules :)

Brad Christie
la source
7

Ma suggestion serait de trouver un mentor.

Lorsque vous obtenez un nouveau projet, décidez du chemin que vous allez prendre: à quoi ressemble la conception globale; quels algorithmes allez-vous utiliser; comment prévoyez-vous de le développer pour pouvoir tester tôt et souvent; etc.

Apportez ces plans à votre mentor et discutez-en avec lui. S'ils voient que vous êtes sur la mauvaise voie ou que vous avez manqué quelque chose d'important, révisez vos plans et réessayez.

Maintenant que vous avez un plan approuvé, respectez-le. Ne changez pas vos plans à moins que quelque chose de complètement désastreux ne se produise, puis revenez à la révision de vos plans, obtenez l'approbation et redémarrez. Sinon, respectez votre plan et faites exactement ce que vous avez décidé de faire. Vérifiez régulièrement avec votre mentor pour valider votre implémentation et assurez-vous d'écrire et d'utiliser des tests en cours de route.

Si vous avez fait tout ce qui précède avec succès, vous aurez livré un projet à temps et avec des résultats corrects. Si vous souhaitez revenir en arrière et refactoriser une partie du projet, vous disposez de tous les tests que vous avez créés ainsi que d'une copie de travail du programme à partir de laquelle créer.

Il me semble que vous êtes juste un peu trop dispersé et manque de concentration. Peut-être que si vous pouvez résoudre ces problèmes et travailler avec quelqu'un que vous respectez, vous serez sur la bonne voie assez tôt.

Bonne chance à vous.

impythonique
la source
6

Je crois que je suis exactement dans la même position que vous et ce n'est pas agréable d'être là. Cela peut être démoralisant et pour être honnête assez déprimant parfois. Cependant, comme pour tout ce que je pense, il y a certaines choses que vous pouvez faire pour atténuer cela et ainsi progresser vers une carrière professionnelle plus saine et plus heureuse.

  1. Il faut vouloir changer et s'améliorer. Si vous vous sentez comme ça, mais que vous n'êtes pas prêt à faire des efforts pour améliorer vos compétences, il n'y a pas grand-chose que n'importe quel outil / processus puisse faire pour vous.

  2. Certaines personnes sont naturellement brillantes. Certaines personnes travaillent dur pour être brillantes. La plupart des gens travaillent dur pour s'efforcer d'être brillants. Si vous n'êtes pas naturellement doué (programmation ou autre), un travail acharné peut vous y mener. Seul le niveau de dur labeur variera. Rien n'est impossible.

  3. Acceptez vos défauts et cherchez à vous améliorer. L'un des plus gros obstacles que je vois est celui des gens qui ont peur d'accepter que leur voie n'est pas une bonne voie et donc de ne jamais demander conseil ni discuter d'autres façons de faire les choses. Par conséquent, ils n'apprennent jamais de meilleures pratiques et continuent donc à faire les mêmes erreurs encore et encore.

  4. Demandez conseil à ceux que vous considérez comme de bons programmeurs. N'ayez jamais peur de parler et de demander conseil à vos collègues. Cependant, prenez toujours leurs conseils au pied de la lettre et décidez vous-même si vous êtes d'accord ou non. Peu importe à quel point quelqu'un est brillant, il existe toujours de nombreuses façons de programmer une boucle.

  5. Lisez, lisez, lisez. Lisez les groupes de discussion. Postez des questions sur des sites comme celui-ci (bravo). Achetez des livres dont vous avez entendu parler ou demandez des recommandations autrement.

  6. Explicity applique les principes de conception par petites étapes, puis soyez fier de ce que vous avez fait. Si vous êtes fier de ce que vous codez, il y a moins de chances qu'il y ait de la place pour les erreurs et les bugs.

  7. Ouvrez pour des suggestions et de l'aide. Fermé à la pensée unidimensionnelle. Soyez ouvert à de nombreuses possibilités et méthodes. Faites attention à ceux qui pensent qu'il y a un moyen pour tout. Un peu comme 4.

  8. Être un brillant programmeur n'est pas la même chose qu'être un brillant employé. Si être un brillant programmeur est tout ce que vous voulez, alors pour être honnête, vous n'y arriverez peut-être jamais. Cependant, tout le monde a la capacité, je crois, d'être un employé et une personne brillants. Travaillez sur des choses qui peuvent vous aider à y arriver.

dreza
la source
Très bonne réponse. Des sons comme ces points viennent d'un grand mentor. Remarquez-moi senpai !! _ / _
Pramesh Bajracharya
4

Si après 3 ans de codage quotidien, vous rencontrez des difficultés avec les bases, vous devez sérieusement envisager la possibilité que ce ne soit pas la bonne profession pour vous.

Ce n'est pas une mauvaise chose. La programmation n'est pas pour tout le monde, trouvez ce que vous êtes bon et faites cela, plutôt que de vous imposer quelque chose qui n'est tout simplement pas naturel.

Si ce que vous dites est vrai, vous ne serez jamais un "programmeur exceptionnel". C'est OK, acceptez-le.

Crétins
la source
Commentateurs: les commentaires sont destinés à demander des éclaircissements, pas à une discussion approfondie. Si vous avez votre propre solution, laissez une réponse. Si vous pensez que cette réponse est bonne, votez pour. Si vous ne pensez pas que c'est bon, votez contre. Si vous souhaitez discuter de cette question avec d'autres personnes, veuillez utiliser le chat . Voir la FAQ pour plus d'informations.
Allez, personne ne devient "exceptionnel" en trois ans.
JacquesB
3

Essayez de vous mettre dans un état d'esprit Flow . C'est le facteur le plus important que j'ai vu pour être un bon développeur. Pour ce faire, vous devez relever des défis que vous savez pouvoir relever, mais qui sont difficiles. Vous devez trouver le bon niveau de défi pour vous y lancer; alors vous pouvez l'augmenter progressivement à mesure que vous vous améliorez. Le fait d'avoir des tâches trop faciles ou trop difficiles sera préjudiciable.

configurateur
la source
3

Cassez-le en petits morceaux.
Permettez-moi de vous montrer comment préparer un sandwich PB&J.

Découvrez le processus de base global.

1 - Get Ingredients
2 - Combine Ingredients
3 - Cut Sandwich
4 - Serve Sandwich

Ensuite, décomposez chacun de ces éléments

**Get Ingredients**
1 - Validate/Create PB
1.1 - Validate/Create Jelly
1.2 - Validate/Create Bread
2 - Move PB To assembly area
...

répétez le processus de décomposition jusqu'à ce que vous compreniez parfaitement la logique impliquée.

Cela le rendra plus facile à comprendre. Et plus facile à identifier les processus communs. Avant de commencer le codage, assurez-vous que la logique est déjà définie. Faire des erreurs n'est pas seulement correct, c'est normal. Les trouver avant de les implémenter est beaucoup plus facile à corriger.

Souvent, la logique est la partie la plus difficile de la programmation. C'est pourquoi tout le monde ne veut pas le faire. Si vous n'aimez pas la logique mais aimez la conception d'interface utilisateur, il y a des rôles qui se spécialisent dans cela, où vous pourriez trouver plus de plaisir. Il n'y a rien de mal à cela. Personnellement, je préfère la logique à l'interface utilisateur. Il existe également d'autres rôles si la logique n'est pas là où vous voulez être.

SoylentGray
la source
2

J'ai déjà eu ce genre de problème avant. Il s'est produit juste avant de m'épuiser et je n'ai pas pu programmer à un niveau productif pendant près d'un an après (et je n'avais que 19 ans à l'époque).

Quoi qu'il en soit, avec le recul, le problème que je rencontrais était le manque de direction et de gestion. Je travaillais sur la mise en œuvre de quelque chose pendant un mois ou deux, puis quand c'était presque terminé, tout à coup, cela devait être fait d'une manière complètement différente. Ce fut un coup dur pour mon estime de moi car je suis assez fier de chaque ligne de code que j'écris. De plus, la direction a consisté principalement en une discussion de quelques heures sur la façon dont quelque chose devrait fonctionner, puis quelques jours sans discussion. Bien sûr, c'était en partie de ma faute. Cela a également été aggravé par le fait qu'à un moment donné, le travail est devenu extrêmement fastidieux et j'ai eu l'impression de taper du code et de ne pas être créatif du tout.

Conditions générales d'Utilisation:

  1. Si vous sentez qu'il y a un manque de direction, faites-le. Demandez à votre supérieur hiérarchique où les choses vont
  2. Si vous devez supprimer du code tout le temps (et pas dans le bon sens comme le refactoring), demandez-vous sérieusement pourquoi il n'y a pas de plan plus complet construit avant la mise en œuvre
  3. Si vous êtes dans une toute petite start-up et que vous travaillez en tant que développeur "principal", quand vous n'êtes clairement pas expérimenté pour cela, ravalez votre fierté et dites à votre manager que vous êtes vraiment plus un développeur junior.
  4. L'ennui est généralement provoqué par l'apparence d'aucun travail en cours. Prenez vos tâches en petites bouchées et suivez vos progrès. Cela vous aidera à sentir que vous faites quelque chose
  5. Si tout le reste échoue, vous voudrez peut-être commencer à postuler ailleurs, surtout si votre gestionnaire ne semble pas se soucier que vous vous dirigiez vers un burn-out
Earlz
la source
-1

Trouvez un jeu de logique inductive comme Zendo et jouez-le pendant votre temps libre. Sérieusement. La logique inductive est au cœur du débogage.

Malachie
la source