Vous voulez savoir programmer plus vite pour pouvoir livrer des logiciels plus rapidement? Bien sûr, qui ne le fait pas? Internet regorge de conseils pour les développeurs — des centaines, des milliers, peut-être même des millions d’entre eux. Le problème est qu’il y en a beaucoup plus que quiconque n’a le temps de lire, alors je les ai bouillis pour vous.
Voici 53 conseils représentant les meilleurs conseils que j’ai trouvés là-bas. Mais, avant de vous dire ce que j’ai trouvé, je dois expliquer ce que je veux dire par « programmation plus rapide » et « conseils ». »
- Le problème avec « plus rapide »
- Le problème des « conseils »
- Ce que vous voulez, c’est flow
- Vos options peuvent être limitées
- Conseils pour une programmation plus rapide
- La réflexion est la clé
- Mesurez objectivement
- Pratique, pratique, pratique
- Le design au service du succès
- Clouez le processus
- Créer le bon environnement de travail
- Explorez en dehors du travail
- Gardez-le en bonne santé
- Développer de bonnes habitudes d’apprentissage
- La qualité n’est pas constante
- Les compétences non techniques importent
- Allez-y et codez
Le problème avec « plus rapide »
Pour coder plus vite, il faut être efficace; c’est-à-dire pas d’effort ou de mouvement gaspillé. Cela peut signifier tout, de la saisie aux outils en passant par la réflexion. Mais la plupart de notre travail en tant que programmeurs ne consiste pas à taper ou à compiler — c’est réfléchir. Pour penser plus vite, vous devez apprendre plus de modèles et de relations. C’est la connaissance et la sagesse que l’expérience construit. Ce dont vous avez besoin pour aller plus vite changera avec le temps.
Le problème des « conseils »
La plupart des conseils que je lis ne s’appliquent qu’à certains moments de mon voyage et ne s’appliquent pas nécessairement à tout le monde. Beaucoup d’entre eux entrent dans les catégories « voyage personnel » ou « ce qui a fonctionné pour moi ». Mais mon chemin n’est probablement pas le vôtre. Alors que certaines des choses mécaniques qui fonctionnent pour moi fonctionneront probablement pour vous, de nombreux choix de domaine et de modèle que j’ai faits peuvent ne pas être utiles.
Le matériel mécanique est assez facile à optimiser; les options sont limitées. Mais l’apprentissage n’a pas de limites. Personne ne saura jamais tout. Vous devez faire des choix stratégiques et tactiques et être prêt à profiter des opportunités lorsqu’elles se présentent.
L’utilité des pointes tombe en fonction de la spécificité. Les conseils plus spécifiques ne s’appliquent pas à tout le monde, mais les conseils généraux le sont aussi, enfin, généraux. Ils sont beaucoup plus difficiles à transformer en action. Alors que voulez-vous vraiment quand vous dites que vous voulez « aller plus vite? »Je vais vous le dire.
Ce que vous voulez, c’est flow
Ce que chaque programmeur veut, en particulier à l’ère du DevOps, c’est flow. L’état d’écoulement maximise le débit et augmente le plaisir en incorporant juste le bon niveau de défi; on reste pleinement engagé dans le moment et dans le travail (cela ne doit pas être confondu avec le pic Ballmer). Le maintien de l’état d’écoulement nécessite un environnement approprié et un processus sans frottement.
L’état de flux lors de l’appariement est comme si chacun de vous avait un cerveau supplémentaire. Malheureusement, de nombreux environnements de développement, tels que les bureaux ouverts, sont hostiles à la circulation.
Vos options peuvent être limitées
Lorsque vous trouvez quelque chose de sous-optimal dans votre processus, ou vous-même, les choix de la façon de traiter ces contraintes sont limités:
- Ignorez-le. Peut-être que ça ira mieux tout seul.
- Évitez-le. Est-ce vraiment nécessaire?
- Automatisez-le. Faites-le faire à la machine.
- Déléguez-le. Rarement possible, c’est passer l’argent. Mais c’est une option légitime lorsqu’elle est disponible.
- Broyez-le. Nous devons tous le faire de temps en temps (tous les jours). Certains emplois sont plus importants que d’autres.
Si votre saisie est plus lente que vous ne le souhaitez, prenez un peu de temps et montez de niveau. Si votre environnement de développement intégré est déroutant et inutile (ou peut-être trop utile), essayez quelque chose de différent ou de plus simple. Si vous ne pouvez pas vous en éloigner, apprenez-en plus à ce sujet; vous pouvez trouver un autre moyen, ou du moins apprendre les limites.
Il existe de nombreuses façons d’apprendre. Google est votre ami, tout comme les livres, les vidéos, les articles de blog, les questions de débordement de pile et, bien sûr, d’autres personnes. Certaines choses que vous voulez apprendre peuvent être cachées; d’autres peuvent être plus grandes qu’elles n’y paraissent. Équilibrez les avantages avec l’effort et soyez patient avec vous-même. Célébrez chaque réalisation et continuez à avancer.
Conseils pour une programmation plus rapide
Une façon de regrouper et d’examiner les conseils ci-dessous consiste à appliquer quelques catégories de haut niveau afin de tirer des généralisations intéressantes de la collection:
- Réfléchissez. Que voulez-vous, que faites-vous réellement; comprend la mesure et l’optimisation.
- Débit. Pas de friction avec les outils, les processus, l’environnement ou les connaissances; recherchez des défis continus mais pas trop.
- Apprendre. Les fondamentaux: langues, outils, modèles, pratiques, etc., de tout le monde (en particulier ceux qui sont prêts à enseigner); apprenez comment vous apprenez et apprenez continuellement.
- Enseigner. Enseignez aux autres. Devoir expliquer les choses oblige à la simplification, et la transformation des pensées en expressions verbales ou visuelles produit des idées.
- Exprimez et explorez. Regardez en dehors de vos tâches normales; dessinez, écrivez, bloguez, allez à des rencontres, assistez et donnez des présentations, parlez à Wilson le volleyball si nécessaire.
Les conseils ci—dessous sont simplement des points de données, des choses à méditer – pas une feuille de triche pour la vie ou une liste de choses à faire pour votre carrière de programmeur. J’ai commencé avec une liste de 183 conseils, les ai regroupés en catégories, j’ai attribué une priorité basée sur la répétition et les préjugés personnels, et j’ai pris les premiers de chacun.
C’est vrai, biais. Je sais ce qui fait un développeur bon ou un programmeur rapide, donc tout ce que j’ai lu a filtré à travers mon biais. Plus précisément, je suis partial envers:
- Méthodes agiles.
- Conception pilotée par domaine.
- Tests automatisés.
- Amélioration continue.
- Solutions minimales.
- Outils sans friction.
- Travailler dans l’état d’écoulement autant que possible.
Et je suis tout à fait d’accord avec la déclaration de Robert C. « Oncle Bob » Martin sur la » médiocrité véhémente »:
» La seule façon d’aller vite est de bien aller. Chaque fois que vous cédez à la tentation d’échanger la qualité contre la vitesse, vous ralentissez. À chaque fois. »
Prenez les conseils suivants (et tout ce que vous lisez sur Internet) avec un grain de sel. Gardez et adaptez ce qui fonctionne; jetez ce qui est inutile.
Et voici mon conseil pour programmer plus rapidement: Concentrez-vous sur la qualité, et la vitesse suivra.
La réflexion est la clé
La réflexion est la clé de l’auto-amélioration:
- Améliorez continuellement votre processus de prise de décision; apprenez de vos erreurs sans reproche.
- Éliminez les angles morts dans votre compréhension de l’ensemble de la portée de votre application et de son environnement d’exécution.
- Ne poursuivez pas votre queue; identifiez et éliminez les puits de temps.
Mesurez objectivement
Parfois, vous savez quelle est votre plus grande contrainte, et parfois vous devez la mesurer.
- Envisagez de faire un audit détaillé de vous-même pendant que vous travaillez pendant quelques jours.
- C’est comme optimiser n’importe quel morceau de code. Enregistrez tout, identifiez les points chauds et améliorez-les.
- Où va ton temps ? De nombreux programmeurs passent beaucoup plus de temps à lire du code qu’à écrire du code; comment apprenez-vous à lire le code plus rapidement?
Pratique, pratique, pratique
Il n’y a pas de moyen de contourner un certain niveau de pratique, sur une variété de défis.
- Écrivez beaucoup de logiciels.
- Écrivez des programmes plus gros.
- Écrivez du code prêt à l’examen dès le départ.
- Il y a beaucoup d’endroits pour pratiquer, y compris topcoder.com , projet Euler, hackerrank.com . En choisit un et partez.
Le design au service du succès
L’apprentissage des techniques de conception doit être une donnée, une partie de la maîtrise de vos outils de réflexion. En outre:
- Comprendre l’utilisateur; comprenez leur problème, le vrai problème; puis résolvez-le. La connaissance du domaine aide énormément.
- Discutez avec des collègues et des experts du domaine du problème, de la solution et de la conception.
- Réduisez la charge cognitive en dessinant ou en écrivant pendant que vous réfléchissez et codez.
- Lors de la conception pour la longévité et la maintenance, n’oubliez pas que les données survivent au code.
- Savoir quand réinventer la roue, et quand ne pas (généralement pas).
- Nommez les choses à dessein ; c’est le seul lien du code vers le domaine.
Clouez le processus
Nous passons beaucoup de temps dans des processus de notre propre construction; n’ayez pas peur de les changer.
- Rendre les bogues impossibles par conception. Échouez rapidement, utilisez des exceptions au lieu de vérifications nulles, utilisez le système de type pour éviter les erreurs de données et utilisez des tests automatisés.
- Si vous ne savez pas par où commencer, commencez par la partie que vous comprenez le mieux.
- Écrivez le code qui ferait réellement un produit en premier, peu importe à quel point ce produit est stupide ou petit.
- N’ignorez pas les erreurs; chaque erreur signifie quelque chose.
- Suivez une approche agile du développement.
- N’extrayez les abstractions que si elles ont un sens et seraient réellement réutilisées.
- Tenez-vous sur les épaules des géants; utilisez des bibliothèques open source, des solutions tierces, etc.
- Optimisez pour plus de simplicité; le meilleur code est le code que vous n’avez pas à écrire.
- Automatisez les tests et pratiquez le développement piloté par les tests (TDD)
- Utilisez des outils intelligents tels que desEs, des utilitaires de génération de code, etc., mais n’ayez pas peur de descendre s’ils vous gênent.
- Soyez extrêmement familier avec votre langue et votre bibliothèque standard. Moins vous passez de temps à ramper dans la documentation, mieux c’est.
- Utilisez le contrôle de source, même par vous-même.
- Utilisez un profileur. Optimisez uniquement ce qui est nécessaire
- Apprenez à taper au toucher. Les programmeurs tapent beaucoup, et pas seulement du code; cela réduit la charge cognitive de la frappe à zéro et améliore la vitesse et la précision
Créer le bon environnement de travail
Les interruptions constantes, les circonstances inconfortables et les réunions interminables découragent le flux.
- Assurez-vous d’être dans un environnement qui ne vous distraira pas; empêchez les distractions de vous interrompre.
- Connaissez-vous et travaillez pendant votre heure de pointe – pas celle de quelqu’un d’autre.
Explorez en dehors du travail
Tout ce que vous voudrez peut-être savoir n’est pas dans votre bureau ou sur Internet.
- Exposez-vous à de nouveaux outils et techniques. Gardez ce qui fonctionne.
- Travailler sur des projets parallèles et des projets open source.
Gardez-le en bonne santé
Les morts n’écrivent aucun code. Les malades écrivent un mauvais code. Prends soin de toi.
- Connaissez la valeur de s’éloigner de votre code.
- Dormez plus, mangez mieux et travaillez moins d’heures.
- Méditez.
Développer de bonnes habitudes d’apprentissage
L’apprentissage est un processus qui dure toute la vie pour les programmeurs, mais nous avons prévenu: Internet regorge de choses brillantes.
- Maîtriser les fondamentaux: paradigmes et pratiques de programmation tels que DRY (ne vous répétez pas) et et SOLID (responsabilité unique, ouvert-fermé, substitution de Liskov, ségrégation d’interface et inversion de dépendance) pour la POO), modèles et anti-modèles, algorithmes, théorie des données, théorie des graphes, etc.
- Apprenez en faisant. Jouez toujours avec le code tout en apprenant.
- Trouvez un mentor.
- Explorez différentes façons d’apprendre pour voir ce qui fonctionne pour vous.
La qualité n’est pas constante
La qualité couvre beaucoup de terrain, de la lisibilité du code à sa structure modulaire et sa complexité, à la façon dont il exprime ses intentions de domaine.
- Concentrez-vous sur la qualité, pas sur la vitesse.
- Acceptez que le code « qualité » à tout moment est « le meilleur que vous puissiez faire avec ce que vous avez et savez. »
- Faites toujours de votre mieux; c’est une bonne pratique.
- Uniquement à l’extrême (c.-à-d. prototypage / exploration / code jetable) et des circonstances temporaires si vous laissez la qualité de votre code descendre en dessous du niveau de « ce que vous pouvez faire de mieux » (et vous devriez avoir un peu honte de le faire.)
Les compétences non techniques importent
Je n’ai pas trouvé beaucoup de conseils sur les compétences des personnes, mais les gens sont à peu près inévitables; ceux que j’ai trouvés étaient très utiles.
- Savoir interagir avec les gens vous permettra d’apprendre et d’enseigner à ceux qui vous entourent avec moins de friction et plus de joie.
- Apprendre à écrire et à parler clairement vous aidera à faire passer vos idées plus rapidement.
Allez-y et codez
Alors voilà, mon résumé des meilleurs conseils pour programmer plus rapidement. Suivez ces conseils et vous serez sur la bonne voie pour améliorer vos compétences en programmation — et coder plus rapidement.