Comment savoir si la programmation me convient? [fermé]

22

J'ai une formation en informatique et j'étais assez confiant jusqu'à ce qu'une opportunité se présente au travail pour entrer dans la programmation (C #). Je n'ai jamais programmé auparavant, et le logiciel pour lequel je programme est un programme que je n'ai jamais utilisé auparavant (un logiciel de modélisation 3D).

Cela fait 6 mois depuis et j'ai envie d'abandonner. Je n'ai pas reçu beaucoup de formation ... environ 3 semaines de formation réparties sur les 6 derniers mois.

Je pense que je serais bon en programmation mais cette expérience me fait repenser ma décision. Je ne sais pas si c'est juste moi ou si cette frustration est normale.

Comment savoir si la programmation me convient?

Rachel
la source
11
Êtes-vous étudiant quelque part? Juste curieux parce que MS a un site appelé DreamSpark où vous pouvez obtenir Visual Studio, SQL et la plupart des serveurs pour votre ordinateur personnel. Cela peut vous donner la possibilité de créer votre propre logiciel et d'essayer par vous-même. En outre, MS a un site de formation assez soigné appelé Channel 9 qui contient quelques projets soignés. Je ne le suggère que parce que si vous aimez la programmation, certains d'entre eux devraient en fait être amusants, pas fonctionner.
iMortalitySX
5
Lorsque cette opportunité s'est présentée, quelles raisons aviez-vous pour la saisir?
AakashM
1
@iMortalitySX: les outils disponibles dans DreamSpark sont-ils différents de VS Express Editions?
FrustratedWithFormsDesigner
4
@ User66414 Votre question a attiré quelques votes serrés, je l'ai donc légèrement modifiée pour me concentrer sur la question principale que vous semblez poser, qui je pense est une bonne question pour le site. N'hésitez pas à annuler la modification si j'ai mal compris votre question :)
Rachel
2
@Rachel: Peut-être que nous devons lancer une pétition pour sauver les sites StackExchange de la foule Close-All-The-Questions. :-)
Warren P

Réponses:

87

Il y a quelques choses à noter à propos de la programmation.

Tout d'abord, vous ne saurez jamais tout sur la programmation. Vous ne serez probablement même jamais près de savoir une fraction de tout. Et si jamais vous pensez que vous savez quelque chose, quelque chose de nouveau sortira et ce que vous savez sera obsolète.

Donc, vous devez être d'accord pour apprendre constamment de nouvelles choses et vous apprendre ce qui doit être fait. Si vous n'êtes pas d'accord avec passer beaucoup de temps à faire beaucoup d'apprentissage, à faire de la recherche et à comprendre les choses par le biais de "tâtonnements éduqués", n'entrez pas dans la programmation.

Deuxièmement, c'est la logique qui compte, pas la syntaxe. Apprendre un langage, un framework ou une technologie ne fait pas nécessairement un bon programmeur. Vous devez vraiment avoir le genre d'esprit capable de comprendre la logique derrière le code - comment les éléments s'emboîtent, quel type de logique est utilisé et comment l'ordinateur interprétera votre code.

Il semble que vous travaillez avec un seul logiciel et langage, mais gardez à l'esprit qu'il existe de nombreux autres langages et technologies. Ne les jugez pas tous par votre expérience avec l'un d'eux. Si la syntaxe vous contrarie, gardez à l'esprit qu'il existe toujours d'autres options. Mais si vous rencontrez des problèmes pour saisir la logique derrière le code, la programmation n'est peut-être pas pour vous.

Et enfin, ne choisissez pas un travail que vous détestez. Bien sûr, la programmation peut être frustrante, mais elle peut aussi être très enrichissante. Si vous pouvez gérer les moments où vous voulez vous cogner la tête contre le mur avec un peu de code, ou tout supprimer de votre ordinateur avec frustration, et toujours profiter du codage, vous êtes bon :)

