IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Apprendre le Javascript et Node.js from scratch


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut Apprendre le Javascript et Node.js from scratch
    Bonjour à tous!

    Je me permets de venir faire un peu de pub (ne criez pas, c'est pour une autre discussion sur developpez.com!) pour une initiative qui est née sur la partie JavaScript côté serveur et qui pourrait intéresser quelques personnes par ici! Elle a pour but d'aider un pur débutant (en programmation) à maîtriser la programmation en JavaScript, tant dans son aspect client que son aspect serveur (avec Node.js notamment), mais aussi tous les aspects inhérents qui peuvent aider à devenir un bon développeur (trouver des sources fiables, se documenter, architecturer ses programmes, faire des tests unitaires, ...). Pour cela nous proposons des exercices successifs et leurs corrections. Notre cobaye s'appelle TheSuperGeek.

    Voici la discussion originale:
    http://www.developpez.net/forums/d15...-from-scratch/

    Les débutants qui aimeraient prendre le train en marche, c'est maintenant que ça commence!
    Nous avons besoin de vous également, les gros balaises en JavaScript, pour proposer des exercices dignes de ce nom et pour garantir la qualité de ces mêmes exercices (et sur l'organisation) par vos commentaires de vieux briscards!

    Le premier exercice est disponible sur le blog developpez.com de autran:
    http://www.developpez.net/forums/blo...pt-exercice-0/
    {gnu: ["um", "cki"]}

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Salut Gnuum,

    Je salue moi aussi cette belle initiative que vous avez pris autran et toi. Le format "prof et cobaye" est assez inédit, donc je ne suis pas sûr de savoir quelle est la meilleure façon de le mettre en avant sur Developpez. Comme NoSmoking je vous encourage à définir plus précisément le périmètre abordé et le format de cours, afin de concrétiser votre projet et trouver quel support est le plus adapté: blog, article, news etc...

    vermine aura sans doute une idée sur la question, s'il n'a pas encore répondu à ton MP c'est qu'il doit être en vacances.
    One Web to rule them all

  3. #3
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    Merci Sylvain!

    Comme j'ai répondu à NoSmoking, effectivement ça manque un peu d'une organisation et d'un plan clairs pour le moment. L'organisation va se peaufiner dès que vermine sera de retour je pense et je vais essayer de faire un plan pour que les gens puissent donner leur avis dessus puis proposer des exercices.

    Vu vos connaissances à tous les 2, j'espère vous compter parmi les contributeurs!
    {gnu: ["um", "cki"]}

  4. #4
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    En attendant de faire mieux, nous annoncerons la mise à disposition des exercices sur cette discussion.

    Premier exercice accessible ici.

    N'hésitez pas à venir critiquer ou ajouter des précisions pour garantir la qualité!
    Un plan sera bientôt disponible pour ceux qui voudraient participer!
    {gnu: ["um", "cki"]}

  5. #5
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Un exercice nouveau est maintenant disponible : Les structures conditionnelles et le faible typage.

    Comme tout chantier de développement, cet exercice se décompose en sous taches. Vous ne devez pas rester une soirée bloqué sur une tache élémentaire. Si tel était le cas, poster sur le blog en commentaires vos blocages.
    Il n'y a pas de mauvaise question (au pire de mauvais profs), et nul doute votre question éclairera ceux qui n'ont pas l'audace d'en poser.

    Bon courage,
    Développeur Java
    Site Web

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    En l'état, comment on fait pour contribuer et apporter nos corrections/suggestions ?

    Dans le dernier exo est mentionné "then" pour les structures conditionnelles, sauf que ça n'existe pas en JS, excepté dans le proto des Promises ES6.
    One Web to rule them all

  7. #7
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    Pour une correction, ici c'est bien pour le moment, je pense! Quand Marc verra ton message il pourra corriger.
    Si c'est un débat plus philosophique, un commentaire directement sur l'exercice me semble plus approprié, qu'en penses-tu?

    Je mettrai un plan ce WE, si j'y arrive, que les gens pourront compléter, corriger et qui leur permettra de proposer des exercices en fonction des thèmes présents dessus!

    Merci pour la relecture en tout cas.
    {gnu: ["um", "cki"]}

  8. #8
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Merci Sylvain pour ta vigilance,
    C'était une coquille que ne viens de corriger et je m'en excuse

    Quant à nous aider, si nous publions sur le forum JavaScript, dans la mesure ou l'exercice et le cours proposé sont conforment au programme pédagogique que Gnuum est en train d'élaborer, je pense que tous les volontaires pourront être contributeurs (surtout s'ils sont de ton niveau).

    Pour le moment, nous publions sur mon blog faute de mieux, mais je réalise que mon blog n'offre pas suffisamment de visibilité a ce cours.
    Développeur Java
    Site Web

  9. #9
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    Voici une première version du plan d'apprentissage!

    Remarques:
    • Vu les changements pouvant intervenir, je propose de ne plus nommer les exercices "Exercice 0 - Le premier script" mais plutôt "Le langage JavaScript - Le premier script - Exercice 0"
    • Vu les premiers tests avec TheSuperGeek, il y aura besoin de plusieurs exercices par thème (ce qui est assez logique en y réfléchissant bien).
    • Les liens seront mis sur le plan dans l'ordre des exercices derrière chaque rubrique.


    Participation:
    Pour ceux qui veulent participer, il y a plusieurs moyens:
    • Donner son avis sur ce plan.
    • Proposer des ajouts à ce plan (qui n'est qu'un premier jet).
    • Proposer des exercices sur les thèmes qui vous intéressent dans le format des exercices qui ont déjà été fait.
    • Faire des propositions d'amélioration du processus ou du format des exercices.

    Par ailleurs, je suis heureux d'annoncer que nous allons essayer d'utiliser un nouveau type de page de developpez.net qui ont été faites exprès pour ce genre de choses a priori! Merci vermine!

    Plan:
    1. Le language JavaScript
      • Le premier script ex-0
      • Les opérateurs conditionnels et le faible typage ex-0
      • Les objets, tableaux et boucles
      • Les fonctions et les scopes
      • Le prototype et l'héritage
      • L'asynchronicité
      • Les erreurs
    2. La plateforme Node.js
      • Les dépendances internes et require
      • Les dépendances externes et NPM
      • La gestion non bloquante des I/O et la boucle évènementielle
      • L'asynchronicité et l'architecture orientée évènements
      • Les processus enfants
      • Les flux
      • Le client/serveur et le wrapper réseau
    3. La programmation client/serveur
      • Le première page
      • Le HTTP
      • Le HTML
      • Le CSS
      • L'AJAX
      • Les sockets et la programmation temps réel
    4. L'architecture applicative
      • L'injection de dépendance
      • L'architecture orientée services
      • Les API REST
    5. Les outils
      • Express
      • Async
      • JQuery
    6. L'industrialisation du code
      • Les tests unitaires
      • La gestion de source/version avec Git
      • L'intégration continue avec Travis CI
      • La programmation modulaire grâce à NPM
    7. Les bonus
      • Le JavaScript ES6
      • L'algorithmique complexe
    {gnu: ["um", "cki"]}

  10. #10
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Super plan, l'objectif est ambitieux mais il faut l'être.
    Je pense que tu es totalement exhaustif avec ce programme.

    Je n'ai (malheureusement pour moi) pas ta maitrise de JS ni de Node, mais en qualité d'autodidacte je me permet un RETEX qui est projetable dans ton plan :
    Je pense que tu devrais mettre l’héritage dans le bonus, car ce chapitre présente un risque par rapport à sa difficulté et je doute que se soit utile dans la suite du cours, sauf à se lancer dans un DP adaptateur ou décorateur

    Reste une coquille pour le chapitre Les opérateurs conditionnels et le faible typage qui correspond à l'ex-1

    Sinon encore bravo
    Développeur Java
    Site Web

  11. #11
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Ah, j'ai hâte d'en savoir plus sur ce nouveau format mystère de page Developpez

    Voilà mes suggestions pour le plan:
    - déplacer la section "les erreurs JS" avant "l'asynchronicité", vu qu'on ne gère pas les erreurs asynchrones avec de simples exceptions
    - la boucle évènementielle Node et l'asynchronicité, est-ce que ça ne serait pas un seul et même chapitre ?
    - les sections HTML et CSS, ont-elles vraiment leur place dans cette série de tutos ? Ou alors on redirige vers de très bonnes ressources externes déjà existantes ?
    - chapitre les outils: est-il pertinent de consacrer des sections entières à des choix arbitraires de frameworks/libs ? je pense qu'il vaudrait mieux lister et présenter en quelques lignes divers frameworks en section Industrialisation des développements, et laisser le lecteur faire son choix une fois qu'il maîtrise les bases
    - en revanche question outils, ça serait cool d'avoir une section qui présente des IDE, des solutions de débogage Node.js, des linters etc...
    - chapitre Industrialisation des dvpts, même remarque que précédemment, pourquoi imposer ce choix arbitraire d'outils/libs, et est-ce que ça a vraiment sa place dans cette série ? je préférerais que ces solutions soit abordées plus en profondeur dans des articles séparés, vers lesquels on peut pointer.
    - en considérant que Node.js comprend déjà 90% de la syntaxe ES6 et en tenant du compte du temps qu'il vous faudra pour écrire tout ça, est-ce que cela n'aurait pas du sens de commencer dès le départ à montrer du code ES6 ? Perso depuis Node v4 je ne me pose plus la question, j'écris directement en ES6.
    - l'algorithmique complexe: c'est un puits sans fond comme sujet, et je ne sais pas trop ce que vous avez en tête. Ne vaudrait-il pas mieux un article séparé ?

    Je vous recommande de ne pas voir trop grand et de vous fixer des objectifs réalisables à moyen terme. Ça serait dommage d'abandonner en cours de route découragé par l'ampleur du travail. On a déjà quelques ressources sur Developpez pour l'apprentissage de JavaScript (certes elles ont mal vieilli), par contre pour Node.js on en a assez peu. Donc la partie 2 Node.js est la plus utile et prioritaire selon moi, mais je comprends que TheSuperGeek ait d'abord à maîtriser le langage avant de s'y attaquer.
    One Web to rule them all

  12. #12
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Il faut aussi se fixer un calendrier.

    Dans un premier temps, je pense que l'on pourrait s'accorder sur une durée d'un trimestre. Ce qui nous mènerai avec les vacances et les retard éventuels à la fin d'année scolaire.

    Si l'on voit que le programme ne rentre pas dans le planning, peut être faudra-t-il l'alléger. C'est le pilotage par les délais.
    Développeur Java
    Site Web

  13. #13
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    @autran

    Je pense que tu es totalement exhaustif avec ce programme.
    Je ne pense pas mais il sera possible de rajouter des choses au fur et à mesure!

    Je pense que tu devrais mettre l’héritage dans le bonus, car ce chapitre présente un risque par rapport à sa difficulté et je doute que se soit utile dans la suite du cours
    Je pense que ce serait vraiment dommage de faire un cours sur JavaScript sans parler du prototype.

    Reste une coquille pour le chapitre Les opérateurs conditionnels et le faible typage qui correspond à l'ex-1
    En fait, pour pouvoir rajouter plus facilement des exercices, j'ai classé les exercices par catégorie et thème et la numérotation redémarre à 0 pour chaque thème donc.

    Sinon encore bravo
    Merci et merci à toi de l'aide et du soutient que tu m'apportes sur ce projet.

    Il faut aussi se fixer un calendrier.
    Je dis non! Pourquoi s'imposer un planning si nous n'en avons pas besoin? Prenons le temps de bien faire les choses! De plus, je ne vois pas comment on pourrait chiffrer quoique ce soit puisqu'il faudrait savoir combien il y aura d'exercices, à quelle vitesse nous sommes capable de les faire et combien de temps on laisse à TheSuperGeek suivant la difficulté de l'exercice avant de donner une correction.

    @SylvainPV

    déplacer la section "les erreurs JS" avant "l'asynchronicité", vu qu'on ne gère pas les erreurs asynchrones avec de simples exceptions
    Justement, j'avais mis ce chapitre après l'asynchronicité pour aborder le sujet de la gestion d'erreurs en asynchrone.

    la boucle évènementielle Node et l'asynchronicité, est-ce que ça ne serait pas un seul et même chapitre ?
    Je ne suis pas encore sûr du découpage que j'ai fait sur cette partie effectivement. J'attendais vos avis.

    les sections HTML et CSS, ont-elles vraiment leur place dans cette série de tutos ? Ou alors on redirige vers de très bonnes ressources externes déjà existantes ?
    J'aurais tendance à dire que oui on redirige vers de bonnes ressources. Après, pour être un peu exhaustif, un petit exercice juste pour intégrer la notion ne ferait pas de mal. D'autant qu'on peut facilement penser faire de la manipulation de DOM pour le HTML et du changement de style dynamique pour la partie CSS (et tout cela en JavaScript bien sûr).

    chapitre les outils: est-il pertinent de consacrer des sections entières à des choix arbitraires de frameworks/libs ? je pense qu'il vaudrait mieux lister et présenter en quelques lignes divers frameworks en section Industrialisation des développements, et laisser le lecteur faire son choix une fois qu'il maîtrise les bases
    Tu as raison.

    chapitre Industrialisation des dvpts, même remarque que précédemment, pourquoi imposer ce choix arbitraire d'outils/libs, et est-ce que ça a vraiment sa place dans cette série ? je préférerais que ces solutions soit abordées plus en profondeur dans des articles séparés, vers lesquels on peut pointer.
    Le but est de faire des exercices pour que la pratique fasse rentrer la notion dans le cerveau. J'ai choisi notamment Git, Github et Travis CI car ce sont les outils principalement utilisés dans le développement open source. Ce qui en fait de bons outils pour illustrer les notions à mon goût (même s'il est vrai que ces choix restent, au final, arbitraires).

    en revanche question outils, ça serait cool d'avoir une section qui présente des IDE, des solutions de débogage Node.js, des linters etc...
    Oui, il faudrait arriver à catégoriser cela (n'oublions pas les transpilers, minifiers, ...).

    en considérant que Node.js comprend déjà 90% de la syntaxe ES6 et en tenant du compte du temps qu'il vous faudra pour écrire tout ça, est-ce que cela n'aurait pas du sens de commencer dès le départ à montrer du code ES6 ? Perso depuis Node v4 je ne me pose plus la question, j'écris directement en ES6.
    Je pense que l'on peut présenter de l'ES6 si on le précise bien. Ca permettrait de parler de compatibilité de code au passage. En revanche, l'ES6 rajoute un coût d'entrée non négligeable dans le monde JavaScript, donc attention à ne pas perdre les débutants! On pourrait utiliser un code couleur pour les liens des exercices pour dire facile/intermédiaire/difficile par exemple. Ce qui permettrait au débutant d'éviter de ce casser les dents sur des exercices intéressant mais non indispensables.

    l'algorithmique complexe: c'est un puits sans fond comme sujet, et je ne sais pas trop ce que vous avez en tête. Ne vaudrait-il pas mieux un article séparé ?
    Ca se discute. Le but dans cette partie est de vraiment prendre un thème complet pour parler d'algorithmique car c'est un sujet primordial en programmation.

    Je vous recommande de ne pas voir trop grand et de vous fixer des objectifs réalisables à moyen terme. Ça serait dommage d'abandonner en cours de route découragé par l'ampleur du travail. On a déjà quelques ressources sur Developpez pour l'apprentissage de JavaScript (certes elles ont mal vieilli), par contre pour Node.js on en a assez peu. Donc la partie 2 Node.js est la plus utile et prioritaire selon moi, mais je comprends que TheSuperGeek ait d'abord à maîtriser le langage avant de s'y attaquer.
    Tu as raison dans un sens, mais le but est de proposer une ressource qui permette à un pur débutant d'avoir les outils pour être autonome et progresser par lui même en ayant un bon tour d'horizon de comment industrialiser un code JavaScript et différents types d'applications. Ce qui me fait penser que j'ai oublié toute la partie mise en ligne de site.
    Et puis, si on est plusieurs à mettre des exercices, ce que j'espère, cela se fera sans trop de problème!
    Merci à toi, au passage, pour tes retours et ton aide!

    -----------

    N'hésitez pas à me faire des remarques sur ce que je vous aie répondu. J'essaierai de faire une nouvelle version du plan après.
    {gnu: ["um", "cki"]}

  14. #14
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par Gnuum Voir le message
    Justement, j'avais mis ce chapitre après l'asynchronicité pour aborder le sujet de la gestion d'erreurs en asynchrone.
    Ok je vois, la question est donc de savoir si on parle du traitement des erreurs asynchrones dans la section asynchronicité ou dans la section gestion d'erreurs.

    Citation Envoyé par Gnuum Voir le message
    Après, pour être un peu exhaustif, un petit exercice juste pour intégrer la notion ne ferait pas de mal. D'autant qu'on peut facilement penser faire de la manipulation de DOM pour le HTML et du changement de style dynamique pour la partie CSS (et tout cela en JavaScript bien sûr).
    C'est que HTML et CSS, on a écrit des bouquins entiers dessus. J'ai du mal à imaginer voir tout ça résumé en une petite section et un simple exercice. Rien que la manipulation du DOM, je pourrais écrire des pages et des pages dessus... jusqu'où on s'arrête ? Est-ce qu'on parle des solutions de templating isomorphique ? de virtual DOM ? Je pense que ça sera soit incomplet, soit trop ambitieux.


    Citation Envoyé par Gnuum Voir le message
    Le but est de faire des exercices pour que la pratique fasse rentrer la notion dans le cerveau. J'ai choisi notamment Git, Github et Travis CI car ce sont les outils principalement utilisés dans le développement open source. Ce qui en fait de bons outils pour illustrer les notions à mon goût (même s'il est vrai que ces choix restent, au final, arbitraires).
    Comme tu dis c'est plus lié à l'open-source qu'à NodeJS. Donc:
    1) est-ce que ça va intéresser tous les lecteurs ?
    2) est-ce que les gens intéressés par l'open-source mais pas par NodeJS vont-ils aller le lire si c'est étiquetté NodeJS en titre ?

    C'est des sujets super intéressants sur lesquels on aurait bien besoin de rédacteurs, mais je pense qu'ils auraient mieux leur place en dehors de cette série. Toujours dans le but de maximiser votre nombre de lecteurs, et réduire la charge de travail initiale.

    Citation Envoyé par Gnuum Voir le message
    Oui, il faudrait arriver à catégoriser cela (n'oublions pas les transpilers, minifiers, ...).
    Tout à fait. Attention à ne pas trop entrer dans le fond, il faut présenter dans les grandes lignes car il y a bien trop de choix à l'heure actuelle et c'est un terrain très mouvant (AMD, JSLint, Traceur, Bower et bien d'autres outils sont déjà en train de mourir)

    Citation Envoyé par Gnuum Voir le message
    Je pense que l'on peut présenter de l'ES6 si on le précise bien. Ca permettrait de parler de compatibilité de code au passage. En revanche, l'ES6 rajoute un coût d'entrée non négligeable dans le monde JavaScript, donc attention à ne pas perdre les débutants! On pourrait utiliser un code couleur pour les liens des exercices pour dire facile/intermédiaire/difficile par exemple. Ce qui permettrait au débutant d'éviter de ce casser les dents sur des exercices intéressant mais non indispensables.
    C'est drôle que tu vois la chose comme ça, pour ma part j'ai vraiment le sentiment que ES6 simplifie beaucoup de choses comparé à ES5, et donc qu'il est plus accessible aux débutants. La programmation objet, la manipulation des arrays, le context binding, beaucoup de choses bizarres ou inutilement compliquées en ES5 sont maintenant beaucoup plus concises et familières. Pour quelqu'un qui est déjà familier en JavaScript ES5, c'est un effort supplémentaire, mais pour un débutant complet à JavaScript, je pense que c'est le contraire.

    Citation Envoyé par Gnuum Voir le message
    le but est de proposer une ressource qui permette à un pur débutant d'avoir les outils pour être autonome et progresser par lui même en ayant un bon tour d'horizon de comment industrialiser un code JavaScript et différents types d'applications. Ce qui me fait penser que j'ai oublié toute la partie mise en ligne de site.
    Et puis, si on est plusieurs à mettre des exercices, ce que j'espère, cela se fera sans trop de problème!
    Si j'insiste sur les objectifs à moyen terme et pour retirer ou externaliser des sections de ton plan, c'est parce qu'en l'état ça me paraît tout de même extrêmement ambitieux. Même avec plusieurs collaborateurs, chacun des sujets abordés pourrait être étendu en des dizaines d'articles et en faire un résumé à la fois juste, pertinent et accessible au débutant nécessitera sans doute un gros travail d'écriture et une solide base de connaissances. Donc je réitère mon conseil: ne voyez pas trop large tout de suite, commencez doucement ! Je préfère voir 5 articles terminés que 20 ébauches. La charrue, les boeufs, tout ça
    One Web to rule them all

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 383
    Points : 10 411
    Points
    10 411
    Par défaut
    Beau travail,


    - Concernant les rubriques html et css je partage cet avis :
    Citation Envoyé par Gnuum
    un petit exercice juste pour intégrer la notion ne ferait pas de mal. D'autant qu'on peut facilement penser faire de la manipulation de DOM pour le HTML et du changement de style dynamique pour la partie CSS (et tout cela en JavaScript bien sûr).
    Sans parler d'être exhaustif, un ou quelques petits exercices pour présenter un peu la modification du DOM et des CSS avec javascript me paraissent tout à fait bienvenus dans le contexte de ce tuto. Même si ce n'est pas en rapport direct avec node.js, partir avec quelques bons exemples sur le sujet permet d'élargir les perspectives de la dynamique javascript/css/html, surtout pour les grands débutants.

    - Concernant ES6 je partage cet avis :
    Citation Envoyé par Gnuum
    Je pense que l'on peut présenter de l'ES6 si on le précise bien. Ca permettrait de parler de compatibilité de code au passage. En revanche, l'ES6 rajoute un coût d'entrée non négligeable dans le monde JavaScript, donc attention à ne pas perdre les débutants! On pourrait utiliser un code couleur pour les liens des exercices pour dire facile/intermédiaire/difficile par exemple. Ce qui permettrait au débutant d'éviter de ce casser les dents sur des exercices intéressant mais non indispensables.
    Même si comme le dit SylvainPV ESC6 serait moins difficile pour un débutant, ce même débutant devra être en mesure de comprendre le code d'autres exemples qu'il trouvera sur le web, c'est à dire le code le plus largement diffusé/visible actuellement. L'utilisation ES6 devrait donc être commentée.

    - Concernant l'industrialisation du code je partage cet avi :
    Citation Envoyé par SylvainPV
    Comme tu dis c'est plus lié à l'open-source qu'à NodeJS. Donc:
    1) est-ce que ça va intéresser tous les lecteurs ?
    2) est-ce que les gens intéressés par l'open-source mais pas par NodeJS vont-ils aller le lire si c'est étiquetté NodeJS en titre ?

    C'est des sujets super intéressants sur lesquels on aurait bien besoin de rédacteurs, mais je pense qu'ils auraient mieux leur place en dehors de cette série. Toujours dans le but de maximiser votre nombre de lecteurs, et réduire la charge de travail initiale.
    A mon avis c'est facultatif, en tous cas pas primordial dans ce tuto. Aurait sans doute plus sa place dans une annexe. En tous cas, je pense également que cela ne doit pas représenter une charge de travail supplémentaire, ou à faire en tout dernier, éventuellement.


    Vu de l'extérieur (je connais pas node.js), je pense que les quatre premières rubriques sont celles qui seront les plus instructives pour le sujet du tuto.
    Ensuite pour compléter, mes centres d'intérêts iraient dans l'ordre vers la rubrique 5/ ou 7/ (je jetterais au moins un oeil sur ces rubriques), puis peut-être la 6/ et les tests unitaires.

  16. #16
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Bonjour,

    Attention, j'ai peur que l'on se perde à courir après la proie et son ombre.

    Il nous faut faire un plan et celui de Thomas est très abouti car visiblement il y avait réfléchi depuis un moment. Mais les critiques qui sont émises dessus ne font que l'enrichir. Donc ce dialogue est vertueux.

    Il nous faut un support de transmission de ce tutorat. Pour le moment nous avons les blogs ou le forum il faudra se décider et en faire notre religion. Pour la partie exercices, le système d'encodage de Vermine devrait être idéal.

    En revanche, je suis moins convaincu de l'utilité d'un support de cours sous la forme d'un ou plusieurs articles. En effet chaque article sera long à rédiger et encore plus long à faire valider pour aboutir jusqu'à la publication disponible pour l'apprenant.
    Bien entendu, il serait intéressant de disposer d'articles à jours sur node et ES6, mais je pense que se serait à dissocier de la démarche que nous menons actuellement.
    Développeur Java
    Site Web

  17. #17
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    Merci à tous pour vos retours!

    Synthèse et questions restantes:

    Ok je vois, la question est donc de savoir si on parle du traitement des erreurs asynchrones dans la section asynchronicité ou dans la section gestion d'erreurs.
    Quel est ton avis là dessus Sylvain?

    C'est que HTML et CSS, on a écrit des bouquins entiers dessus. J'ai du mal à imaginer voir tout ça résumé en une petite section et un simple exercice. Rien que la manipulation du DOM, je pourrais écrire des pages et des pages dessus... jusqu'où on s'arrête ? Est-ce qu'on parle des solutions de templating isomorphique ? de virtual DOM ? Je pense que ça sera soit incomplet, soit trop ambitieux.
    Sans parler d'être exhaustif, un ou quelques petits exercices pour présenter un peu la modification du DOM et des CSS avec javascript me paraissent tout à fait bienvenus dans le contexte de ce tuto. Même si ce n'est pas en rapport direct avec node.js, partir avec quelques bons exemples sur le sujet permet d'élargir les perspectives de la dynamique javascript/css/html, surtout pour les grands débutants.
    Le but principal je pense ici est d'introduire des notions pour le passage sur AJAX. Dans un premier temps, être exhaustif sur un quelconque des thèmes que nous abordons risque d'être très compliqué. Vos 2 points de vue contiennent chacun une vérité et je vais donc essayer de proposer une solution satisfaisante pour tout le monde, j'entends par là pour les lecteurs/étudiants bien sûr! Ce que je ferais à la fin de ce post.

    C'est drôle que tu vois la chose comme ça, pour ma part j'ai vraiment le sentiment que ES6 simplifie beaucoup de choses comparé à ES5, et donc qu'il est plus accessible aux débutants. La programmation objet, la manipulation des arrays, le context binding, beaucoup de choses bizarres ou inutilement compliquées en ES5 sont maintenant beaucoup plus concises et familières. Pour quelqu'un qui est déjà familier en JavaScript ES5, c'est un effort supplémentaire, mais pour un débutant complet à JavaScript, je pense que c'est le contraire.
    Même si comme le dit SylvainPV ESC6 serait moins difficile pour un débutant, ce même débutant devra être en mesure de comprendre le code d'autres exemples qu'il trouvera sur le web, c'est à dire le code le plus largement diffusé/visible actuellement. L'utilisation ES6 devrait donc être commentée.
    Si je synthétise vos points de vue, même si ES6 simplifie pas mal de choses, il rajoute du contenu (plus de scopes, plus de boucles, de sucres syntaxiques, ...) par rapport à ES5; ES5 qu'un développeur JavaScript ne peut vraisemblablement pas se permettre d'ignorer pour le moment.
    Je ne vois pas comment ne pas parler des 2, je propose donc d'utiliser les 2 (en visant plutôt le ES6 mais en parlant toujours du ES5 à l'introduction de la notion) en le précisant et d'essayer régulièrement de comparer des codes ES5 et ES6 notamment dans les corrections. Si on prend l'exemple des boucles, par exemple, je propose de commencer par parler de la boucle ES5 puis présenter les boucles ES6, puis dans les exercices suivant de plutôt focaliser sur les boucles ES6. Qu'en pensez-vous?

    Il nous faut faire un plan et celui de Thomas est très abouti car visiblement il y avait réfléchi depuis un moment. Mais les critiques qui sont émises dessus ne font que l'enrichir. Donc ce dialogue est vertueux.
    Tu as à la fois raison et tord. Tu as tord car il n'était pas si abouti que ça. Tu as raison car ce dialogue était indispensable pour garantir la qualité du plan!

    En effet chaque article sera long à rédiger et encore plus long à faire valider pour aboutir jusqu'à la publication disponible pour l'apprenant.
    Il faut vraiment qu'on mette au point une procédure simple et rapide pour que les exercices puissent être réalisés et validés le plus vite possible. Des idées?

    Si j'insiste sur les objectifs à moyen terme et pour retirer ou externaliser des sections de ton plan, c'est parce qu'en l'état ça me paraît tout de même extrêmement ambitieux. Même avec plusieurs collaborateurs, chacun des sujets abordés pourrait être étendu en des dizaines d'articles et en faire un résumé à la fois juste, pertinent et accessible au débutant nécessitera sans doute un gros travail d'écriture et une solide base de connaissances. Donc je réitère mon conseil: ne voyez pas trop large tout de suite, commencez doucement ! Je préfère voir 5 articles terminés que 20 ébauches. La charrue, les boeufs, tout ça
    Tu résumes assez bien le dilemme qui se présente à nous: devons nous être exhaustif sur l'apprentissage (en admettant que ce ne soit pas une utopie) pour avoir la ressource absolue ou devons nous donner le minimum pour que la personne puisse être autonome en JavaScript/Node.js afin d'être sûr de terminer cette ressource?

    Proposition

    J'ai une proposition pour résoudre ce dilemme. Vu les permiers tests avec TheSuperGeek et vu ce qu'on a dit, faire plusieurs exercices par thème me semble nécessaire. Je propose un code de couleur décrivant la difficulté d'un exercice et un code de style (gras, italic) exprimant l'intérêt de l'exercice par rapport au but primaire qui est de rendre autonome un développeur débutant dans les technologies JavaScript/Node.js.
    Ceci donnerait:

    Difficulté:
    Facile:
    ex-0
    Intermédiaire:
    ex-0
    Difficile:
    ex-0

    Nécessité:
    Indispensable:
    ex-0
    Récommandé:
    ex-0
    Optionnel:
    ex-0

    Exemples:
    Exercice indispensable de difficulté intermédiaire:
    ex-0
    Exercice recommandé de difficulté facile:
    ex-0
    Exemple des exercices d'un thème:
    L'asynchronicité ex-0 ex-1 ex-2 ex-3

    Ce système permet d'augmenter l'exhaustivité au fur et à mesure si des gens le souhaitent (en rajoutant un exercice) sans rajouter une complexité pour l'apprenant qui ne le souhaite pas et aussi donc sans qu'on soit obligé de l'avoir immédiatement (et que donc ça nous prenne une vie à faire!). Ca me parait être un compromis acceptable. Ca gèrera également le problème des sujets annexes dont on se demande s'ils sont indispensables ou pas. Par exemple, dans ce système la partie outils aurait majoritairement des exercices optionnels et la partie industrialisation recommandés.

    J'attends vos retours sur cette proposition donc!
    {gnu: ["um", "cki"]}

  18. #18
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Je suis prêt à adopter les codes couleurs. Très bonne idée.

    En revanche, je suis plus dubitatif quant à la graisse (italique...) des polices. En effet, je pense que cela complique les choses, et qu'il n'y aura pas tant d'exercices que cela de proposés. Donc peu d'utilité de cette catégorisation.

    Je préférerais que ce soit la "core team" qui décide si un exercice proposé est éligible. Cela éviterait que l’apprenant ne se pose trop de questions. Il ne doit être préoccupé que par la résolution des exercice qu'il estime de son niveau.
    Développeur Java
    Site Web

  19. #19
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Même si comme le dit SylvainPV ESC6 serait moins difficile pour un débutant, ce même débutant devra être en mesure de comprendre le code d'autres exemples qu'il trouvera sur le web, c'est à dire le code le plus largement diffusé/visible actuellement. L'utilisation ES6 devrait donc être commentée.
    En toute transparence, j'avais comme idée derrière la tête que la section JavaScript de cette série devienne notre nouvelle référence documentaire pour JavaScript sur Developpez (en parallèle de la mise à jour de la FAQ), et donc le fait qu'elle soit modernisée et utilise les dernières normes est un point essentiel. Je comprends bien qu'ES6 n'est pas majoritairement présent sur le net aujourd'hui, mais ça ne risque pas de changer si on continue à produire du contenu ES5 justement à cause de ça (c'est le cercle vicieux du progrès contraint par la norme).

    Il faut avoir à l'esprit que le vrai nom de la spec ES6 est ECMAScript 2015, que nous sommes en 2016 et que le temps de l'écriture et de la diffusion, cette série sera lue par le plus grand nombre de personnes en 2017. Aussi, si cette série vise à former des débutants, alors les enseignements qu'ils en tireront porteront leurs fruits dans les années à venir et pas tout de suite dans la situation actuelle. C'est pourquoi je pense qu'une distinction ES5/ES6 n'est pas nécessaire ici, puisqu'il est prévu de toute façon que l'usage de transpilateurs ES5 soit mentionné pour le support sur les vieux navigateurs.
    One Web to rule them all

  20. #20
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 383
    Points : 10 411
    Points
    10 411
    Par défaut
    Salut,

    Citation Envoyé par autran Voir le message
    Je suis prêt à adopter les codes couleurs. Très bonne idée.

    En revanche, je suis plus dubitatif quant à la graisse (italique...) des polices. En effet, je pense que cela complique les choses, et qu'il n'y aura pas tant d'exercices que cela de proposés. Donc peu d'utilité de cette catégorisation.
    Je partage le point de vue sur les couleurs.

    J'ai une réserve aussi sur la "graisse" des polices mais simplement parce que trouve cela peu intuitif. Ok pour le gras, mais un italique n'a pas une symbolique suffisamment forte à mes yeux par rapport à un caractère normal. Sinon sur le principe je trouve intéressant de faire des distinctions "Indispensable", "Recommandé", "Facultatif".
    Cela permet une structure plus évolutive, ouverte à des contributions futures, même si au début, tous les exercices seront dans le chapitre "Indispensable" ou "Recommandé". Je parle de chapitres car la distinction pourrait se faire de cette façon, ou sinon ajouter simplement un tag correspondant (genre [Indispensable]). Après côté pratique/organisation, difficile d'en dire plus sans connaître les outils que vous utiliserez.


    Citation Envoyé par autran Voir le message
    Je préférerais que ce soit la "core team" qui décide si un exercice proposé est éligible. Cela éviterait que l’apprenant ne se pose trop de questions. Il ne doit être préoccupé que par la résolution des exercice qu'il estime de son niveau.
    Oui pour le fait que ce soit la "core team" qui décide, cela me parait naturel.
    Par contre l'apprenant doit être préoccupé sur les résolutions des exercices indispensables, qu'ils soient plus ou moins faciles et c'est là que ces catégorisations sont intéressantes à mon avis.

Discussions similaires

  1. Les meilleurs livres pour apprendre le JavaScript
    Par vermine dans le forum Livres
    Réponses: 23
    Dernier message: 10/06/2019, 18h58
  2. Apprendre le Node.JS from scratch
    Par TheSuperGeek dans le forum NodeJS
    Réponses: 62
    Dernier message: 08/02/2016, 11h25
  3. question linux from scratch
    Par e=mc2 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 06/01/2008, 14h11
  4. [Débutant] Commencer Java "from scratch"
    Par Rakken dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 25/04/2007, 09h42
  5. [VB.NET] Créer une textbox from scratch
    Par AP dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/04/2006, 10h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo