Que faire lorsque le codage commence à devenir ennuyeux, comme si tout se ressemblait davantage? [fermé]

33

J'ai commencé à programmer à l'âge de 6 ans sur un Commodore 64. Maintenant, j'ai 28 ans et je dois compléter 4 cours d'un premier diplôme en informatique.

Je commence à m'ennuyer d'écrire du code après toutes ces années. J'ai suivi un cours d'informatique dans les langages informatiques théoriques et dix ans de codage de systèmes C dans le domaine de la sécurité des réseaux et l'écriture de code ne me stimule pas.

Je peux écrire du code en C, C ++, Python ou n'importe quel langage que vous voulez, mais je ne peux pas m'enthousiasmer pour ce que je fais. Je ne ressens aucun défi. J'ai écrit du code multithread, un proxy HTTPS MITM et une application WSGI sans avoir besoin de compétences en algorithmes spécifiques.

Je pense que toutes ces nouveautés sont toutes identiques, avec des abstractions plus simples (ou plus) ou une automatisation, mais cela me semble identique. Encore et encore. Le langage informatique est entièrement informatisé de Turing, le codage n’est donc que la réplication d’un modèle similaire dans ce sous-ensemble d’une fonction partielle.

Dans mon travail quotidien, je me sens ennuyé même de rechercher des bogues, de mesurer le code ou de résoudre le problème avec la bibliothèque X, Y, Z.

Je suis une personne très curieuse. Je suis toujours stimulé par quelque chose. Mais je ne peux même pas quand je regarde un bon code. Je me sens plus à l'aise dans la façon dont les choses fonctionnent.

Est-il temps d'avancer dans ma carrière? Ou pour obtenir des choses plus difficiles en informatique? Peut-être obtenir un diplôme majeur en CS?

J'ai commencé à lire mon premier livre sur la gestion de projet "Peopleware" et je m'intéresse de plus en plus au cycle de vie du développement logiciel. Que proposez-vous de faire?

Peut-être essayer d’entrer dans Google, Microsoft ou Apple comme certains de mes amis l’ont fait. Ou peut-être un cheminement de carrière plus managérial. J'ai également essayé de trouver un bon livre sur les règles de communication et la "personnalité des personnes" afin de me préparer à la possibilité d'entrer dans la gestion.

Aucune suggestion?

PS: J'ai beaucoup d'intérêt, je ne suis pas déprimé :) J'aime la montagne, le trekking, prendre des photos et je suis un alpiniste sportif, j'aime nager et faire du sport en général, parfois je cours, en fait je ' m en lisant un livre sur mon pays (Italie) de AC à aujourd'hui et j'adore les voyages (cet été, j'ai parcouru 4000 km pour voir beaucoup d'endroits en Espagne et y grimper, tout cela en seulement 3 semaines, pas un jour férié mais un marathon , 24 km de trekking ont fait ma hernie), j’aime le théâtre et la vie en général.


Merci à tous, penser à toutes les réponses me donne l’occasion de préciser mon chemin.

Pour résumer, nous pouvons généraliser à propos de la réponse la plus votée.

Tout d'abord, les gens soulignent la nécessité de faire de notre travail un soutien de votre vie et non la seule raison de rester dans la vie (ce n'est pas mon cas). à une situation vraiment dépressive. Comme le dit Peopleware, Vienne ne t'attend pas :)

Après ce rappel, les gens suggèrent de:

  • J'augmente la complexité technique sur laquelle je travaille pour relever le défi et m'ennuyer moins.
  • changez le domaine d'expertise en un domaine non technique en essayant de devenir un responsable ou en faisant progresser un soignant dans des domaines non techniques liés à votre travail.
  • changer de domaine d'expertise dans un autre type de défi technique, êtes-vous un programmeur système? essayez de ne pas vous ennuyer en développant une application pour un humain afin que vous puissiez vous sentir plus à l'aise en regardant des gens en utilisant votre logiciel utile
  • faire avancer votre diplôme en informatique dans votre cheminement académique

Pour mon but, la bonne réponse est de progresser en informatique, car je pense que la programmation n'est pas la seule façon d'obtenir l'informatique et je pense que je peux me sentir mieux d'obtenir une autre voie en informatique différente de celle du soignant en génie logiciel.

