Learn and master GraphQL by building real web apps with React and Node
What you'll learn
-Build amazing single page applications with React JS and GraphQL
-Master fundamental concepts behind structuring GraphQL servers
-Realize the power of building flexible data schemas
-Be the engineer who explains how GraphQL works to everyone else, because you know the fundamentals so well
-Become fluent in the ecosystem supporting GraphQL, including the differences between Apollo and Relay
Learn how to use GraphQL's schema to define relations between your data objects
Learn the process of combining a backend server with a front end React
Master the process of thinking about your applications data in terms of a graph structure
Grasp the difference between GraphQL, Apollo, and Relay, and when to use each
Develop apps that are unique, fun, and responsive.
Build servers that can be used with both React and React Native applications
Master handling authentication with GraphQL
Learn the core principles of navigation with React Router and GraphQL Courses
Apprendre le graphQL, la réaction, le Node.js, et l’ingénierie, en général, n’est pas facile pour la plupart des gens. Dans cet article, nous allons passer en revue quelques-uns des principaux biais cognitifs que vous devez être conscient d’accélérer votre taux d’apprentissage, de décider quand changer de technologie, et de refactoriser votre code ou d’éviter les erreurs qui pourraient conduire à la dette technique et mal dépensé Temps. Vous éviterez de tourner en rond et de constater que vous apprenez chaque leçon plus rapidement.
Apprendre la programmation et l’ingénierie, en particulier JavaScript, peut être difficile. L’écosystème de Node.js évolue à un rythme rapide, laissant vos connaissances actuelles dépassées. Dans cet environnement trépidant, vous devez être conscient de la façon dont vous pouvez accélérer votre apprentissage et réduire le temps inutile. Au fur et à mesure que la technologie progresse, l’important n’est pas seulement d’avoir des connaissances spécifiques sur la technologie, mais aussi d’adapter les modes de pensée aux changements fréquents. Les modèles de pensée et d’architecture resteront similaires et pourront être appliqués à différents environnements et langues. Dans cet article, nous allons passer par les principaux biais cognitifs qui affectent nos décisions lorsque nous avons besoin de refactorise ou de changer notre pile de technologie. Nous discuterons de la façon d’éviter les mauvaises décisions qui nous empêchent d’apprendre plus rapidement et vous proposerons des conseils qui vous aideront à augmenter votre taux d’apprentissage. Beaucoup de ces choses sont également applicables à différents domaines.
Je me vois et les autres d’être vraiment attaché à leur code. Beaucoup de gens travaillent dur sur la préparation de certaines architectures, base de code ou des solutions au problème pour seulement trouver que l’architecture n’est pas assez modulaire, trop sujette aux erreurs ou ne fonctionne tout simplement pas très bien. Changer ou refactoriser complètement l’architecture prend souvent beaucoup de temps et signifie qu’une grande partie de votre code sera supprimé. C’est le point où la plupart des gens seront résistants au changement et commencer à rationaliser et de trouver des moyens de justifier leur solution, même si le raisonnement logique ne soutiendrait pas l’ancienne solution. Dans ce problème, nous avons affaire à un certain nombre de biais cognitifs qui influent sur nos décisions. Les principaux biais sont les :
Biais d’engagement
Préjugé de confirmation
Rationalisation post-achat
Je vois que les gens commencent de nouveaux projets avec une pile de technologie déjà prédéfinie dans leur tête. Leur pile de technologie correspondra beaucoup à leurs compétences actuelles. Bien que cela soit naturel, il peut conduire à l’accumulation de la dette technique et à l’utilisation de la technologie qui n’est pas le meilleur ajustement pour la pile moderne actuelle. En outre, l’architecture mal conçue conduit à l’insatisfaction dans votre équipe, la frustration et l’inefficacité. L’écosystème GraphQL est très rapide et continue de beaucoup changer. Avant chaque projet, vous devez réévaluer et ajuster votre pile technique pour refléter les meilleures et les plus actuelles solutions. C’est beaucoup plus difficile pour les projets déjà en cours. Vous investissez beaucoup plus de temps et il devient plus difficile de passer à une technologie plus appropriée. Les gens ont toujours tendance à aller avec l’ancienne architecture, cependant, même si à long terme, cela signifie que vous choisirez des solutions moins modernes et efficaces et vous passerez plus de temps à écrire des mises à jour d’état, etc. Beaucoup de gens résistent à passer à de nouvelles technologies, même si cette nouvelle technologie permettrait de résoudre de nombreux problèmes dans leur application ainsi que de gagner du temps de développement. Cela est compréhensible si votre base de code est trop grande pour passer, mais vous devriez penser à refactoriser progressivement votre pile pour être à jour avec l’ingénierie moderne actuelle.
Sans aucun doute, vous ne devriez pas adopter les nouvelles technologies à l’aveuglette; vous devez évaluer chaque technologie séparément. Au lieu de me concentrer sur le temps investi dans l’ancien code, je vous recommande d’apprendre de votre expérience de mise en œuvre de la technologie, et de reconnaître les avantages d’adapter différents modèles de pensée. Grâce à ces leçons, vous apprendrez à adopter rapidement et efficacement les nouvelles technologies à l’avenir.
Nous devons être particulièrement conscients des biais d’engagement, car ils peuvent conduire à ce qu’on appelle l’escalade de l’engagement. L’escalade de l’engagement est un modèle de comportement humain où l’individu ou le groupe continuera le même comportement plutôt que de modifier le cours, même si les décisions sont clairement erronées. Dans certains cas, il peut conduire à des catastrophes dans la vie des peuples comme ils procèdent dans les mêmes mauvaises décisions et complètement ignorer les signaux négatifs. Ils y ont attaché beaucoup d’ego et de travail et la volonté nécessaire pour changer la décision augmente avec le temps. Une fois que vous êtes au courant de biais d’engagement et d’autres biais similaires, vous prendrez de meilleures décisions quand il s’agit de choisir votre pile de technologie. Et aussi que vous serez également en mesure de mieux estimer le bon moment pour une refactorisation significative et des modifications à votre application. Nous devons également tenir compte d’un certain nombre d’autres biais. La décision de migrer une pile de technologie est affectée par la rationalisation post-achat. Cela signifie que nous accordons beaucoup plus d’importance aux choix passés et que nous essayons de les justifier.
Le biais de confirmation influe également sur ces décisions. Ce biais a pour conséquence que les gens ont tendance à croire des choses qui confirment leurs croyances. Cela peut être très dangereux si vos croyances conduisent à une mauvaise prise de décision. Vous vous concentrerez alors uniquement sur les faits qui renforcent vos croyances. Prenons l’exemple de rester avec une technologie qui devient progressivement obsolète. Vous savez que vous devez passer à une nouvelle technologie ou refactorire considérablement votre base de code. Mais vous vous en tiendiserez à trouver des faits et des informations qui confirment vos croyances et vos actions. Tous ces biais vous affectent de la même manière. Vous êtes réticent à changer vos décisions et à être flexible avec les technologies, et vous évitez de refactoriser et d’intégrer de nouvelles choses dans votre base de code.
Vous avez ce bug, cet avertissement dans votre console que vous savez que vous devriez avoir résolu depuis des semaines maintenant. Vous préférez toujours travailler sur de nouvelles fonctionnalités, des choses que vous savez comment résoudre, ou sur une fonctionnalité frontend agréable avec de grands effets qui ajouteront un sentiment à votre site Web. Mais les choses importantes qui vous permettront de grandir en tant que développeur comprennent également se concentrer sur les tâches que vous ne trouvez pas agréable pour le moment, mais qui peuvent apporter des récompenses à long terme. Lorsque vous résolvez cet avertissement, vous aurez beaucoup plus de perspicacité dans la façon dont les choses fonctionnent à un niveau plus profond. Vous connaissez généralement vos bibliothèques juste superficiellement grâce à des API préparées, mais en allant après des tâches vitales mais moins attrayantes, vous aurez souvent besoin de plonger dans la base de code de la bibliothèque. Vous apprendrez comment les autres ingénieurs travaillent et ce que leur style de codage implique.
Faire partie d’une équipe de personnes qui s’écoutent augmentera votre apprentissage de façon si spectaculaire qu’il est inestimable et irremplaçable. Vous apprendrez non seulement les compétences de l’ingénierie, mais aussi d’importantes compétences sociales. Si vous êtes un débutant complet, il peut être difficile de commencer à coder à partir de zéro. Vous ne savez tout simplement pas ce que vous ne savez pas. Vous ferez probablement beaucoup d’erreurs en vous concentrant sur des choses qui n’ont pas beaucoup d’importance, et cela vous coûtera beaucoup de temps. Je vous recommande de rejoindre une équipe avec des développeurs plus expérimentés afin que vous puissiez demander de l’aide, des révisions de code, etc. Les problèmes les plus courants dans un environnement d’équipe sont que nous rencontrons souvent un biais cognitif appelé l’effet IKEA qui peut causer des différends entre les membres de l’équipe, surtout s’il ya des développeurs seniors qui ont leur ego attaché à leur code. L’effet IKEA amène chaque membre à ne pas aborder objectivement la solution à un problème, à surévaluer sa propre solution et à sous-estimer celle des autres. Une fois que vous êtes au courant de ce problème, vous pouvez être plus logique lorsque vous discutez de la meilleure solution pour le projet avec d’autres membres de l’équipe.
Ce n’est qu’un petit sous-ensemble de préjugés bon d’être conscient de lors de l’apprentissage de la programmation. La meilleure façon de commencer à atténuer les préjugés sur vous et vos décisions est d’en être conscient et de commencer à voir rétrospectivement comment ils ont affecté vos décisions et votre comportement. Je vous recommande d’examiner votre comportement passé et d’essayer d’identifier certains cas où vous avez été biaisé dans un certain sens. Essayez de vous rappeler les émotions que vous ressentiez, d’en être conscient et de commencer à calculer d’autres décisions avec cette émotion. La clé pour réduire combien un biais vous affecte est de vous dissocier du sentiment lui-même. Regardez le sentiment comme un objet externe et évaluez les décisions que vous avez prises en fonction de faits réels. Si possible, comptez sur les mathématiques et calculez une valeur attendue pour chaque décision. Les sentiments sont un bon indicateur dans certains cas, mais ne sont pas tout à fait exacts. En injectant de la logique dans votre apprentissage et votre travail en général, vous obtiendrez de bien meilleurs résultats et vous serez en mesure de vous concentrer sur les domaines clés et d’éviter les pièges et les erreurs qui vous conduisent à continuer à travailler avec les anciennes piles de technologie héritée.
Ce sont quelques-uns des biais cognitifs et les tendances humaines dans la programmation qui peut vous retenir dans votre progrès en tant qu’ingénieur. Je dirais qu’il est très important d’être flexible dans l’adoption de nouvelles technologies et de ne pas résister au changement tout en hiérarchisant vos tâches pour le succès à long terme. Cela vous aidera à adopter les technologies plus rapidement, à tirer d’autres leçons et, indirectement, vous aidera également à augmenter votre taux d’apprentissage. En adoptant de nouvelles technologies plus fréquemment, vous verrez plus de bases de code et vous « apprendrez à apprendre » beaucoup plus efficacement. Je crois que la capacité d’apprendre rapidement est la compétence la plus importante pour réussir, en particulier dans le génie, que la quantité de nouvelles technologies et la complexité de nos systèmes est en constante augmentation.