WebDevelopmentEssentials Objectives V1.0(IT)
Livello Minimo di Qualifica del Candidato
Il candidato ha una comprensione di base dello sviluppo del software, del World Wide Web e delle applicazioni web. Il candidato è in grado di usare il markup semantico per creare semplici siti web ed estendere questi siti con link, elementi multimediali e moduli. Il candidato è in grado di definire come questi contenuti sono visualizzati e posizionati su un sito web. Inoltre, il candidato ha familiarità con i concetti fondamentali della programmazione come variabili, condizioni, cicli e funzioni. Il candidato può creare semplici programmi che vengono eseguiti in un browser web. Il candidato è anche in grado di sviluppare programmi lato server che possono elaborare i dati inviati da un sito web, rendere questi dati persistenti in un database e generare siti web dinamici basati sui contenuti di un database.
Informazioni sulla Versione
Questi Obiettivi sono UNA BOZZA PER la versione 1.0.0.
Traduzioni degli Obiettivi
Sono disponibili su questo wiki le seguenti traduzioni degli Obiettivi:
- Inglese
- Brasiliano Portoghese
- Cinese (Semplificato)
- Cinese (Tradizionale)
- Olandese
- Francese
- Tedesco
- Italiano
- Giapponese
- SpagnoloS
Obiettivi
031 Sviluppo Software e Tecnologie Web
031.1 Fondamenti di Sviluppo Software (peso: 1)
|
Peso |
1 |
|
Descrizione |
Il candidato dovrebbe avere familiarità con i concetti più essenziali dello sviluppo del software e conoscere i principali linguaggi di programmazione. |
Aree di Conoscenza Chiave:
- Comprendere cos'è il codice sorgente
- Comprendere i principi dei compilatori e degli interpreti
- Comprendere il concetto di librerie
- Comprendere i concetti di programmazione funzionale, procedurale e orientata agli oggetti
- Conoscenza delle caratteristiche comuni degli editor di codice sorgente e degli ambienti di sviluppo integrati (IDE)
- Conoscenza dei sistemi di controllo della versione
- Conoscenza dei test del software
- Conoscenza dei principali linguaggi di programmazione
031.2 Architettura di un'Applicazione Web (peso: 2)
|
Peso |
2 |
|
Descrizione |
Il candidato dovrebbe comprendere gli standard comuni delle tecnologie e delle architetture dello sviluppo web. |
Aree di Conoscenza Chiave:
- Comprendere il principio dell'informatica client e server
- Comprendere il ruolo dei browser web ed conoscere i browser web comunemente usati
- Comprendere il ruolo dei server web e dei server di applicazioni
- Comprendere le tecnologie e gli standard di sviluppo web comuni
- Comprendere i principi delle API
- Comprendere i fondamenti dei database relazionali e non relazionali (NoSQL)
- Conoscenza dei sistemi di gestione di database Open Source comunemente usati
- Conoscenza di REST e GraphQL
- Conoscenza delle applicazioni a pagina singola
- Conoscenza del packaging delle applicazioni web
- Conoscenza di WebAssembly
- Conoscenza dei sistemi di gestione dei contenuti
File, termini e utilità:
- Chrome, Edge, Firefox, Safari, Internet Explorer
- HTML, CSS, JavaScript
- SQLite, MySQL, MariaDB, PostgreSQL
- MongoDB, CouchDB, Redis
031.3 Nozioni Base sull'HTTP (peso: 3)
|
Peso |
3 |
|
Descrizione |
Il candidato dovrebbe avere familiarità con i concetti base dell'HTTP. Questo include la comprensione delle intestazioni HTTP, dei tipi di contenuto, del caching e dei codici di stato. Inoltre, il candidato dovrebbe comprendere i principi dei cookie e il loro ruolo nella gestione delle sessioni ed essere consapevole delle caratteristiche HTTP avanzate. |
Aree di Conoscenza Chiave:
- Comprendere i metodi HTTP GET e POST, i codici di stato, le intestazioni e i tipi di contenuto.
- Comprendere la differenza tra contenuto statico e dinamico
- Comprendere le URL HTTP
- Comprendere come le URL HTTP sono mappate nei percorsi del file system
- Caricare file nella root dei documenti di un server web
- Comprendere il caching
- Comprendere i cookie
- Conoscenza delle sessioni e il dirottamento delle sessioni
- Conoscenza dei server HTTP comunemente usati
- Conoscenza di HTTPS e TLS
- Conoscenza dei web socket
- Conoscenza degli host virtuali
- Conoscenza dei server HTTP comuni
- Conoscenza dei requisiti e delle limitazioni della larghezza di banda e della latenza della rete
File, termini e utilità:
- GET, POST
- 200, 301, 302, 401, 403, 404, 500
- Apache HTTP Server ("httpd"), NGINX
032 Marcatura di un Documento HTML
032.1 Anatomia di un Documento HTML (peso: 2)
|
Peso |
2 |
|
Descrizione |
Il candidato dovrebbe capire l'anatomia e la sintassi di un documento HTML. Questo include la creazione di documenti HTML di base. |
Aree di Conoscenza Chiave:
- Creare un semplice documento HTML
- Comprendere il ruolo dell'HTML
- Comprendere la struttura dell'HTML
- Comprendere la sintassi HTML (tag, attributi, commenti)
- Comprendere l'intestazione dell'HTML
- Comprendere i meta tag
- Comprendere la codifica dei caratteri
File, termini e utilità:
- <!DOCTYPE html>
- <html>
- <head>
- <body>
- <meta>, incluso charset (UTF-8), nome e contenuto degli attributi
032.2 Semantica HTML e Gerarchia del Documento (peso: 2)
|
Peso |
2 |
|
Descrizione |
Il candidato dovrebbe essere in grado di creare documenti HTML con una struttura semantica. |
Aree di Conoscenza Chiave:
- Creare marature per i contenuti in un documento HTML
- Comprendere la struttura gerarchica del testo HTML
- Differenziare tra elementi HTML a blocchi e in linea
- Comprendere importanti elementi strutturali HTML semantici
File, termini e utilità:
- <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
- <p>
- <ul>, <ol>, <li>
- <dl>, <dt>, <dd>
- <pre>
- <blockquote>
- <strong>, <em>, <code>
- <b>, <i>, <u>
- <span>
- <div>
- <main>, <header>, <nav>, <section>, <footer>
032.3 Riferimenti HTML e Risorse Integrate (peso: 2)
|
Peso |
2 |
|
Descrizione |
Il candidato dovrebbe essere in grado di collegare un documento HTML ad altri documenti e incorporare contenuti esterni, come immagini, video e audio in un documento HTML. |
Aree di Conoscenza Chiave:
- Creare link a risorse esterne e collegamenti di pagina
- Aggiungere immagini ai documenti HTML
- Comprendere le proprietà chiave dei comuni formati di file multimediali, inclusi PNG, JPG e SVG.
- Conoscenza degli iframe
File, termini e utilità:
- attributo id
- <a>, inclusi gli attributi href e target (_blank, _self, _parent, _top)
- <img>, inclusi gli attributi src e alt
032.4 Moduli HTML (peso: 2)
|
Peso |
2 |
|
Descrizione |
Il candidato dovrebbe essere in grado di creare semplici moduli HTML contenenti elementi di input di vario tipo. |
Aree di Conoscenza Chiave:
- Creare semplici moduli HTML
- Comprendere i metodi dei moduli HTML
- Comprendere gli elementi e i tipi di input HTML
File, termini e utilità:
- <form>, inclusi metodo (get, post), azione e attributi enctype
- <input>, inclusi i tipi di attributo (text, email, password, number, date, file, range, radio, checkbox, hidden)
- <button>, inclusi i tipi di attributo (submit, reset, hidden, button)
- <textarea>
- comuni attributi degli elementi dei moduli (name, value, id)
- <label>, incluso l'attributo for
033 Stile dei Contenuti con i CSS
033.1 Concetti Base dei CSS (peso: 1)
|
Peso |
1 |
|
Descrizione |
Il candidato dovrebbe capire i vari modi per dare stile ad un documento HTML usando i CSS. Questo include la struttura e la sintassi delle regole CSS. |
Aree di Conoscenza Chiave:
- Incorporare i CSS in un documento HTML
- Comprendere la sintassi CSS
- Aggiungere commenti ai CSS
- Conoscenza delle caratteristiche e dei requisiti di accessibilità
File, termini e utilità:
- Attributi di stile e tipo HTML (text/css)
- <style>
- <link>, inclusi gli attributi rel (stylesheet), type (text/css) e src
- ;
- /*,*/
033.2 CSS Selectors and Style Application (peso: 3)
|
Peso |
3 |
|
Descrizione |
The candidate should be able to use selectors in CSS and understand how CSS rules are applied to elements within an HTML document. |
Aree di Conoscenza Chiave:
- Use selectors to apply CSS rules to elements
- Understand CSS pseudo-classes
- Understand rule order and precedence in CSS
- Understand inheritance in CSS
File, termini e utilità:
- element; .class; #id
- a, b; a.class; a b;
- :hover, :focus
- !important
033.3 CSS Styling (peso: 2)
|
Peso |
2 |
|
Descrizione |
The candidate should use CSS to add simple styles to the elements of an HTML document. |
Aree di Conoscenza Chiave:
- Understand fundamental CSS properties
- Understand units commonly used in CSS
File, termini e utilità:
- px, %, em, rem, vw, vh
- color, background, background-*, font, font-*, text-*, list-style, line-height
033.4 CSS Box Model and Layout (peso: 2)
|
Peso |
2 |
|
Descrizione |
The candidate should understand the CSS box model. This includes defining the position of elements on a website. Additionally, the candidate should understand the document flow. |
Aree di Conoscenza Chiave:
- Define the dimension, position and alignment of elements in a CSS layout
- Specify how text flows around other elements
- Understand the document flow
- Awareness of the CSS grid
- Awareness of responsive web design
- Awareness of CSS media queries
File, termini e utilità:
- width, height, padding, padding-*, margin, margin-*, border, border-*
- top, left, right, bottom
- display: block | inline | flex | inline-flex | none
- position: static | relative | absolute | fixed | sticky
- float: left | right | none
- clear: left | right | both | none
034 JavaScript Programming
034.1 JavaScript Execution and Syntax (peso: 1)
|
Peso |
1 |
|
Descrizione |
The candidate should be able to execute JavaScript files and inline code from an HTML document and understand basic JavaScript syntax. |
Aree di Conoscenza Chiave:
- Run JavaScript within an HTML document
- Understand the JavaScript syntax
- Add comments to JavaScript code
- Access the JavaScript console
- Write to the JavaScript console
File, termini e utilità:
- <script>, including the type (text/javascript) and src attributes
- ;
- //, /* */
- console.log
034.2 JavaScript Data Structures (peso: 3)
|
Peso |
3 |
|
Descrizione |
The candidate should be able to use variables in JavaScript code. This includes understanding values and data types. Furthermore, the candidate should understand assignment operators and type conversion and be aware of variable scope. |
Aree di Conoscenza Chiave:
- Define and use variables and constants
- Understand data types
- Understand type conversion/coercion
- Understand arrays and objects
- Awareness of the variable scope
File, termini e utilità:
- =, +, -, *, /, %, --, ++, +=, -=, *=, /=
- var, let, const
- boolean, number, string, symbol
- array, object
- undefined, null, NaN
034.3 JavaScript Control Structures and Functions (peso: 4)
|
Peso |
4 |
|
Descrizione |
The candidate should be able to use control structures in JavaScript code. This includes using comparison operators. Furthermore, the candidate should be able to write simple functions and understand function parameters and return values. |
Aree di Conoscenza Chiave:
- Understand truthy and falsy values
- Understand comparison operators
- Understand the difference between loose and strict comparison
- Use conditionals
- Use loops
- Define custom functions
File, termini e utilità:
- if, else if, else
- switch, case, break
- for, while, break, continue
- function, return
- ==, !=, <, <=, >, >=
- ===, !==
034.4 JavaScript Manipulation of Website Content and Styling (peso: 2)
|
Peso |
2 |
|
Descrizione |
The candidate should understand the HTML DOM. This includes manipulating HTML elements and CSS properties through the DOM using JavaScript as well as using DOM events in simple scenarios. |
Aree di Conoscenza Chiave:
- Understand the concept and structure of the DOM
- Change the contents and properties of HTML elements through the DOM
- Change the CSS styling of HTML elements through the DOM
- Trigger JavaScript functions from HTML elements
File, termini e utilità:
- document.getElementById(), document.getElementsByClassName(), document.getElementsByTagName(),document.querySelector(), document.querySelectorAll()
- innerHTML, setAttribute(), removeAttribute() properties and methods of DOM elements
- classList, classList.add(), classList.remove(), classList.toggle() properties and methods of DOM elements
- onClick, onMouseOver, onMouseOut attributes of HTML elements
035 NodeJS Server Programming
035.1 NodeJS Basics (peso: 1)
|
Peso |
1 |
|
Descrizione |
The candidate should understand the basics of NodeJS. This includes running a local development server as well as understanding the concept of NPM modules. |
Aree di Conoscenza Chiave:
- Understand the concepts of Node.js
- Run a NodeJS application
- Install NPM packages
File, termini e utilità:
- node [file.js]
- npm init
- npm install [module_name]
- package.json
- node_modules
035.2 NodeJS Express Basics (peso: 4)
|
Peso |
4 |
|
Descrizione |
The candidate should be able to create a simple dynamic website with the Express web framework. This includes defining simple Express routes as well as serving dynamic files through the template engine EJS. |
Aree di Conoscenza Chiave:
- Define routes to static files and EJS templates
- Serve static files through Express
- Serve EJS templates through Express
- Create simple, non-nested EJS templates
- Use the request object to access HTTP GET and POST parameters and process data submitted through HTML forms
- Awareness of user input validation
- Awareness of cross-site Scripting (XSS)
- Awareness of cross-site request forgery (CSRF)
File, termini e utilità:
- express and body-parser node module
- Express app object
- app.get(), app.post()
- res.query, res.body
- ejs node module
- res.render()
- <% … %>, <%= … %>, <%# … %>, <%- … %>
- views/
035.3 SQL Basics (peso: 3)
|
Peso |
3 |
|
Descrizione |
The candidate should be able to create individual tables in an SQLite database and add, modify and delete data using SQL. Furthermore, the candidate should be able to retrieve data from individual tables and execute SQL queries from NodeJS. This does not include referencing or combining data between multiple tables. |
Aree di Conoscenza Chiave:
- Establish a database connection from NodeJS
- Retrieve data from the database in NodeJS
- Execute SQL queries from NodeJS
- Create simple SQL queries excluding joins
- Understand primary keys
- Escape variables used in SQL queries
- Awareness of SQL injections
File, termini e utilità:
- sqlite3 NPM module
- Database.run(), Database.close(), Database.all(), Database.get(), Database.each()
- CREATE TABLE
- INSERT, SELECT, DELETE, UPDATE