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.
Réponses:
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
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.
la source
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
Voici une fonction de tri complète:
(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
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.
la source
Vous n'avez probablement pas assez de défis techniques?
Etc. Bien sûr, soyez prêt à commencer par gagner moins dans un domaine où le travail est difficile, mais pas ennuyeux.
la source
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.
la source
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.
la source
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?
la source
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.
la source
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.
la source
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.
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.
la source