Je ne programme pas pendant mon temps libre. Est-ce que cela fait de moi un mauvais développeur?


387

De nombreux blogs et conseils sur le web semblent suggérer que pour devenir un excellent développeur, il ne suffit pas de faire son travail quotidien. Par exemple, vous devriez contribuer à des projets open source pendant votre temps libre, écrire des applications pour smartphone, etc. En fait, beaucoup de ces conseils semblent suggérer que probablement dans la mauvaise carrière.

Cela ne sonne pas vrai avec moi. J'apprécie mon travail, mais lorsque je rentre du bureau, je ne suis pas d'humeur à retourner directement à l'ordinateur et à commencer à coder jusqu'à l'heure du coucher. Je n'ai que quelques heures de temps libre chaque jour et je préfère les consacrer à d'autres passe-temps, voir des amis ou aller dehors que devant l'ordinateur.

Je suis passionné par la programmation et je travaille occasionnellement en dehors du travail. Je m'engage pour mon développement personnel et passe du temps à lire des blogs et des livres techniques comme moyen de continuer à apprendre et à devenir meilleur. Mais cela ne va pas jusqu'à vouloir utiliser tout mon temps libre pour le codage.

Est-ce que cela signifie que je ne suis pas un vrai développeur de logiciels? Est-il possible de devenir un bon développeur de logiciel sans faire de travail supplémentaire en dehors de votre travail? Je serais très intéressé d'entendre ce que vous pensez.

Mise à jour: merci à tous pour vos commentaires et réponses. Beaucoup de bonnes pensées et de conseils!


133
Je pense que cela vous rend plus normal, vous avez probablement plus de connexion avec ce que nous, les geeks, appelons la "vraie vie". Valeur que.
Orbling

146
@Orbling Quelle est cette "vraie vie" dont vous parlez? Est-ce similaire à WoW? Est-ce qu'il fonctionne sur un OS 64 bits?
biziclop

18
@biziclop - C'est comme WOW avec de meilleurs graphismes et un jeu beaucoup plus fastidieux.
ChaosPandion

39
@ChaosPandion: Les quêtes aspirent r / l, long, terne, et le butin n'est certainement pas épique.
Orbling

4
Par souci d'efficacité, je vous recommande d'essayer de nouvelles choses et de travailler sur des projets personnels alors que vous êtes censé travailler. De cette façon, vous avez toujours votre temps libre limité. :-)
Carson63000

Réponses:


446

OMI, cette attitude vient de gens qui ont des emplois horribles et qui séduisent, combinés à des compétences de gestion du temps piss-pauvres. Si, en gros, vous tapez des formulaires Web toute la journée, sortez et obtenez un travail plus stimulant, ou commencez le vôtre.

Voici la chose. Un musicien de concert (violoncelliste / pianiste / peu importe) exercera au maximum 6 heures par jour. La plupart ne pratiquent que quelques heures par jour. au plus haut niveau

Les gens disent programme plus parce que vous en apprenez plus, mais c'est un écran de fumée. 8 heures par jour, c'est beaucoup .

Le progrès n'est pas linéaire. C'est logarithmique:

entrez la description de l'image ici

La seule raison pour laquelle un musicien peut pratiquer plus de 3 heures, c'est qu'il doit éliminer le 1% supplémentaire que ces heures lui rapportent. Si vous pensez que cela s'applique à vous, si vous résolvez un problème que CS a résolu il y a deux décennies, vous devez alors démarrer un complexe prima-donna.

J’ai déjà travaillé dans des entreprises de fabrication d’autocuiseurs, et croyez-moi, la quantité réelle de travail accomplie par ces gars-là n’est pas meilleure qu’une entreprise comme 37signals qui impose des contraintes à cette tâche : http://37signals.com. / svn / posts / 996-pourquoi-je-aime-travailler-avec-la-famille

En fin de compte, vous êtes peut-être devant un ordinateur pendant 10 à 12 heures et au bureau pendant 2 autres heures, sans compter le déjeuner de 90 minutes que vous avez pris, les 2 heures que vous avez passées à parcourir la discussion. forums, et l'heure de pause vous avez dû jouer à l'un des nombreux jeux disposés dans le bureau (baby-foot, piscine, yada ...).

Regardez ce graphique. Revenons maintenant à moi.

Votre esprit a réellement la possibilité de s’étendre beaucoup plus si vous le pratiquez dans une autre activité: apprendre à jouer d’un instrument . Apprendre une langue étrangère . Mieux encore, sortez et faites de l'exercice, et connectez-vous avec des personnes réelles .

Sur la nature logarithmique de la productivité:

Dans la célèbre étude de 1993 sur les jeunes violonistes, Anders Ericsson, chercheur en performance, a constaté que les meilleurs pratiquaient tous de la même manière: le matin, en trois incréments de 90 minutes maximum, avec une pause entre eux. Ericcson a retrouvé le même schéma chez d'autres musiciens, athlètes, joueurs d'échecs et écrivains.

Pour une productivité réelle, moins c'est vraiment plus

C'est en fait un principe bien connu dans le monde des affaires, je suis surpris que plus de programmeurs n'en aient jamais entendu parler.

Mise à jour: Plus d'informations sur l'étude Ericsson.

La notion selon laquelle il faut 10 000 heures / 10 ans pour devenir compétent provient en réalité des études effectuées par Ericsson, et non de Malcom Gladwell.

Comme nous le savons tous, vous pouvez avoir 1 année d’expérience répétée 10 fois ... vous n’avez donc pas le droit de rester dans le siège pendant 10 ans. Ce qui est qualifié est ce que Ericsson appelle une pratique délibérée .

Il a constaté que ce principe était valable pour l'athlétisme, la musique, l'écriture, les échecs et les mathématiques. Il définit en outre la pratique délibérée comme étant si laborieuse que même aux plus hauts niveaux, on ne peut consacrer qu'environ 4 heures par jour . Sinon, vous souffrirez de surentraînement ou d'épuisement professionnel. Encore une fois, il reconnaît que les retours décroissants en pratique délibérée peuvent aller jusqu’à 4 heures environ.

