title: Cours IUT : Comprendre JavaScript
slug: cours-iut-comprendre-javascript
date: 2015-02-09
chapo: Expérimenter l’échec fait partie de l’apprentissage, je pense qu’ils sont maintenant davantage conscients de leurs limites.

> Code reviews are a perfect opportunity to continue learning and improving your coding style. I work with a team of experienced developers, so I don’t see many really glaring errors. But when I am called on to review third-party code, I’ve noticed certain bad practices crop up over and over again. Some of these may seem obvious, but hopefully there will be a useful tip or two here for JavaScript developers of every skill level. All examples are based on real production code I’ve reviewed, although (variable) names have been changed to protect the innocent.
> 
> <cite>*[Real-World JavaScript Anti-Patterns (Part One)](http://blog.javascripting.com/2014/11/06/real-world-javascript-anti-patterns/)* ([cache](/david/cache/e670da5770c6ca884d4915552766f8d0/))</cite>

Le [dernier](/david/blog/2015/cours-iut-composants-web/) [cours](/david/pro/enseignement/) a été difficile. Les étudiants voulaient essayer AngularJS sans avoir fait préalablement de JavaScript, ce qui s’est soldé par un échec pour faire un petit exercice suite au tutoriel. Après discussion, on a enchaîné sur un autre exercice uniquement JavaScript. Mais un peu trop compliqué, second échec de la matinée et moral en berne avant de se quitter. C’était malgré tout une bonne chose. **Expérimenter l’échec fait partie de l’apprentissage, je pense qu’ils sont maintenant davantage conscients de leurs limites.** Et ils sont frustrés de ne pas pouvoir essayer AngularJS par leur manque de connaissance, pas par le choix arbitraire du prof. Ça leur a donné *envie* de comprendre JavaScript.

J’avais commencé lors du [cours sur JavaScript](/david/blog/2014/cours-iut-javascript-jquery/) avec l’autre partie de la classe à accumuler des scripts à leur faire comprendre/commenter/enrichir. Je me suis résolu à en faire [un dépôt sur Github](https://github.com/davidbgk/comprendre-javascript) qui pourrait être réutilisé. J’essaye de commenter au maximum et ça me permet de comprendre moi aussi pas mal de choses à ce langage. Vous pouvez participer avec votre propre expérience et corriger mes exemples en suivant [les contraintes du README](https://github.com/davidbgk/comprendre-javascript#contraintes).

Les ressources qui m’ont été utiles pour reprendre JS de zéro ou presque :

* [The Two Pillars of JavaScript](https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3) ([cache](/david/cache/01d0d98c268032cbd58e7ccf9f806ebd/))
* [The Two Pillars of JavaScript - Pt 2: Functional Programming](https://medium.com/javascript-scene/the-two-pillars-of-javascript-pt-2-functional-programming-a63aa53a41a4) ([cache](/david/cache/867d86a67d14581fe6e57e0b82d9f146/))
* [JS Objects: Inherited a Mess](http://davidwalsh.name/javascript-objects) ([cache](/david/cache/8a69114624560f6a2ec42877c6747fdd/))
* [JS Objects: Distractions](http://davidwalsh.name/javascript-objects-distractions) ([cache](/david/cache/ff61babc668fdb73cc214268acc1d0ea/))
* [JS Objects: De"construct"ion](http://davidwalsh.name/javascript-objects-deconstruction) ([cache](/david/cache/f8470a704b236ea1c9e2ba3b2aa84274/))
* [Real-World JavaScript Anti-Patterns (Part One)](http://blog.javascripting.com/2014/11/06/real-world-javascript-anti-patterns/) ([cache](/david/cache/e670da5770c6ca884d4915552766f8d0/))
* [Real-World JavaScript Anti-Patterns (Part Two)](http://blog.javascripting.com/2015/01/12/real-world-javascript-anti-patterns-part-two/) ([cache](/david/cache/fe3d245589980bff826bd38b03c12d34/))

La lecture de ces 3 séries m’a vraiment aidé à comprendre JavaScript, si vous en avez d’autres je suis preneur.
