Ti consiglierei di rimanere incollato a:
"Start simple. Build complexity on top of it."
JS con la sua ereditarietà basata su prototipi è solo complesso per cominciare. IMHO una buona classe di programmazione dovrebbe iniziare a bassa complessità, a basso livello (C-console - come già si fa - per esempio) e passare lentamente a complessità elevata, alto livello (C ++ OOP, JS, PHP, ecc.) - se riesci in qualche modo a collegare in modo significativo i passaggi tra loro, questo è un enorme plus. È molto più importante che insegnare l'ultimo IMHO in hype.
Insegnare più di una lingua (se c'è abbastanza tempo per essa) può essere particolarmente utile per mostrare i diversi approcci che le lingue assumono: interpretazione vs. compilazione, tipizzazione strong vs. debole, OOP vs. funzionale, classe vs. prototipo ereditarietà basata, ecc.
Vorrei dirvi come sono stato introdotto allo sviluppo ¹ - Mi è piaciuto molto e penso che sia stato un concetto ben pensato e ha tenuto la classe molto motivata in qualsiasi momento:
- Abbiamo iniziato con un sacco di sviluppi teorici (compilatori, debugging, ecc.). e poi lentamente ha iniziato a creare app per console c.
- Nel passaggio successivo ci è stato consegnato un lettore RFID collegato via RS232 per scrivere un software di controllo degli accessi basato su schede RFID ( - > un po 'introduzione alla comunicazione di componenti di basso livello) .
- Abbiamo quindi aggiunto un database per la registrazione e la gestione degli utenti ( - > introduzione a livello di voce per SQL ).
- Successivamente il nostro obiettivo era quello di costruire una GUI per aggiungere / modificare le carte base utente e treno / programma (- > introduzione agli IDE usando Borland C ++ Builder)
- Abbiamo quindi ottenuto un secondo lettore e ci hanno detto che i due avrebbero dovuto lavorare insieme e uno dovrebbe gestire a livello centrale l'autenticazione ( - > introduzione alla programmazione dei socket ).
- ... (Ci sono stati altri passaggi, ma non voglio annoiarvi - immagino che otteniate ciò che sto cercando di evidenziare ...
- Il progetto finale passava da C / C ++ a PHP² per costruire un sito web dinamico per controllare il sistema tramite un'interfaccia web (l'app PHP parlava tramite socket TCP con la build del server di controllo precedente).
Ciò che vorrei sottolineare: è stato un grande progetto dal (semplice) inizio alla fine, impilando sempre parti più complesse su quelle precedenti³.
(¹) - Nei miei 3,5 anni di formazione professionale a un amministratore di sistema, quindi la programmazione non era il nostro obiettivo principale di studio.
(²) - Il passaggio da C a PHP è particolarmente facile, perché condividono molto della sintassi.
(³) - Che ovviamente mostrava spesso i limiti delle precedenti soluzioni semplici.