Au sujet de ne pas avoir un bon travail / difficile:

Foutaise. Soit obtenir un meilleur emploi, ou est ici une idée: Faites votre travail actuel en quelque chose de c'est pas , du moins en ce moment.

L'un des meilleurs programmeurs que je connaisse est devenu programmeur de maintenance sur un système traditionnel constitué de dizaines de programmes et de centaines de milliers de lignes de code. La plupart d’entre elles avaient été tellement modifiées au fil des années qu’il fallait dire qu’il n’y avait plus de design cohérent.

C'était quasiment un travail sans issue et sans issue. La direction voulait que vous gardiez la tête basse et ne corrigiez que les fichus bugs. Les bons développeurs travaillaient sur le projet greenfield. Les gens sont venus ici pour passer leurs derniers jours jusqu'à leur retraite, ou ont acquis quelques années d'expérience avant de passer au développement de nouvelles applications. Alors que la plupart des programmeurs se plaignaient du manque de développement de carrière, ou de la possibilité d'apprendre de nouvelles choses, ou de ne pas avoir de projets passionnants sur lesquels travailler, ou plus généralement de se plaindre que personne ne leur permette de le faire , ce gars s'est simplement assis et a commencé à faire le travail qui devait être fait.

Et en l'espace de deux ans, il avait transformé ce système de code de spaghettis infernal en un jeu d'enfant en un objet d'une grande beauté fonctionnant comme une montre suisse. La transformation était si complète que le vice-président de la division a commencé à accorder de plus en plus d'attention au projet existant et à remettre en question la valeur du projet "greenfield". Bien qu’il n’ait pas de titre, les responsables des opérations le consultent en tant que leader de facto du groupe. Lorsque je suis parti, le vice-président parlait de la création d'un nouveau rôle d'architecte de systèmes pour lui ...

Je ne suis pas sûr de ce qui lui est arrivé après cela, mais il m'a appris deux leçons très importantes:

  1. Votre travail est ce que vous faites, et il y a des problèmes intéressants à résoudre partout . Si vous n'aimez pas écrire les écrans CRUD, résolvez le problème en les générant automatiquement.

  2. Ne restez pas à attendre que des occasions se présentent à vous. Les chances sont qu'ils ne le feront jamais.


Commentaires: les commentaires servent à demander des éclaircissements et non à prolonger la discussion. Si vous avez une solution, laissez une réponse. Si votre solution est déjà publiée, veuillez la revérifier. Si vous souhaitez discuter de cette question avec d'autres personnes, utilisez le chat . Voir la FAQ pour plus d'informations.

30
Ceci, et de nombreuses autres réponses, mettent beaucoup trop l'accent sur la programmation en tant que "pratique". Croyez-le ou non, pour continuer sur la comparaison des musiciens, ils jouent en fait aussi pour le plaisir. Ce que recherchent les enquêteurs pour trouver quelqu'un qui programme dans leurs temps libres, ce n'est pas quelqu'un qui ressent le besoin constant de pratiquer tout le temps. Ils recherchent quelqu'un qui est passionné et qui aime vraiment ce qu'ils font. Si votre métier vous passionne, vous en faites souvent un passe-temps, et il est difficile de s'en sortir. Ce n'est pas différent de ramasser n'importe quel autre passe-temps.

7
L'exemple du musicien n'est pas vraiment bon. Quand un musicien atteint un haut niveau de compétence, quand il a appris toute la théorie, quand il peut composer des chansons les yeux fermés, quand il peut jouer plus de 9000 instruments en même temps, il n’a plus rien à faire. Le programmeur ou l’ingénieur informaticien doit se familiariser avec les nouvelles technologies TOUTE la vie. Il y a toujours quelque chose de nouveau à apprendre. Donc, pour répondre à la question, un gars qui programme toute la journée sans vie sociale est bien meilleur qu'un gars qui ne programme pas pendant ses temps libres.

2
@GabrielLlamas Les théories musicales sont des éléments fondamentaux tels que les bases des algorithmes, l'informatique distribuée et les systèmes d'exploitation que nous apprenons au collège. Ces bases ne changent pas beaucoup les heures supplémentaires. De retour dans environ 20 ans, nous avions déjà le modèle client et serveur, et maintenant nous avons toujours le modèle client et serveur. Donc, les bases du client et du serveur sont toujours valables, mais le niveau le plus élevé change rapidement. Vous pouvez imaginer différents instruments sous différentes technologies telles que HTML, Javascript. Mais si vous êtes capable d'appliquer les principes fondamentaux, les choses seront similaires.
David Gao

1
Un autre exemple est le suivant: une fois que vous savez programmer en c, apprendre le c ++ ne sera pas difficile. Je me souviens avoir résolu les questions de programmation de mon colocataire en utilisant Scheme sans connaître aucun Scheme. Learning Scheme n'a pas été difficile pour moi parce que je connais très bien le langage fonctionnel.
David Gao

150

Il y a plus caché dans ce message.

Beaucoup de programmeurs enthousiastes aiment explorer, expérimenter, suivre leurs idées, c'est ainsi que nous apprenons et obtenons nos compétences et notre vision.

Habituellement, vous ne suivez pas vos intérêts pendant les heures de travail. Vous faites juste les choses qu'on vous dit de faire et c'est tout. Seuls quelques-uns d'entre nous ont la chance de faire au travail ce que nous ferions personnellement même s'ils ne sont pas payés.

Par conséquent, si vous ne faites rien de plus, vous ne développez pas votre potentiel. Et c'est exactement le problème.


2
wow c'est un soulagement énorme, car parfois je me sens intéressé à apprendre d'autres aspects de la programmation, mais le travail donne simplement l'impression que tout se passe comme si de rien n'était.
Melaos

3
Vrai. Il est important de connaître les accords d’invention que vous avez éventuellement signés lors de l’admission. Nous ne les avons pas utilisées, mais j’avais un accord verbal avec mes programmeurs: s’il s’agit d’une activité en dehors des heures de travail et ne fait pas directement concurrence à la société, passez un bon moment. Cela ne me dérangeait même pas s'ils utilisaient du matériel de l'entreprise, même s'il était généralement admis que le garder était plus propre.
Peter Rowell

