Non deve impraticarsi ed evolversi. Gli servono solo delle basi per cultura generale.Originariamente inviato da Neptune
se vedi che la persona si sta impratichendo inizi ad insegnare oggetti, puntatori e quant'altro.
Non deve impraticarsi ed evolversi. Gli servono solo delle basi per cultura generale.Originariamente inviato da Neptune
se vedi che la persona si sta impratichendo inizi ad insegnare oggetti, puntatori e quant'altro.
Errare humanum est, perseverare ovest
Perchè?Originariamente inviato da quaestio
cobol
Errare humanum est, perseverare ovest
il mio docente di informatica usava Scratch
PHP cone Javascript hanno il problema delle variabili, difficile spiegargli la differenza tra un integer e una stringa.
Io voto C
C'è sempre LOGO, per quelli davvero coraggiosi
javascript è troppo diverso rispetto ai linguaggi di programmazione classici: dalla tipizzazione, all'OOP, allo scoping... direi che python è una buona scelta ma non scarterei nemmeno ruby.
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)
perche' essendo un linguaggio funzionale eviti i casini degli effetti collaterali al neofita, per non parlare della sintassi molto sempliceOriginariamente inviato da carlo2002
perchè?
Walk fast, chew slowly.
"We used students as subjects because rats are expensive and you get too attached to them"
Non mi stancherò mai di ripeterlo: io amo lavorare in C++, ma C++ è un linguaggio da imparare solo quando già sai programmare.Originariamente inviato da Neptune
Io spiegherei il C o meglio ancora il C++ perchè puoi dosare tu la quantità di nozioni che vuoi impartire.
Inizi ad usarlo con la semplice programmazione imperativa se vedi che la persona si sta impratichendo inizi ad insegnare oggetti, puntatori e quant'altro.
Perché:
- è estremamente ingarbugliato; magari sono io che sono scemo, ma dopo nove anni che lo uso ancora diversi "angoli" del linguaggio non mi sono chiarissimi;
- è complicato per ragioni storiche, non particolarmente logiche o comunque complesse da spiegare; come lo spieghi ad un neofita, dopo che gli hai insegnato ad usare std::string invece dei cattivi char*, che una cosa del tipo:
va bene, macodice:std::string s="padre pio "; std::string g=s+"nella terra dei canguri";
ti dà errori di compilazione incomprensibili?codice:std::string s="padre pio " + "nella terra dei canguri";
O perché, dopo che hai insegnato le menate di separare dichiarazione e definizione in .h e .cpp, arrivato ai template ti devi rimangiare tutto? O perché quando fai un leggero errore con un template ottieni minimo una paginata di errori di compilazione?- non ha reti di sicurezza; sfora da un buffer e nessuno ti dice niente; se sei fortunato hai un segmentation fault, se no sembra che tutto funzioni e poi compaiono bug "impossibili";
- più in generale, il fatto che un sacco di comportamenti siano undefined behavior o implementation defined fa sì che per un po' le cose sembrino funzionare, ma esploda tutto appena cambi piattaforma (o opzione del compilatore); non aiuta il fatto che su internet si trovino montagne di codice diciamo "discutibile" ma che funziona per puro caso;
- è un linguaggio multiparadigma (anche nella sua libreria standard), il che non aiuta una persona che sta imparando a capire qual è il "modo giusto" per impostare i programmi;
- di conseguenza, ognuno ha le sue idee su come debba essere usato; a seconda di chi ti spiega, può essere usato come "C con cout e i commenti a riga singola", "C con classi", C++ "classico" (OOP "alla Java"), C++ "moderno" (sbrodolate di template ovunque)
C può essere una buona idea se si vuole iniziare con un approccio bottom-up (sputo sangue su puntatori e compagnia così poi capisco quanta fatica è nascosta dietro alle stringhe o a strutture dati più complesse dei linguaggi di livello più alto), ma se l'idea qui è semplicemente dare un'introduzione alla programmazione si può tranquillamente seguire l'approccio top-down (prendo un linguaggio più astratto e che si curi lui dei dettagli noiosi, così posso impratichirmi un po' con la "mentalità" della programmazione divertendomi invece di impazzire con i SEGFAULT).
Mi piace pensare che programmare è un tipo di artigianato; se vuoi insegnare a programmare andare di sola teoria non serve a niente, sono concetti che rimangono troppo astratti. Non ce n'è, per imparare a programmare per forza di cose devi provare, anche se sai a menadito le regole di un linguaggio e i relativi concetti astratti la chiave di tutto, almeno all'inizio, è imparare a pensare in maniera algoritmica.Secondo me le tal regole le deve spiegare prima in maniera Generale, poi deve spiegare come si applicano a quello specifico linguaggio, e così insegni ad una persona a programmare.
Dopo tanti anni che si programma non ci si pensa più, ma l'ostacolo grosso è quello, e me ne sono reso conto solo di recente vedendo dei miei compagni di studi che, pur avendo in mano tutti gli strumenti necessari, faticavano a capire come implementare la classica procedura che trova il massimo in un set di elementi. Non è questione di essere stupidi o di non conoscere le strutture del linguaggio, ma di imparare a "spiegare" al computer come fare delle cose, riducendosi a pensare in maniera elementare.
Ovvio, buttare lì listati e sperare che qualcuno impari non è un buon metodo (anche se... tutti gli smanettoni hanno iniziato copiando listati BASIC già scritti e cambiando qua e là, vedendo cosa succede ).Buttare invece li due istruzioni di codice non è insegnare a programmare è auto-torturarsi perchè al primo errore di compilazione l'allievo non saprà che cavolo è successo e verra a te a romperti le scatole.
Originariamente inviato da franzauker2.0
C'è sempre LOGO, per quelli davvero coraggiosi
Quanti ricordi!codice:-rwxrwxrwx 1 root root 3362 dic 26 2000 ARCHIVIO
Amaro C++, il gusto pieno dell'undefined behavior.
Perchè non provi con il Metalinguaggio?Originariamente inviato da carlo2002
Se dovessi insegnare ad una persona una semplice base dei concetti di programmazione, variabili, strutture di selezione, cicli, array e funzioni, quale linguaggio mi consigliereste? (da usare con Linux)
io stavo pensando addirittura javascript.
altrimenti?
Gli X (fragile) Men - Super Eroi Invisibili
... e ogni tanto faccio pure delle fotografie.
"A minha Patria è a lingua portuguesa"
Python, ma anche Ruby, d'accordissimo con fcaldera.