boos
la source
10
C'est vraiment déprimant. Pourquoi voulez-vous être un gestionnaire?
14
Malheureusement pour vous, et même si cela peut sembler dur, les gestionnaires doivent comprendre comment communiquer efficacement. Ce que vous avez écrit ci-dessus est extrêmement flou et difficilement compréhensible. Si vous envisagez un changement de carrière dans la gestion, je travaillerais sur vos compétences en communication avant toute autre chose. Désolé pour votre situation.
George
9
@ George: Je pense (mais j'admets que je ne suis pas sûr) cela est écrit par quelqu'un qui ne parle pas / n'écrit pas l'anglais comme langue maternelle.
FrustratedWithFormsDesigner
2
Voir Quelle est l'utilisation de la métaprogrammation pour une métaphore amusante sur ce sujet (faire la même chose partout).
2
@ George: bien sûr, l'anglais n'est pas ma langue maternelle. Je commence à faire quelques modifications pour améliorer mon anglais et expliquer ma frustration à propos du codage.
Boos

Réponses:

50

Cela devait arriver.

Si votre principal intérêt réside dans le code, il vous rendra fou, frustré et déprimé de temps en temps, parfois de manière permanente.

Intéressez-vous au développement de produits et aimez voir les gens les utiliser. C'est le but ultime de l'écriture du code, non? Le code est simplement un outil pour faire quelque chose de plus grand.


la source
Mon premier intérêt n'est pas seulement de coder, je suis un alpiniste sportif, j'aime aller au théâtre, j'adore voyager et voir un nouvel endroit, 2/3 villes européennes tous les ans et 4000 km pendant mes vacances d'été. ce n'est pas le point. Je pense que j'ai atteint le point de non retour sur le codage. tous les problèmes de mon travail ne sont pas si difficiles à gérer et je ne peux pas avoir plus de défis. Je pense que la bonne réponse est de changer de travail et de relever plus de défis dans des problèmes plus complexes. En fait, je suis déjà dans une division de recherche et développement.
Boos
@boos, essayez clojure.org/Jobs
Job le
2
+1 A quoi sert le codage sans but? Cela s'apparente à continuer à construire un mur au lieu d'une maison.
Mayank
+1 J'ai commencé à coder et j'ai continué jusqu'à maintenant (plus de 10 ans) uniquement pour faire des jeux et voir les gens en profiter. J'ai vécu des périodes très difficiles au cours desquelles j'ai commencé à comprendre que je ne savais rien du tout. J'ai tout réappris depuis le début à ce moment-là, car je voulais toujours faire des jeux pour les gens.
Klaim
Cela a certainement fonctionné pour moi. J'ai récemment effectué un petit travail de développement gratuit pour le cabinet de ma femme et, bien que supporter le logiciel soit un peu pénible, il a ravivé un plaisir en matière de codage que je n'avais pas ressenti depuis un moment.
hermiod
21

Je vais répondre à votre question avec une question ...

Est-ce que le travail d'un programmeur est de coder ou de résoudre des problèmes?

Vous dites que vous vous ennuyez parce que l'écriture de code semble être quelque chose que vous avez déjà fait, comme chaque partie de code déjà créée

Mais comment en êtes-vous arrivé à la conclusion que ce code est le code qui devrait être écrit? La plupart des problèmes ont des centaines de façons de le résoudre, mais il n'y a qu'un seul meilleur moyen.

Si vous ne trouvez vraiment aucun défi, curiosité ou intérêt à trouver des solutions, ou à résoudre des problèmes, alors vous êtes vraiment appelé à un changement. Bien que je ne sois pas sûr que ce soit la gestion du développement logiciel. Je ne voudrais pas travailler pour un gestionnaire de logiciel qui ressent une telle apathie face à la résolution de problèmes. Il devrait probablement s'agir simplement d'une industrie différente, avec un ensemble de problèmes différent.

Si vous aimez résoudre des problèmes mais n'aimez pas coder, vous ne trouvez peut-être pas assez de problèmes à résoudre. Chaque fois que mon travail commence à me paraître fastidieux, je pense qu’il ya un problème à résoudre. Pourquoi est-ce que je fais un travail occupé? Quelle solution puis-je proposer pour supprimer le travail occupé de mon travail? C'est la beauté de la programmation.

Nicole
la source
1
@Rnesis: j'aime résoudre les problèmes, je m'arrête pour aimer coder! c'est le coeur de ma "question". Tous les problèmes de programmes sont toujours les mêmes choses, rechercher un article, en commander un autre, si cela fait cela, si autre, à autre chose, se connecter à une base de données, établir une connexion à un service distant, communiquer avec lui, revenir à un autre service, etc.
boos
1
@boos - Merci pour la réponse, ajout d'un paragraphe pour "si vous aimez résoudre les problèmes".
Nicole
9

Il me semble que vous avez fait BEAUCOUP de programmation procédurale et que vous en avez assez - ce que je comprends parfaitement. La spécification pas à pas est sensiblement la même dans tous les langages procéduraux.

Comme il semble que vous ayez beaucoup d’activités non professionnelles, je vous suggérerais d’apprendre certains des concepts qui ne ressemblent pas à ce que vous savez maintenant, et - oui - il y en a beaucoup, mais pour commencer, je recommanderais Haskell, car c’est

  • fonctionnel - vous écrivez des fonctions que vous avez rassemblées pour créer des fonctions plus volumineuses qui aboutissent à un programme.
  • évaluation paresseuse - au lieu de spécifier étape par étape, le moteur d'exécution extrait les valeurs nécessaires en fonction des besoins. Cela signifie qu'il est très courant de traiter des listes infinies dans vos programmes.
  • correspondance de modèle - au lieu d'avoir de grandes structures if, vous répertoriez les modèles, ainsi que le moteur d'exécution, sélectionne le modèle approprié et exécute le code correspondant.

Voici une fonction de tri complète:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

(Voir http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding pour une explication)

Si quelque chose de ceci est nouveau pour vous, je vous encourage à commencer à vous aventurer.

Bonne chance, amuse toi bien.


la source
+1 C'est la même conclusion à laquelle je parviens après avoir lu le PO. Le PO doit sortir de la procédure. Le monde de la programmation est tellement plus grand qu'il ne reste plus qu'à explorer et explorer! :)
Darknight le
8

Les ordinateurs sont des consommateurs ennuyeux. Lorsque vous codez des interactions machine à machine toute la journée, la machine réagit de la même manière à chaque fois. Bon à faire le projet, mais fastidieux après un moment. Cela aide vraiment de rompre la monotonie avec quelque chose qui n'est pas directement lié à la machine.

J'ai trouvé l'inspiration avec la photographie et en étudiant l'expérience utilisateur. Pensez-y, comment se fait-il qu'Apple puisse attirer une foule de gens en train de se saliver pour la prochaine chose qui va sortir de Santa Clara lorsque d'autres vendeurs obtiendront une réponse chaleureuse? Pensez-vous sérieusement qu'Android aurait eu une aussi grande réponse si Apple n'avait pas résisté à la publication de l'iPhone sur Verizon depuis si longtemps? Je vais vous donner un indice important: ce n'est pas nécessairement que ces produits sont techniquement avancés. La manie comporte une énorme composante psychologique.

Comprendre la conception des produits et l'expérience utilisateur est une chose que beaucoup d'entre nous ont beaucoup à apprendre. Qu'est-ce qui fait vibrer quelqu'un? Comment concevez-vous quelque chose d'assez cool pour que les gens quittent la solution établie? Comment créez-vous votre propre culte technologique comme Apple (même si je n'aspire pas à être un chef de culte)? Ce sont toutes des questions très intéressantes et stimulantes. Ils contribuent au développement logiciel - mais maintenant, votre objectif est différent.

