Clés pour accélérer vos compétences en codage
La clé pour accélérer vos compétences en codage
Clés pour accélérer vos compétences en codage
Article de : http://blog.thefirehoseproject.com/posts/learn-to-code-and-be-self-reliant/
La clé pour accélérer vos compétences en codage La clé pour accélérer vos compétences en codage
Quand on apprend à coder, il y a un moment où tout commence à changer. Chez Firehose, nous aimons appeler cela le point d’inflexion du codage. Après cette phase, la façon dont vous opérez en tant que développeur sera radicalement différente. Construire jusqu’au point d’inflexion est le processus permettant de devenir autonome en matière de programmation, au point où vous n’avez plus besoin de vous tenir la main. Cela peut être une expérience frustrante, mais une fois derrière vous, c’est incroyablement stimulant.
Quand on apprend à coder, il arrive un moment où tout commence à changer. Chez Firehose, nous aimons appeler cela le point d’inflexion du codage. Passée cette étape, votre façon d’opérer en tant que développeur sera très différente. Construire jusqu’à un point d’inflexion est le processus permettant d’atteindre l’autosuffisance en matière de programmation jusqu’à ce qu’aucun travail manuel ne soit plus nécessaire. Cela peut être une expérience frustrante, mais une fois derrière vous, c’est incroyablement stimulant.

