21 idee di sviluppo web interessanti per i principianti
comprESSE I: una dose mensile di coding
Di solito i programmatori in erba vivono una fase di intensa sperimentazione in cui si cimentano in progetti personali per acquisire esperienza e competenze. O anche solo per gettare le basi – perché no? – di piccoli business, magari di successo, nel mondo del digital.
Ci sta. “Sporcarsi le mani” è un esercizio fondamentale nell’evoluzione di un programmatore, una sorta di gavetta per affrontare più avanti progetti strutturati e finanziati in cui non si è più “one man band” ma si fa parte di un team. In cui si fa finalmente ingresso nel mondo del lavoro.
D’altronde, come abbiamo raccontato in questo recente articolo, è un approccio comune a molti developer. Inclusi quelli di fama mondiale.
Allora ci siamo chiesti:
Perché non “unire l’utile al dilettevole” suggerendo ai principianti dei veri e propri “esercizi di programmazione” (come leggerai in alcuni casi anche piuttosto creativi) che aiutino a fare pratica divertendosi ma anche a gettare le basi per qualcosa di utile e potenzialmente “vendibile”? O per accantonare del codice proprietario, anticipando desideri e bisogni futuri, per esigenze personali o professionali a cui poter fare affidamento?
Il web è pieno di risorse gratuite da cui attingere, certo, ma a parte che copiare non è quasi mai etico e legale, non è la stessa cosa. Vuoi mettere anche solo la soddisfazione, non sempre conveniente e praticabile a dire il vero ma "mai dire mai", di creare qualcosa di unico al 100%?
Ecco allora le nostre 21 idee di sviluppo web interessanti per principianti!
1) Creare un sito web a pagina singola
Un sito web di questo tipo è un’unica pagina che contiene tutto il contenuto in una lunga pagina verticale, permettendo agli utenti di scorrere il contenuto senza doverne caricare altre e offrendo un’esperienza fluida e continua. È particolarmente adatto per presentare portfolio e semplici siti aziendali che prevedono una narrazione lineare.
Come fare? Ci sono molti modi. I più semplici richiedono l’installazione di CMS come WordPress e di un tema predisposto. Meno semplice ma sicuramente più interessante è l’uso di template HTML+CSS già pronti. Ad esempio “Conquer template”, un modello con una serie di layout modificabili.
Questo progetto presenta una serie di sfide che gli sviluppatori spesso affrontano in scenari reali, di conseguenza si è spinti a sperimentare nuove tecnologie come Floats e Flexbox per affinare l'implementazione delle tecniche di layout CSS.
2) Creare una pagina di login
Ecco un ottimo modo per affinare le abilità JavaScript: in questo progetto progetterai la barra di autenticazione di accesso di un sito web in cui gli utenti inseriscono il proprio nome utente e password per accedere al sito.
Poiché molti siti richiedono autenticazione, l'apprendimento di questa abilità tornerà molto utile nei futuri progetti e applicazioni web.
3) Creare la landing-page di un prodotto o servizio
Il modo più semplice per creare una landing page è utilizzare una piattaforma di costruzione siti web come Wix, Squarespace oppure preferibilmente il già citato WordPress con un builder visivo come Elementor. Anche se queste piattaforme offrono modelli preconfezionati personalizzabili, non si può dire che sia un buon esercizio per i coder, inoltre il risultato potrebbe risultare poco originale e personalizzato.
Sarebbe preferibile invece seguire un percorso simile a quello descritto nel nostro primo punto costruendo la pagina come fosse un sito a pagina singola e senza menu ma “facendosi le ossa” con HTML e CSS. Sarà più faticoso, ma acquisirai competenze ed esperienze decisamente più spendibili nel mercato del lavoro rispetto a quelle del classico “sviluppatore WordPress”.
4) Creare un sito Giphy
Giphy è una piattaforma online che permette agli utenti di cercare, condividere e scoprire GIF animate. È ampiamente usata nei social media, nelle chat e nelle email come modo per esprimere emozioni, reazioni e per rendere le comunicazioni più dinamiche e divertenti.
Perché non creare un sito per veicolare questo strumento?
Il sito Giphy tra l'altro offre un servizio fatto a questo scopo. Attraverso specifiche API è possibile costruire un'applicazione web con un input di ricerca in cui gli utenti possono cercare e visualizzare GIF specifiche e di tendenza.
5) Creare un quiz game
Sebbene imparare JavaScript possa sembrare semplice, la sua applicazione pratica presenta delle sfide.
Da qui l'idea di sviluppare un gioco a quiz interattivo utilizzando questo noto linguaggio che permetta agli utenti di inserire risposte multiple e visualizzare quella corretta. Realizzandolo avrai l'opportunità di mettere alla prova e migliorare le tue competenze, affrontando complessità logiche e approfondendo la gestione dei dati e la manipolazione del DOM, con la libertà di adattare la complessità del gioco in base al tuo livello di abilità.
6) Programmare una lista di cose da fare
JavaScript può essere impiegato anche per sviluppare applicazioni web che permettono di organizzare liste di attività quotidiane. L’idea qui è di costruire una interfaccia utente dinamica dove gli utenti possono facilmente aggiungere, rimuovere o categorizzare compiti.
Per realizzare un'applicazione del genere è fondamentale avere dimestichezza anche con HTML e CSS.
7) Posizionare bene una pagina su Google
Nell’attuale panorama digitale la SEO è cruciale per garantire che un sito sia visibile nei risultati di ricerca organici. Gli sviluppatori devono quindi possedere una comprensione basilare del design web e delle strategie SEO.
Perché quindi non esercitarsi ponendosi obiettivi simili? Questo approccio non solo migliora la competenza generale ma spinge a interrogarsi sui bisogni e problemi (aspetto fondamentale per chi desidera mettere in pratica una visione imprenditoriale).
Ergo, anche dal punto di vista tecnico, spingendo a lavorare sulla velocità di caricamento su vari dispositivi, oltre che sull’usabilità. E ovviamente non solo.
8) Disegnare col codice
Questa idea trae ispirazione da “Infinite Rainbow” su CodePen e impiega JavaScript per animare elementi HTML e CSS all’interno di un browser.
Utilizzando librerie avanzate come oCanvas, Canviz e Raphael, offre un’opportunità unica di apprendimento nell’uso delle funzionalità grafiche di JavaScript: una competenza preziosa per arricchire le pagine web statiche con elementi visivi dinamici, migliorandone l’aspetto e l’interattività.
9) Simulare Google Search
Perché non simulare la home di Google? Perché non esercitarsi creando una pagina web che ci assomigli senza preoccuparsi delle funzionalità, quindi inserendo il logo di Google, le icone di ricerca, la casella di testo, i collegamenti a Gmail e ai pulsanti delle immagini? In pratica, tutto ciò che vedi nella home page di Google?
Sembrerà inutile ma affinerà molte abilità, soprattutto quelle di UX optimization. Se poi vuoi fare le cose per bene leggi e segui il prossimo punto.
10) Simulare le SERP
Simuliamo la home e non simuliamo anche le SERP?
No, non è meno istruttivo provare a sviluppare anche una pagina web che mostri le pagine di risultati dei motori di ricerca simile a quelle di Google, visualizzando almeno dieci risultati. Qui è importante integrare una freccia di navigazione in basso per permettere agli utenti di passare alle pagine successive, arricchendo così l’esperienza di ricerca.
Questo esercizio, come il precedente, è relativamente facile se hai una buona conoscenza di HTML e CSS. Meno facile se vuoi aggiungere funzionalità, quindi lavorare di codice che giri lato server e configurare un database come PHP e MySQL.
11) Creare una pagina tributo
L’idea che ti proponiamo è di realizzare una pagina dedicata che celebri una figura amata come un individuo stimato o un caro animale domestico.
Questo tipo di progetto offre un’ottima occasione per migliorare le proprie competenze in HTML e CSS.
12) Creare un sondaggio
Perché non sviluppare un modulo per sondaggi o questionari?
Non è complesso se si conosce un po’ di HTML5, in questo modo puoi raccogliere feedback dal tuo target di riferimento. Ad esempio circa l’usabilità o funzionalità dello stesso sondaggio.
Fai però attenzione: questa attività potrebbe richiedere la raccolta di dati personali (come nome, età, email e telefono) che potrebbero farti incorrere in sanzioni da parte del Garante se non corredata da apposita informativa privacy, a maggior ragione se fai uso di cookie. Se decidi di inserire simili campi, meglio realizzare il sondaggio a uso interno/familiare.
In generale fai sempre attenzione con la privacy per qualsiasi tuo progetto digitale.
13) Sviluppare un exit plugin
Qui il compito che ti affidiamo consiste nel creare un widget o un plugin che mostri un pop-up di uscita quando l’utente sta per abbandonare una pagina web.
Si tratta di una tecnica che sfrutta anche questa volta JavaScript, tracciando la durata della visita dell'utente sul sito o la perdita del focus della finestra corrente. Alcuni exit plugin possono essere realizzati in modo molto originale, sta solo alla tua immaginazione.
14) Configurare pulsanti di social sharing
Questo progetto ti sfida a implementare pulsanti di condivisione social su siti web statici superando così le difficoltà incontrate al di fuori di ambienti come WordPress.
Utilizzando anche in questo caso JavaScript potrai inserire dinamicamente questi pulsanti nel tuo sito, offrendo una soluzione flessibile per facilitare la condivisione dei contenuti sui social media.
15) Creare un conto alla rovescia
Perché non sviluppare un timer o un orologio countdown in una pagina web che si aggiorna ogni secondo? Utilizzando JavaScript potrai migliorare l’interattività della pagina aggiungendo pulsanti per avviare, interrompere o mettere in pausa il timer, rendendolo non solo funzionale ma anche visivamente stimolante.
Questo genere di orologi per il web è spesso usato per rendere l’attesa per il lancio di un nuovo sito più intrigante. Con la scusa di esercitarti, puoi realizzarne uno tutto tuo da riutilizzare più avanti (adattandolo dal punto di vista grafico) quando inizierai a sviluppare siti per i tuoi clienti, se ovviamente è tua intenzione fare questo percorso.
16) Creare una chat
Sviluppare una chat in tempo reale potrebbe essere molto impegnativo, lo sappiamo bene, ma sarebbe un esercizio grandioso per le tue doti di programmatore.
In realtà potrebbe andare bene velocizzare il tutto sviluppando una semplice applicazione di chat utilizzando WebSocket, una tecnologia che permette comunicazioni bidirezionali tra il client e il server in tempo reale.
Il programmatore dovrebbe progettare un'interfaccia utente semplice per inviare e visualizzare messaggi. Lato server è necessario gestire le connessioni, ricevere messaggi da un utente e trasmetterli agli altri utenti connessi.
Questo esercizio aiuta a comprendere le dinamiche delle applicazioni web in tempo reale e le interazioni tra client e server. E poi, sai che bello costruire una chat tutta tua?
17) Costruire un carosello immagini
L'idea è di implementare uno slider di immagini con la possibilità di navigare tra le foto.
Come fare? Utilizzando HTML e CSS per strutturare e stilizzare il layout, mentre JavaScript (spesso con librerie come jQuery o framework come React o Vue.js) per aggiungere interattività, come la navigazione e l’animazione del carosello. CSS può essere usato per rendere il carosello responsive, adattandosi a diversi dispositivi. L’uso di librerie come Slick o Swiper può semplificare l’implementazione, offrendo funzionalità avanzate con meno codice.
18) Creare uno switch tema chiaro/scuro
Non è solo una moda ma anche una funzionalità utile di qualsiasi web e app odierna perché in grado di ridurre il consumo energetico dei dispositivi (i temi nativi sono chiari e tendono a consumare di più).
Anche qui si tratta di maneggiare con cura JavaScript per gestire il cambio di tema e CSS per definire gli stili dei diversi elementi (solitamente <div>) della pagina.
19) Sviluppare una app di riconoscimento delle immagini con AI
Le ultime tre idee che vogliamo darti sono più attuali perché integrano l’intelligenza artificiale, pertanto il lavoro richiesto è di configurazione e integrazione piuttosto che di programmazione pura. Il tutto avviene attraverso le API fornite.
Già, perché come abbiamo spiegato in questo articolo, un conto è sviluppare un modello (attività complessissima), altro conto è utilizzarne uno già pronto (molto più semplice!), ed è quello che qui faremo.
Infatti creare una pagina che consenta di fare l’uload di un’immagine che venga passata alla AI è relativamente semplice e Clarifai o Google Cloud Vision sono solo alcune delle API disponibili a tale scopo.
L’esercizio che ti proponiamo potrebbe includere anche la visualizzazione dei risultati dell’analisi e della classificazione effettuata dall’Intelligenza Artificiale. Ad esempio se un utente carica la foto di un gatto potrebbe si ottenerne un testo che comunica la razza, il colore, cosa sta facendo, ecc...
20) Sviluppare un tool di analisi del "sentiment" dei commenti con AI
Un’altra idea che ti diamo riguarda lo sviluppo di un’applicazione che analizzi il sentimento dei commenti degli utenti. Esistono API offerte da IBM Watson che consentono l’analisi del sentiment.
L’app dovrebbe consentire agli utenti di inserire del testo da analizzare (o una url, facendo un’attività preventiva di scraping del testo) ottenendo come output un sentimento positivo, negativo o neutro.
Questo esercizio integra l’apprendimento automatico nelle funzionalità del sito offrendo esperienza pratica con l’elaborazione del linguaggio naturale (NLP).
21) Sviluppare un chatbot con AI
La sfida che ti proponiamo per ultima è la creazione di un chatbot utilizzando JavaScript e una piattaforma AI come Google Dialogflow o Microsoft Bot Framework.
Il bot dovrebbe essere in grado di rispondere a domande frequenti, guidare gli utenti attraverso un sito web o fornire assistenza clienti.
Un’ottima guida passo-passo per creare un AI chatbot usando le API di OpenAI su Visual Studio l’abbiamo scritta noi e la trovi a questo link.
Concludendo
Qualsiasi siano i progetti web su cui stai lavorando o hai intenzione di lavorare, ricorda che è importante selezionarli in base al livello di competenza, iniziando da quelli più semplici per poi avanzare verso compiti più complessi che richiedono conoscenze più avanzate di HTML, CSS, JavaScript e, per i developer più skillati, dei linguaggi dinamici.
Ci auguriamo che queste nostre idee ti abbiano aiutato a fare pratica e ispirato a diventare, se non lo sei ancora, un programmatore.
O se lo sei già, un programmatore ancora migliore.