3
C'est bien de suivre sa curiosité en dehors des heures. C’est peut-être comment déployer la prochaine version de Windows automatiquement dans l’ensemble de votre entreprise du jour au lendemain (Mwah hah hah). Ou il peut s'agir de photographie, de brassage de bière ou d'aviron. Les intérêts extérieurs font de vous une personne plus complète. Il ne DOIT PAS être lié à votre travail quotidien.
Rapidement maintenant

5
-1 Comme d'autres l'ont noté dans d'autres réponses et commentaires, cela implique que vous ne pouvez pas obtenir de manière réaliste un travail intéressant, amusant et stimulant. Dans mon expérience personnelle, ce n'est pas vrai. J'ai appris beaucoup de nouvelles choses dans la plupart de mes emplois jusqu'à présent. IMHO c'est une question d'attitude personnelle au moins autant que celle de culture d'entreprise.
Péter Török

26
Si vous aimez programmer et n'appréciez pas votre travail, vous devriez passer votre temps libre à chercher un meilleur travail.
Nikie

70

Cela ne fait pas de vous un mauvais développeur, mais malheureusement, vous devez toujours rivaliser avec ceux qui le font.

Lisez ceci sur le blog de Seth Godin :


Déraisonnable

Il est déraisonnable de se lever du lit une journée de neige, lorsque l'école a été annulée, et de transformer le temps d'indisponibilité en six heures de travail dans un laboratoire de physique à crédit supplémentaire.

Il est déraisonnable de lancer un produit technologique qui franchit la courbe de développement de neuf mois, amenant la prochaine génération beaucoup plus tôt que ses concurrents plus raisonnables.

Il n'est pas raisonnable pour une entreprise de camionnage de répondre au téléphone lors de la première sonnerie.

Il est déraisonnable de démarrer une nouvelle entreprise sans la réassurance que l'argent peut apporter.

Il est déraisonnable de s'attendre à ce que le bureau du médecin dispose d'un personnel de réception agréable et utile.

Il n'est pas raisonnable de s'éloigner d'un bon poste dans l'économie actuelle, même si vous voulez faire quelque chose de courageux et d'original.

Il est déraisonnable pour les enseignants de s’attendre à ce que nous puissions aider les enfants défavorisés des quartiers défavorisés à réussir dans leurs études secondaires.

Il est déraisonnable de traiter vos collègues et vos concurrents avec respect, étant donné la pression que vous subissez.

Il est déraisonnable de s’attendre à ce que toute personne autre qu'une grande femme, dotée à la fois de motivation et d’avantages, puisse faire quelque chose d’important dans un monde où le jeu se joue contre des gens ordinaires.

Il est déraisonnable de consacrer des années de votre vie à créer un produit que la plupart des gens n'apprécieront jamais.

Heureusement, le monde est rempli de personnes déraisonnables. Malheureusement, vous devez leur faire concurrence.


13
Ouais, il est également déraisonnable de travailler 8 heures par jour, puis de rentrer chez moi pour travailler encore. Pour qui travailles-tu? Pour qui travaillez-vous? Et pourquoi? Vous devez répondre à ces questions (qui paye? Pourquoi? Pour obtenir quoi?) Si vous êtes épuisé mentalement à la fin d'une journée, la meilleure chose à faire pour vous-même est - autre chose!
Rapidement maintenant

37
Vous présumez que les développeurs ne sont pas contestés au travail et n’apprécient pas leur travail. Ce n'est pas vrai. Les personnes qui ne font que programmer au travail ne le font pas à la maison car elles sont déjà pleinement satisfaites
Personne

8
-1 parce que a) les citations ne sont pas directement liées à cette question, b) IMO (la plupart des) ces choses ne sont pas déraisonnables du tout. Beaucoup de gens raisonnables peuvent penser à long terme et à court terme. OTOH, la plupart d'entre nous ont l'habitude d'inventer de belles (et fausses) explications rationnelles de notre paresse / incompétence / insouciance :-(
Péter Török le

13
-1 Il est déraisonnable d'appeler beaucoup de choses raisonnables déraisonnables. Cela n'ajoute rien à la question et sonne juste, en grande partie comme beaucoup de choses écrites par Seth Godin.
Vitor Py

5
"Il est déraisonnable de s'attendre à ce que le bureau du médecin dispose d'un personnel agréable et serviable à la réception." Non ce n'est pas. Ce qui est déraisonnable, c'est que les médecins réclament ce qu'ils font et nous soumettent ensuite à du personnel de bureau grossier, à de longues attentes dans les salles d'attente de leur bureau et à un manque de respect personnel à leur égard.
GreenMatt

57

Pour répondre à la question posée: Ne pas programmer pendant votre temps libre ne fait pas de vous un mauvais développeur. Cependant, programmer pendant votre temps libre peut faire de vous un meilleur développeur.

Programmer pendant votre temps libre ne nuira certainement pas à vos compétences, mais vous ne devriez pas vous sentir obligé de le faire. La programmation semble être un domaine relativement unique parce que, pour beaucoup de gens, c'est à la fois leur travail et leur passe-temps; ils aiment donc programmer pendant leur temps libre.


8
La programmation n’est pas unique car elle est à la fois une carrière et un loisir. Quelques exemples: j’ai connu une fois que plusieurs pilotes de ligne avaient leurs propres petits avions qu’ils pilotaient pour le plaisir. J'ai connu des astronomes professionnels qui observaient les étoiles de côté.
GreenMatt

4
Par " relativement unique", je voulais dire que c'est l'un des rares, mais certainement pas le seul. Je connais beaucoup plus de personnes qui, même si elles pourraient apprécier leur travail, ne passeraient pas leur temps à faire sans être payées. Il est souvent difficile de trouver un emploi qui vous passionne.
shortkaik

1: La technologie, les langues et les techniques changent si souvent et si rapidement. Les programmeurs doivent passer du temps à perfectionner leur métier. // Question connexe: Seriez-vous à l'aise avec un PCP qui n'a pas lu les revues médicales?
Jim G.