Rachel
la source
11
J'aurais posté ma propre réponse, mais j'aime celle-ci. Je voulais ajouter que la programmation est une question d'épanouissement en créant quelque chose qui fonctionne. Si vous pouvez comparer ce que vous ressentez entre la création d'un logiciel et la maintenance (l'application de correctifs) d'un serveur, alors vous auriez votre réponse. De plus, je suggérerais fortement à toute nouvelle personne qui est un apprenant "pratique" d'essayer de faire partie d'une équipe SCRUM, donc vous travaillez en étroite collaboration avec d'autres développeurs et apprenez vite (mais vous devez être en mesure de suivre).
iMortalitySX
1
Souvenez-vous également que plus vous progressez dans la programmation, plus vous avez de pouvoir pour choisir des emplois qui vous plaisent, au lieu d'un code qui ne fait que payer les factures.
Zoot
7
... programming can be frustrating, but it can also be very rewarding.C'est ce que j'appelle l'effet «montagnes russes» de la profession de programmeur. Les bas sont très bas, peuvent venir très rapidement et peuvent être difficiles à sortir. Mais les aigus sont à couper le souffle et le frisson crée une dépendance.
Ryan Kinal
1
Belle rédaction. Tellement vrai. Malheureusement, même le personnel des RH ne semble pas comprendre cela, qu'un véritable praticien du logiciel est celui qui peut très bien fonctionner avec de NOMBREUX frameworks, car cela prouve qu'ils ont transcendé le domaine de la syntaxe juste en noyau, Logic (OOP, design patterns, etc) en ce qui concerne leur métier.
Glstunna
2
@RyanKinal Je suis presque sûr que les programmeurs partagent plusieurs traits des joueurs compulsifs. Lorsque vous descendez, il devient très difficile d'en rompre jusqu'à ce que votre dos soit haut. Et quand vous arrivez à un point culminant, généralement, tout ce que vous avez à l'esprit est d'arriver à un autre point culminant.
Earlz
24

Mon ami a souvent voyagé pendant de nombreuses années, mais il a toujours voulu être pilote de ligne. Un jour, il en a profité pour piloter un Boeing 747. Après environ six mois, il avait envie d'abandonner: il pensait qu'il serait bon pour piloter des avions, mais cette expérience des six derniers mois lui a fait repenser sa décision.

Bien sûr, je plaisante: je n'ai pas un tel ami. Et c'est pour une bonne raison: toute compagnie aérienne serait fou de laisser quelqu'un prendre les commandes d'un 747 avant de passer quelques années à piloter un Cessna, puis quelques années à piloter des avions multimoteurs, puis quelques années à piloter des jets. , suivi de quelques mois de formation approfondie sur le 747.

Le point de mon histoire inventée est que même le package de modélisation 3D le plus simple serait l'équivalent d'un développeur de logiciel de piloter un 747. De nombreux programmeurs en seraient intimidés, même après une décennie ou deux dans l'industrie. Il n'est pas surprenant que vous vous sentiez frustré: vous avez entrepris une mauvaise tâche pour votre niveau de compétence actuel!

Que devrais tu faire? Tout d'abord, je quitterais la boutique de modélisation 3D, suivrais un cours en ligne ou un vrai cours de programmation et me procurerais un projet pour animaux de compagnie sur lequel vous pourriez travailler pendant votre temps libre. Une fois le cours terminé, essayez d'obtenir un poste de débutant dans une boutique qui produit des applications commerciales, des applications mobiles ou des sites Web sophistiqués. Apprenez autant que possible au travail et pratiquez à la maison pour améliorer encore vos compétences. Dans quelques années, vous pourrez revenir dans votre entreprise de modélisation 3D et y travailler sans la moindre frustration.

dasblinkenlight
la source
9
C'est bien, mais je ne quitterais pas nécessairement. Si votre travail est difficile, mais que votre patron est d'accord avec le fait que vous ayez besoin de temps pour vous mettre au courant, cela pourrait être une excellente opportunité. De plus, les applications métier peuvent ne pas aider beaucoup avec la modélisation 3D. Je fais principalement des applications commerciales et je serais complètement perdu si j'essayais d'écrire un programme de modélisation 3D.
Rétablir Monica le
22

Vous n'avez peut-être pas choisi le meilleur chemin pour apprendre la programmation :)

Sérieusement, la modélisation 3D est un domaine très complexe même pour un programmeur expérimenté, donc avoir cela comme premier projet va être difficile. Je suggérerais de trouver de bons livres et de travailler seul sur des projets simples. Si vous aimez travailler dessus, continuez à vous débrancher et vous y arriverez. Si vous n'aimez pas cela, il est peut-être temps de réduire vos pertes.

Je ne vais pas commencer d'arguments sur les meilleurs livres de programmation, mais je pense que vous trouverez de nombreuses questions sur SE sur les références de programmation.

FWIW, je programme dans MS Windows depuis 2.x, et si je sautais dans un projet de modélisation 3D existant, je pense que je serais frustré pendant un certain temps aussi :)

cdkMoose
la source
Je suis d'accord. La programmation 3D n'est pas exactement une promenade dans le parc. Les applications commerciales dans le domaine financier, médical ou technologique sont un meilleur endroit pour commencer votre carrière C #.
ROFLwTIME
+1 pour souligner la modélisation 3D n'est pas un bon point de départ, c'est beaucoup de mathématiques aussi IMO. Je pense que c'est la chose principale ici, commencez toujours par les choses faciles, lorsque vous essayez de courir trop vite, vous
finissez
8

En tant que développeur de logiciels assez novice moi-même (2 ans de travail à temps partiel), ce qui me fait avancer, c'est la perspective à long terme .

Chaque nouveau projet que je démarre, j'ai une meilleure compréhension sur la façon de le gérer en douceur. Chaque nouvelle langue devient moins difficile. Mes solutions commencent à se sentir plus complètes.

Voici ma liste de ce que vous devriez avoir pour continuer en tant que programmeur:

  • Vous devriez aimer et pouvoir apprendre par vous-même. (ie travailler avec des livres, forums, documentations, ...)
  • Vous devriez garder vos pensées organisées - la programmation est un moyen de mettre les processus de réflexion sur papier ( sur ordinateur ).
  • Vous devez avoir une résilience suffisante, lorsque vous traitez constamment une liste apparemment interminable de problèmes infimes, qui doivent d'abord être identifiés avant de pouvoir être résolus.

En dehors de cela, je pense qu'il y a de nombreuses raisons d'aimer la programmation, et plus vous le faites, plus vous éprouverez la joie de travailler dans un domaine aussi créatif et non répétitif.

Modifier: si vous rencontrez des problèmes avec quelque chose, essayez de déterminer exactement quel est le problème, puis apportez-le à l'un des sites Stack-Exchange, si votre question n'a pas déjà reçu de réponse, vous êtes tenu d'obtenir un bonne réponse. À long terme, il vous sera également utile de lire des livres structurés sur les paradigmes de programmation, le génie logiciel et les algorithmes. La plupart importent cependant, continuez à écrire du code - et comme la plupart des réponses suggèrent ici, trouvez du temps pour travailler sur des programmes sans rapport avec ce que vous faites déjà, même si cela signifie que vous créez vos propres projets pour travailler à la maison.

Rafael Cichocki
la source
4

C'est simple: aimez-vous le faire? Si vous n'étiez pas payé pour le faire, le feriez-vous pendant votre temps libre, pour le plaisir? Si la réponse est non, la programmation ne vous convient probablement pas.

Cela ne veut pas dire que vous ne pouviez pas apprendre à le faire assez bien pour être rémunéré. Mais si vous ne l'aimez pas, vous ne serez jamais bon. Et si vous ne l'appréciez pas, à quoi ça sert?

J'ai commencé à programmer quand j'avais 12 ans et je l'ai fait parce que je le voulais. J'avais 20 ans (et à mi-chemin du collège) avant de penser que je pourrais peut-être gagner ma vie. C'était juste une chose que j'ai faite parce que j'aimais ça.

Je crois que la plupart des gens qui sont grands dans quelque chose (n'importe quoi) ne le sont pas parce qu'ils ont une compétence innée, mais parce qu'ils ont une obsession malsaine pour cette chose.

zpasternack
la source
1
Je ne sais pas pourquoi quelqu'un a voté contre. Je ne pourrais pas être plus d'accord.
endy
Je pourrais par exemple apprécier le travail de l'OP si j'apprends quelque chose de vraiment cool sur les mathématiques 3D, et j'aime apprendre les systèmes 3D et leurs mathématiques connexes. Oh et les détails d'OpenGL ou DirectX, et les cartes vidéo.
Warren P
2

Je vous conseille de passer du temps seul avec C # et la programmation en général.

Faites un petit jeu. Faites un outil simple pour organiser vos photos. Faites vraiment quelque chose.

Si vous passez votre propre temps, vous pouvez trouver que vous aimez la programmation. Sinon, la programmation n'est pas la carrière pour vous. Quoi qu'il en soit, continuez à y travailler.

Une ressource qui peut être utile pour apprendre certains concepts:

http://msdn.microsoft.com/en-us/library/618ayhy6.aspx (référence C #)

Brad S
la source
2

Où était ton parcours si tu n'avais jamais programmé avant ça? La plupart des rôles informatiques auraient la possibilité de programmer quelque chose, ne serait-ce qu'une macro ou un script pour automatiser une petite pièce du puzzle.

Vous avez droit à vos émotions. Cependant, la meilleure question est de savoir ce que vous faites face à cette frustration? Êtes-vous en train de comprendre les choses et d'aller de l'avant? Quel genre de rétroaction obtenez-vous sur le travail que vous faites? Si vous recevez des commentaires selon lesquels c'est formidable, vous pouvez avoir des attentes irréalistes envers vous-même. D'un autre côté, si vous obtenez peu ou pas de commentaires, je pourrais comprendre avoir des craintes.

JB King
la source
2

Je me souviens avoir commencé avec l'assembleur sur un Commodore VIC20. Au début, je viens de suivre les instructions pour les hacks qui ont été publiées dans les magazines de jeu pour me donner des vies infinies sur Jet Set Willy ou quoi que ce soit où j'essayais de tricher. J'ai eu une curiosité et un désir qui m'ont amené à vouloir créer mes propres hacks et à comprendre comment et pourquoi ils fonctionnaient. C'est ce qui m'a amené à écrire mes premiers programmes.

Le fait est que j'ai été totalement confus pendant assez longtemps (pas aussi longtemps que 6 mois, mais je conviens que c'est probablement une fonction du démarrage de la modélisation 3D) mais ensuite, le sou a soudainement chuté. J'ai commencé à comprendre comment le code que j'avais écrit se traduisait en instructions CPU et références mémoire et bientôt, je pouvais écrire un assembleur assez compétent. Bien sûr, vous travaillez maintenant à 20 niveaux au-dessus du CPU, mais je suis sûr que si vous en avez l'aptitude, ce moment de l'ampoule se produira.

Je suppose que je réitère les points soulevés concernant la curiosité, l'apprentissage et le pétillement lorsque vous créez quelque chose de vraiment synergique.

Si vous pouvez donner un conseil, c'est "persévérer et apprendre les bases de la programmation orientée objet". Bonne chance.

Simon
la source
2

Vous n'avez pratiquement pas suivi de formation et avez été projeté dans un projet difficile. En règle générale, les gens passent au moins trois ans à apprendre des choses avant même de commencer des projets non triviaux. Il n'y a pas d'embarras, cela ne signifie pas non plus que la programmation n'est pas pour vous, si vous la trouvez trop difficile.

Même moi, j'ai eu du mal à ma quatrième semaine de programmation: P

DeadMG
la source
Il m'a fallu quelques années avant de pouvoir créer des programmes non triviaux qui n'avaient pas beaucoup de bugs. Une fois que j'ai atteint un point de basculement, mon rythme de progression a explosé, et cela s'est produit plusieurs fois. Je me souviens quand j'ai commencé à percer pour la première fois et j'ai pu conceptualiser des idées d'une manière que je ne pouvais pas auparavant. Tout était en descente à partir de là.
jett
2

Votre frustration est tout à fait normale; il est probable que 3 semaines de formation soient profondément insuffisantes. Vous ne pouvez pas savoir si la programmation vous convient en vous jetant tête première dans un projet de programmation difficile avec votre chèque de paie en jeu.

Si vous voulez vraiment savoir si la programmation vous convient, alors apprenez un nouveau langage de programmation pendant votre temps libre et réalisez quelques projets de programmation. Si vous appréciez cette expérience (l'expérience de programmation sans délais et sans pressions de travail qui pèsent sur votre tête), la programmation est faite pour vous.

Maintenant ... si ce travail de programmation particulier vous convient ... Je pencherais personnellement pour un non . Parlez à votre manager de votre frustration et envisagez de trouver un emploi mieux adapté à vos compétences actuelles ou qui promet un meilleur programme de formation. Je ne peux pas connaître les détails de votre situation particulière, mais il me semble que ce fut un mauvais service à la fois pour vous et pour l'entreprise de vous embaucher à ce poste sans fournir un temps de formation adéquat; s'ils ne prévoyaient pas de fournir une meilleure formation, ils n'auraient pas dû vous embaucher. Pourtant, l'école des coups durs est aussi bonne qu'une école; encore une fois, la meilleure solution consiste à parler avec votre manager et à voir comment il évalue votre performance actuelle et répond à votre frustration.

Dan Burton
la source
2

Est-ce moi ou ai-je raison d'être frustré?

Les questions que vous devez vraiment vous poser sont:

a) Aimez-vous la programmation? b) Vous sentez-vous la personne la plus heureuse du monde une fois que votre application fonctionne? - Si votre réponse est OUI , cessez de vous inquiéter, continuez simplement à apprendre et à améliorer vos compétences en programmation.

D'une manière générale, la modélisation 3D - est un domaine totalement différent dans le monde de la programmation comme une programmation de jeux. Cela peut vous faire peur ou ne pas susciter votre intérêt. N'ayez pas peur , gardez simplement votre motivation en apprenant des choses que vous ne savez pas. Fixez vos objectifs à court et à long terme sur ce dont vous avez besoin pour rattraper votre retard et apprendre.

Edit: Le "logiciel de modélisation 3D" n'est pas un domaine de programmation de flux principal. Ainsi, vous pourriez vous retrouver à apprendre des connaissances / techniques très spécifiques qui ne sont pas appliquées dans d'autres domaines (CRM, comptabilité, soins de santé, etc.) qui suscite votre intérêt.

ElYusubov
la source
2

La programmation graphique 3D est un créneau dans lequel même les développeurs de logiciels les plus expérimentés préfèrent ne pas se lancer. Je travaille beaucoup avec OpenGL et je le sais de première main. Si tout va bien, tout votre travail implique de travailler avec des scénarios à un niveau supérieur, mais si vous êtes au fond de lui comme moi. Pour un nouveau programmeur, c'est comme un bébé qui court ... dans un sprint de 100 mètres ... avec des gens comme Usain Bolt ... avec la pression supplémentaire de personnes ayant des attentes réalistes que le bébé va gagner la course.

Cependant, des miracles se produisent et tout espoir n'est pas perdu.

J'espère que vous le faites déjà, mais non seulement vous devez faire des tutoriels sur la programmation (c'est de loin le plus petit défi), vous devez lire des choses sur les principes fondamentaux et les systèmes de coordonnées 3D. Comprendre les mathématiques impliquées dans le dessin des polygones, la traduction, la rotation (Dieu vous aide si Quarternion), les matrices, etc.

Mais sérieusement, êtes-vous sûr de vouloir continuer avec ça? Qu'est-ce qui est le plus important pour toi? ce travail ou un ensemble complet de cheveux?

Glstunna
la source
1

Je viens de jeter un livre sur C # récemment - car il n'a aucune valeur pour moi.

Mais je peux confirmer, la frustration et les bugs sont considérés comme "normaux".

Bien que ce ne soit pas une date limite assise à l'arrière de votre cou, ne vous inquiétez pas.

D'un autre côté - une fois qu'il fonctionne comme un charme, il peut être amusant en effet.

Lorsque vous obtenez des résultats extraordinaires - ils pourraient vous appeler "Monsieur" :)

Concernant votre question si c'est le bon travail pour vous - cela dépend, si vous voulez apprendre de nouvelles choses chaque jour - que ce soit ou non. Aussi, si vous avez la patience et les noix pour résoudre les problèmes.

J'applique constamment la méthodologie TDD - mais cela prend plusieurs années à apprendre. Avoir un cours de démarrage rapide de 3 semaines pourrait ne vous mener nulle part, il s'agit de faire des erreurs et d'apprendre d'elles.

Tout le monde déteste les bugs et les dysfonctionnements - mais on peut grandir avec eux. Ce que je veux dire, c'est que faire (ou même provoquer) des erreurs n'est pas nécessairement une mauvaise chose.

Le meilleur conseil que je puisse vous donner est probablement de décomposer les choses en étapes plus petites.

Parce que si les objectifs que vous vous êtes fixés sont complètement hors de portée, c'est ce qui provoque la frustration.

