Sono ormai parecchi anni che frequento e modero forum di programmazione. Negli anni ho visto una miriade di esercizi dati nei vari corsi universitari. Molti di questi esercizi sono molto lontani dalla realtà del mondo del lavoro e in alcuni casi tendono ad insegnare cattive abitudini. Il principale problema è che viene data troppa attenzione all'implementazione e poca al problema da risolvere. Si insegna ad usare l'ereditarietà, ad esempio, chiedendo allo studente di creare una gerarchia ben definita. Ma non viene effettivamente spiegato quando è bene usare l'ereditarietà e quando altre soluzioni siano preferibili. Viene spesso fornito un metodo per risolvere un particolare problema senza offrire una panoramica delle alternative (spesso migliori da molti punti di vista). Si valutano cose soggettive come lo stile (che viene invece spesso insegnato come parametro oggettivo) ma vengono ignorati altri parametri ben più importanti in ambiente lavorativo. Non viene insegnato a cercare errori nel codice, ad usare il debugger, nonostante sia una delle cose più importanti quando si lavora. Quando si programma professionalmente si passa probabilmente lo stesso a fare il debugging che a scrivere effettivamente il codice. Viene raramente insegnato a lavorare in gruppo, ad usare strumenti come git o mercurial, a gestire progetti più grossi di un singolo file.
È difficile trovare dei singoli esercizi che spiegano tutte queste abilità. Vorrei quindi proporre di dare vita ad uno o più progetti di collaborazione all'interno del forum. L'obiettivo è principalmente quello di imparare a lavorare in un team e ad usare strumenti più avanzati, ma questo non significa che non si possa puntare a creare qualcosa di utile . Il mio ruolo sarebbe tendenzialmente quello di supervisore/assistente/insegnante. Sarei insomma qui per aiutare e dare suggerimenti/critiche.
Se siete interessati rispondete in questa discussione dicendo i linguaggi che conoscete e vorreste usare, insieme a qualche suggerimento su quale dovrà essere l'obiettivo del progetto. Potete ovviamente anche rispondere dando i vostri commenti o le vostre critiche o suggerimenti.