Je pense que cette réponse résume le mieux la situation. Mais cela dépend entièrement de la situation. Si votre travail répond à tous vos besoins en matière de programmation, en termes de développement personnel, de mise à jour technologique, etc., il est beaucoup moins nécessaire de travailler à votre rythme. Toutefois, si votre travail est assez facile et que vous utilisez une technologie plus ancienne, vous devriez consacrer un peu de temps à l’amélioration de vos compétences et de vos connaissances à votre rythme.
Nellius

@shortkaik "la programmation pendant votre temps libre peut faire de vous un meilleur développeur" - Ce n'est pas toujours vrai. Si votre travail vous met au défi, alors si vous programmez également à la maison, cela contribuera davantage à votre épuisement et à votre surmenage qu'à vos compétences, cela pourrait également nuire à votre productivité au travail. D'un autre côté, si vous n'êtes pas satisfait de ce que votre travail vous donne (et vous prend), un codage supplémentaire après cette opération pourrait être une bonne décision.

23

Non, cela ne fait pas de vous un mauvais programmeur. En fonction de ce que vous faites, cela peut faire de vous un meilleur programmeur à long terme. En début de carrière, cela peut influer sur la rapidité avec laquelle vous acquérez la variété de compétences dont vous avez besoin. Cependant, vous pouvez acquérir des compétences et des informations qui vous aideront à long terme. Faire de l'exercice ne ferait pas de mal non plus.

Il existe de nombreuses recherches qui montrent que la performance se situe autour de 40 semaines de travail. Bien que nous puissions produire pendant un certain temps en travaillant plus longtemps, nous perdons notre efficacité à long terme. Les recherches que j'ai vues montrent que les personnes travaillant 80 semaines sont à peu près aussi productives que celles travaillant 40 heures par semaine.

Vous pouvez réfléchir à quelques points qui pourraient vous aider à mieux performer:

  • Que faites-vous? Pouvez-vous le faire mieux? Avez-vous besoin de le faire?
  • Qu'apprends-tu? Qu'as-tu besoin d'apprendre?
  • Quels problèmes rencontrez-vous? Qui est le mieux pour les résoudre? Que pouvez-vous faire?

Programmer comme passe-temps ne signifie pas travailler en dehors des heures normales, mais cela n’a pas d’échelle. Mais programmer un jeu sur iPhone dans ObjC en tant que passe-temps peut améliorer vos compétences et votre productivité totale au travail (si le travail consiste par exemple à écrire des applications financières en Java EE).
Heiko Rupp

@ Heiko True, mais il y a beaucoup d'autres compétences que la programmation qui peuvent faire de vous un meilleur programmeur. Un bon développeur possède de nombreuses compétences en plus de la programmation.
BillThor

Bien sûr :) Je faisais particulièrement référence à la "productivité maximale à 40h" - qui sonnait comme si vous réalisiez une programmation de 5h pour les loisirs, vous ne pouvez faire que 35h au travail. Ce qui, je pense, n'a pas raison
Heiko Rupp,

1
@Heiko Si le travail est suffisamment différent, vous pourrez peut-être faire les deux. Mes premières années après l'obtention de mon diplôme, j'ai régulièrement dépassé les 40 heures par semaine, mais j'ai appliqué une grande variété de compétences. J'ai beaucoup appris et n'a pas semblé toucher le mur des performances. Heureusement, j'avais un ami qui m'entraînerait hors du bureau un jour de soirée. Sur un autre projet, je suis rentré chez moi à 14 heures lorsque j'ai réalisé que je n'avais rien accompli depuis 10 heures. Toujours facturé les 4 heures.
BillThor

15

Est-il possible de devenir un bon développeur de logiciel sans faire de travail supplémentaire en dehors de votre travail?

Absolument.

Cela peut prendre plus de temps que si vous deviez consacrer des heures supplémentaires à perfectionner vos compétences. J'ai également trouvé difficile de consacrer suffisamment de temps à l'amélioration de moi-même si je suis employé à plein temps et que je fais peu de programmation en dehors des heures de travail.

Quand j'étais plus jeune, j'ai consacré beaucoup plus de temps à l'apprentissage qu'aujourd'hui. Les concepts que j'utilise quotidiennement sont profondément enracinés à ce stade, et il me semble plus facile d'acquérir des connaissances supplémentaires avec cette expérience à mon actif.

Les "bons" programmeurs semblent consacrer plus d'heures supplémentaires parce qu'ils sont obsessionnels par nature, qu'ils ont tendance à être anti-sociaux et qu'ils aiment vraiment la programmation et le cycle de la résolution de problèmes.


13

Dans l’ensemble, il s’agit de trouver le bon équilibre dans la vie.

L'important est de savoir si vous aimez programmer et si vous continuez à apprendre, quel que soit votre niveau. Que vous programmiez ou non en dehors du travail ne fait pas automatiquement de vous un "bon" ou un "mauvais" programmeur.

