Maîtriser JavaScript, 8 points et concepts qu'il faut connaître

Поделиться
HTML-код
  • Опубликовано: 26 июн 2024
  • Je parle de 8 points et concepts pour devenir expert JavaScript. Comme l’univers JavaScript et ses défauts peu connus.
    En 2023, l'environnement économique et le marché sont plus difficiles pour les développeurs, enfin surtout juniors (plus de challenge pour vous, c'est indéniable).
    Voici mes conseils pour devenir un maître en JavaScript.
    Chapitres :
    00:00 - Intro
    01:16 - L'univers JavaScript, et ses défauts
    05:07 - Savoir trier simplement un Array ou Objet
    06:45 - Les fonctions pures et l'immutabilité
    09:20 - La programmation fonctionnelle
    10:50 - Les classes et la programmations orientée objet
    12:21 - L'asynchrone et l'async/await
    13:05 - L'héritage des objets et le polymorphing
    14:50 - Les variables, var, let, et const
    Ma Newsletter avec plus de tips pour cartonner dans le dev et freelancing : devsfreelancesacademy.substack...
    Mon Insta : / julien_lucas
    Qui je suis?
    Développeur freelance depuis près de 10 ans, je travaille depuis 5 ans avec des startups, des scale-ups, des entreprises.
    Sur cette chaîne, je parle code, freelancing, business et liberté. La chaîne à suivre pour ceux qui veulent cartonner.
    #javascript #developpeurweb #développeurexpert
  • НаукаНаука