Berin Loritsch
la source
1
+1 Je trouve beaucoup de satisfaction dans la programmation et je pense que cela me plait à cause de l'aspect design, mais je reconnais que l'absence d'aspect visuel dans la programmation ne me laisse pas complètement comblé. Moi aussi, j'aime la photographie et essayer de pratiquer d'autres types de design, tels que le graphisme ou l'architecture.
Nicole
Essayez la programmation de jeux: D, ce sont surtout des problèmes visuels
Dominique McDonnell
7

Vous n'avez probablement pas assez de défis techniques?

  • Essayez des systèmes hautement distribués. Pouvez-vous coder facilement un système pour collecter les journaux de 1 000 ordinateurs dans un cluster, avec une précision de l'ordre de la microseconde?
  • Essayez dur en temps réel. Emballez tous vos processus dans une rotation de moteur.
  • Essayez la vision par ordinateur ou le traitement d'images. Les compétences en mathématiques, les compétences en calcul de code, les compétences en optimisation sont toutes utiles.
  • Essayez l'IA. Voyez comment l'ordinateur d'IBM joue à Jeopardy? Une sophistication algorithmique est probablement impliquée dans ce domaine.

Etc. Bien sûr, soyez prêt à commencer par gagner moins dans un domaine où le travail est difficile, mais pas ennuyeux.