J'ai appris le débogage sur une Nintendo SNES - je trichais comme une houe et recevais de l'argent d'un magazine de console pour leur fournir de nouveaux tricheurs. Plus tard, j'ai obtenu un Atari ST et j'ai appris à coder Omikron Basic ... et je suis toujours là, actuellement indépendant en tant qu'assistant JS :)

Votre situation, comme décrit, est plutôt "l'apprendre à la dure" ... Je suggérerais également de l'apprendre avec des applications beaucoup plus basiques que cela. Une bonne référence linguistique est tout ce dont on a besoin, et peut-être de bons exemples.

syslogic
la source
1

La programmation nécessite beaucoup de dynamisme et de dévouement pour arriver au point où vous savez ce que vous faites et êtes exceptionnel à faire ce que vous savez.

Pour que vous réussissiez vraiment, la programmation doit devenir un mode de vie; plutôt qu'une profession souhaitée. Il doit devenir une obsession qui commence à la résistance et s'étend à l'ensemble du réseau qui comprend Internet.

Personnellement, je vous recommande de vous y tenir parce que moi aussi j'ai eu beaucoup de mal. Je n'ai pas vraiment pu commencer à penser comme un programmeur avant environ un an et quelques mois après avoir commencé à étudier l'informatique à temps plein (souvent plus de 12 heures par jour).

J'ai passé tout le temps à étudier tout ce que je pouvais comprendre sur Internet en rapport avec les ordinateurs. J'ai utilisé la complexité de la programmation pour me rendre encore plus têtu et motivé à chaque fois que j'étais dépassé. J'ai passé beaucoup de temps à lire le code des autres et à le taper manuellement moi-même. Chaque fois que je trouvais quelque chose que je ne comprenais pas, je le cherchais. Tous les jours, plongeant de plus en plus profondément dans ma fascination et mon obsession forcées. (J'ai même commencé à avoir des rêves de programmation où je communiquais avec des programmes via binaire, Trop profond! Lmao)

Ce n'était pas toujours facile. Je me sentais vraiment comme si je n'étais pas fait pour ça TOUT LE TEMPS, mais un jour j'ai pu simplement me brancher et commencer à coder comme un fou. Cela a juste commencé à prendre de plus en plus de sens pour moi, avec chaque ligne que j'imaginais. Tout a commencé à se rassembler au point où je pouvais revenir en arrière et réécrire mon code de manière plus optimale et efficace seulement quelques heures plus tard.

Après cela, je n'ai jamais douté si j'étais capable de devenir programmeur. Il faut vraiment le vouloir. Il n'y a pas beaucoup de gens qui ont le dévouement nécessaire pour surmonter la tempête qui est nécessaire pour évoluer vers un informaticien.

Cependant, lorsque vous arrivez au point où vous pouvez créer des systèmes logiciels complexes nés de votre créativité et de votre ingéniosité, la récompense de l'accomplissement que vous ressentez dépasse de loin la lutte que vous avez dû traverser pour réussir.

mortdeus
la source
1

Je pense que la chose la plus sûre à vous demander est «aimez-vous apprendre».

Par cette simple question, vous saurez si la programmation vous convient avec une probabilité décente. Si vous n'aimez pas apprendre, alors non, vous n'aimerez probablement pas la programmation. La programmation est de 5% sur l'écriture de code, 10% sur la conception du fonctionnement de votre code et 85% sur l'apprentissage de l'écriture d'un meilleur code et de la création de meilleures conceptions. (et cela ne change pas! Je programme depuis plus de 8 ans et j'apprends toujours!)

Maintenant, bien sûr, vous pouvez aimer apprendre et pas aimer la programmation, mais comme vous aimez apprendre, essayez de créer des programmes! Cependant, vous ne pouvez pas abandonner à la courbe d'apprentissage initiale, surtout avec tant de langues faciles maintenant. Alors allez-y et écrivez du code!

Earlz
la source
0

La programmation, c'est d'abord la résolution de problèmes. La langue est secondaire. Dès que vous serez chargé d'écrire votre premier programme (au fait, vous n'écrirez pas le code vous-même la première fois - car tout a été écrit) et de comprendre le puzzle ... faites la connexion, vous saurez juste là et là si vous voulez être programmeur.

aserwin
la source