Chez Firehose, notre objectif n’est pas seulement de vous apprendre Ruby, comment créer des applications Web ou comment écrire des tests. Bien que nous enseignons ces compétences et bien d’autres, notre objectif principal est d’accélérer les étudiants au-delà du point d’inflexion afin qu’ils acquièrent la capacité de résoudre tout problème qu’ils rencontrent. Nous pensons qu’être capable de résoudre des problèmes par soi-même est une compétence inestimable, et cette méthode d’enseignement vous mènera bien plus loin que le simple apprentissage de la création d’un ensemble d’applications. Dans Firehose, notre objectif n’est pas seulement de vous apprendre Ruby, comment créer des applications Web ou comment écrire des tests. Pendant que nous enseignons ces compétences et bien plus encore, notre objectif principal est d’accélérer les étudiants jusqu’au point d’inflexion afin qu’ils puissent résoudre tout problème qui se présente à eux. Nous pensons qu’être capable de résoudre des problèmes soi-même est une compétence extrêmement précieuse, et cette approche pédagogique vous mènera bien plus loin que le simple apprentissage de la création d’un ensemble d’applications.
La phase didactique (3 à 8 semaines de codage sérieux) La phase didactique (3 à 8 semaines de codage sérieux)
Lorsque vous commencez à apprendre à coder, il y a beaucoup d’informations que vous ne connaissez pas encore. Ces informations sont appelées connaissances spécifiques au domaine. Exemples : savoir comment écrire une boucle en Ruby ou comment extraire quelque chose d’une base de données à l’aide de Ruby on Rails. Les connaissances spécifiques à un domaine englobent les protocoles propres à un certain environnement de programmation. Lorsque vous commencez à apprendre à coder, il y a beaucoup d’informations que vous ne connaissez pas encore. Ces informations sont appelées connaissances spécifiques au domaine. Exemples : Apprenez à écrire des boucles dans Ruby ou à extraire du contenu d’une base de données à l’aide de Ruby on Rails. Les connaissances spécifiques à un domaine consistent en des protocoles uniques à un environnement de programmation particulier.
La première étape pour devenir un développeur autonome consiste à apprendre à effectuer des tâches spécifiques. Une fois que vous maîtriserez certaines tâches, les grandes lignes de la façon dont les pièces s’emboîtent commenceront à devenir évidentes. Au fil du temps, vous commencerez à reconnaître des modèles et éventuellement, les choses qui semblaient initialement déroutantes et étrangères deviendront une seconde nature. La première étape pour devenir un développeur autonome consiste à apprendre à accomplir une tâche spécifique. Une fois que vous maîtriserez une tâche, vous découvrirez comment les pièces s’emboîtent. Au fil du temps, vous commencerez à reconnaître des modèles et, éventuellement, ce qui semblait initialement déroutant et inconnu deviendra une seconde nature.
Pour les étudiants débutants, la compétence la plus importante à acquérir est le souci du détail.
Il est important de prêter une attention particulière aux détails lorsque vous parcourez des documents tels que de la documentation ou des didacticiels. Même les fautes de frappe et d’orthographe les plus mineures entraîneront des messages d’erreur ou des bugs. Voir des messages d’erreur est une expérience frustrante au début, mais c’est une étape cruciale dans le processus d’apprentissage. Traiter les messages d’erreur et les problèmes au cours de cette phase vous apprend l’une des compétences les plus importantes de la programmation dans un environnement sûr : le souci du détail. Lorsque vous parcourez des documents tels que de la documentation ou des didacticiels, il est important de porter une attention particulière aux détails. Même les plus petites fautes de frappe et d’orthographe peuvent entraîner des messages d’erreur ou des erreurs. Voir des messages d’erreur est une expérience frustrante au début, mais c’est une étape critique dans le processus d’apprentissage. Traiter les messages d’erreur et les problèmes au cours de cette phase vous apprendra l’une des compétences les plus importantes pour programmer dans un environnement sécurisé : le souci du détail.
Le débogage des messages d’erreur est extrêmement important. Le fait est que les messages d’erreur ne sont qu’une partie de la programmation : ils sont vus aussi bien par les développeurs inexpérimentés que par les très expérimentés. La seule différence est que plus vous avez d’expérience dans la gestion des messages d’erreur, moins vous aurez besoin de temps pour essayer de les corriger. Voici pourquoi : Le débogage des messages d’erreur est très important. En fait, les messages d’erreur ne sont qu’une partie de la programmation : les développeurs inexpérimentés comme les développeurs très expérimentés voient les messages d’erreur. La seule différence est que plus vous avez d’expérience dans la gestion des messages d’erreur, moins vous passerez de temps à les corriger. Les raisons sont les suivantes :
-
Au fil du temps, vous apprendrez à lire les messages d’erreur et à extraire rapidement les détails pertinents du problème. La première fois que vous voyez un message d’erreur, il vous faudra un certain temps pour décoder ce qu’il signifie réellement. Mais après avoir vu des centaines de messages d’erreur (et vous en verrez des centaines !), vous serez en mesure d’identifier l’emplacement du problème et les détails pertinents dont vous avez besoin pour le résoudre. Au fil du temps, vous apprendrez à lire rapidement les messages d’erreur et à extraire les détails pertinents sur le problème. Lorsque vous voyez un message d’erreur pour la première fois, vous devez prendre le temps de comprendre ce qu’il signifie réellement. Cependant, après avoir vu des centaines de messages d’erreur (et vous en verrez des centaines !), vous serez en mesure d’identifier l’emplacement du problème et les détails pertinents nécessaires pour le résoudre.* Vous devez tirer les leçons de chaque message d’erreur que vous résolvez. Ne vous contentez pas de corriger l’erreur et d’en finir avec elle ; comprenez ce qui ne va pas avec le code que vous corrigez. En apprenant de chacune de vos erreurs, la prochaine fois que vous ferez la même erreur, vous pourrez la corriger beaucoup plus rapidement. Vous devez tirer les leçons de chaque message d’erreur que vous résolvez. Ne vous contentez pas de corriger le bug et de le gérer ; comprenez ce qui ne va pas avec le code que vous corrigez. En apprenant de vos erreurs, vous serez en mesure de les corriger plus rapidement la prochaine fois que vous ferez la même erreur.
-
Au départ, vous demanderez probablement de l’aide pour chaque message d’erreur que vous voyez. Au fil du temps, vous apprendrez à demander de l’aide moins fréquemment en vérifiant votre code et en effectuant des recherches intelligentes sur Google. Dans un premier temps, vous pouvez demander de l’aide pour chaque message d’erreur que vous voyez. Au fil du temps, vous apprendrez à demander de l’aide moins souvent en vérifiant votre code et en effectuant des recherches intelligentes sur Google.
Dans la phase tutorielle, vous suivrez les instructions. Au début, vous aurez du mal à suivre les instructions et des messages d’erreur apparaîtront fréquemment. Au fil du temps, vous développerez les compétences nécessaires pour déboguer les erreurs et accorder une meilleure attention aux petits détails, et vous pourrez progresser beaucoup plus rapidement. Alors que vous terminez la phase du didacticiel, vous remarquerez que vous êtes capable d’écrire du code à un rythme beaucoup plus rapide. Pendant la phase de tutoriel, vous suivrez les instructions. Au début, vous aurez du mal à suivre les instructions et des messages d’erreur apparaîtront fréquemment. Au fil du temps, vous développerez des compétences en matière de débogage des erreurs et deviendrez plus attentif aux petits détails, et vous pourrez progresser plus rapidement. À la fin de la phase du didacticiel, vous remarquerez que vous êtes capable d’écrire du code beaucoup plus rapidement.
À ce stade, certaines personnes se sentent en confiance – comme si elles étaient prêtes à abandonner les roues d’entraînement et à commencer à construire des choses sans conseils structurés – et plongeront volontiers dans le grand bain. D’autres étudiants se tourneront vers davantage de tutoriels, essayant d’acquérir des connaissances plus spécifiques à un domaine à la recherche d’une « compréhension complète ». Malheureusement, les didacticiels ne vous mèneront pas loin, et la véritable confiance ne se trouve pas dans les didacticiels ou les guides. La véritable confiance vient du fait de lutter contre un problème que vous ne savez pas comment résoudre et de découvrir une solution par vous-même. À ce stade, certaines personnes se sentiront en confiance – comme si elles étaient prêtes à abandonner les roues d’entraînement et à commencer à construire quelque chose sans conseils structurés – et se lanceront volontiers dans le grand bain. D’autres étudiants rechercheront davantage de tutoriels pour tenter d’acquérir des connaissances plus spécifiques à un domaine en quête d’une « compréhension complète ». Malheureusement, les didacticiels ne vous mèneront pas loin et la véritable confiance ne se trouve pas dans un didacticiel ou un guide. La véritable confiance vient du fait de lutter contre un problème que vous ne savez pas comment résoudre et de découvrir votre propre solution.
**Le sale petit secret de la programmation est…**Le sale petit secret de la programmation est…
Vous ne saurez jamais tout ce que vous devez savoir pour résoudre tous vos problèmes. Au début de ce voyage, vous vous imaginiez probablement apprendre un jour tout ce que vous devez apprendre, puis être mis au carré. Ce moment n’arrivera jamais. Vous ne pouvez jamais savoir tout ce que vous devez savoir pour résoudre tous vos problèmes. Au cours du processus, vous pourriez vous imaginer enfin apprendre tout ce que vous devez apprendre, puis être libéré. Ce moment n’arrivera jamais.
La programmation est une expérience d’apprentissage tout au long de la vie. Les ingénieurs logiciels expérimentés cherchent à trouver des solutions aux problèmes qu’ils n’ont pas encore résolus, car cela leur donne l’opportunité d’en apprendre davantage. Si vous attendez le moment où vous aurez enfin l’impression de tout savoir sur le codage, sachez ceci : le jour que vous attendez ne viendra jamais. Et c’est une chose merveilleuse. La programmation est une expérience d’apprentissage tout au long de la vie. Les ingénieurs logiciels expérimentés recherchent des solutions aux problèmes qu’ils n’ont pas encore résolus, car cela leur donne l’opportunité d’en apprendre davantage. Si vous attendez le moment où vous aurez enfin l’impression de tout savoir sur le codage, sachez ceci : le jour que vous attendez n’arrive jamais. C’est une bonne chose.