Pour vous donner une perspective personnelle, je programme depuis environ 25 ans (d'abord comme enfant, puis professionnellement). Je l'aime absolument.

Cependant, je ne programme presque jamais en dehors du travail. Cela a à voir avec plusieurs choses:

  • J'ai beaucoup de chance au travail de pouvoir faire ce que j'aime, tous les jours, toute la journée.
  • Tout simplement, il y a d'autres choses dans la vie et il n'y a que beaucoup d'heures dans la journée.

-1: Oui, il y a d'autres choses dans la vie, mais cela ne répond pas à la question. vous essayez simplement de vous convaincre que vous choisissez le meilleur chemin.
Jim G.

9

Vous pouvez devenir un bon programmeur en ne codant que pendant le travail, surtout si vous gérez bien votre carrière. Cependant, les plus grands programmeurs codent également pendant leurs heures creuses. Cela dit, une personne qui choisit de bons emplois offrant de nombreuses opportunités d’apprentissage, utilise bien son temps de travail et ainsi de suite sera un meilleur programmeur journée de travail.

Bien que le codage à la maison soit utile, je dirais que maximiser la valeur de votre environnement de travail (en apprenant des collègues, choisir de bons emplois, gérer votre carrière de manière agressive) est souvent encore plus précieux. Les plus grands programmeurs font les deux, et ont de bonnes attitudes envers l'apprentissage et le mentorat des autres.


"Cependant, les plus grands programmeurs codent également pendant leurs heures creuses." Vous n'avez aucune preuve de cela.
Djechlin

7

Le vrai problème est de savoir si un nouveau développeur code suffisamment (pour résoudre suffisamment de problèmes) pour parcourir quelques centaines de milliers de lignes de code de pratique et devenir un bon programmeur.

En théorie, cela peut être fait au travail, à votre propre rythme ou les deux. La pratique doit être quelque peu autonome, de sorte que vous puissiez apprendre ce que vous devez apprendre. Cela signifie que le travail est un peu flexible.

Très souvent, les emplois de base sont un groupe de corrections de bugs ou d’autres travaux qui ne vous apprendront pas à être bons. Ce que vous devez faire, c'est écrire beaucoup de code à partir de zéro, et ce code sera probablement mauvais. Il est difficile pour les employeurs de payer pour cela. C'est pourquoi les gens finissent par faire un projet open source de côté ou lancer une startup ou autre.

Quand les gens disent que vous devez programmer pendant votre temps libre, je pense que cela signifie vraiment que vous devez contrôler très tôt des années de pratique enrichissante. Vous devez faire tout ce qui est nécessaire pour maîtriser la technique et apprendre à écrire et à gérer une base de code volumineuse à partir de rien. Si personne ne vous paye pour écrire une série de projets probablement désastreux à partir de rien, le temps disponible est la seule option.

Si vous avez déjà pratiqué la pratique plus jeune et êtes devenu un bon programmeur, je ne pense pas que vous allez perdre les compétences de base si vous la gardez 9 à 5 plus tard. Plus tard, il s’agit plus de suivre les nouvelles technologies qui ne prennent pas beaucoup de temps.

Cependant, c’est un poste d’entrée de gamme rare qui vous donnerait la quantité et la qualité de la pratique pour devenir un bon programmeur en premier lieu. Un nouveau développeur doit prendre l’initiative d’apprendre, pas seulement de passer du temps dans un poste de débutant à effectuer des tâches de débutant.

Il serait très difficile de devenir un bon programmeur à partir de zéro si vous aviez déjà une famille et insistiez beaucoup sur l'équilibre travail-vie personnelle. Juste comme il serait vraiment difficile de devenir médecin ou de devenir un musicien virtuose ou quoi que ce soit d'autre dans cette situation. Il y a une raison pour laquelle les gens ont tendance à passer au travers de leurs milliers d'heures de pratique quand ils sont plus jeunes que quand ils sont plus âgés.


5

Si je passais du temps dans les six prochains mois à développer un jeu de base pendant mon temps libre et que vous ne le faites pas, et en supposant que toutes les autres choses soient égales (elles ne le sont jamais), lequel de nous en saurait plus? Lequel d'entre nous aurait plus de compétences et d'expérience?

Cet effet serait cumulatif, car la connaissance antérieure des heures creuses serait introduite dans de nouveaux travaux et de nouvelles connaissances en dehors des heures de travail.

Et c'est pourquoi les gens conseillent de programmer pendant leur temps libre, pour autant que je sache.


5

Entre le grand et le mauvais, il y a beaucoup de niveaux entre les deux. Vous ne pouvez pas devenir un bon développeur en le faisant seulement environ 8 heures par jour, éventuellement en travaillant sur des problèmes d’un domaine très limité.

Si votre travail est suffisamment varié, vous pouvez devenir "décent" ou "accompli" ou l'adjectif que vous préférez, mais pour être un bon développeur, vous devez être un peu fou, j'en ai bien peur.

Une autre raison de faire de la programmation pour passe-temps est que dans un travail, il est souvent nécessaire de respecter des normes non optimales et de faire des compromis en général. Même lorsque vous apprenez quelque chose de nouveau, vous n'êtes peut-être pas autorisé à l'utiliser.

Un autre exemple encore plus prosaïque est que tout code que vous écrivez au travail appartient à votre employeur. Vous ne pouvez pas y revenir et apprendre de vos vieilles erreurs des années plus tard, lorsque vous travaillez pour quelqu'un d'autre.


5

Il faut 10 000 heures d’efforts pour devenir expert en quoi que ce soit. [Michael Gladwell, "Outliers"]

Donc, faire un travail supplémentaire avant d’atteindre ce niveau vous permettra d’accéder rapidement au statut d’expert réel.

Une fois que vous avez dépassé ce niveau, le fait de passer plus de temps aura des rendements faibles ou décroissants.


3
Mais qu'est-ce qu'une "chose" en quoi que ce soit? Est-ce que la "programmation" est une "seule" chose, ou est-ce que les choses sont "haskell", "lisp", "java", "python", etc.? Ou "programmation fonctionnelle", "programmation GUI", "programmation bas niveau", etc.? En soi, cela ne nous dit rien.
André Paramés

4

Vous ne devriez pas le regarder comme "Est-ce que ça me fait un mauvais programmeur" parce que, comme chaque compétence, plus de pratique en rend un meilleur.

Donc, si vous voulez être meilleur que ce que vous êtes actuellement et apprendre de nouvelles technologies et domaines que votre travail ne permet pas, c’est là que l’effort supplémentaire et le temps consacré sont utiles.

Mais le temps supplémentaire passé à coder (juste pour prouver à quelqu'un que vous codez en plus) ne signifie pas nécessairement que vous devenez un bon programmeur, sauf si vous apprenez ce que vous faites et faites quelque chose de différent ou améliorez ce que vous savez déjà, plutôt que de couper / copier / coller à l'aveugle et mettre en place des bidouilles. Faire des heures supplémentaires et faire la même chose encore et encore ne pense en aucun cas que cela va vous aider à vous améliorer.


Je pense que le point de vue du PO est que certains programmeurs répandent l'idée que si vous ne programmez pas en dehors du travail, vous êtes un mauvais programmeur. J'avais perdu le compte du nombre de fois où j'ai vu des publications sur SO, ici et ailleurs, dans lesquelles quelqu'un dit que lorsqu'il interroge un nouvel employé potentiel, il demande de quel côté se présente la personne interrogée, et si la réponse est "Aucune ", alors la personne interrogée n'est pas perçue comme assez passionnée par la programmation, car elle n'est pas prise en compte pour le poste.
GreenMatt

+1 - Ce n'est pas très utile si tout ce que vous faites est ce que vous faites déjà au travail.
Dunk

Le simple fait de pratiquer seul ne vous rend pas meilleur, vous devez agir sur les bonnes choses ou vous pouvez réellement avoir de mauvaises habitudes enracinées même plus et devenir de plus en plus mauvaises.
HLGEM

4

Pendant la journée, votre programmation est courte. Il y a de l'argent à gagner, vous savez exactement combien et pour quoi, et vous n'avez pas beaucoup plus à gagner qu'un salaire.

La nuit, vous travaillez sur des paris longs - des idées folles qui ne fonctionneront pas du tout. Ce sont les projets qui vous propulseront hors de la base. C'est ainsi que vous devenez l'inventeur de PHP plutôt que le code utilisé par celui-ci.

J'interviewe de nombreux programmeurs et leur feu vert instantané est de savoir s'ils ont fait des choses intéressantes en dehors des heures de travail. C'est étonnamment rare.

Bien que je dirais ceci: il est une fois un gars qui a fait beaucoup de choses sympas en dehors des heures de travail s’est avéré être une pure embauche. Je suis toujours perplexe par ce type.


3

Etre un bon développeur de logiciels dans le coeur, dépend vraiment de votre coeur. Vous pouvez essayer d'être un grand musicien et consacrer beaucoup de temps à la musique, mais cela ne fait pas de vous un bon musicien.Vous avez besoin de profiter de ce que vous faites pour être bon dans ce domaine.Initialement, j'avais les mêmes questions J'avais, mais maintenant, à cause de mes goûts, j'ai commencé à faire des choses supplémentaires sur des logiciels autres que le travail normal. Cela a amélioré mes performances dans le travail normal et m'a également permis de consacrer beaucoup de temps à d'autres activités non liées aux logiciels. La ligne de base consiste donc à apprécier ce que vous faites et vous finirez par faire ce qui est requis.


3

La vraie question est ce que vous faites toute la journée. Les analogies avec les athlètes et les musiciens ne sont généralement pas appliquées correctement. Votre travail quotidien n'est pas une pratique, c'est une performance, à moins que vous n'ayez la capacité explicite de passer une partie de votre journée de travail dans une "pratique" authentique. Comment le sais-tu? Si vous n'avez jamais le temps de faire quoi que ce soit "bien" ou d'apprendre une nouvelle langue / technologie / cadre / etc. de manière approfondie, alors vous ne pratiquez pas, vous êtes performant. Les athlètes et les musiciens professionnels ne s'améliorent pas pendant le jeu ou le concert, ils s'améliorent pendant les entraînements ciblés. Donc, si vous êtes comme la plupart des gens, le seul moment où vous avez une véritable "pratique" de codage est en dehors du travail. Cela étant dit, cela ne vaut que si cela est ciblé. Si vous piratez toute la journée et ensuite toute la nuit, vous êtes fatigué, pas mieux.

Par exemple, vous devez optimiser un élément de code au travail, y appliquer les outils de profilage habituels, l’accélérer de 50% et passer à la tâche suivante, mais vous pensez que vous pourriez faire autre chose qui pourrait vous aider. plus mais vous n'avez pas le temps de les essayer. Si vous emportez ce morceau de code chez vous et que vous passez quelques heures supplémentaires à l'essayer, vous allez apprendre des techniques qui vous rendront meilleur la prochaine fois que vous optimiserez quelque chose. Vous ne faites pas la même chose à la maison qu'au travail.

La pratique consiste à ajouter des compétences et à perfectionner des habiletés et ces activités sont nécessairement effectuées de manière artificielle (c'est comme isoler un groupe de muscles dans le gymnase, personne ne le fait pour une activité physique normale). Construire des applications à la maison n'est pas automatiquement une pratique. Le travail à la maison doit être axé sur les techniques et le processus, et non sur le produit final. Si un produit final est ce dont vous avez besoin pour être motivé, c'est parfait. Juste ne tombez pas dans le piège de le développer de la même manière que vous le faites au travail.

Le mouvement de codage des kata est un exemple de ce qu’est la pratique.


3

Pour répondre à votre question: non, cela ne fait pas de vous un mauvais développeur.

Cependant , cela pourrait rendre votre vie professionnelle un peu plus difficile. Si vous avez un travail où vous apprenez constamment de nouvelles technologies qui vous aideront à poursuivre votre carrière (qu'il s'agisse de promotions pour votre emploi actuel ou de nouveaux emplois dans différentes entreprises), vous êtes prêt.

Mais si vous travaillez actuellement dans une entreprise où la technologie utilisée change rarement, alors dans 2 ou 5 ou 10 ans, vous aurez peut-être du mal à trouver le prochain emploi. Si vous codez chez vous avec les nouvelles technologies et avez quelque chose à montrer (application, site Web, projet open source, etc.), vous constaterez qu'il est beaucoup plus facile d'obtenir le prochain emploi.

Bien sûr, vous pourriez être tout à fait heureux de faire exactement la même chose pour les 40 prochaines années, et tant que votre entreprise et les technologies continuent d'exister, vous êtes prêt!


1

Il y a eu des moments dans ma vie où j'ai beaucoup codé en dehors du travail, et des moments où je n'en faisais pas parce que je travaillais sur autre chose. Vous devriez toujours apprendre, mais cela ne signifie pas que vous devez toujours apprendre la programmation pendant votre temps libre. Si vous voulez travailler sur une autre compétence, que ce soit la menuiserie, la couture, le jardinage, etc. pendant votre temps libre, cela vous aidera à grandir en tant que personne.

Ne tombez pas dans le piège de penser que vous savez tout ce que vous devez savoir sur la programmation pour pouvoir arrêter d'apprendre.


1

Ceci est en effet un post intéressant. Je développe des logiciels depuis 10 ans et j'adore mon travail! Moi aussi, j'ai beaucoup de loisirs et j'essaie de les gérer correctement. Mais j'aime essayer de nouvelles choses en passant une heure ou deux devant l'ordinateur avant d'aller me coucher. Dans mon cas, je suis accro à l'étude et à l'écriture de code de jeu. Je n'ai pas toujours le temps de jouer à des jeux, mais j'aime lire du code sur les jeux. Pour être honnête, je pense que le meilleur code que j'ai jamais vu provient de jeux et j'applique ces compétences à mon code au travail. J'apprends continuellement CHAQUE JOUR, alors IMO, si tu es développeur, tu n'atteindras jamais ton sommet, il y a TOUJOURS une meilleure façon de faire quelque chose ....


1

C'est un excellent post.

Je dirais que non, cela ne fait pas de vous un mauvais programmeur. Si vos critiques ont été bonnes et que vous remplissez bien vos tâches et à temps, vous êtes plutôt l'inverse. En toute honnêteté, je vous jure que vous remplissez le code au travail.

La principale raison pour laquelle je programme dans mes temps libres est que je ne me soucie pas vraiment de ce que je fais au travail et que j'utilise mes temps libres pour faire ce que j'aime. Ce que j'aime faire, c'est la programmation de jeux vidéo. Il n’existe pas de société de jeux valide dans laquelle je vis (j’ai une famille ici maintenant) et j’aide donc aux jeux indépendants quand je le peux. C'est le seul moyen de guérir les démangeaisons. Si je faisais ce que j'aimais toute la journée, il serait fort probable que je ne le ferais pas pendant mon temps libre.


1

Mon conseil sera le suivant: utilisez votre temps de déplacement pour apprendre des choses, pour vous tenir informé: lisez des livres informatiques, écoutez le podcast de Dev, etc. En ce qui concerne vos activités post-travail: cela ne change rien. Sinon, vous allez devenir une personne ennuyeuse.


1

Cela ne fait pas de vous un mauvais développeur, cela pourrait même ne pas faire de vous un développeur "correct", cela vous rend juste ce que vous êtes. Je pense cependant que vous constaterez que la plupart des gens qui sont d’excellents pirates informatiques ont tendance à vouloir essayer de nouvelles choses. À tout moment, je vais étudier de nombreuses langues, bases de données, frameworks Web, robotique, etc. J'ai deux enfants et une femme, une hypothèque, etc., mais j'attends avec impatience les moments où je peux obtenir 2 ou 3 heures à bidouiller avec des trucs. Bien sûr, C # et .NET sont très bien pour gagner un salaire et j'apprécie vraiment mon travail, mais jouer avec Scala et Lift a été une véritable explosion pour moi ces derniers mois. Il y a des développeurs qui se classeraient comme "passionnés" et ceux qui "se débrouillent".


1

Est-ce que cela signifie que je ne suis pas un vrai développeur de logiciels?

Absolument pas. Cela signifie simplement que vous aimez faire autre chose que le codage. Il n'y a rien de mal à cela, et cela ne vous rend pas meilleur ou pire que quiconque, développeur ou non.

Est-il possible de devenir un bon développeur de logiciel sans faire de travail supplémentaire en dehors de votre travail?

Bien sûr. Cela dépend en partie de votre environnement de travail. Si vous avez un travail ennuyeux, épuisant, qui aspire tout votre temps, puis des travaux d'entretien ennuyeux, le fait de pouvoir utiliser le temps de travail pour développer vos compétences sera très limité. Si vous avez le genre de milieu où vous avez une certaine latitude pour faire ce que vous voulez explorer et apprendre, profitez-en pour développer de nouvelles compétences qui aideront également votre employeur ou vos collègues.

Si vous trouvez quelque chose d'intéressant sur lequel vous souhaitez en savoir plus et que vous n'avez ni le temps ni la possibilité de l'utiliser au travail, vous devez le comparer aux autres exigences de votre temps, qu'il s'agisse de votre famille, de vos amis ou de vos loisirs.


+1 Oui, cela dépend vraiment de l'environnement de travail. Dans un endroit avec des gens intelligents (de préférence plus intelligents que soi-même ) qui, en équipe, se soucient de ce qu'ils font et cherchent constamment à tout améliorer (le produit final, le code sous-jacent, les outils, les conditions du lieu de travail, etc.), vous avez de bonnes chances de devenir un excellent développeur, même si vous préférez passer votre temps libre ailleurs que devant un ordinateur.
Jonik

1

J'ai récemment eu plusieurs entretiens pour engager des programmeurs. J'ai découvert que les candidats qui m'impressionnent le plus, à la fois en tant que programmeurs et en tant que personnes avec lesquelles je voudrais travailler, sont ceux qui consacrent beaucoup de temps à des activités non liées à la programmation (en particulier la musique, mais aussi les mathématiques pures, philosophie et littérature). Bien sûr, la plupart font aussi de la programmation pour passe-temps, mais ils ont également des intérêts équilibrés.


Maintenant, si je peux seulement convaincre les musiciens de cela ... ils semblent penser que vous ne pouvez pas être bon à plus d’une chose. La musique et la programmation sont très similaires.
Michael K

Vous avez répondu à une question totalement différente. Le type de personnes avec lequel vous préféreriez travailler va probablement être assez différent de ce que le type de personne représente pour un bon programmeur. Si vous voulez aimer les gens avec qui vous travaillez et passer du bon temps en société, alors le programme Uber n'est peut-être pas le meilleur choix. Cependant, si votre charge de travail typique est de 2 à 3 mois pour terminer des projets de 12 mois, la personnalité n'aura plus autant d'importance si vous découvrez que le super programmeur vous laissera une vie en dehors du travail, même si cette vie est faire plus de programmation.
Dunk

Juste comme note de côté: j'ai trouvé que les personnes qui m'impressionnent le plus en tant qu'intervenants lors d'une interview sont celles qui doivent me préoccuper le plus. Au début de ma carrière, les seules personnes que j'ai recommandées pour l'embauche et qui se révélaient moins techniquement capables se trouvaient également être les plus socialement capables et convaincantes lors de l'entretien.
Dunk

1

Si vous avez un travail qui vous procure une expérience intellectuelle totalement engageante, il y a de fortes chances que ce soit votre vie mentale - en dehors du travail, il faut se défouler. Si votre travail ne vous engage pas, vous aurez beaucoup plus de chances de trouver une satisfaction intellectuelle après les heures de travail. C'est vrai dans toute entreprise, pas seulement le codage.

Le codage dans un bureau sape votre créativité, point final. Au moins 8 heures par jour, votre esprit fait un sprint continu au nom de quelqu'un d'autre. Il est normal de sortir de ça et de ne pas vouloir revenir sur un ordinateur. Quand je travaillais dans un bureau, c’était la même chose pour moi: je rentrais à la maison et ne voulais que cuisiner, aller voir un film, sortir avec des amis ou simplement passer devant la télé. Puis, de 2001 à 2004 environ, après avoir travaillé pour la compagnie pour laquelle je travaillais et avoir craqué, j’ai abandonné et pris un taxi pour attendre les tables. C'est à ce moment-là que j'ai vraiment commencé à coder pendant mes heures creuses.

La vérité est que je ne pense pas que quiconque dispose de plus de 8 heures par jour de temps de codage de haute qualité. Beaucoup de codeurs n'en ont que deux ou trois, mais ils sont peut-être les personnes les plus efficaces qui soient. C'est juste comment vous l'utilisez, comment vous l'étendez.


1
Vous n'avez jamais beaucoup fréquenté les développeurs de logiciels libres, n'est-ce pas? Lorsque le codage devient une passion, vous voulez parfois y être pendant 24 heures d'affilée.
Martijn Pieters

1

Est-il possible de devenir un bon développeur de logiciel sans faire de travail supplémentaire en dehors de votre travail?

Cela dépend du secteur dans lequel vous travaillez. Certains sont plus compétitifs que d'autres.

Si vous n'aimez pas apprendre de nouvelles choses vous-même, vous resterez probablement à votre niveau actuel. C'est peut-être assez ... ou pas.

Il ne s'agit pas du temps consacré, mais de la curiosité et de la soif de connaissances et de maîtrise. Évidemment, cela n'a rien à faire de rester à jour , il s'agit de fondamentaux, souvent difficiles: compilateurs, monades, architectures de mémoire, etc. Des choses qui étirent et développent votre cerveau.

Vouloir coder à la maison n’est qu’un effet secondaire important. Mais ne le sous-estimez pas, sans le faire, l'apprentissage est souvent superficiel.

Tous les meilleurs dev que je connaisse ont ces traits.


1

Non, cela ne vous rend pas moins programmeur que quiconque. Vous êtes juste plus social. Je suis envieux d'être honnête.

Vous n'êtes pas obligé d'utiliser tout votre temps libre pour écrire du code. Mon travail est assez simple: la gestion de serveur. J'écris beaucoup de code parce que je n'ai pas à faire beaucoup de travail. Cela ne me rend pas meilleur ou pire que quiconque. Si la programmation vous passionne, pourquoi ne pas faire du travail à la pige? Je place souvent des annonces Craigslist pour mes services et en tire un bon montant. C'est aussi une excellente expérience d'apprentissage puisque vous travaillerez avec des startups et parfois même des sites Web volumineux. J'espère que cela t'aides. :)


La programmation pour passe-temps vous rend plus social. Vous pouvez programmer tout seul parfaitement.
Mufasa

0

J'ai posé une question similaire quelques jours par an. Il semble que les gens semblent être plus passionnés par notre travail si nous y consacrons non seulement toute notre journée, mais aussi tout le temps dont nous disposons pour notre vie personnelle.

J'écris parfois du code pendant mon temps libre, mais je le fais pour le plaisir, non parce que j'ai l'intention d'obtenir une croissance ou une reconnaissance professionnelle. J'applaudis les personnes qui en ont l'énergie, mais vous êtes plutôt enclin à vous épuiser en travaillant plus longtemps et à faire des projets supplémentaires que de devenir plus expert en quoi que ce soit.

En fin de compte, tout ce qui compte est votre capacité à apprendre de nouvelles choses (en particulier au travail), votre capacité à bien communiquer et à bien gérer votre temps. Que vous deveniez un bon professionnel.


1
Je pense que vous touchez le point clé. Si programmer à la maison équivaut à faire du travail supplémentaire, cela ne va pas aider beaucoup et est probablement même préjudiciable. Cependant, la plupart (sinon la totalité) des personnes que je connais à la maison le font parce que c'est amusant pour elles. Il se trouve que ce sont les mêmes personnes que je veux dans mes projets, car elles sont beaucoup plus compétentes que celles qui ne le sont pas. La programmation à la maison est-elle la raison pour laquelle ils sont plus qualifiés, peut-être, peut-être pas, mais j'aurais tendance à le penser parce qu'ils font ce qu'ils veulent. En outre, il est assez difficile de rester à jour dans vos compétences si vous ne mettez pas dans le temps.
Dunk

0

Est-il possible de devenir un bon développeur de logiciel sans faire de travail supplémentaire en dehors de votre travail?

Pour moi, tout est une question d'équilibre.

Bien que j'adore programmer, ce n'est qu'un côté de moi, j'ai d'autres intérêts. Comme je le vois si je suis heureux (je fais d’autres choses que j’aime faire) et que je trouve mon travail intéressant et enrichissant (ce que je fais), j’aimerais, à long terme, devenir un meilleur développeur de logiciels.

PS J'avoue que je n'ai pas lu tous les posts précédents sur cette page.


Pourquoi le -1? C'est une réponse tout à fait raisonnable. + 1
zzzzz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.