Cand ma refeream promises si async ma gandeam ca trebuie sa inteleaga ca datele nu vin asincron. Cu totii stim erorile celor care scriu in callback-ul de ajax request fara sa inteleaga cand este rulat acel cod.
Stiu, clasele nu exista nativ in JavaScript (caci nu este class-based), insa ele sunt un concept al programarii si trebuie sa fie intelese. O parte din programarea OOP inseamna programare prin contract (chiar daca limbajul nu te forteaza in acest sens). ES6 chiar aduce un flavor in jurul idei de clase asa ca nu strica.
Eu cred că a cere clase - un concept ce nu există nativ în JS¹ - unui începător este un pic prea mult.
În schimb, mult mai util și mai constructiv ar fi să știe despre prototipuri și moșteniri între ele. Dar chiar și așa, nu cred că începător are nevoie de aceste noțiuni.
¹O exista în ES6, dar implementarea de JS din chrome canary încă nu știe de asta. Ceea ce înseamnă că a cere înțelegerea noțiunii de clasă într-un limbaj ce nu a avut niciodată o structură classică de moșteniri este ușor absurd.
Eu te înțeleg, dar dacă topicul este Javascript programmer… s-ar putea să nu fie chiar de cultură generală.
Chiar dacă sunt împotriva ideii de a te bloca pe un singur limbaj, ca începător ar trebui să fii focusat pe un singur lucru, nu? Adică de ce eu, care scriu zilnic exclusiv JS ar trebui să știu cum funcționează OOP în limbajele care au altă paradigmă?
Pentru incepator:
trebuie excluse : clasele si metodele ele trec la avansat in es6 ca nativ iar in es5 ca module pattern.
“variabile scoping” includ si "sa stie cine este this"
promisiunile deja inlcud conceptul de assincron, desi ca inceptor poti fara promisiuni, este mult mai important sa inteleaga ce e un callback si in ce situatii se foloseste.
Pentru mediu :
node (express/meteor si koa(es6))/ socket.io
Sa inteleaga conceptul de nonblocking
Incepator: poate sa scrie vanilla javascript daca e cazul, stie sa foloseasca jQuery sau orice plecat din jQuery. Mediu: depinde, aici e haos, as merge pe faptul ca a inceput sa foloseasca un linter, si tine codul bine incapsulat si cat mai simplu. Avansat: a facut cel putin o aplicatie web cu JavaScript cap coada, scrie teste, face automation.
Personal, cred ca a fi avansat inseamna sa cunosti limbajul cu avantaje si dezavantaje, pentru ca sa poti sa iei decizii bune in functie de context. In rest e HR naming fest.
Chiar ma gandeam ca cerintele pe care le insiruim trebuie sa duca la ceva palpabil. As merge pe faptul ca la nivelul mediu ar trebui sa genereze cod care ruleaza si cu “use strict”. In alta ordine de idei, mi se par un pic dezechilibrate grupele. Adica incepator pare un f oarte putin, la mediu se adauga rigoarea si dry-ul, iar apoi foarte mult.
Sincer, din descrierea de mai sus nu stiu cine si-ar dori sa angajeze “altceva” decat un avansat. Practic incepator si mediu poate fi asimilat de cineva care face slice html si pune si js-ul + una alta (validari, uploadere HTML,etc)
@Marian@iamntz: merg pe mana voastra in ceea ce priveste cunostintele asupra claselor/metodelor.