9000
la source
4

J'ai trouvé la motivation en optant pour un domaine sans solutions "correctes". J'écris des outils éditoriaux et mon travail est aussi utile que les utilisateurs le trouvent utile. Je rencontre beaucoup de personnes non techniques et ensemble, nous essayons de trouver des moyens d'améliorer les logiciels avec lesquels ils doivent travailler. Je trouve l'interaction humaine et le besoin de changer constamment de perspective de manière vraiment agréable et que le codage n'est pas subit. si ennuyeux plus.

Je sais que ce n'est pas pour tout le monde, certains craignent de ne pas avoir une mesure objective de la qualité de votre travail plus difficile que d'autres.

Mais c’est une option qui mérite d’être envisagée.

biziclop
la source
4

Oui, j'ai parfois le sentiment qu'on écrit en réalité le même genre de code, encore et encore. Mais non, ça ne m'ennuie pas encore. Pourquoi donc?

Parce que j'apprécie fondamentalement de découvrir de nouvelles méthodes de codage, ainsi que de nouvelles méthodes concises et élégantes d’expression dans le code. Il existe deux manières de procéder: apprendre de nouveaux langages de programmation ou de nouvelles bibliothèques ou de nouveaux cadres.

Apprendre un nouveau langage de programmation est devenu plus facile pour moi avec chaque langue que j'ai essayée. Et après un certain temps, cela a cessé d’être très intéressant. Cependant, il y a environ un ou deux ans, je suis finalement arrivé à la programmation fonctionnelle, qui, en tant que paradigme de programmation, est suffisamment différente de la POO pour constituer un nouveau défi. Je pense que cela a vraiment enrichi mes capacités de programmation et m'a donné une nouvelle perspective à partir de laquelle je peux aborder un problème de programmation. J'essaie maintenant de découvrir différents paradigmes de programmation, au lieu de différents langages de programmation. C'est un plus grand défi.

Deuxièmement, apprendre une nouvelle bibliothèque, un nouveau framework ou une nouvelle API: Comme vous l'avez bien dit, les nouveaux frameworks ne résolvent souvent pas les nouveaux problèmes; ils le résolvent simplement d'une manière différente, par exemple en ajoutant une couche supplémentaire d'abstraction. C'est peut-être possible parce que les ordinateurs d'aujourd'hui sont plus puissants que les machines antérieures. ou peut-être parce que nous améliorons l'écriture de logiciels.

Ce dernier élément nécessite probablement des explications. Je vais donner un exemple: Pendant très longtemps, tout en pratiquant mes compétences en programmation, je n’ai jamais vraiment pensé sérieusement à la maintenance du code que j’écrivais. Depuis que j'ai commencé à programmer sur un travail, mon point de vue a changé. L'écriture de code maintenable est souvent très importante dans un environnement d'entreprise, car chaque heure que vous passez à coder coûte de l'argent réel. Une entreprise essaiera donc de conserver le code existant si possible, et il y a de fortes chances pour que vous deviez éventuellement passer outre. votre code à un successeur.

Je trouve qu'écrire du code maintenable est en réalité un gros défi. Cela signifie souvent que vous n'écrirez pas un code d'assemblage extrêmement intelligent et hautement optimisé (souvenez-vous de The Story of Mel - Un vrai programmeur , n'importe qui? ;-) Au lieu de cela, vous aurez plus de chances de tirer parti de l'abstraction. Plus votre code est proche de certaines règles métier et du domaine problématique, mieux c'est. C’est là que toutes ces nouvelles bibliothèques entrent en jeu. Si elles vous permettent d’écrire du code propre, clair, concis et facile à comprendre, c’est une bonne chose.

Désolé si cette réponse est un peu longue. J'ai essayé de montrer d'où venait ma motivation dans la programmation ... et j'aimerais savoir si, à un moment donné, vous avez ressenti la même chose et si (et pourquoi) votre motivation a finalement disparu, de toute façon.

