Je me considère comme un développeur de logiciels de haut niveau. J'aime beaucoup lire et cela m'a aidé au cours de ma carrière. Je pense que je vais bien.
En ce moment, je passe beaucoup de temps à apprendre de nouvelles choses. Je ne crains pas quand il s'agit d'écrire du code en ce moment, mais je suis sur le point de fonder une famille, et je vois régulièrement de nombreuses personnes âgées avec 14-15 ans d'expérience qui - parce qu'elles ont réduit l'apprentissage de nouvelles choses - sucent maintenant à la programmation. Ils étaient des figures inspirantes à un moment donné, mais ils ne le sont plus.
Vous pourriez faire valoir que les bases ne changent jamais, mais cela semble faire une différence lorsque vous codez sur Delphi depuis 10 ans et que tout le monde utilise soudainement le framework .NET. Il est vrai qu'un développeur expérimenté prendra moins de temps lors de l' apprentissage d' un nouveau cadre, mais il encore fait le temps de la demande et de l' effort.
Comment un développeur de logiciels gère-t-il les exigences du travail tout en étant capable de se concentrer sur des choses qui vous retirent nécessairement du travail, comme fonder une famille?
Réponses:
Quelque chose que vous avez dit se démarque: «Je vois régulièrement de nombreux aînés ayant une expérience de 14 à 15 ans ... ils craignent maintenant la programmation». C'est un coup de pinceau assez large que vous utilisez pour peindre des gens expérimentés. Je voudrais souligner quelques points à considérer:
Peut-être que les personnes dont vous parlez n'ont jamais été bonnes. Il est tout aussi possible qu'ils vous regardent en pensant, pourquoi insistez-vous pour faire les choses à la dure?
Il est vrai, cependant, que lorsque vous fondez une famille, vous avez beaucoup moins de temps pour suivre les nouveaux jouets. En fait, vous avez moins de temps à mesure que vos enfants vieillissent que vous quand ils sont plus jeunes. Les jouets ne font pas de vous un meilleur programmeur. Les outils non plus. Ce qui vous rend bien, c'est la capacité de résoudre les problèmes et de trouver une solution de travail. Ce qui vous rend formidable, c'est la capacité d'apprendre aux autres à être bons. C'est là que l'expérience commence à briller.
la source
Il est difficile de prédire l'avenir. Mais une chose est la plus précieuse, quelle que soit la technologie.
C'est la capacité d' un développeur à résoudre des problèmes .
Beaucoup de qualités de développeur sont indépendantes de la technologie. Par exemple, la capacité analytique est la qualité la plus importante que je connaisse. C'est comme apprendre les mathématiques. C'est tout simplement intemporel.
la source
J'aimerais avoir une pensée positive ou concrète - mais je pense que la façon dont un programmeur se tient à jour et équilibre travail / famille varie énormément d'un programmeur à l'autre.
Pensées aléatoires:
la source
Premièrement, Microsoft se consacre à la vente d'outils et de plates-formes de développement logiciel sur lesquels exécuter ce logiciel. Cela les incite à apporter des modifications, qu'elles soient nécessaires ou non. Cela ne veut pas dire que tous leurs changements sont inutiles, juste qu'il y a beaucoup de domaines dans notre profession qui sont beaucoup plus stables. Avec l'expérience, vous êtes mieux en mesure de discerner sur quels wagons valent la peine de sauter immédiatement et sur lesquels vous pouvez attendre pour mûrir.
Deuxièmement, l'expérience ne demande que du temps. La plupart des développeurs avec 15 ans d'expérience qui sont mauvais maintenant l'étaient il y a 15 ans. Ne pas attribuer à tort à l'âge ce qui peut être expliqué de manière adéquate par l'incompétence.
Troisièmement, ne confondez pas avoir des connaissances obsolètes et être incapable d'utiliser les dernières et les meilleures lorsque le besoin s'en fait sentir. Il suffit généralement de savoir ce qui existe. Par exemple, jusqu'à récemment, mes connaissances en programmation Web étaient anciennes à la fin des années 90, mais quand je voulais créer un site Web pour mon frère, j'en savais assez pour découvrir des technologies "nouvelles" comme CSS, jQuery et les systèmes de gestion de contenu, et j'étais assez à jour en quelques semaines. En d'autres termes, si vous n'avez pas eu besoin de quelque chose au cours des 10 dernières années, il est peu probable que vous ayez une urgence où vous souhaiteriez être à jour en ce moment.
Enfin, être parent est en effet un gros engagement de temps, mais moins de temps que beaucoup de personnes sans enfant semblent penser. Les parents parviennent toujours à lire des livres, à regarder la télévision, à jouer à des jeux, à surfer sur le Web et même à prendre des cours à l'occasion. Shocker, je sais. Vous le faites simplement en petites portions et faites des priorités. La seule chose que j'ai complètement abandonnée, c'est de regarder les rediffusions.
la source
Je peux vous assurer que les personnes qui présentent de faibles compétences en programmation après dix à quinze ans n'ont jamais vraiment internalisé le développement de logiciels. Maîtriser un ensemble d'outils n'est pas la même chose que maîtriser l'art du développement logiciel.
J'écris du code depuis plus de trente ans. J'ai traversé plusieurs périodes où j'ai dû mettre ma carrière sur pilote automatique en raison d'obligations et / ou d'intérêts extérieurs. Ce que l'on doit apprendre à faire en vieillissant, c'est d'éviter de sauter tôt dans un train de technologies. La plupart des technologies ne sont pas à la hauteur de leur battage médiatique. En tant que praticien plus âgé ayant des obligations en dehors du travail, il faut être avare de son temps. Un praticien expérimenté peut se permettre d'attendre quelques années qu'une nouvelle technologie arrive à maturité car il / elle a déjà maîtrisé l'art du développement logiciel.
la source
Au cours de mes années d'expérience:
flavor of the day
(parfois bon, souvent mauvais).Comme indiqué lors d'une discussion sur les modèles, le groupe de quatre n'a pas inventé de modèles. Ils ont proposé une terminologie et des modèles de solutions qui étaient déjà appliqués.
Contrairement à de nombreux autres domaines, il y en a encore beaucoup qui ne sont pas une pratique courante. J'ai vu beaucoup de trucs de pointe aller et venir. Beaucoup d'entre elles reformulaient des techniques déjà en pratique, et celles-ci réussissaient généralement dans une certaine mesure. D'autres ont plus ou moins disparu et la plupart ont adopté de nouvelles approches. (Quelqu'un a vu une langue de 5e génération récemment?)
Les programmeurs que j'ai vus qui sont les plus efficaces peuvent sélectionner et assembler des composants éprouvés dans une solution de travail. Cela implique rarement quelque chose de tranchant, ce qui augmenterait généralement le risque du projet. La capacité de s'appuyer sur des travaux déjà réalisés nous permet d'élargir la portée de ce qui est possible.
Les langages de programmation ont tendance à tomber dans relativement peu de familles. La connaissance d'une langue dans une famille facilite le travail avec des langues similaires. Comprendre les bibliothèques disponibles dans la langue et les exploiter peut augmenter considérablement la productivité et la fiabilité. En général, je choisirais une langue plus ancienne avec des bibliothèques appropriées plutôt qu'une langue plus récente sans bibliothèques appropriées.
Lors de l'application de nouvelles technologies, il est important d'éviter le
Because We Can
syndrome. L'ajout d'une nouvelle technologie, car c'est la saveur de l'année, a tendance à causer plus de problèmes qu'elle n'en résout. Savoir quand la technologie résoudra un problème réel et quand elle ne fera qu'ajouter de la complexité est une compétence utile.Un très bon programmeur résoudra les nouveaux problèmes et utilisera les solutions existantes pour le reste. Peu d'entreprises ont besoin d'une technologie de pointe, toutes ont besoin de solutions solides.
Je regrette généralement de glisser le long de la lame de rasoir. Je ne me souviens pas avoir jamais regretté d'avoir utilisé une technologie éprouvée. Cependant, une grande partie de ce qui est décrit
new
est le reconditionnement de quelque chose d'existant. Habituellement, ce reconditionnement facilite la compréhension et l'application des choses.la source
Personne ne peut tout suivre. Vous avez probablement été très occupé à suivre l'offre de Microsoft. Avez-vous regardé Ruby sur RAILS et les bases de données Python et NoSQL et la création d'applications Hadoop et mobiles et CSS et HTML5 et jQuery et ExtJS et ...?
Je suis dans le logiciel depuis longtemps. J'essaie de suivre les nouvelles technologies, comme les nouvelles idées de bases de données massivement parallèles, et j'ignore le laid (par exemple MFC, WinForms, SOAP, XML, EJB) et le trivial autant que possible. Surtout, nous voyons juste de grandes vieilles idées reconditionnées et finalement adoptées. Programmation fonctionnelle? J'utilisais INTERLISP en 1977. Des applications de téléphonie mobile? Il s'agit de la même interface utilisateur événementielle et des graphiques 2D que nous utilisons depuis au moins 30 ans. Bien sûr, il y a un art à concevoir une application utilisable pour un petit écran tactile, mais la programmation n'est pas nouvelle du tout.
la source
Je suis d'accord avec @Amir que votre compétence est la résolution de problèmes et non votre domaine linguistique, mais j'apprécie votre préoccupation, donc:
Si vous avez la liberté de choisir votre langue actuelle, choisissez-en une aussi proche que possible des premiers principes (c.-à-d. Une langue de type C ++) de sorte que lorsque votre travail pousse dans un nouveau domaine, la courbe d'apprentissage est moins longue - car elle est juste abstractions au-dessus de vous. Si vous n'investissez actuellement que dans des langages de haut niveau, une abstraction est beaucoup plus difficile (même si ce n'est que dans la perception).
Si vous ne disposez pas de ce flux, utilisez simplement vos 8 heures de travail. Si votre passion est élevée, vous ne serez pas "coincé" et vous trouverez toujours des problèmes intéressants à résoudre qui vous amèneront naturellement à en savoir plus. .
la source
Cela dépendra de votre travail et des emplois que vous souhaitez. Il existe des positions où les développeurs utilisent encore des technologies plus anciennes. Encore beaucoup de COBOL pour continuer (je suis sûr que quelque chose a changé.).
Travailler dans une entreprise qui effectue un changement majeur comme vous l'avez décrit peut mettre certaines personnes au chômage. Parfois, l'entreprise investit dans la formation au lieu de vous obliger à l'apprendre à votre rythme.
Avoir une famille peut limiter vos choix de travail. Peut vous rendre moins mobile. Pouvez-vous aller travailler à une start-up pour la moitié de votre salaire dans l'espoir d'un gros salaire - peut-être pas avec des enfants et des hypothèques.
Le plus récent n'est pas toujours meilleur et beaucoup ne durent pas.
la source
Je ne suis pas dans le domaine médical, mais que diriez-vous d'une analogie entre un développeur et un médecin? Les deux domaines ont connu d'énormes changements au cours des 20 dernières années et le rythme du changement est de plus en plus rapide. Tous les médecins suivent-ils? Non. Tous les développeurs suivent-ils? Non. Pouvez-vous faire une généralisation sur les développeurs ou les médecins avec 14-15 ans d'expérience? Plus d'expérience signifie que vous disposez d'un plus grand nombre de réponses à des problèmes similaires. L'expérience l'emporte-t-elle sur l'intérêt? Pas à long terme.
Pensez comme un requin qui doit nager ou mourir. Continuez à apprendre ou à mourir (ou passez à la gestion, qui est la voie où la plupart se dirigent, car la carrière de développement culmine à environ 10-15 ans).
la source
J'ai les mêmes préoccupations dans le fond de mon esprit, mais ma pensée récente à ce sujet est d'arrêter d'essayer de prédire votre propre capacité d'adaptation et de simplement vous adapter. Je trouve que si je suppose que je peux suivre, je le fais habituellement. Si je m'inquiète de devenir obsolète, cela peut en faire une prophétie auto-réalisatrice.
Comme vous l'avez dit, restez sur vos gardes. Et si vous ne pouvez pas suivre, ne transpirez pas trop. La technologie a une drôle de façon de boucler la boucle, et vous pourriez vous retrouver tout de suite dans le courant dominant performant.
la source