Comment faire un bon ingénieur logiciel
Il est tentant de croire que prendre votre travail à la maison vous fera un meilleur ingénieur logiciel, et que l'équilibre travail / vie limitera votre apprentissage.
- Pour certains développeurs de logiciels de programmation est non seulement un travail: il est quelque chose à faire pour le plaisir, parfois même une raison d'être. Si vous aimez codage et de codage est votre travail, pourquoi gardez pas travailler le week-end? Il est plus pratique des compétences dont vous avez besoin.
- Lorsque vous n'avez pas la motivation ou la capacité de ramener à la maison de travail le week-end vous pourriez vous sentir vous ne sera jamais aussi bon ingénieur logiciel que ceux qui le font.
Mais la vérité est que si vous voulez être un bon ingénieur logiciel, vous ne devriez pas prendre la maison de votre travail.
Qu'est-ce qu'un bon ingénieur logiciel? La capacité à construire des solutions pour des problèmes complexes, difficiles. Voici pourquoi passer des heures supplémentaires sur votre travail normal ne vous aidera pas à le faire.
De nouveaux problèmes, de nouvelles solutions
Si vous avez le temps et la motivation pour écrire des logiciels dans votre temps libre, vous pouvez écrire plus de logiciels pour votre travail. Mais que vous borne à un type particulier de problème et limite l'espace de solution que vous pouvez envisager.
Si vous prenez votre travail à domicile, vous finirez par résoudre les mêmes problèmes que vous travaillez pendant votre semaine de travail normale. Vous aurez besoin d'utiliser des technologies qui répondent aux objectifs d'affaires de votre employeur, et vous aurez besoin d'utiliser les mêmes normes de qualité que votre employeur attend. Mais si vous prenez un projet de programmation personnelle, vous aurez pas de telles contraintes.
- Si votre entreprise a des normes de qualité médiocre, vous pouvez apprendre comment tester vraiment bien.
- Ou vous pouvez écrire hacks complet juste pour apprendre quelque chose de nouveau.
- Vous pouvez utiliser et apprendre des zones complètement différentes de la technologie.
J'ai écrit un interprète Python global de verrouillage profileur, en utilisant LD_PRELOAD pour remplacer les interactions de processus Python avec des serrures du système d'exploitation et le débogueur gdb pour regarder le programme en direct de la pile C. Il n'a jamais travaillé assez bien pour être vraiment utile ... mais sa construction a été très instructif.
L'apprentissage supplémentaire que vous obtiendrez de travailler sur différents projets vous un meilleur ingénieur logiciel. Mais même si vous n'avez pas le temps ou la motivation au code à la maison, ne crains pas: l'équilibre travail / vie peut vous faire encore un meilleur ingénieur logiciel.
L'apprentissage d'autres compétences
Être un bon ingénieur logiciel n'est pas seulement barattage code. Il y a beaucoup d'autres compétences dont vous avez besoin, et le temps passé à faire des choses autres que le codage peut encore améliorer vos capacités.
Ces jours-ci, je passe plus de mon temps avec mon enfant, et comme un effet secondaire j'apprends d'autres choses. Par exemple, expliquer le monde à un 4 ans exige la capacité de prendre des concepts complexes et de les simplifier à leur noyau essentiel.
Vous avez besoin d'un hamac pour résoudre des problèmes difficiles
Bien que l'apprentissage supplémentaire vous aidera, une grande partie du bénéfice de l'équilibre travail / vie est que vous ne travaillez pas. Les problèmes difficiles nécessitent des temps d'arrêt, le temps lorsque vous êtes explicitement ne pas penser à des solutions, le temps de votre cerveau pour arranger les choses en arrière-plan. Rich Hickey, le créateur de Clojure, a un grand discours sur le sujet appelé Hamac Driven Development.
L'essentiel est que les problèmes durs nécessitent beaucoup de recherches, des alternatives et des solutions existantes et la définition du problème, et beaucoup de temps de laisser vos choses de tri de l'intuition sur lui-même. Et cela prend du temps, alors que vous ne pensez pas activement sur le problème.
Apprendre à faire plus avec moins
Le dernier avantage de l'équilibre travail / vie est l'attitude: la façon dont vous pensez à votre travail. Si vous travaillez des heures supplémentaires sur votre travail normal que vous vous entraînez à faire votre travail avec plus de temps que nécessaire. Pour améliorer en tant qu'ingénieur logiciel que vous voulez apprendre comment faire votre travail en moins de temps, ce qui est important si vous voulez prendre le plus grand, des projets plus difficiles.
Travailler une semaine de travail raisonnable, limitée vous aidera à se concentrer sur devenir un programmeur plus productif plutôt que d'essayer de résoudre les problèmes à la dure, lente.
Compte tenu du choix que vous ne devriez pas prendre votre travail à la maison avec vous. Si vous voulez continuer à vous coder ne devriez avoir aucun mal à trouver des projets intéressants à travailler, entravées par les exigences de votre travail. Si vous ne pouvez ou ne coder dans votre temps libre, c'est bien aussi.
Mais si ce n'est pas un choix que vous pouvez faire? Que faire si vous n'avez pas l'équilibre travail / vie comme ingénieur logiciel en raison de la pression de votre patron, ou des situations d'urgence constantes au travail? Dans ce cas, vous devez vous inscrire à mon libre cours e-mail 6 parties, qui vous montrera comment obtenir un à un Saner, la semaine de travail plus courte.
Vous ne devriez pas avoir à travailler le soir ou le week-end pour réussir en tant qu'ingénieur logiciel. Obtenez un meilleur endroit avec le Guide à un Sane Workweek du programmeur.
« Article précédent: Comment trouver un emploi de programmation que vous ne publierez pas hateNext: Comment je me suis arrêté la douleur RSI qui a presque détruit ma carrière de programmation »
Code Sans règles
vous aider à devenir un programmeur productif et des heures de travail plus sains