Stakx
la source
toutes les langues et tous les paradigmes et de manière générale peuvent être rappelés à une "machine de Turing" quel que soit l'apprentissage d'une nouvelle langue dans un nouveau cadre, tous les calculs peuvent être réalisés par une machine de Turing, je ne peux donc pas être plus enthousiaste à propos du codage. J'aime écrire du code épuré, et parfois j'aime écrire un extrait de code vraiment étrange pour plaisanter avec mon collègue, comme une sorte de petite gêne.
Boos
1
+1 je me sens aussi de cette façon. Je pense que mon défi personnel préféré n'est pas tant de faire quelque chose de nouveau, mais de le faire de la meilleure façon possible. Le meilleur compliment que j'ai pu obtenir est: "J'ai lu votre code et j'ai parfaitement compris." J'adore les critiques de code où personne ne peut penser à quoi que ce soit pour améliorer.
Michael K
@boos, si vous aimez la théorie, il y a des milliers de sujets dans lesquels cs / math / physics peuvent perdre la tête.
Job
3

Si vous êtes fatigué d’écrire du code, si cela ne vous excite pas, si cela vous ennuie, il est peut-être temps de changer. Vous pourriez envisager de passer à un poste de direction, et gérer et guider d'autres codeurs grâce à vos années d'expérience. Ou essayez de vous déplacer latéralement dans l'architecture système, où vous pourriez concevoir et planifier des systèmes et où d'autres personnes se chargeraient de la majeure partie de la mise en œuvre.

Ou bien, vous pouvez changer complètement de carrière pour une activité qui n’a absolument rien à voir avec les ordinateurs. Vous êtes-vous demandé quel serait votre emploi de rêve si quelqu'un pouvait vous le donner?

FrustratedWithFormsDesigner
la source
3

Commencez à jouer avec des microcontrôleurs. C'est l'application la plus rafraîchissante et la plus excitante de talent en programmation à laquelle je puisse penser.

Rob S.
la source
2

Il semble que les points de départ de nos antécédents soient similaires en ce sens que nous avons tous les deux commencé à programmer environ 6 ans sur des machines similaires et que nous avons commencé ou non la programmation pour diverses raisons. Aucun de mes diplômes n'a rien à voir avec la programmation - j'ai tous les diplômes en musique - même si j'ai suivi des cours d'informatique de deuxième cycle.

Vous avez raison, je pense, de constater que les programmeurs résolvent souvent les mêmes problèmes à plusieurs reprises et que le "nouveau" est basé sur le "vieux". Que vous réalisiez ce fait est à votre actif; trop de développeurs et d’hommes d’affaires estiment que les nouvelles technologies sont complètement déconnectées des anciennes.

Donc, résoudre ce genre de problèmes ne vous intéresse pas. Qu'est-ce qui serait intéressant? Aimez-vous résoudre les problèmes en général? Peut-être qu'une vie en tant que développeur de logiciels "professionnels" n'est pas pour vous.

Je sais que j'ai fourni plus de questions que de réponses, mais j'espère que répondre à ces questions donnera un aperçu de la direction que vous devriez prendre.

Andrew
la source
2

Il me semble que vous êtes coincé. Vous êtes dans une situation dans laquelle vous ne voulez pas être et vous ne savez pas comment vous en sortir. Mon conseil est simple: faire quelque chose de différent juste pour le faire. Même si cela ne résout pas votre problème, cela vous débloquera probablement.

Je peux écrire du code en C, C ++, Python ou n'importe quel langage que vous voulez, mais je ne peux pas m'enthousiasmer pour ce que je fais. Je ne ressens aucun défi. J'ai écrit du code multithread, un proxy HTTPS MITM et une application WSGI sans avoir besoin de compétences en algorithmes spécifiques.

Ne le prenez pas mal (ce sont des réalisations décentes), mais ce n’est pas une liste exhaustive de tous les problèmes difficiles et excitants de la programmation. Il reste encore beaucoup de problèmes difficiles à résoudre. Les problèmes les plus difficiles impliquent de travailler à grande échelle. Vous avez écrit une application WSGI, mais en avez-vous une qui puisse gérer un milliard de pages vues par jour? Vous avez écrit du code multi-thread, mais avez-vous écrit du code multi-ordinateur (avec des centaines d'ordinateurs)?

En bref, si vous voulez essayer de faire quelque chose de non technique, foncez. Mais ne le faites pas, car vous estimez avoir résolu tous les problèmes qui se posent car ce n'est pas le cas.

Jason Baker
la source
Bien sûr, je sais qu'il y a beaucoup de choses stimulantes ici :) Je suis un peu codeur en ce moment! le problème est que la complexité liée à la programmation ne me rend pas heureux. Avec toutes les réponses, je comprends le point, j'ai besoin d'étudier des choses plus académiques pour me sentir mieux. Quoi qu'il en soit merci :)
boos