Комментарии • 127

  • @lordkiwi9083
    @lordkiwi9083 Год назад +9

    Bonjour Julien,
    Je te suis depuis maintenant assez longtemps, je l'avoue et je regarde quasiment toutes tes vidéos avec toujours grand intérêt. J'ai un parcours scolaire assez chaotique, j'ai commencé à apprendre le développement quand j'avais encore 11-12ans et maintenant que je me retrouve en études supérieurs, j'ai eu ma première année en étant major de promo, mais depuis, impossible de passer ma deuxième année. Je m'ennuie à mourir pendant les cours, et j'ai toujours voulu me lancer un peu tout seul. Maintenant, voilà, je maitrise les compétences que tu liste ici, peut-être avec quelques lacunes car personne n'est parfait, mais disons que j'essaie de me débrouiller, de toujours optimiser et de rendre le code le plus lisible et accessible possible. Je touche à énormément de langages différents, mais je tiens en horreur, je dis bien en horreur, le CSS. Je suis capable de gérer un backend tout seul (J'ai réussi à me faire embaucher en tant que responsable de pôle R&D en CDI pendant un temps dans une petite entreprise avant de partir à cause de problèmes en interne), mais alors le frontend...
    Très honnêtement, je ne sais pas quoi faire. Je voudrais me lancer sur Fiverr, mais que proposer ? Qu'est-ce que je peux mettre en avant qui me donnerait une légitimité face à un autre ? L'année prochaine, je re-tente une deuxième année, mais c'est la dernière chance, et j'avoue que j'aimerais bien avoir de l'argent car ça fait déjà 3 ans de "mis à la poubelle" pour ma famille, et aussi car j'ai envie de passer au dessus de l'ennui des cours etc.
    C'est un peu sans filtre, mais cette situation me ronge pas mal, et j'hésite depuis un moment à te poser la question.
    Merci de m'avoir lu si tu l'as fais,
    Excellente journée à qui lira ce commentaire.
    Charles.

    • @mathieu1258
      @mathieu1258 Год назад +6

      Hello Charles,
      J'aime bien ton histoire du coup je te fais une réponse. J'ai 15 ans d'XP dans le dev.
      Déjà, premier conseil, c'est toujours mieux de finir tes études, mais ça tu dois t'en douter. Ça facilitera ton entrée sur le marché du travail, pour au moins les 5 premières années.
      Maintenant, dans le cas contraire, on peut aussi faire son chemin dans le dev sans diplôme.
      Pour trouver un job quand on a pas d'XP, il faut finir de se former, et en apporter la preuve, et ça la seule façon c'est de faire des projets persos.
      Le top est de trouver un truc un peu original, et d'aller carrément au bout, tu sors un petit site et tu essaies de trouver des utilisateurs, c'est la meilleure approche parce que tu vas t'approprier le projet et avoir envie de le peaufiner au top, c'est plus motivant.
      Sinon, tu peux faire un copie d'un truc qui existe, spotify, réseau social, eCommerce, blog, ce que tu veux. Tu choisis une stack bien recherchée genre Next + Mysql + Express, le tout en typescript, et tu codes un truc qui bute le plus possible.
      Ensuite tu te fais un petit portfolio et tu mets le lien dedans avec des images.
      Si c'est juste un projet lambda, tu mets tout le code sur github, et tu mets ça aussi en accès public.
      Ce projet sera ta carte de visite. Tu vas apprendre énormément en le codant, et tu pourras mettre de vrai ref de tech dans ton CV.
      Pour ton aversion pour le CSS, on a tous un truc sur lequel on bloque un peu plus, le CSS est une logique un peu différente, et demande surtout du temps pour être maîtrisé. Si tu en fais tous les jours au boulot, tu finis par intégrer la logique. Maintenant si ça te saoule, utilise tailwind, ça simplifie le problème, et c'est une très bonne ref sur un CV.

    • @dapria
      @dapria 8 месяцев назад

      ruclips.net/video/_IwMAUbc2tA/видео.html

  • @ananasfraise4303
    @ananasfraise4303 Год назад +10

    triller 😂 première fois que je le vois écris comme ça, sinon excellent comme d’hab

  • @frankdearr2772
    @frankdearr2772 5 месяцев назад

    excellent sujet, merci beaucoup 👍

  • @user-no7oc1dc3u
    @user-no7oc1dc3u Год назад +9

    Bonjour,
    je me permets de commenter parce que pour une vidéo qui parle de maîtriser le JS, il y a des approximations voir des erreurs qui ne sont pas acceptables.
    * Tout d'abord, dans la partie "l'univers Javascript et ses défauts" vous dîtes que "les variables primitives existent qu'une seul fois en mémoire", j'émets un gros doute vis à vis de cette affirmation, je n'ai pas pu trouver de ressource la confirmant ou la contredisant. Ça me paraîtrait aberrant pour un interpréteur JS qu'à chaque fois que l'on affecte une valeur, celui ci parcours sa mémoire à la recherche de la donnée, que si il ne la trouve pas, il l'a stocke, puis l'index (pour accélérer la recherche). Le gain de mémoire versus la perte de rapidité ne serait pas du tout intéressant (QUID des probabilités d'apparition multiple d'une même primitive à un instant T d'un programme ?). De plus, les spécifications EcmaScript ne disent pas réellement comment les moteurs JS doivent être implémentés mais plutôt comment le langage doit réagir quand on l'utilise. Par contre, il aurait été plus pertinent de dire que les objets sont affectés ou passés en paramètre par référence et qu'à l'inverse les primitives sont affectées ou passées en paramètre par copie! (Concept à connaître très important dans tous les langages!!!)
    * Ensuite, dans la partie "Savoir trier simplements un Array ou un Objet", à aucun moment vous parler de trie, sur les tableaux, il existe une méthode "sort" qui fait très bien le taf (Qui doit sûrement être une implémentation de l'algorithme QuickSort...). Il n'y a donc pas besoin d'implémenter soit même une fonction de trie. Quand à votre fonction permettant d'échanger la place de deux valeurs, je suis désolé mais elle ne fait rien parce que vous recopié le tableau au tout début de votre fonction, vous ne travailler donc pas sur l'instance du tableau que vous avez passé en paramètre. Si c'est réellement le but de ne pas modifier les données passées via paramètre, il aurait fallu au moins retourner la nouvelle instance du tableau en fin de fonction. Ensuite, la solution proposé via l'utilisation du splice me parait fonctionnelle, elle est cependant un peu compliqué pour ce que vous souhaitez faire. Un simple :
    const tmpValue = newArray[newIndex];
    newArray[newIndex] = newArray[oldIndex];
    newArray[oldIndex] = tmpValue;
    aurait suffit. Tout le monde comprend directement ce que l'on fait et en plus la solution est plus efficace que l'utilisation du splice!
    * Dans la partie "Les classes et la programmations orientée objet", vous dites que l'on peut créer des classes statiques. Désolé mais non, les classes statiques n'existent pas en JS. Une classe statique est une classe dont tous les membres sont statiques et que l'on ne peut pas instancier. Hors même si on met tous les membres en statiques dans une classe, rien n'empêche de quand même l'instancier.
    * Dans la partie "L'héritage des objets et le polymorphing", c'est ici que vous faites les plus grosses erreurs. Tout d'abord l'héritage, vous dites que c'est fait pour importer des membres au sein d'une autre classe, et que donc cette import est la CAUSE du choix de l'héritage. Hors, en terme de conception logiciel, il s'agit d'une grosse erreur. On ne devrait jamais utiliser l'héritage parce que l'on veut récupérer des membres d'une autre classe. En effet, le fait de récupérer les membres d'une autre classe doit être une CONSÉQUENCE! Le fait de choisir si une classe B hérite d'une classe A, c'est parce que le concept défini par la classe A correspond aussi à la classe B. Un exemple, si je défini une classe "Vehicule" qui contient une méthode "deplacer", je peux très bien créer une classe "Bateau" qui hérite de "Vehciule", ou encore "Avion" qui hérite de "Vehicule" car les deux sont des véhicules, par conséquence les deux classes posséderont la méthode "déplacer". Cependant, si je veux aussi avoir une classe "Personne" que je veux aussi pouvoir "déplacer", en aucun cas je dois la faire hériter de "Vehciule". Ça pourrait peut être fonctionner mais sur le long terme, vous pouvez être sur que votre programme va finir en usine à gaz.
    * Dans cette même partie, vous dites que le "polymorphing" permet de modifier une méthode au sein d'une classe, ce que vous faites plus tard mais on va y revenir. Alors, je ne suis pas sur de bien comprendre ce que vous tentez d'expliquer. Il existe plusieurs forme de polymorphisme (polymorphism en anglais). Mais, quand on parle de polymorphisme en POO, on parle qu'une même méthode au sein de classes différentes (méthode avec le même nom et le même prototype) n'exécute pas le même code mais pour la même finalité (celui de la fonction). Si on reprend l'exemple plus haut de la méthode "deplacer" dans les classes "Bateau" et "Avion", le corps de la méthode "deplacer" dans la classe "Bateau" contiendrait des instructions pour le faire naviguer sur l'eau alors que le corps de la méthode "deplacer" dans la classe "Avion" contiendrait des instructions pour le faire voler. Dans les deux cas, notre véhicule se déplace mais pas de la même façon. C'est simplement ça le principe de polymorphisme en POO!
    * Dans cette même partie, vous voulez donner un exemple de polymorphisme en venant modifier le prototype de la classe MegaStar. NON, ce n'est pas du polymorphisme, vous êtes juste venu modifier la définition de la classe MegaStar. Si vous travaillez avec des classes JS, vous ne devez jamais venir modifier le prototype de cette classe. En effet, à l'origine, JS n'était pas un langage objet, il s'agissait d'un langage basé sur les prototypes, il n'y avait pas de classe (il y a une certaine ressemblance entre les deux concepts mais ce n'est pas la même chose). Ce n'est que depuis la norme ES2015 que les classes sont apparues! Beaucoup de devs utilisaient des mécaniques permettant de faire de la POO en utilisant des librairies alternatives qui s'appuyaient elle même sur les prototype, ils ont fini par intégrer ses mécaniques de classes en natif (mais elle s'appuie quand même sur les prototypes). En faisant ce que vous avez fait avec le prototype, vous avez juste modifier la méthode directement dans la définition de la classe. Tous les objets qui instancient cette classe ont donc vu leur méthode "getDetails" modifiée. Si vous souhaitez réellement que la méthode "getDetails" renvoie le nom plutôt que le prénom autant l'écrire directement dans la définition de la classe. Ça évitera à vos collèges qui viennent maintenir votre code de se tirer les cheveux parce qu'ils ne comprennent pas pourquoi votre classe qui défini une fonction, n'a pas le même comportement que celui marqué dans la définition de la classe!
    * Si vous voulez aller plus loin en ce qui concerne les prototypes, et les mécaniques de classe et d'héritage, je vous conseil fortement de vous intéresser au principe de chaîne de prototype en JS.

    • @remix2die4
      @remix2die4 Год назад

      Quelles resources recommanderiez-vous pour apprendre en profondeur le JS ? (livres, auteurs, youtubeurs, etc.....)

    • @thebattinson1278
      @thebattinson1278 Год назад

      Je +1 ton commentaire.
      Beaucoup d'approximations.

    • @JulienLucas
      @JulienLucas  Год назад

      @user-no7oc1dc3u par rapport à ce message : "Si vous voulez aller plus loin en ce qui concerne les prototypes, et les mécaniques de classe et d'héritage, je vous conseil fortement de vous intéresser au principe de chaîne de prototype en JS."
      À qui vous adressez-vous?

    • @user-no7oc1dc3u
      @user-no7oc1dc3u Год назад +1

      @@remix2die4 Je suis désolé, je viens d'une formation diplômante et mes références, c'est les études que j'ai faites. On m'a d'abord appris l'algorithmie, différentes méthodologies de conception logiciels, le fonctionnement d'un ordinateur, d'un SGBD, des protocoles, des bonnes pratiques, de la sécurité, etc. Après, je suis quelqu'un de curieux, je me suis formé aussi à coté tout seul. J'ai appris aussi des personnes qui m'entouraient au travail ! Je suis resté critique vis à vis de ce que l'on me dit! En cas de doute, je vais vérifier une information en croisant les sources. Mais si j'ai pu faire ça, c'est grâce au connaissance de base : l'algorithmie, la conception logiciel et surtout de la curiosité. Quand on a les bases, et de la culture informatiques, apprendre un nouveau langage, ça se fait très vite, on retrouve quasiment toujours les mêmes fonctionnalités dans tous les langages, c'est surtout de la syntaxe qui change, mais ça va vite !!!!
      Je n'ai malheureusement pas de ressources à vous conseiller particulièrement, je vous conseillerai plutôt d'aller voir à différents endroits afin de croiser les sources histoires d'être certains que ce que dit la personne qui a écrit un livre, que c'elle qui à un écrit un article, que c'elle qui a tourné une vidéo, que ce que l'on vous a dit est vrai et n'est pas déformé voir faux ! Après, les sciences de l'information ce n'est pas une science pur! Ce n'est pas parce que quelqu'un dit qu'il faut faire comme ça que c'est forcément vrai ! C'est beaucoup d'expérimentation et de retour d'expérience. Voir ce qui marche, et voir ce qui ne marche pas. Ce faire son expérience ! Et pour ce faire son expérience, il faut tester et pratiquer !
      A la rigueur, un gars qui me parait assez sérieux dans ce qu'il dit, qui se tient assez informé des nouveautés autour des technologies de l'information, et qui a pas mal de contenu à proposer, ça serait Grafikart. Mais comme je disais plus haut, il ne faut pas hésiter à aller voir ailleurs !

    • @user-no7oc1dc3u
      @user-no7oc1dc3u Год назад

      @@JulienLucas, avec tout le respect que je vous dois, à vous ! Je ne suis pas certains, d'après votre démonstration, que vous comprenez bien ce que vous faites quand vous venez modifier le prototype de la classe MegaStar!

  • @shujin240
    @shujin240 Год назад +3

    Je suis content que tu sois plus régulier qu'avant, honnêtement tu fais de très bonnes vidéos, très intéressantes et qui sortent des tutoriels pour débutant

    • @JulienLucas
      @JulienLucas  Год назад +3

      Un grand merci à toi. Je suis relativement satisfait de ma vulgarisation. 😀 Il y a des concepts avancés dedans aussi.

    • @dapria
      @dapria 8 месяцев назад

      ruclips.net/video/_IwMAUbc2tA/видео.html

  • @felixfale964
    @felixfale964 9 месяцев назад

    Très utile, Merci.

  • @gautekillfr5344
    @gautekillfr5344 Год назад

    C'était top, merci pour le taff!

    • @JulienLucas
      @JulienLucas  Год назад

      Merci pour ce commentaire! ☺️ C'est du taf. Et pour ceux qui veulent aller plus loin, il y a des courses de 32heures.

  • @bastienv6233
    @bastienv6233 Год назад

    Merci pour ces précieux conseils

  • @killeak999
    @killeak999 Год назад

    Je viens de découvrir la chaîne et elle tombe à point, j'ai besoin d'apprendre Javascript pour un projet perso et rien sur cette vidéo j'ai pu m'engloutir quelques chinoiseries sans m'ennuyer une seconde (jolie rythme côté montage ^^). J'ai fait un peu de script en bash il y a quelques années lorsque je faisait mumuse sous Debian mais rien de folichon & ce type de vidéo qui va à l'essentiel est rassurant mais surtout motivant. Je m'en vais dévorer le tuto d'1h illico. Merci bien & bonne continuation ^^

  • @GVideoplanet
    @GVideoplanet Месяц назад +1

    Vidéo utilissime

  • @milzuv1575
    @milzuv1575 Год назад

    Merci bonne vidéo.

  • @ousmanououzeima1133
    @ousmanououzeima1133 Месяц назад

    Tu m'as vraiment aidé à m'informer merci bien.

  • @polyglotteclub
    @polyglotteclub Год назад

    Merci, pour tes compétences

  • @ranarisonassim880
    @ranarisonassim880 11 месяцев назад

    Très bon à savoir moi qui me concentre totalement en javascript actuellement

  • @dieudonnepaqui8362
    @dieudonnepaqui8362 Год назад

    Très bon contenu pour débutant et professionnel. C’est ma première vidéo, et je suis déjà au ange. J’espère en apprendre davantage sur votre chaîne.

  • @oupsoups4813
    @oupsoups4813 Год назад

    Excellence vidéo, j'ai appris beaucoup de choses grâce à toi. J'ai une suggestion concernant l'asynchrone: la librairie rxjs qui est notamment très utilisée avec Angular et qui permet d'utiliser des Observables (je suis junior, n'hésite pas à me corriger si je fais une confusion)

  • @excaliburnes9858
    @excaliburnes9858 Год назад

    franchement génial merci :)

  • @Mellifico
    @Mellifico Год назад

    Merci !

  • @megretmicha4670
    @megretmicha4670 Год назад +1

    Des révisions qui ne font pas de mal... et des découvertes. Merci. Je suis développeur back mais j'utilise souvent JS et pas forcément toujours de la bonne manière apparemment. Je vais vous suivre de plus près maintenant 😅

    • @JulienLucas
      @JulienLucas  Год назад

      Merci pour ton com. 😉

    • @dapria
      @dapria 8 месяцев назад

      ruclips.net/video/_IwMAUbc2tA/видео.html

  • @yanntrad2304
    @yanntrad2304 4 месяца назад

    Franchement tes vids sont uniques bravo

  • @remykennyl.2850
    @remykennyl.2850 6 месяцев назад

    La blague de Dave était si inattendue que j'ai explosé de rire. Merci !

  • @diogo_apl
    @diogo_apl 3 месяца назад

    J'ai adoré. Mais ça fait 6 mois que je travaille tous les jours avec JS et "écosystème" ( react,Next, Prisma, meme Astro 😅) je commence à aimer . Mais j'ai un truc a dire PHP c'est la vie ajajaha et non je parle pas de symfony . Merci pour la vidéo ;)
    +1abonné

  • @patriciak.3279
    @patriciak.3279 Год назад

    Merci

  • @pepew7102
    @pepew7102 Год назад +1

    Il faut quand même noter qu'aujourdh'ui la POO et les classes se font très rares en JS.
    Si on fait du front, on se retrouve à faire du React, de l'Angular, du Svelte, Du NextJS, du Solid, etc. Ces frameworks n'utilisent pas de classes (sauf Angular mais même dans ce cas c'est une utilisation très limitée des classes) . Je me retrouve sur des projets en React ou NextJS dans lesquels le mot clé "class" n'est même pas présent une seule fois (car ce n'est pas du tout la philosophie de ces frameworks).
    Si on fait du back en NodeJS on peut se retrouver à manipuler un peu plus de classes notamment avec des ORMs mais là aussi c'est une utilisation assez limitée des classes vu que dans la plupart du temps elles servent juste à définir des entités.

    • @JulienLucas
      @JulienLucas  Год назад +2

      La POO sur tout un projet j'en ai jamais vu effectivement. Ça date comme paradigme.
      Mais on peut trouver quelque modules codés en POO.
      C'est quand même bon d'avoir quelque notions. 😉

    • @placedelechange
      @placedelechange Год назад

      Les classes en javascript sont des functions avec des prototypes. La notions de class est différente dans ce contexte, c'est juste un choix stylistique.

  • @ArrakeenHD
    @ArrakeenHD Год назад +3

    Hello Julien. Peux-tu expliquer en quoi utiliser .map()/.filter() serait un problème (10:17) ? Ça fait quelques années (depuis l'arrivée des linters, de webpack et des builds) qu'on nous vend le "clean code" comme LE truc à garder en tête quand on dev et que l'énorme majorité des équipes préfèrent ça à des lignes inutiles.

    • @dapria
      @dapria 8 месяцев назад

      ruclips.net/video/_IwMAUbc2tA/видео.html

  • @TheJRFH
    @TheJRFH 11 месяцев назад

    Merci pour cette vidéo, c'est la première que je regarde de cette chaine et elle me sera bien utile pour bien débuter avec ce langage =)

    • @dapria
      @dapria 8 месяцев назад

      ruclips.net/video/_IwMAUbc2tA/видео.html

  • @jawadach
    @jawadach Год назад +1

    J'ai aime ta video, perso je veux etre expert en js ... j'ai une longue experience en prog mais debutant a intermediaire en js
    quels conseils ou livres ou meme tutos me conseiller de suivre
    je trouve parfois des cours qui donnet souvent les bases , le pire ils donnent des solutions sans preciser pourquoi telle solution vs autre ... je trouve ca desolant pour ceux qui pretendent etre des maitres en la matiere
    Mille merci

  • @thibaudcad.1742
    @thibaudcad.1742 7 месяцев назад +1

    👋 Hello, super vidéo ! Très intéressante et agréable à écouter ! 😄
    De mon côté, je me demande pourquoi je n'ai jamais jeté un œil à JS. En ce moment, je commence à m'y plonger. Cela fait déjà 4 ans que je fais du développement par passion (pas pour le boulot), et j'ai appris en autodidacte plusieurs langages : C++, C#, F# (qui, au fait, personne ne connaît 😂), Java, PHP, et Kotlin. Eh oui, vous l'avez bien vu, pas de Python ni de JS dans le lot. Pourquoi ? Parce que je les trouvais trop "basiques/simplet" 🤦‍♂ au niveau de la syntaxe. À 15 ans (j'en ai maintenant 23), j'ai commencé avec le dev sur : Java et C++, et j'en ai chier.. vraiment.. Surtout si tu te sent concerner ou pas d'ailleurs, lis ce texte ou je partage des connaissances et informations, qui aurait changer beaucoup de choses si j'étais tomber dessus il y a maintenant 8 ans... et qui vont juste te demander 5 minutes de lectures ⭐😁
    1 ) Mais voilà récemment, j'ai pris la décision de me reconvertir professionnelement, pour exercer ma passion (du moins on croise les doigts 😂). Et devinez quoi ? Je suis maintenant obligé de plonger dans JS et Python, car c'est la base comme tous le monde le dit ou en parle....(flemme..)
    2 ) Et devinez quoi encore ? Vous avez raison ! 😭 Surtout, ne faites pas la même erreur que moi (je n'ai eu personne pour me guider, ni de près ni de loin...). JS, c'est incroyable. On peut commencer rapidement et aller très loin. Et oui, c'est "basique/simplet" au niveau de la syntaxe et ca peut etre brouillon car peu de choses imposer par le langage de bases, mais qu'est ce que c'est facile, fluide a prendre en main et oui.. c'est le top pour débuter!
    Qu'on le veuille ou non, il est moins exigeant et plus accessible que tout ce que j'ai appris avant...(ou il m'as fallu parfois des semaines a comprendre la gestions de dépendances complexe a n'en plus pouvoir, pour que apres 2-3 semaines de taff apres les cours, j'arrivais enfin a executer ma premiere fonction.. qui me permettais de !!! (calculer la somme de 2 entier et l'afficher en format text...)
    (Je réalise maintenant que j'ai gaspillé tellement de TEMPS à me lancer dans des paradigmes trop complexes...)
    3 ) Si vous ne connaissez pas les langages que j'ai cités (tant mieux pour vous, d'une certaine façon), imaginez que pour faire le moindre script de traitement de fichier texte, il fallait déjà maîtriser des concepts comme le polymorphisme, les objets, les classes, les itérations, les namespaces (faciles à comprendre, mais sans réel intérêt, et des galére en C# à la compilation), les instanciations, et la gestion de la mémoire cache. Bref, tout cela devait être connu par cœur...
    3 ) Alors oui, même si je suis toujours passionné par C#, qui évolue à un rythme effréné (surtout avec C# v12 et son intégration .NET 8), il est temps de reconnaître que JS est une porte d'entrée fantastique. C'est simple, natif (pas de frameworks à apprendre à chaque fois comme JS 😂!!), et à la compilation, votre code peut être exécuté PARTOUT : Web, SysAdmin, iOS, Android, Windows, Linux, RASPBERRY PI, et même sur tous les objets connectés qui nous entourent !
    C'est vrai, SANS CHANGER 1 LIGNE DE CODE d'un appareil à l'autre !
    Plus besoin d'apprendre de nouvelles syntaxes pour chaque plateforme. Le compilateur s'en charge pour vous. C'est la beauté de la compilation C# 12 .NET 8. 🚀
    En conclusion, commencez avec JS/Python (JS est recommandé pour sa simplicité et scalabilité, et as plus de point commun avec les nouvelles technologie), puis, prenez un moment pour explorer l'actualité de C# et du développement chez Microsoft. Microsoft est en train de bouleverser le monde du développement, et c'est passionnant (pour moi en tout cas 😁❤).
    Mais retenez bien : NE FAITES PAS COMME MOI en commençant par des choses compliquées. Jetez un œil à C#, car, après avoir maîtrisé JS, vous verrez que C# est beaucoup plus abordable, avec moins de documentation complexe à suivre. Heureusement, le langage a beaucoup évolué et est bien plus simple qu'il y a seulement un an. Aujourd'hui, vous pouvez écrire : var x = 42; console.Write(x); [Résultat : La console affiche 42 !]. C'est devenu tellement logique, non ?!
    Il y a à peine un an, il fallait créer une classe, la méthode associée, et importer des tonnes de "using System.*****" au début de chaque fichier. Mais les performances étaient toujours au rendez-vous ! Parfois jusqu'à 10 fois plus performant que JS sur un projet de taille moyenne, comme un e-commerce local. Et plus le projet est gros, plus ça brille !
    Donc voilà, si vous êtes toujours là pour lire... bravo, vous avez de la persévérance, mon ami ! Et sachez que, personnellement, dès que j'ai commencé à m'amuser avec JS, tout a coulé de source. Vous ouvrez la console sur Chrome/Edge, et vous pouvez déjà commencer à coder !
    Gardez un œil sur l'actualité de C#, et quand vous vous y intéresserez, vous aurez la chance de profiter des dernières nouveautés, grâce à votre expérience avec JS. Pas besoin d'efforts démesurés ni de temps mental (loin de l'époque du .NET Framework 4 et des Windows Forms... nous avons bien avancé en termes d'évolutions et d'améliorations, en très peu de temps, là où JS n'a pas beaucoup évolué malgré ses 27 ans d'existence sur le terrain 😂).
    Voilà, j'ai terminé. Bon, franchement, je doute que quelqu'un lira tout ça, mais si cela peut aider ne serait-ce qu'une personne à ne pas perdre son temps comme moi ou à jeter un coup d'œil à C# grâce à ce message qui m'a pris 50 minutes à écrire, alors je serais déjà super content. Je l'ai rédigé comme si je pouvais remonter le temps, afin que ce message puisse sauver des semaines voire des mois de travail à quelqu'un, car personne ne m'a expliqué tout cela...
    Bonne journée/soirée/matinée, et peut-être à bientôt sur les forums Microsoft C# (parce que la communauté française n'est pas encore assez présente là-bas 😭😭) !
    PS : Pour C#, je vous recommande ses créateurs, qui vous feront gagner du temps, croyez-moi !! (Et merci pour leur travail fourni ❤) ⇒

  • @AlexandreCbt
    @AlexandreCbt Год назад +4

    Sympa ta video,
    Petite remarque sur le async/await: Le ".then" n'est pas un truc d'avant. Il est encore trés utile selon les cas. Le "await" par définition, attend la résolution de la requete pour continuer, ce qui bloque le processus, contrairement au .then
    Desfois nous ne voulons pas bloquer le processus, desfois si.
    L'usage du .then et du await sont différents, et utilisé au sein d'un meme projet régulierement.

    • @JulienLucas
      @JulienLucas  Год назад +2

      On est pas d'accord alors. 🙂
      Il faut quand même attendre la fin du processus avec .then(). La promesse then() s'exécute seulement s'il y a requête effectuée avec succès.
      Par contre il y a le finally() depuis quelque années. Qu'on peut exécuter à la fin peu importe le succès ou l'échec.

    • @otmanm4095
      @otmanm4095 Год назад

      ​@@JulienLucas IMHO ce qu'il veut dire c'est que dans le flux d'éxécition de ton code, ce qu'il y a dans le then est asynchrone par rapport a ce qu'il y a juste après lui, alors qu'avec async/await, ta promesses attendra avant de continuer les lignes d'instructions. 🤔
      .then/.catch
      console.log('BEFORE THE READFILE CONTENT');
      readFile('test.txt', { encoding: 'utf8' })
      .then(console.log)
      .catch(console.error);
      console.log('BEFORE THE READFILE CONTENT');
      Result:
      BEFORE THE READFILE CONTENT
      BEFORE THE READFILE CONTENT
      MY FILE CONTENT
      (async () => {
      console.log('BEFORE THE READFILE CONTENT');
      console.log(await readFile('test.txt', { encoding: 'utf8' }));
      console.log('AFTER THE READFILE CONTENT');
      })();
      Result:
      BEFORE THE READFILE CONTENT
      MY FILE CONTENT
      AFTER THE READFILE CONTENT

    • @xNsKalfa
      @xNsKalfa Год назад

      @dieu930 a raison le mot clef await et l'utilisation de then ou catch c'est 2 use case différent. On ne peut pas dire que c'est plus propres ou moins propres

    • @wisdom6739
      @wisdom6739 Месяц назад

      Je pense qu'il y a eu confusion dans les propos de @JulienLucas, car en effet tu as raison, non seulement "then" est encore d'actualité, mais en plus on peut combiner les deux, au sein d'un même programme dans certaines situations, selon ce que l'on recherche comme comportement.

  • @tee-rz7ddcsddqdde
    @tee-rz7ddcsddqdde Год назад

    Merci de tes conseils d'expert ! Très bonne vidéo, je ne comprend pas le peu de succès que tu as. très
    je pense que ton heure viendra, j'en suis persuadé.
    PS: à mon humble avis tu devrait réduire les bruits de clavier durant les démonstrations de code !

    • @JulienLucas
      @JulienLucas  Год назад

      Merci beaucoup pour ton com. Yes j'aimerai avoir plus d'audience. Mais d'abord faire des vidéos à forte valeur ajoutée.
      Si c'était facile de faire beaucoup d'audience RUclips tout le monde le ferait. 😊

  • @onclesol8617
    @onclesol8617 Год назад

    L'envie est là, la clarté des explications pas forcément mais c'est comme le code ça s'apprend et ça ne se fait pas d'un claquement de doigts.
    Continue sur ta lancée et ne perds pas trop de temps avec les débats en com', on sait que ton avis n'engage que toi ! Courage pour la suite 😉

    • @JulienLucas
      @JulienLucas  Год назад

      Génial, heureusement que tu es là avec ton avis et tes conseils. 👌 Tu devrais ouvrir une chaîne RUclips pour donner des conseils aux RUclipsrs.

    • @onclesol8617
      @onclesol8617 Год назад

      @@JulienLucas Je ne voulais absolument pas t'offenser en disant cela. Je pense que créer du contenu prend du temps et les conseils que tu donnes sont issus de ton expérience personnelle, donc subjectifs, mais il n'y a pas de mal à ça !
      Après, si tu revisionnes ta vidéo, tu te rendras surement compte qu'il y a des passages où les explications/éclaircissements que tu donnes ne sont pas éloquents. Et ça arrive même a des formateurs professionnels !
      Désolé que tu l'aies mal pris. Néanmoins, je renouvelle sincèrement mes encouragements pour la suite.

  • @PEDIasblRDC
    @PEDIasblRDC 5 месяцев назад

    une très bonne vidéo julien
    , Merci

  • @CyrilHskt
    @CyrilHskt Год назад

    Il aurait peut-être aussi été intéressant de parler de Typescript, qui vient solidifier JS. Merci pour ces vidéos.

    • @dapria
      @dapria 8 месяцев назад

      ruclips.net/video/_IwMAUbc2tA/видео.html

  • @myers1270
    @myers1270 24 дня назад

    Ta video ma decouragé de me lancer dans la programation, c quoi ce charabia, j’arrive pas a comprendre l’utilité, ou sa nous mène. Hors mis les function qui sont des boutons, et tout ce qui est en rapport avec html

  • @galluladavid8631
    @galluladavid8631 Год назад

    Merci pour cette vidéo . Juste une question ; j'ai vu que la methode __proto-- était déconseillée , et qu'il fallait privilégier Obectj.create(). Tu es d'accord, ou bien ça se discute? merci de me donner ton avis . cordialement

    • @JulienLucas
      @JulienLucas  Год назад

      Eh bien tu vois j'ai jamais beaucoup utilisé l'héritage. 😉
      Pas fonctionnel systématiquement _proto_ apparement. Déprécié.

  • @apustuflu
    @apustuflu Год назад

    Hello, si tu sais que dans ta fonction tu n'utilise pas de fonctions mutables, est-ce nécessaire de créer une copie de l'array en question (pour faire echo à l'exemple que t'as donné dans cette vidéo) ?
    Le fait de faire du polymorphisme ne rentre pas en contradiction avec le principe de clean code (pas de mutation) ?

    • @JulienLucas
      @JulienLucas  Год назад +1

      Si tu modifie une variable extérieure, alors il vaut mieux faire une copie. Par sécurité.
      Pour le polymorphisme perso je m'en suis jamais servi, pas eu le projet pour. Mais il y a des partisans qui disent que ça peut causer de la confusion sur une grosse codebase (ne plus savoir d'où vient l'objet hérité).
      Pratique à peser je dirai. ☺️

    • @apustuflu
      @apustuflu Год назад

      @@JulienLucas Merci pour le retour 😊

  • @nabsbladeofmiquella2315
    @nabsbladeofmiquella2315 Год назад

    Salut Julien, je commence typescript je me demande si tu pouvais faire une vidéo sur les écriture qu'on utilise le plus en js sous forme de typescript par exemple const app = document.querySelector(selectors: ".app") as HTMLElement un truc du genre. Merci !

    • @dapria
      @dapria 8 месяцев назад

      ruclips.net/video/_IwMAUbc2tA/видео.html

  • @flamme8587
    @flamme8587 Год назад

    J'aurai aimé que tu abordes (pas forcément longtemps) le concept de TypeScript qui supprime énormément de défauts à JavaScript

    • @JulienLucas
      @JulienLucas  Год назад

      Yes, pas inintéressant. TS aurait pu avoir un petite place dans cette vidéo.
      Mais qui sait, ensuite on m'aurait dit que j'ai pas assez détaillé TS. 🤭

    • @flamme8587
      @flamme8587 Год назад

      @@JulienLucas Hélas dans le monde du dev y'aura toujours un milliard de moyen de faire la même chose

    • @dapria
      @dapria 8 месяцев назад

      ruclips.net/video/_IwMAUbc2tA/видео.html

  • @xeinel8112
    @xeinel8112 Год назад

    Bonsoir,
    Vidéo très interessante.
    En ce qui concerne l'immutabilité, je pense que ca peut être utile dans certains cas, mais personnellement j'aime bien travailler avec les références des objets.
    Je pense que si c'est bien géré y'a pas de réel soucis à se faire, néanmoins si le code doit être repris par quelqu'un d'autre derrière ca ne sera pas forcément évident.
    Et sur des gros projets, si on doit recréer à chaque fois un nouvel objet pour assurer son immutabilité je trouve ca dommage, ca prend de l'espace mémoire de manière inutile qui aurait pu être évité si on gère bien nos références et qu'on est prudent sur ce qu'on fait

    • @JulienLucas
      @JulienLucas  Год назад

      Yes, on devrait surtout utiliser une fonction pure quand on a un doute. Ou quand la fonction est complexe. 😊

    • @xeinel8112
      @xeinel8112 Год назад

      @@JulienLucas Ok d'acc, c'est vrai que la façon dont vous l'amenez dans la vidéo laisse penser qu'il faut nécessairement avoir recours à l'immutabilité.
      Par ailleurs, quand vous évoquez le concept de programmation fonctionnelle, je pense qu'il aurait pu être interessant d'évoquer le fait qu'il s'agisse d'un paradigme de programmation, lors de votre première approche sur ce sujet c'est difficilement perceptible et c'est plus lorsque vous commencez à expliquer qu'il est possible d'avoir recours à de la POO et de la programmtion fonctionnelle qu'on commence à comprendre la nuance !
      Sinon la vidéo est vraiment cool :D
      J'irai voir ce que vous proposez comme autre contenu :D

  • @Katermuke
    @Katermuke Год назад

    Bon vu tout ce que tu nous donne je laisse un petit comm et un like, j'ai jamais liker jamais commenter même si tes vidéo était incroyable (pour moi) parce que je voulais garder la chaine private, mais tu le mérite alors bon courage et continue comme ca, tes un boss !

    • @JulienLucas
      @JulienLucas  Год назад

      Merci à toi. Où va le monde si on like pas les vidéos qu'on aime.

  • @NecroticSiko
    @NecroticSiko Год назад

    je vais me regarder plus de vidéo sur l'univers JS, je suis apprenant en reconversion actuellement.
    J'ai pas trop compris le principe d'immuabilité, faudrait que je reregarde la vidéo ^^

    • @JulienLucas
      @JulienLucas  Год назад +1

      Yes normal, on peut pas tout acquérir dès le début. L'important c'est de savoir quoi savoir. 🤙

  • @arthurderuelle5975
    @arthurderuelle5975 Год назад

    une petite question : en 2023, apprendre les classes pour comprendre le fonctionnement de JS d'accord, mais en pratique peut on s'en passer ? le code modderne utilise des fonctions, react les hook, vuejs 3 des fonctions.. qu'en pensez vous ?

    • @JulienLucas
      @JulienLucas  Год назад

      Les classes servent pour regrouper des fonctions similaires. Ça permet de structurer des modules de code, c'est ça qui est intéressant.
      Après la POO c'est allé plus, mais effectivement plus trop utilisé.
      Essais d'utiliser des classes JS, tu verras c'est intéressant. 👌

  • @gregoiremaria1078
    @gregoiremaria1078 Год назад

    Salut ! Merci pour la vidéo
    Top les concepts et bien expliqués 👌
    J'ai vu que tu étais dev freelance,
    Je sais que c'est un peu compliqué et d'ailleurs j'ai l'impression que c'est pour ça que je trouve pas trop d'info mais ce serait intéressant de connaître la productivité d'un freelance
    Genre créer un dashboard ou reproduire une maquette, créer une API
    CB de temps ça te prend ?

    • @JulienLucas
      @JulienLucas  Год назад +1

      On sait que la productivité d'un freelance est supérieure à celle d'un salarié. Il est plus soucieux de la satisfaction client.
      Après je sais pas si j'irai coder un dashboard pour en faire une vidéo RUclips. C'est du boulot. 😉

    • @gregoiremaria1078
      @gregoiremaria1078 Год назад

      @@JulienLucas oui je me doute ^^
      Le dashboard c'était juste un exemple
      Le truc auquel je pensais c'était de présenter une feature que tu as fait et détailler un peu le temps que tu as passé dessus pour nous faire une idée

  • @naka1550
    @naka1550 Год назад

    Je me demande si les nouveaux concepts de javascript qui sont sortis il ya 8 ans maintenant était très vite compris par les seniors ou si comme les débutants ils se sont grattés la tête

    • @JulienLucas
      @JulienLucas  Год назад +1

      Il y a des conventions JS à chaque fois, qui présentent les nouvelles fonctionnalités à des devs plus à la page. 😁

  • @moneyismygame5908
    @moneyismygame5908 5 месяцев назад

    Je suis junior,
    je m'attendais à des concepts de dingue et là,
    je suis surpris que des dev pros puissent faire ces erreurs.
    Par contre javascript n'est pas du tout type à la base

  • @bra5081
    @bra5081 6 месяцев назад

    Un point que j'ai pas trop compris. Vous dites d'éviter d'utiliser map et filter dans la partie programmation fonctionnelle. Pourtant map et filter respectent l'immutabilité. Vous mettez en avant push et pop qui modifient le tableau au lieu de créer un nouveau tableau, et qui ont plus leur place dans le paradigme POO de la partie suivante ?

    • @JulienLucas
      @JulienLucas  6 месяцев назад

      Point pas développé sur la la prog fonctionnelle.
      Je dis que la prog fonctionnelle consiste à utiliser l'étendue de la doc ECMAScript. Toutes les méthodes dispo.
      Mais c'est évidemment plus que ça (higher order functions, ect...).
      Il y a des livres de 400pages sur ça.
      Vaste sujet dont je ne suis pas expert 😊

  • @Azer_Oner
    @Azer_Oner Год назад

    1:33 oui mais ça c’est commun à tout les langages non ? Pas que de JS

    • @JulienLucas
      @JulienLucas  Год назад +1

      Bonne question.
      Possible si c'est lié à la virgule flottante, je ne peux parler que de JS. Haha.🤗

    • @ludo534
      @ludo534 Год назад

      ce qui est commun a tous les languages c'est que representer des entiers avec un format de float c'est la merde. La specificite de js c'est que y a que un seul type de literal pour les nombres, et c'est un float64. Tous les autre languages mainstream ont des types specific pour int et float et donc n'ont pas ce problem si tu utilises des int

    • @Azer_Oner
      @Azer_Oner Год назад

      Ah d'accord ! Merci pour vos réponses 😊

  • @etienneg222
    @etienneg222 Год назад

    Respectant l'opinion exprimée dans la vidéo, commencer le développement comme professionnel en 2023 n'est pas compliqué, même si le salaire pourrait être légèrement inférieur.
    L'évolution constante est une réalité et ne devrait pas être considérée comme une barrière, mais plutôt comme une opportunité de se tenir à jour.

    • @JulienLucas
      @JulienLucas  Год назад

      Merci pour ce commentaire finement formulé. 😉
      Départ avec petites missions au forfait, souvent. Ou petit job CDI/CDD. Même si une solide formation certifiante sera un gros plus.

  • @_yukulele
    @_yukulele Год назад

    15:48 non, `var` ne crée pas une variable sur le scope globale

    • @JulienLucas
      @JulienLucas  Год назад

      Imprécis ce que j'ai dit oui.
      Var est la seule variable que tu puisses accéder dans une fonction peu importe si elle est imbriquée dans des {}.
      C'est l'exemple avec var que je montre dans la vidéo.

  • @333juniorb
    @333juniorb Год назад

    Moi j’attends toujours la sortie du pipe operator 😢#fonctionalProgramming

  • @christophegorski6778
    @christophegorski6778 Год назад +1

    euh pour inverser deux valeurs pourquoi ne pas simplement faire ca avec le destructuring? "tableau = [12, -2, 55, 68,80];
    [tableau[1], tableau[3]] = [tableau[3], tableau[1]];"

    • @Spirit-Templar
      @Spirit-Templar Год назад +1

      C'est pas scalable 😉

    • @ludo534
      @ludo534 Год назад +1

      @@Spirit-Templar c'est la solution scalable. C'est beaucoup plus performant, en terme de run time mais aussi de memoire requise, et le code est plus court/clean/maintainable. Creer une copie du tableau c'est la solution naive qui n'est pas scalable. Et le code est moche.

    • @christophegorski6778
      @christophegorski6778 Год назад

      @@Spirit-Templar pourrais tu m’en dire un peu plus stp ? (Juste une piste je chercherai)

    • @christophegorski6778
      @christophegorski6778 Год назад

      Ok j'ai pigé en effet ma solution n'est pas scalable. par contre je me demande si il y a vraiment un tableau qui est crée avec ma solution vu qu'on ne nomme aucun tableau ?

    • @ludo534
      @ludo534 Год назад

      le problem c est le “[…array]”. Ca creer une copie, mais si l’objectif c’est de pas modifier l’originale, alors oui c’est bien de faire une copie. Si il y as pas de contrainte c’est plus rapide de modifier sur place

  • @moussasouag8838
    @moussasouag8838 11 месяцев назад

    Merci pour vos explication T'entame des sujets intéressants mais t'accélère trop vite

  • @FerasOfficiel
    @FerasOfficiel Год назад

    Pour 0.1 + 0.2 !== 0.3 c'est pas qu'en Javascript. Tous les langages de programmation impératifs qui ne reposent pas sur un moteur de calcul formel ont cette imperfection.
    Tout simplement parce que la représentation binaire, en mémoire, d'un flottant n'est pas faisable directement sur 32bit : Il faut donc ruser et trouver des compromis qui donnent ce résultat.
    Ce "problème" est donc le même en Python, C, C++, Java, R ... par contre Xcas, utilisé dans géogebra par exemple, lui te donnera une égalité entre 0.3 et 0.1 + 0.2

    • @JulienLucas
      @JulienLucas  Год назад

      Intéressant je ne savais pas, merci pour ce complément. J'espère que d'autres le liront. 😊

  • @mklk7377
    @mklk7377 3 месяца назад

    Je comprends pas pourquoi tu donnes l'exemple du 0.1 +0.2===0.3?
    C'est un problème qui touche tous les langages comme le C ou le python. 😶

  • @arnaques-tuto-informatique
    @arnaques-tuto-informatique Год назад

    Bonjour, encore une fois vous dites ce qu'il faut faire mais pas comment, des exemples concrets des fois.
    L'intérêt de la poo ou pokymorphisme ou Heritage...ca reste une video bien faite mais vraiment pour debutants.

  • @jeaneude8109
    @jeaneude8109 Год назад

    Beaucoup des concepts dont tu parles ne sont pas propre au Javascript mais à la programmation en général et que tu appliques dans le cadre du JS.
    Très bonne vidéo cependant.

  • @sebastientisserand866
    @sebastientisserand866 Год назад

    JavaScript est en intéressant en surface car beaucoup de facilité. Mais pour un dev (pas du « dev web ») bein tu t’aperçoit très vite quand vrai js n’est clairement pas opti et qu’il n’est qu’une grosse usine à gaz. La plupart des gars qui font du js ne connaissent rien au fonctionnement de base d’un système, a l’opti, a la mémoire et j’en passe.. et ça c’est un gros problème car ça ce proclame développeur et dénigre le métier…

    • @JulienLucas
      @JulienLucas  Год назад

      C'est peut-être une usine à gaz derrière. Mais il y a pas de remplaçant à JS pour le dev web.
      Après l'optimisation mémoire et performance, c'est un problématique commune à la programmation en générale. Dont tous les devs devraient se soucier. Tu as bien raison. 😄

  • @GeofreyvanHecke
    @GeofreyvanHecke Год назад

    Pas d'accord sur ton interprétation de la programmation fonctionnelle, ni sur le principe du polymorphisme...
    Je pense qu'il serait utile de faire un petit erratum pour corriger le tir... Ta communauté appréciera encore plus 😁👍

    • @JulienLucas
      @JulienLucas  Год назад

      Non, je suis pas d'accord toi.
      Il faut pas confondre avec les choses manquantes. SI j'ai besoin de préciser dans une autre vidéo, je le ferai. 🤙
      Tu as laissé 3 commentaires. J'en retire 2.
      Merci à toi,

  • @user-ox8tu7tn7i
    @user-ox8tu7tn7i 7 месяцев назад +4

    Javascript c'est du grand n'importe quoi.

    • @CRAFT-tq8hd
      @CRAFT-tq8hd Месяц назад

      L'anarchie c'est magique , tu peux faire ce que tu veux avec.

    • @megretmicha4670
      @megretmicha4670 19 дней назад

      Grave

  • @shevafire
    @shevafire Год назад

    Super, m'empêche que comment se fait il que le language le plus pourri soit le plus populaire. J'avoue que ça m'intrigue quand-même.

    • @JulienLucas
      @JulienLucas  Год назад

      Langage du web?

    • @shevafire
      @shevafire Год назад

      @@JulienLucas ce n'est pas le seul il le semble...

    • @JulienLucas
      @JulienLucas  Год назад

      Il va falloir t'accrocher, pas sur qu'il se fera déloger. 🙂

    • @shevafire
      @shevafire Год назад

      @@JulienLucas j'avoue j'y compte pas.

  • @ota1998
    @ota1998 Год назад

    Encore une vidéo avec de la "musique" en bruit de fond. Insupportable.

  • @magicmangus
    @magicmangus Год назад +1

    Super vidéo! Toutefois pas sur d'être tout à fait d'accord avec ta vision de la programmation fonctionnelle -> fr.wikipedia.org/wiki/Programmation_fonctionnelle