Fino a a qualche tempo fà, scrivere codice HTML5 e CSS3 era quasi da suicidio (stò esagerando un pochino, ma per far capire il senso di quello che vado a spiegare).
Il problema nasceva dalla non standardizzazione dei browser, in pratica ogni azienda che creava un proprio browser, inseriva al suo interno un motore per l'interpretazione dei codici HTML5 e CSS3 a modo loro, ognuno faceva un pò quello che voleva.
Oggi le cose sono un pò differenti. Finalmente, sembra, e qui sottolineo il "sembra" che la standardizzazione sia arrivata.
Diciamo che HTML5 e CSS3 sono maturati abbastanza, tanto da costringere qualsiasi browser moderno ad interpretare nella giusta maniera i comandi per la struttura di una pagina web.
Con la standardizzazione ottenuta, si è arrivati a dettare delle regole di programmazione per il web, molto più lineari e facili da scrivere... diciamo pure che ogni comando deve essere utilizzato nella giusta maniera e per un preciso scopo.
Nulla ti vieta di utilizzare le tabelle per creare la struttura di una pagina web, ma farlo oggi con tutti i nuovi e comodissimi tag che possiamo trovare in HTML5 + CSS3, che permettono di creare pagine flex, autoadattabili a qualsiasi tipo di supporto hardware, sarebbe da pazzi.
In parole povere, un buon sviluppatore Front-End, oggi usa i giusti tag per le giuste cose.
Quindi:
- tabelle da utilizzare solo per le tabelle, e basta.
- elementi semantici da utilizzare per la struttura di una pagina web moderna. Questi possono essere ad esempio: section, article, nav, aside... ecc
Gli elementi semantici che ti ho appena indicato come esempio, in definitiva sono molto simili a tag quali: div e span, fanno tutti più o meno la stessa cosa, solo che se utilizzati per dei compiti specifici rendono tutto il codice utilizzato per la creazione di una pagina web, molto più leggibile e ordinato.
Tutto questo fa la differenza tra uno sviluppatore mediocre ed una bravo sul serio.
Ho sintetizzato tantissimo il discorso. Non basterebbe un intero forum per farti capire bene il tutto. serve molta esperienza sul campo e ovviamente leggere libri di qualità.
Tu vuoi imparare bene per diventare una sviluppatore Front-End provetto ?
Allora parti dalle basi nell'ordine che ti indicherò, ma ATTENZIONE... devi studiare non sul web e basta, perchè trovi spesso cose scritte a casaccio da fantomatici super-programmatori che in verità non valgono una mezza sega...
... devi, sopratutto, documentarti e legger sui libri, e fare pratica e tanti esercizi.
- HTML5 (che comprende anche precedenti versioni)
- CSS3
- Javascript (assolutamente necessario, anche per comprendere nuovi linguaggi tipo Typescript abbinato ad Angular)
- Bootstrap (framework, in pratica un super-set di librerie CSS e less preconfezionate)
- Jquery (framework, in pratica un super-set di librerie CSS e Javascript preconfezionate)
- Angular9 (per questo dovrai imparare anche Typescript)
- ReactJS
- Typescript (super-set di istruzioni Javascript che permettono di creare cose in maniera più efficiente)
- NodeJS
Per il momento non mi viene in mente altro.