**Vous serez prêt à passer à la prochaine phase de votre voyage lorsque :**Vous serez prêt à passer à la prochaine phase de votre voyage lorsque :
-
Vous avez vu suffisamment de messages d’erreur pour qu’ils ne vous surprennent plus. Au lieu de cela, vous savez comment déchiffrer ce qu’ils signifient et où rechercher les problèmes dans votre code. Vous avez vu suffisamment de messages d’erreur pour qu’ils ne vous fassent plus peur. Au lieu de cela, vous savez comment déchiffrer leur signification et où rechercher les problèmes dans votre code.
-
Vous êtes un pro de la recherche de solutions sur Google. Lorsque vous travaillez pour ajouter une fonctionnalité ou que vous voyez un message d’erreur déroutant, vous savez quoi rechercher pour trouver les informations dont vous avez besoin. Vous êtes un expert dans la recherche de solutions. Lorsque vous ajoutez une fonctionnalité ou voyez un message d’erreur déroutant, vous savez quoi rechercher pour trouver les informations dont vous avez besoin.
-
Vous êtes en mesure de référencer le code que vous avez écrit dans d’autres parties de votre application et de suivre des modèles qui s’y trouvent, plutôt que de toujours rechercher des instructions étape par étape. Au lieu de toujours rechercher des instructions étape par étape, vous pouvez vous référer au code que vous avez écrit dans d’autres parties de votre application et suivre les modèles.
Le point d’inflexion (2-4 semaines avec la bonne mentalité)Le point d’inflexion (2-4 semaines avec la bonne mentalité)
L’étape du point d’inflexion est l’une des étapes les plus frustrantes de l’apprentissage du code, mais à bien des égards, c’est la seule étape qui compte. C’est le moment où vous abandonnez progressivement l’utilisation des didacticiels et commencez à résoudre des problèmes pour lesquels personne n’a trouvé de solution pour vous. L’étape du point d’inflexion est l’une des étapes les plus frustrantes de l’apprentissage du code, mais à bien des égards, c’est la seule étape qui compte. C’est à ce moment-là que vous abandonnez progressivement l’utilisation des didacticiels et commencez à résoudre des problèmes pour lesquels personne n’a de solution à vous proposer.À certains moments, vous aurez l’impression que vous n’êtes pas prêt à aborder cette phase et que vous souhaitez recommencer à construire quelque chose avec un aperçu de ce qu’il faut faire exactement. Ne soyez pas la proie de cette mentalité. La raison pour laquelle vous vous sentirez frustré est la suivante : À un moment donné, vous aurez l’impression de ne pas être prêt à gérer cette phase et de vouloir la recadrer de manière claire. Ne soyez pas victime de cette mentalité. Les raisons pour lesquelles vous pourriez vous sentir frustré sont :
Pendant la phase d’inflexion, vous coderez 10 à 20 fois PLUS LENTEMENT que lors de la phase précédente.
Pendant l’étape du point d’inflexion, votre encodage sera 10 à 20 fois plus lent que l’étape précédente.
Vous commencerez peut-être à vous remettre en question et à vous demander si vous êtes réellement capable de devenir programmeur. Les sentiments d’insécurité et de doute sont courants à ce stade. Vous commencerez peut-être à vous demander si vous êtes vraiment capable d’être programmeur. Les sentiments d’insécurité et de doute sont courants à cette étape.
Même si vous aurez l’impression d’apprendre et d’accomplir des choses à un rythme beaucoup plus lent, en réalité, vous accomplissez les choses qui comptent le plus. Pendant que vos connaissances spécifiques au domaine s’adressent à un putter, tout ce que vous apprenez portera sur les connaissances procédurales. Même si vous avez l’impression d’apprendre et de terminer les choses beaucoup plus lentement, en réalité, vous accomplissez les choses les plus importantes. Même si vos connaissances spécifiques à un domaine seront difficiles à mettre en pratique, tout ce que vous apprendrez sera lié aux connaissances procédurales.
La connaissance procédurale est la capacité d’apprendre soi-même ce que l’on ne sait pas en cours de route. Lorsque vous devez implémenter une nouvelle fonctionnalité, quel type de recherche Google devez-vous effectuer ? À ce stade, vous aurez l’impression d’être « dans le noir » en ce qui concerne bon nombre des choses que vous souhaitez accomplir. Apprendre à trouver la lumière par vous-même est essentiel, car vous ne pouvez jamais savoir tout ce qu’il y a à savoir. Vous devez donc être capable d’apprendre par vous-même à résoudre le problème en question. La connaissance procédurale est la capacité d’apprendre quelque chose que vous ne connaissez pas. Quel type de recherche Google devez-vous effectuer lorsque vous devez implémenter une nouvelle fonctionnalité ? À ce moment-là, lorsque vous voulez accomplir beaucoup de choses, vous pouvez avoir l’impression d’être « dans le noir ». Apprendre à trouver la lumière par vous-même est crucial car on ne peut jamais tout savoir, vous devez donc être capable d’apprendre par vous-même à résoudre le problème en question.
La plupart des gens ne réalisent pas que pour apprendre à coder, vous devez acquérir à la fois des connaissances spécifiques au domaine et des connaissances procédurales. La plupart des gens ne réalisent pas que pour apprendre à coder, vous devez acquérir des connaissances spécifiques au domaine et des connaissances procédurales.**
Pour le reste de votre vie, sortez de vos limites chaque jour Pour le reste de votre vie, sortez de vos limites chaque jour
Certains ingénieurs logiciels restent dans leur zone de confort une fois qu’ils ont trouvé leur place. Ces types de programmeurs sont connus sous le nom de programmeurs de maintenance, ce que vous ne devriez pas vous efforcer de devenir. Au lieu de cela, vous devriez vous efforcer de dépasser vos limites chaque jour. La raison la plus courante pour laquelle les programmeurs quittent leur emploi est que « ce n’est plus un défi depuis que j’ai résolu tous les problèmes intéressants ». Certains ingénieurs logiciels restent dans leur zone de confort une fois qu’ils ont trouvé leur place. Ces types de programmeurs sont appelés programmeurs de maintenance – ce n’est pas quelque chose que vous devriez vous efforcer d’être. Au lieu de cela, vous devriez vous efforcer de repousser vos limites chaque jour. La raison la plus courante pour laquelle les programmeurs quittent leur emploi est la suivante : “Maintenant que j’ai résolu tous les problèmes intéressants, ce n’est plus un défi.”
Plutôt que d’essayer de ramener les projets de codage dans votre zone de confort, vous devriez rechercher des problèmes qui ne relèvent pas de vos compétences actuelles. C’est la seule façon de développer et d’élargir vos compétences. Plutôt que d’essayer de pousser les projets de codage dans votre zone de confort, vous devez identifier les problèmes en dehors de vos compétences existantes.
Selon les mots d’un étudiant de Firehose après avoir dépassé son point d’inflexion :
J’ai toujours l’impression d’être dans le grand bain ! Je me sens tout simplement plus à l’aise en sachant que c’est là que je dois être ! J’ai toujours l’impression d’être dans le gouffre ! Je me sens tellement plus à l’aise de savoir où je vais !
Dans le développement Web, il y a en fait deux points d’inflexion qui vont se rejoindre. Dans le développement Web, il existe en réalité deux points d’inflexion.
Le point d’inflexion du développement Web est le moment où vous devenez capable de créer n’importe quelle application basée sur une base de données de votre choix. Cela signifie être capable de créer une application Web avec de nombreuses pages qui stocke et récupère des informations à partir d’une simple base de données. Les développeurs Web appellent cela : « maîtriser CRUD ». À ce stade, vous devriez également pouvoir intégrer n’importe quelle bibliothèque tierce (une gemme Ruby par exemple) simplement en suivant la documentation fournie sur GitHub ou un article de blog. Le point d’inflexion du développement Web est le point d’inflexion où vous pouvez créer n’importe quelle application basée sur la base de données de votre choix. Cela signifie être capable de créer une application Web avec de nombreuses pages capables de stocker et de récupérer des informations à partir d’une simple base de données. Les développeurs Web appellent cela : « Maîtriser CRUD ». À ce stade, vous devriez également pouvoir intégrer des bibliothèques tierces telles que Ruby Gems en suivant la documentation ou les articles de blog disponibles sur GitHub.
Le point d’inflexion de l’algorithme et des structures de données est un point d’inflexion moins superficiel, mais il est en réalité plus important. Quelqu’un qui a surmonté ce point aura maîtrisé le langage de programmation dans lequel il travaille, en plus de maîtriser les principes fondamentaux de la programmation et de posséder des connaissances approfondies pour résoudre des défis de codage complexes. L’inflexion des algorithmes et des structures de données est un point d’inflexion moins superficiel, mais il est en réalité plus important. Les personnes qui surmonteront ce problème maîtriseront le langage de programmation qu’elles utilisent, en plus de maîtriser les bases de la programmation et d’avoir une connaissance approfondie de la résolution de problèmes de codage complexes.Les personnes qui ont conquis le point d’inflexion des algorithmes et des structures de données seront capables de : Les personnes qui surmontent le point d’inflexion des algorithmes et des structures de données peuvent :
- Écrire des algorithmes de tri Écrire des algorithmes de tri
- Implémenter et inverser les listes chaînées Implémentation et inverser les listes chaînées
- Comprendre et écrire des programmes exploitant les piles, les files d’attente et les arborescences. Comprendre et écrire des programmes exploitant les piles, les files d’attente et les arborescences.
- Écrire des programmes informatiques à l’aide de solutions récursives ou itératives Écrire des programmes informatiques à l’aide de solutions récursives ou itératives
En bref, une fois passé ce point d’inflexion, vous maîtriserez la manipulation des données et comprendrez les implications sur les performances de vos décisions de code. Les diplômes traditionnels en informatique se concentrent exclusivement sur le fait que les étudiants dépassent le point d’inflexion des algorithmes et des structures de données. De nombreuses universités enseignent cela avec des langages de programmation qui ne sont généralement pas utilisés dans l’industrie, comme Scheme, Racket ou LISP. Bref, une fois passé ce point d’inflexion, vous maîtriserez la manipulation des données et comprendrez l’impact sur les performances de vos décisions de codage. Les diplômes traditionnels en informatique visent à amener les étudiants au-delà du point d’inflexion des algorithmes et des structures de données. De nombreuses universités enseignent ce cours dans des langages de programmation qui ne sont généralement pas utilisés dans l’industrie, tels que Scheme, Racket ou LISP.
Dans la plupart des entretiens techniques, l’intervieweur supposera que vous avez dépassé le point d’inflexion du développement Web, étant donné que c’est plus facile à faire, et concentrera ses questions sur l’évaluation de vos compétences en algorithmes et en structures de données. Ces questions porteront généralement sur les sujets mentionnés ci-dessus : le tri des algorithmes, l’inversion des listes chaînées et l’utilisation des piles, des files d’attente et des arbres. *Dans la plupart des entretiens techniques, l’intervieweur supposera que vous avez dépassé le point de rupture dans le développement Web car c’est plus facile à faire, et il concentrera les questions sur l’évaluation de vos compétences en algorithmes et en structures de données. Ces questions se concentrent généralement sur les sujets mentionnés ci-dessus : les algorithmes de tri, les listes chaînées inversées et l’utilisation de piles, de files d’attente et d’arborescences.
Une fois qu’un développeur a dépassé à la fois le point d’inflexion du développement Web et celui de l’algorithme et des structures de données, il détient les clés du royaume.
Ces développeurs seront capables de résoudre des défis qui croisent les deux : des algorithmes complexes qui doivent être construits dans le contexte d’applications Web avancées. C’est au cœur de ce que font chaque jour les développeurs Web professionnels. Ces développeurs seront capables de résoudre des défis dans les deux domaines : des algorithmes complexes qui doivent être construits dans le contexte d’applications Web avancées. C’est au cœur de ce que font quotidiennement les développeurs Web professionnels.
Conséquences du point d’inflexion Conséquences du point d’inflexion
La plus grande conséquence du point d’inflexion semblera un peu contre-intuitive lorsque vous l’entendrez pour la première fois. Inspirez profondément : Lorsque vous entendez parler pour la première fois du point d’inflexion, sa plus grande conséquence peut sembler un peu contre-intuitive. Respirez profondément :
Lorsque vous apprenez à coder, les connaissances spécifiques à un domaine n’ont pas d’importance dans le grand schéma des choses. Lors de l’apprentissage du code, les connaissances spécifiques à un domaine n’ont pas d’importance dans le grand schéma des choses.**
Ouais. Je ne plaisante pas, cela n’a pas vraiment d’importance. Une fois que vous aurez dépassé le point d’inflexion, ces concepts se traduiront de manière fluide en seulement une semaine ou deux de tutoriels, voire plusieurs jours ! Oui. Je ne plaisante pas, ce n’est vraiment pas grave. Une fois passé le point d’inflexion, les concepts se traduiront en douceur en une semaine ou deux de tutoriels, voire quelques jours !
Ce qui compte vraiment en fin de compte, c’est : Ce qui compte vraiment, c’est :
- Vous avez une solide maîtrise d’un framework de développement web Vous avez une solide maîtrise d’un framework de développement web
- Vous avez une solide maîtrise de l’écriture de code algorithmiquement complexe dans n’importe quel langage de programmation
Les responsables du recrutement recherchent des développeurs possédant de solides compétences en matière de développement Web et d’algorithmes. Les responsables du recrutement recherchent des développeurs possédant de solides compétences en développement Web et en algorithmes.
Pendant que je travaillais chez PayPal, mon équipe a embauché un développeur Rails senior qui n’avait aucune expérience dans Rails – il codait beaucoup en Python, LISP et Perl. En quelques jours, il avait déjà eu un grand impact. Et en quelques semaines : un impact énorme. Il est rapidement devenu chef de l’équipe technique et a été l’une des meilleures décisions d’embauche à laquelle j’ai jamais participé. Lorsque je travaillais chez PayPal, mon équipe a embauché un développeur Rails senior sans expérience Rails - il a écrit beaucoup de code en Python, LISP et Perl. En quelques jours, il avait déjà eu un impact énorme. En quelques semaines : un impact énorme. Sa promotion rapide au poste de chef d’équipe technique a été l’une des meilleures décisions d’embauche à laquelle j’ai jamais participé.
Ne vous inquiétez pas de la pile. Beaucoup de gens diront des choses comme « AngularJS est à la mode ces jours-ci », « JavaScript est à la hausse » ou « la dernière mode est… ». Ma réponse à cela est : « et alors ? Lorsque vous apprenez à programmer, votre objectif unique devrait être de trouver le point d’inflexion et de l’annihiler. Une fois que vous l’aurez fait, apprendre cette nouvelle mode sexy ne sera pas du tout une tâche difficile. Ne vous inquiétez pas de la pile. Beaucoup de gens diront : “AngularJS est à la mode récemment”, “JavaScript est à la hausse” ou “la dernière mode est…” Lorsque vous apprenez à programmer, votre seul objectif devrait être de trouver le point d’inflexion et de l’éliminer. Une fois que vous aurez fait cela, apprendre une nouvelle mode sexy ne sera plus une tâche difficile.Devenez autonome. Avoir la possibilité d’acquérir de nouvelles compétences en codage sans conseils structurés signifie que vous n’avez plus besoin d’attendre que quelqu’un vous aide. Cela signifie que pour la majorité de ce que vous devez apprendre, vous pouvez simplement effectuer une recherche sur Internet et lire les différents documents sur ce que vous devez savoir. *Devenez autonome. *La possibilité d’acquérir de nouvelles compétences en codage sans conseils structurés signifie que vous n’avez plus besoin d’attendre l’aide de qui que ce soit. Cela signifie que pour la plupart de ce que vous devez apprendre, vous pouvez simplement effectuer une recherche sur Internet et lire divers documents sur ce que vous devez savoir.
Cela ne signifie pas que vous « savez » immédiatement tout, mais simplement que tout est désormais « compréhensible », donc en substance, vous êtes imparable. Cela ne signifie pas que vous « savez » tout de suite, mais que tout est « résoluble » maintenant, donc en substance, vous êtes imparable.
Les compétences que vous développerez pendant le point d’inflexion
En tant que développeur de logiciels, le meilleur matériel de référence est un code similaire à celui que vous avez déjà écrit. Lorsque vous comprenez parfaitement le code que vous avez écrit, vous n’avez pas besoin de mémoriser tous les détails. Cela signifie que *la première question que vous devez vous poser lors de la création d’une nouvelle fonctionnalité est : “Ai-je déjà construit quelque chose de similaire ?” maintenant ?" En tant que développeur de logiciels, le meilleur matériel de référence est un code similaire à celui que vous avez déjà écrit. Lorsque vous comprenez parfaitement le code que vous écrivez, vous n’avez pas besoin de mémoriser tous les détails. Cela signifie que lors de la création d’une nouvelle fonctionnalité, la première question que vous devez vous poser est : “Ai-je déjà construit quelque chose de similaire ?” Si la réponse est oui, jetez un nouveau regard sur le code et parcourez mentalement le code ligne par ligne. Réexpliquez-vous ce qu’il fait et demandez-vous : « Puis-je utiliser la même méthode maintenant ?
Les vidéos sont difficiles à expliquer les détails spécifiques à un domaine car elles prennent tellement de temps à regarder. Supposons que vous souhaitiez intégrer l’API Google Maps. Une fois que vous l’avez fait une fois, cela peut prendre moins d’une minute pour ouvrir le code dans GitHub, copier le code et le coller dans un nouveau projet. Les vidéos, en revanche, peuvent souvent prendre entre 10 et 30 minutes à revoir. Les vidéos ne parviennent pas à expliquer des zones de détail spécifiques, car elles prennent beaucoup de temps à regarder. Disons que vous souhaitez intégrer l’API Google Maps. Une fois que vous avez cette expérience, il faut moins d’une minute pour ouvrir le code dans GitHub, le copier et le coller dans un nouveau projet. La relecture vidéo, en revanche, prend généralement entre 10 et 30 minutes.
Stratégies pour passer le point d’inflexion aussi efficacement que possible Stratégies pour passer le point d’inflexion aussi efficacement que possible
Parce que passer le point d’inflexion est la partie la plus importante de l’apprentissage du code, vous devez vous préparer à rendre le processus aussi fluide que possible. Cela signifie que vous devez commencer à vous préparer pendant la phase de didacticiel et maintenir le bon état d’esprit pendant cette période. Parce que passer le point d’inflexion est la partie la plus importante du processus d’apprentissage du code, vous devez rendre votre processus aussi fluide que possible. Cela signifie que vous devez commencer à vous préparer pendant la phase de tutoriel et rester dans le bon état d’esprit pendant cette période.
*Pendant la phase de didacticiel, prenez des pauses pour examiner le matériel structuré et posez-vous des problèmes en cours de route.
-
Pour chaque poignée de leçons, essayez de faire quelque chose qui sort du cadre du didacticiel que vous suivez. Si les didacticiels que vous suivez proposent des « défis » ou des pièces « autodirigées », faites-les tous. Résoudre des défis non guidés vous donnera l’expérience importante de faire les choses sans conseils structurés. Si le didacticiel que vous suivez propose une section « défi » ou « autoguidé », alors faites-le tout. Résoudre des défis non directifs vous donnera une expérience importante en faisant des choses sans conseils structurés.
-
Essayez d’utiliser le moins possible les didacticiels. Chez Firehose, nous expliquons souvent aux étudiants comment intégrer certaines pierres précieuses ou faire des choses en utilisant la documentation fournie. Plutôt que de simplement suivre les instructions expliquées dans les didacticiels destinés aux débutants, de nombreux étudiants suivront la documentation et utiliseront les didacticiels comme support. Notez que la documentation vous traitera comme un développeur qui a dépassé le point d’inflexion. Être à l’aise en lisant et en suivant la documentation sur GitHub vous donnera une longueur d’avance lorsque vous serez seul. Utilisez le moins possible les didacticiels. Dans Firehose, nous expliquons souvent aux étudiants comment intégrer certaines pierres précieuses ou faire quelque chose en utilisant la documentation fournie. Au lieu de simplement suivre les instructions d’un didacticiel destiné aux débutants, de nombreux étudiants suivront la documentation et utiliseront le didacticiel comme sauvegarde. *Veuillez noter que la documentation vous traitera comme un développeur ayant dépassé le point d’inflexion. * Lire et suivre facilement la documentation pertinente sur GitHub vous donnera un avantage lorsque vous partirez en solo.
-
Concentrez-vous sur l’essentiel et utilisez la répétition. Apprenez à effectuer des tâches courantes, comme lancer une application à partir de zéro, transférer une nouvelle application vers GitHub et Heroku et créer une migration de base de données dès le début. Apprenez à réaliser des tâches courantes, comme créer une application à partir de zéro, transférer de nouvelles applications vers GitHub et Heroku et créer des migrations de bases de données dès le début.
Franchir le point d’inflexion peut s’avérer difficile. Voici quelques conseils pour vous aider à y parvenir : Passer le point d’inflexion peut être un défi. Voici quelques conseils pour vous aider à vous en sortir :* Comprenez qu’il s’agit d’un processus difficile et soyez indulgent avec vous-même. Fixez également des attentes réalistes. Vous ne pouvez pas comparer votre vitesse de « superman » pour suivre les didacticiels à votre vitesse de « escargot » pour apprendre des choses par vous-même. Gardez à l’esprit que vous apprenez beaucoup, mais qu’à ce stade, vous apprenez une toute nouvelle compétence consistant à découvrir de nouvelles choses par vous-même. Fixez également des attentes réalistes. Vous ne pouvez pas comparer votre vitesse d’apprentissage de niveau « surhumain » avec votre vitesse d’auto-apprentissage de niveau « escargot ». N’oubliez pas que vous avez beaucoup appris, mais à ce stade, vous apprenez un tout nouvel ensemble de compétences et découvrez de nouvelles choses par vous-même.
- Si vous avez du mal à avoir confiance en vous, sachez que ce que vous ressentez est tout à fait normal. Continuez à travailler. Si vous continuez à avoir des difficultés, essayez de parler à quelqu’un qui a récemment dépassé le point d’inflexion. Ils seront capables de comprendre la position dans laquelle vous vous trouvez et vous assureront que ce que vous vivez n’est que temporaire. ne fera que prolonger le temps que vous passez à construire jusqu’au point d’inflexion. Si vous avez du mal à avoir confiance en vous, sachez que ce que vous ressentez est tout à fait normal. Continuez à travailler. Si vous avez encore des difficultés, essayez de parler à quelqu’un qui vient juste de dépasser son tournant. Ils seront capables de comprendre la situation dans laquelle vous vous trouvez et de vous rassurer sur le fait que ce que vous vivez n’est que temporaire. Continuez à travailler, mais ne travaillez pas trop. A ce stade du jeu, il faut savoir que vous ne pouvez travailler que 6 heures maximum par jour. Travailler dans un état d’épuisement ne fera que prolonger le temps qu’il vous faudra pour atteindre le point de rupture.
La meilleure façon de gagner en confiance à ce stade est de surmonter tous vos doutes. Vos émotions peuvent commencer à ressembler à des montagnes russes. Parfois, vous aurez l’impression d’être en feu, mais après 15 heures de lutte sur le même problème, il est très courant de ressentir le contraire. La meilleure façon de gagner en confiance à ce stade est de surmonter vos doutes. Vous êtes peut-être sur des montagnes russes émotionnelles. Parfois, vous avez l’impression d’être en feu, mais après 15 heures de lutte contre le même problème, vous ressentez généralement le contraire.
Il peut être frustrant de ne pas savoir si quelque chose vous prendra 5 minutes ou 5 heures, mais chaque fois que vous mettrez en œuvre et implémenterez avec succès une nouvelle fonctionnalité, un élan de confiance sera tout ce dont vous avez besoin. Après avoir résolu une poignée de problèmes difficiles sans aucune aide, vous deviendrez accro au sentiment de construire des choses en dehors de votre zone de confort. Cela peut être frustrant si vous ne savez pas si quelque chose va vous prendre 5 minutes ou 5 heures, mais chaque fois que vous travaillez dur et implémentez avec succès une nouvelle fonctionnalité, cet élan de confiance sera tout ce dont vous avez besoin. Après avoir résolu des problèmes difficiles sans aucune aide, vous deviendrez accro au sentiment de construire quelque chose en dehors de votre zone de confort.
Comment savoir quand vous avez dépassé le point d’inflexion
La dernière étape du processus du point d’inflexion est l’acceptation. Acceptation que le développement de logiciels est un processus d’apprentissage continu. Accepter que le sentiment d’avoir tout appris avec succès signifie simplement que vous devriez commencer à penser à résoudre des problèmes plus complexes. La dernière étape du processus de point d’inflexion est l’étape d’acceptation. Acceptez que le développement de logiciels est un processus d’apprentissage continu. Accepter le sentiment d’avoir tout appris avec succès signifie que vous devriez commencer à réfléchir à la résolution de problèmes plus complexes.
Avez-vous déjà vécu le point d’inflexion ? Partagez cette publication et démarrez une conversation avec vos amis. Vous seriez surpris du nombre de personnes qui ont atteint et dépassé ce moment. Avez-vous déjà vécu un point d’inflexion ? Partagez cette publication avec vos amis pour démarrer une conversation – vous serez surpris du nombre de personnes qui ont atteint et dépassé ce moment.
Comment ça, il y a DEUX points d’inflexion ? N’est-ce pas un point d’inflexion où tout commence à prendre un sens ? Si une partie du développement commence à avoir un sens, pourquoi alors l’appelez-vous un point d’inflexion ? N’y a-t-il aucun moyen d’unifier ces « points d’inflexion » en quelque chose de plus concret ? Comment ça, il y a deux points d’inflexion ? N’y a-t-il pas un tournant où tout commence à prendre un sens ? Si une certaine partie du développement commence à avoir un sens, alors pourquoi appeler cela un point d’inflexion ? N’existe-t-il pas un moyen d’unifier ces « points d’inflexion » en quelque chose de plus concret ?
Excellente question ! Fondamentalement, il y a deux clés pour être un développeur Web solide : Excellente question ! Il existe essentiellement deux clés pour devenir un développeur Web fiable :
- Création d’une application basée sur une base de données. Les développeurs appellent cela « créer des applications grossières ». Cela transférera les données dans une base de données, les intégrera peut-être à quelques gemmes, etc. Une fois que vous aurez codé suffisamment d’applications Web, vous remarquerez qu’il existe un modèle/une formule qui vous aidera à parcourir 90 % des éléments que vous créez. *Créer une application basée sur une base de données. Les développeurs appellent cela « créer des applications brutes ». Une fois que vous aurez écrit suffisamment d’applications Web, vous remarquerez qu’il existe un modèle/une formule qui vous aide à effectuer 90 % du travail de création.
- La résolution d’algorithmes est un peu différente. Fondamentalement, au lieu de suivre un modèle, cela implique généralement de nombreux essais et erreurs avant que les choses ne fonctionnent comme prévu.
- *L’algorithme de résolution est un peu différent. Fondamentalement, contrairement au fait de suivre un modèle, cela nécessite généralement de nombreux essais et erreurs avant que les choses fonctionnent comme prévu.
Les deux finissent par se croiser lors de la création d’applications complexes dans le monde réel. Les deux finissent par se croiser lors de la création d’applications complexes dans le monde réel.Par exemple, si vous créez un jeu d’échecs, stockez les informations de jeu, la connexion de l’utilisateur, tous les éléments standard impliqués dans la création d’une application CRUD. Mais il existe des algorithmes plus compliqués que vous devrez également prendre en charge. Pensez : déterminer si un utilisateur est en échec ou en échec et mat. Ou si un mouvement est valide. Par exemple, si vous créez un jeu d’échecs, stockez les informations sur le jeu, les connexions des utilisateurs et tous les éléments standard impliqués dans la création d’une application CRUD. Cependant, vous devez également prendre en charge des algorithmes plus complexes. Considérez : Déterminer si l’utilisateur est vérifié ou non. Ou si une action est valide.
Les algorithmes de résolution ne vous aident pas à créer un formulaire et à demander des informations à l’utilisateur. Inviter l’utilisateur et stocker des éléments dans une base de données ne vous aide pas à résoudre les problèmes algorithmiques. Lorsque vous maîtrisez les modèles que vous utiliserez pour faire 90 % du temps et les algorithmes dont vous avez besoin dans les 10 % du temps, vous pouvez résoudre la plupart des défis auxquels vous êtes confrontés. La résolution d’algorithmes ne vous aide pas à créer des formulaires et à inviter les utilisateurs à saisir des informations. Inviter l’utilisateur et stocker les données dans une base de données ne vous aide pas à résoudre les défis algorithmiques. Lorsque vous maîtrisez les modèles que vous utiliserez 90 % du temps, vous avez besoin des algorithmes dont vous avez besoin pour résoudre la plupart des défis auxquels vous êtes confrontés.
Je ne semble jamais dépasser le stade des connaissances spécifiques au domaine et aux procédures. Pourquoi? Je ne semble jamais dépasser les étapes de connaissances spécifiques au domaine et de connaissances procédurales. Pourquoi?
Passer l’étape spécifique au domaine et procédurale est un peu difficile. Vous devez d’abord être à l’aise pour lire et comprendre des éléments tels que la documentation et les éléments destinés aux programmeurs « intermédiaires » plutôt qu’aux « débutants ». Une fois que vous pourrez lire et utiliser la documentation, vous disposerez d’un bon moyen d’apprendre de nouveaux sujets. Traverser des domaines et des étapes de processus spécifiques est un peu difficile. Tout d’abord, vous devez être capable de lire et de comprendre facilement du contenu tel que la documentation destinée aux programmeurs « intermédiaires » plutôt qu’aux « débutants ». Une fois que vous savez lire et utiliser ces documents, vous disposez d’un excellent moyen d’apprendre un nouveau sujet.
Ensuite, vous devez être prêt à sortir de votre zone de confort et être prêt à passer du temps à travailler par vous-même. Trouvez un problème qui vous passionne et foncez ! Ensuite, vous devez être prêt à sortir de votre zone de confort et prendre le temps de résoudre le problème par vous-même. Trouvez un problème qui vous passionne et faites-le !
Continue à coder, Chris ! 🙂
Je ne sais vraiment pas quoi dire à propos de cet article ou de celui-ci « Comment savoir que vous êtes prêt à commencer à travailler en tant que développeur Web » Je ne sais vraiment pas quoi dire à propos de cet article ou de ce « Comment savoir que vous êtes prêt à commencer à travailler en tant que développeur Web » Cela m’est venu directement au cerveau comme si, en lisant, je me regardais dans un miroir. Cela m’est entré directement dans la tête et c’était comme si je me regardais dans le miroir en lisant. Quel article excellent et brillant. Vous pouvez probablement appeler cela la psychologie des développeurs. Quel merveilleux article. On pourrait appeler cette mentalité un développeur. Je me sens toujours bizarre après avoir lu ceci (dans le bon sens). pourquoi ? Après avoir lu ceci, je me sens toujours bizarre. Pourquoi? Je suis actuellement biochimiste avec quelques années dans le domaine. Oui je fais de l’ADN, de la biologie moléculaire de l’ARN, c’est amusant et tout mais… ça ne paie pas bien. (actuellement en dessous et près de 40 000) Je suis actuellement biochimiste et je travaille dans le domaine depuis plusieurs années. Oui, je fais de la biologie moléculaire de l’ADN et de l’ARN, ce qui est très intéressant, mais… le salaire n’est pas élevé. (actuellement environ 40 000 personnes) Cette année, j’ai décidé de changer complètement de carrière pour devenir développeur que j’aime vraiment. En 11-12 mois (j’ai commencé sérieusement en janvier-février 2015), j’ai commencé à partir de 0 (zéro, nada) et j’ai appris le HTML, le CSS, le JS, du jQuery, du C#, du Android. Maintenant, je sais comment créer un site Web (responsive bien sûr) et je développe ma propre application Web ASP.Net MVC. Cette année, j’ai décidé de changer complètement de vecteur et de devenir un développeur que j’apprécie réellement. En 11-12 mois (en fait j’ai commencé sérieusement en janvier-février 2015), j’ai appris HTML, CSS, JS, jQuery, c#, Android à partir de zéro. Maintenant que je sais créer un site web (responsive bien sûr), je développe mon propre ASP. Application Web NetMVC.
Certains d’entre vous diront un an et toujours pas sur le terrain ? eh bien j’ai 3 enfants et …40 ans. Certains m’ont dit que j’étais en retard. mais je pense quand même que je peux y arriver mais c’est difficile (mais je ne suis toujours pas en sécurité et en fait, si je postulais pour un emploi, je me sentirais comme un imposteur) Certains d’entre vous diraient un an et vous n’avez pas encore commencé à travailler ? J’ai trois enfants… 40 ans. Certaines personnes m’ont dit que j’étais en retard. Mais je pense toujours que je peux le faire, mais c’est difficile (mais je ne suis toujours pas qualifié, en fait je me sentirais comme un fraudeur si je postulais pour un emploi)
Cet article décrit vraiment certains des points que je ressens maintenant ou la sensation que je ne suis pas prêt alors que je le suis probablement déjà. Merci pour cela
Cet article décrit vraiment certains des sentiments que je ressens en ce moment, ou peut-être que je suis prêt, mais je ne le suis pas encore. merci
Vous êtes probablement plus prêt que vous ne le pensez, Ernest ! Continuez votre travail formidable dans votre parcours de codage ! Sortez de votre zone de confort ! Vous êtes peut-être plus préparé que vous ne le pensez, Ernest ! Continuez votre bon travail dans votre parcours de codage ! Sortez de votre zone de confort !
What to read next
Want more posts about Translation?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Translation?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home