View Full Version : Programmare?!?!da dove comincio?!?!
SeleSnia
14-11-2009, 19:26
Ciao a tutti
sn molto giovane (14 anni tra poco) e mi piace molto il pc
volevo iniziare a programmare...ma il problema è:
che linguaggio scegliere?????????:help: :doh::confused:
escluderei a priori il dos perchè è si intuitivo ma alla fine non è che puoi dire di saper fare un vero e proprio programma...:D :D (e poi li un po' posso dire che me la cavo...:D :cool: :Prrr: )
vi ringrazio in anticipo...
p.s. una cosa semplice mi raccomando!!!!
che c'entra il DOS? :wtf:
comunque: http://code.msdn.microsoft.com/smallbasic
SeleSnia
14-11-2009, 19:54
cm non detto...scs....:doh: :doh: :doh: :doh: :doh: :doh:
ottimo cmq avrei solo bisogno di una guida in italiano...
wizard1993
14-11-2009, 19:58
allora io personalmente ti consiglierei di cominciare dal c#, il quale però essenzialmente si studia dai libri cartacei.
Un'altro ottimo linguaggio per imparare (e me ne sto accorgendo ora che devo insegnarlo) è il python, benchè trovi la sua sintassi orribile è quanto di meglio si possa trovare per un novizio: è semplice e molto "lineare", non ti costringe a cambiare modo di pensare 20 volte , e ti permette di concentrarti sul problema da risolvere invece che su 300000 regole sintattiche.
ha una ottimo libro in italiano gratuito scaricabile dal sito ufficiale
http://www.python.it/doc/Howtothink/HowToThink_ITA.pdf
SeleSnia
14-11-2009, 20:08
avevo già provato a fare qualcosa su python ma poi avevo mollato
bo...credo k fosse stata una brutta guida perchè mi faceva fare operazioni e nn "mini-mini-programmini"...
cm non detto...scs....:doh: :doh: :doh: :doh: :doh: :doh:
ottimo cmq avrei solo bisogno di una guida in italiano... purtroppo che io sappia quel progetto (ancora in via parzialmente sperimentale, ha solo un anno) non é stato ancora internazionalizzato. comprendo che tu abbia neanche 14 anni e che non sia facilissimo per te leggere l'inglese tecnico, ma ti anticipo subito che per stare in questo mondo prima o poi dovrai farci l'abitudine :) e naturalmente é meglio prima che poi.
se proprio non vuoi fare uno sforzo con l'inglese e vuoi a tutti i costi una documentazione in italiano credo che sia necessario passare a qualcos'altro. C# é documentato in italiano ma credo che sia un tantino complicato, comunque se ti interessa qui puoi scaricare Visual C# 2008 Express: http://www.microsoft.com/express/download/
e qui ne trovi la documentazione italiana: http://msdn.microsoft.com/it-it/library/kx37x362.aspx
in alternativa a Visual C# c'é Visual Basic; lo scarichi dallo stesso link sopra e ne trovi qui la documentazione: http://msdn.microsoft.com/it-it/library/2x7h1hfk.aspx
la differenza tra questi due linguaggi é praticamente limitata alla sola sintassi, quindi la scelta tra i due per te é solo una questione di gusti. C# ha la sintassi di derivazione C e quindi se cominciassi con quello in un eventuale futuro apprenderesti piu facilmente altri linguaggi estremamente usati come Java e C++.
SeleSnia
14-11-2009, 20:26
grazie a tutti!!!!!!
però da solo non so scegliere!!!!
ditemi vuoi...ci dedico un po di tempo al giorno ma nn tanto...
apprezzo le cose semplici...
cosa scelgo?????:confused: :confused:
cdimauro
14-11-2009, 20:28
Un'altro ottimo linguaggio per imparare (e me ne sto accorgendo ora che devo insegnarlo) è il python, benchè trovi la sua sintassi orribile
:eek: :sob:
è quanto di meglio si possa trovare per un novizio: è semplice e molto "lineare", non ti costringe a cambiare modo di pensare 20 volte , e ti permette di concentrarti sul problema da risolvere invece che su 300000 regole sintattiche.
ha una ottimo libro in italiano gratuito scaricabile dal sito ufficiale
http://www.python.it/doc/Howtothink/HowToThink_ITA.pdf
Su questo, sono perfettamente d'accordo.
avevo già provato a fare qualcosa su python ma poi avevo mollato
bo...credo k fosse stata una brutta guida perchè mi faceva fare operazioni e nn "mini-mini-programmini"...
Se devi iniziare, non c'è niente di meglio di Python. Fidati.
Poi si comincia con le operazioni basilari per assimilare i primi concetti. E' normalissimo. Col tempo si realizzano pezzi di codice sempre più lunghi / complicati, man mano che si prende confidenza col linguaggio e con la programmazione.
Come testo, visto che parti proprio da zero, usa quello suggerito da wizard1993, che è pure in italiano. ;)
SeleSnia
14-11-2009, 20:38
Se devi iniziare, non c'è niente di meglio di Python. Fidati.
Poi si comincia con le operazioni basilari per assimilare i primi concetti. E' normalissimo. Col tempo si realizzano pezzi di codice sempre più lunghi / complicati, man mano che si prende confidenza col linguaggio e con la programmazione.
Come testo, visto che parti proprio da zero, usa quello suggerito da wizard1993, che è pure in italiano. ;)
OOOO!!!la risposta che volevo...grazie mille...
OOOO!!!la risposta che volevo...grazie mille...
Se devi iniziare, non c'è niente di meglio di Brainfuck. Fidati.
Poi si comincia con le operazioni basilari per assimilare i primi concetti. E' normalissimo. Col tempo si realizzano pezzi di codice sempre più lunghi / complicati, man mano che si prende confidenza col linguaggio e con la programmazione.
Scherzo ovviamente :D
cdimauro
15-11-2009, 03:35
:rotfl: :rotfl: :rotfl: Mi hai fatto morire!!! :p
Ciao a tutti
sn molto giovane (14 anni tra poco) e mi piace molto il pc
volevo iniziare a programmare...ma il problema è:
che linguaggio scegliere?????????:help: :doh::confused:
escluderei a priori il dos perchè è si intuitivo ma alla fine non è che puoi dire di saper fare un vero e proprio programma...:D :D (e poi li un po' posso dire che me la cavo...:D :cool: :Prrr: )
vi ringrazio in anticipo...
p.s. una cosa semplice mi raccomando!!!!
secondo me dovresti provare a iniziare con Pascal (linguaggio semplice) che ti fa capire bene come funziona il concetto di struttura, poi passa a qualcosa tipo Vb.net o C++
SeleSnia
15-11-2009, 09:04
secondo me dovresti provare a iniziare con Pascal (linguaggio semplice) che ti fa capire bene come funziona il concetto di struttura, poi passa a qualcosa tipo Vb.net o C++
si hai ragione...ma nn mi metto a imparare una cosa che tra 2 anni sarò obbiligato a imparare...
faccio l'iti e in 3 si inizia il pascal...almeno credo perchè sbirciando nei pc c'è turbo pascal... LOL
wizard1993
15-11-2009, 09:26
si hai ragione...ma nn mi metto a imparare una cosa che tra 2 anni sarò obbiligato a imparare...
faccio l'iti e in 3 si inizia il pascal...almeno credo perchè sbirciando nei pc c'è turbo pascal... LOL
vai tranquillo di python, una volta che sai programmare il linguaggio è solo un mezzo, non un fine
>>The Red<<
15-11-2009, 09:57
Io comincerei col pascal,imparalo bene e poi vai con altri linguaggi.
A scuola studio il pascal,semplicissimo.Ho provato a studiare python per conto mio e non ci ho capito un gran che...
Ti consiglio vivamente pascal.
wizard1993
15-11-2009, 10:11
Io comincerei col pascal,imparalo bene e poi vai con altri linguaggi.
A scuola studio il pascal,semplicissimo.Ho provato a studiare python per conto mio e non ci ho capito un gran che...
Ti consiglio vivamente pascal.
il pascal è didattico, ma non dispon di librerie valide per andare oltre a 10 programmini, a quel punto che sti studi il delphi
>>The Red<<
15-11-2009, 10:32
il pascal è didattico, ma non dispon di librerie valide per andare oltre a 10 programmini, a quel punto che sti studi il delphi
Si,ma per imparare è il migliore.L'importante è capire come funziona un programma.Quando si è imparato questo si passa allo studio di programmi più difficili.
Un altro pregio è che è un linguaggio di alto livello,cioò che è MOLTO simile a come "parli".
Il mio consiglio punta sul pascal,poi fai come vuoi:)
Ah,io conosco appena il pascal e nello studio del python mi sono trovato in difficoltà.In poche parole non ci ho capito una mazza XD
Ti sconsiglio di iniziare con python;)
Si,ma per imparare è il migliore.L'importante è capire come funziona un programma.Quando si è imparato questo si passa allo studio di programmi più difficili.
Un altro pregio è che è un linguaggio di alto livello,cioò che è MOLTO simile a come "parli".
Il mio consiglio punta sul pascal,poi fai come vuoi:)
Ah,io conosco appena il pascal e nello studio del python mi sono trovato in difficoltà.In poche parole non ci ho capito una mazza XD
Ti sconsiglio di iniziare con python;)
esattamente come la penso io.... pascal lo usi per i fondamenti della programmazione e poi quando hai delle buone basi vai con altri linguaggi
No dai partire con Pascal no... o Delphi o Python.
cdimauro
15-11-2009, 10:59
Si,ma per imparare è il migliore.L'importante è capire come funziona un programma.Quando si è imparato questo si passa allo studio di programmi più difficili.
Un altro pregio è che è un linguaggio di alto livello,cioò che è MOLTO simile a come "parli".
Il mio consiglio punta sul pascal,poi fai come vuoi:)
Ah,io conosco appena il pascal e nello studio del python mi sono trovato in difficoltà.In poche parole non ci ho capito una mazza XD
Ti sconsiglio di iniziare con python;)
Se ti sei trovato male tu, non vuol dire che succederà anche con gli altri. Anzi, qui mi sembra che chi abbia iniziato con Python sia andato avanti. Finora sei il primo caso di fallimento con questo linguaggio di programmazione.
Tra l'altro è soltanto qualche giorno fa che chiedevi consigli e libri, e già affermi di esserti trovato male: quanto impegno c'hai messo? Poco, a questo punto.
esattamente come la penso io.... pascal lo usi per i fondamenti della programmazione e poi quando hai delle buone basi vai con altri linguaggi
Da questo punto di vista Python è di gran migliore anche del Pascal, visto che non ti soffermi sui dettagli implementativi / di piattaforma, ma ti concentri soltanto sull'algoritmo e sui concetti basilari della programmazione. :read:
^TiGeRShArK^
15-11-2009, 11:19
Consigliare di iniziare a programmare nel 2009 con pascal è un crimine contro l'umanità.
Consigliare di iniziare a programmare nel 2009 con pascal è un crimine contro l'umanità.
...secondo me no...per imparare a programmare si devono acquisire concetti come variabile,array cicli e condizionali...quando queste cosine son chiare ci si puo' documentare su quale sia il linguaggio piu' adatto per progredire...
...ciao Andrea...
...secondo me no...per imparare a programmare si devono acquisire concetti come variabile,array cicli e condizionali...quando queste cosine son chiare ci si puo' documentare su quale sia il linguaggio piu' adatto per progredire...
...ciao Andrea...
Queste cose le ho imparate sul c++ e nonostante tutto sono ancora vivo... :)
Queste cose le ho imparate sul c++ e nonostante tutto sono ancora vivo... :)
Io le ho imparate sul C ed eccomi qui :cool:
Tra l'altro è soltanto qualche giorno fa che chiedevi consigli e libri, e già affermi di esserti trovato male: quanto impegno c'hai messo? Poco, a questo punto. tuscé :D
wizard1993
15-11-2009, 13:27
Queste cose le ho imparate sul c++ e nonostante tutto sono ancora vivo... :)
idem con patate, ma oggi e, ripeto, lo dico come "insegnante" il miglior linguaggio per imparare è il python, anche solo il fatto che sia fatto sulla filosofia "only one way" aiuta moltissimo, in c++ 280 cose ti danno lo stesso risultato in quanto è pensato, oserei dire, al contrario. Vedere troppi sistemi per fare la stessa cosa, almeno all'inizio, è molto fuorviante. questa è la mia opininione
Io le ho imparate sul C ed eccomi qui :cool:
Ecco, mica c'è bisogno del pascal per acquisire i concetti fondamentali della programmazione. Si buttasse direttamente su qualche linguaggio che gli risulterà più utile in futuro.
...pero' eviterei i programmi che obbligano una particolare indentazione all'inizio...il focus deve essere solo sui concetti fondamentali...
...ciao Andrea....
cdimauro
15-11-2009, 13:57
Consigliare di iniziare a programmare nel 2009 con pascal è un crimine contro l'umanità.
:rotfl: A quelli che consigliano il C allora dovremmo dare la pena di morte per direttissima, senza processo. :asd:
Queste cose le ho imparate sul c++ e nonostante tutto sono ancora vivo... :)
Io le ho imparate sul C ed eccomi qui :cool:
Ho iniziato con BASIC e linguaggio macchina, e sono anch'io ancora qui, ma tanto a posto con la testa non sto. :asd:
tuscé :D
:cool:
idem con patate, ma oggi e, ripeto, lo dico come "insegnante" il miglior linguaggio per imparare è il python, anche solo il fatto che sia fatto sulla filosofia "only one way" aiuta moltissimo, in c++ 280 cose ti danno lo stesso risultato in quanto è pensato, oserei dire, al contrario. Vedere troppi sistemi per fare la stessa cosa, almeno all'inizio, è molto fuorviante. questa è la mia opininione
:ave:
Tra l'altro al MIT, che non sono esattamente gli ultimi arrivati, dopo decenni passati a insegnare Scheme come linguaggio di programmazione per iniziare, sono passati a Python: qualcosa vorrà pur dire. :cool:
Ecco, mica c'è bisogno del pascal per acquisire i concetti fondamentali della programmazione. Si buttasse direttamente su qualche linguaggio che gli risulterà più utile in futuro.
Se deve iniziare da zero, meglio farlo con un linguaggio che gli permetterà di partire subito e in maniera "morbida".
Passare poi ad altri linguaggi potrà farlo benissimo dopo.
...pero' eviterei i programmi che obbligano una particolare indentazione all'inizio...il focus deve essere solo sui concetti fondamentali...
...ciao Andrea....
E dove starebbe il problema dell'indentazione? Non intacca mica i concetti fondamentali.
Anche quando ti fanno utilizzare lo pseudocodice, l'indentazione è sempre rispettata.
Anzi, se impara da subito come indentare il codice, è molto meglio. Evitiamo di tirar sù altra gente che scrive codice coi piedi.
E dove starebbe il problema dell'indentazione? Non intacca mica i concetti fondamentali.
Anche quando ti fanno utilizzare lo pseudocodice, l'indentazione è sempre rispettata.
Anzi, se impara da subito come indentare il codice, è molto meglio. Evitiamo di tirar sù altra gente che scrive codice coi piedi.
...eviterei solo di aggiungergli un ulteriore strato....
...ciao Andrea...
...mh...non è poi facile partire con python...
http://img689.imageshack.us/img689/7500/immaginezp.th.jpg (http://img689.imageshack.us/i/immaginezp.jpg/)
...ciao Andrea...
cdimauro
15-11-2009, 14:44
...eviterei solo di aggiungergli un ulteriore strato....
...ciao Andrea...
Strato, o dettaglio?
...mh...non è poi facile partire con python...
http://img689.imageshack.us/img689/7500/immaginezp.th.jpg (http://img689.imageshack.us/i/immaginezp.jpg/)
...ciao Andrea...
E questo sarebbe un problema? Che non si trova una versione vecchia di Python?
Ecco qui (http://www.python.org/ftp/python/2.6.4/python-2.6.4.msi) l'ultima. ;)
Strato, o dettaglio?
E questo sarebbe un problema? Che non si trova una versione vecchia di Python?
Ecco qui (http://www.python.org/ftp/python/2.6.4/python-2.6.4.msi) l'ultima. ;)
...vincolo...puo' essere una stupidaggine ma non è bello avere un broke link tra i download...che ambiente di sviluppo è consigliato per python?...è da quando ho installato freevo su mandrake che mi son ripromesso di smanacciare un po' meglio con questo linguaggio...
...ciao Andrea...
wizard1993
15-11-2009, 14:56
...vincolo...puo' essere una stupidaggine ma non è bello avere un broke link tra i download...che ambiente di sviluppo è consigliato per python?...è da quando ho installato freevo su mandrake che mi son ripromesso di smanacciare un po' meglio con questo linguaggio...
...ciao Andrea...
netbeans con relativa estensione funziona molto bene
cdimauro
15-11-2009, 14:58
...vincolo...puo' essere una stupidaggine ma non è bello avere un broke link tra i download...
Il sito ufficiale è www.python.org
www.python.it è il sito della grande comunità italiana.
che ambiente di sviluppo è consigliato per python?...è da quando ho installato freevo su mandrake che mi son ripromesso di smanacciare un po' meglio con questo linguaggio...
...ciao Andrea...
Personalmente utilizzo NetBeans (http://netbeans.org/features/python/index.html).
Comunque per iniziare è sufficiente l'eseguibile stesso di Python, che senza nomi di file come parametri parte nella comodissima modalità interattiva.
Ma inizia con Scala! Sii serio! Dai, nella versione 2.8 hanno finalmente aggiornato le collezioni!
def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That
E questa, signori, è la firma di un metodo delle API standard. Chi è che quel dilettante che ha citato Brainfuck? :D
wizard1993
15-11-2009, 16:18
Ma inizia con Scala! Sii serio! Dai, nella versione 2.8 hanno finalmente aggiornato le collezioni!
def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That
E questa, signori, è la firma di un metodo delle API standard. Chi è che quel dilettante che ha citato Brainfuck? :D
a volta mi chiedo se spararti, poi mi ricordo che sei rimasto l'unico "estimatore" di java e allora mi trattengo :D
Frank1962
15-11-2009, 17:21
a volta mi chiedo se spararti, poi mi ricordo che sei rimasto l'unico "estimatore" di java e allora mi trattengo :D
credimi ...non è l'unico
comunque, per quanto riguarda Scala e aborti simili, bè, dovrebbero vietare di insegnare informatica all'università...se questi devono esserei i risultati :muro:
SeleSnia
15-11-2009, 17:29
ragazzi ditemi il più semplice!!!!!!!!!!!!!!!!
uno intuitivo...
tra pascal e python....
wizard1993
15-11-2009, 17:29
comunque, per quanto riguarda Scala e aborti simili, bè, dovrebbero vietare di insegnare informatica all'università...se questi devono esserei i risultati :muro:
si impara dai propri errori, magari alla fine tireranno fuori qualcosa di decente
ragazzi ditemi il più semplice!!!!!!!!!!!!!!!!
uno intuitivo...
tra pascal e python....
Tra Pascal e Python, Python tutti i giorni della settimana e due volte la domenica (e adesso datemi un cilicio da indossare che devo fare penitenza!).
Però se riesci a trovare qualcosa di meglio del "Pensare da informatico" (ad esempio una ristampa di Topolino) ti fai un favore.
wizard1993
15-11-2009, 17:37
Però se riesci a trovare qualcosa di meglio del "Pensare da informatico" (ad esempio una ristampa di Topolino) ti fai un favore.
su questo devo però quotare, quel libro è quantomeno ridicolo rispetto ai libri seri del settore :stordita:
SeleSnia
15-11-2009, 18:02
allora vado con Python se non ci sn obbiezioni...
cdimauro
15-11-2009, 18:41
Tra Pascal e Python, Python tutti i giorni della settimana e due volte la domenica (e adesso datemi un cilicio da indossare che devo fare penitenza!).
A volte è difficile capire se sei serio oppure sarcastico. :stordita:
Però se riesci a trovare qualcosa di meglio del "Pensare da informatico" (ad esempio una ristampa di Topolino) ti fai un favore.
Ci sarebbe Imparare Python che è un eccellente testo, ma non è esattamente introduttivo. E, soprattutto, non è gratuito.
allora vado con Python se non ci sn obbiezioni...
Divertiti. :)
Comprati "Il Linguaggio C" di Brian Kernighan e Dennis Ritchie.
Se non vuoi impazzirti studia il Python.
Ad ogni modo è necessario conoscere i principi della programmazione.
wizard1993
15-11-2009, 18:55
Comprati "Il Linguaggio C" di Brian Kernighan e Dennis Ritchie.
Se non vuoi impazzirti studia il Python.
Ad ogni modo è necessario conoscere i principi della programmazione.
e quelli te li insegna un libro di informatica teorica, e li puoi imparare per prima cosa facendoti venire 200 mal di testa per paragrafo, o li puoi imparare dopo aver imparato un linguaggio e per potersi immaginare come usarli
>>The Red<<
16-11-2009, 13:44
Se ti sei trovato male tu, non vuol dire che succederà anche con gli altri. Anzi, qui mi sembra che chi abbia iniziato con Python sia andato avanti. Finora sei il primo caso di fallimento con questo linguaggio di programmazione.
Tra l'altro è soltanto qualche giorno fa che chiedevi consigli e libri, e già affermi di esserti trovato male: quanto impegno c'hai messo? Poco, a questo punto.
Leggendo il libro mi sono trovato davanti alle stringhe,alle operazioni sulle sequenze e non ci ho capito una mazza!
e quelli te li insegna un libro di informatica teorica, e li puoi imparare per prima cosa facendoti venire 200 mal di testa per paragrafo, o li puoi imparare dopo aver imparato un linguaggio e per potersi immaginare come usarli
Dubito molto su quello che hai scritto e dubito molto sul fatto che tu sappia programmare, senza offesa :D
Io non sono un programmatore, ma ho studiato il K&R, accorgendomi che senza le conscenze base della programmazione, l'ANSI C89 non l'avrei mai potuto imparare. Credo che nell'introduzione al libro sia scritto che uno dei requisiti fondamentali sia la conoscenza delle nozioni base. Il C è in linguaggio con una sintassi semplice, poche istruzioni, che lascia molta libertà al programmatore. Ci vuole poco ad impararlo e una vita per padroneggiarlo, figuriamoci se non si conoscono, ad esempio, le tre strutture base, o il teorema Böhm-Jacopini.
wizard1993
16-11-2009, 15:20
io infatti non so programmare so scrivere codice, ho studiato sui Deitel di c++ e java e il c#sui manuali apress e mi accorgo che senza un libro di informatica teorica, senza una conoscenza sui design pattern io possa scrivere del codice, ma mai un programma degno di questo nome, poi che tutta l'informatica si basi sulla congettura di chuch e la macchina di turing e il teorema di bhom-jacopini te lo insegna qualunque libro, ma scrivere codice di qualità è tutto un altro discorso ;)
Ancora con sto battibecco tra pratici e teorici, mabbasta se ne è discusso duecentomila volte e a mio parere è anche drammaticamente palloso :D
A sto punto mettiamolo al top :asd:
Comunque, vi rivelerò una sconcertante verità: l'approccio migliore dipende dalla persona! :eek:
Per quanto mi riguarda posso dire di stare sopra al livello richiesto da Fondamenti II (in alcune aree anche di parecchio) senza aver mai letto un libro di informatica. E sicuramente non "scrivo codice"...
Poi magari altri possono trovarsi meglio a fare un'altra strada come studiare tutto in teoria e poi ammazzarsi di esercizi, per me è noiosissimo, ma sono gusti :D
Ancora con sto battibecco tra pratici e teorici, mabbasta se ne è discusso duecentomila volte e a mio parere è anche drammaticamente palloso :D
A sto punto mettiamolo al top :asd:
Comunque, vi rivelerò una sconcertante verità: l'approccio migliore dipende dalla persona! :eek:
Per quanto mi riguarda posso dire di stare sopra al livello richiesto da Fondamenti II (in alcune aree anche di parecchio) senza aver mai letto un libro di informatica. E sicuramente non "scrivo codice"...
Poi magari altri possono trovarsi meglio a fare un'altra strada come studiare tutto in teoria e poi ammazzarsi di esercizi, per me è noiosissimo, ma sono gusti :D
Non si tratta di un battibecco, ma di un post di risposta. Ognuno ha le sue idee, per quanto poco condivisibili.
Ho preferito intervenire prima che la cosa degenerasse :asd:
wizard1993
16-11-2009, 17:54
Ho preferito intervenire prima che la cosa degenerasse :asd:
ti assicuro che non sarebe degradato, almeno non da parte mia, comunque essenzialmente quoto quello che hai detto: dipende dalla persona, comunque io ho 16 anni, e sinceramente non ho idea di quanto possano essere le conoscenze necessarie per fondamenti II
mindwings
16-11-2009, 18:04
A 14 anni ti consiglio di praticare uno sport di gruppo a tua scelta, o in generale fare attività che ti permettono di stare a contatto con le persone e di imparare giocando:D . Se davvero sei motivato allora anche io ti consiglio di iniziare con python con il libro che ti hanno consigliato.
@cdimauro Perchè consigli how to think... sempre e a tutti e non Dive into...
imho per una persona che conosce già il mondo della programmazione è meglio il secondo:)
Vabè dai stavo solo dicendo la mia :asd:
Comunque beh, non è che quell'esame sia niente di impossibile (macchine di turing, grafi, linguaggi, alberi, e noia relativa :asd:)...
ho fatto quell'esempio solo per dire che, vale anche il percorso pratica -> teoria se la pratica è fatta bene...
cdimauro
17-11-2009, 07:16
Leggendo il libro mi sono trovato davanti alle stringhe,alle operazioni sulle sequenze e non ci ho capito una mazza!
Passa al C: ti divertirai un mondo coi puntatori. :D
@cdimauro Perchè consigli how to think... sempre e a tutti e non Dive into...
imho per una persona che conosce già il mondo della programmazione è meglio il secondo:)
HtT lo consiglio soltanto per chi inizia (da zero). Per chi ha infarinatura in genere suggerisco Imparare Python.
>>The Red<<
17-11-2009, 13:20
Passa al C: ti divertirai un mondo coi puntatori. :D
Io sto usando il libro che mi avete consigliato,e sinceramente non spiega bene!
cdimauro
17-11-2009, 13:41
Il libro qual era? Altra cosa: parti da zero?
>>The Red<<
17-11-2009, 15:30
Il libro qual era? Altra cosa: parti da zero?
Imparare con Python di Mark Luts.
Si,parto da zero,o quasi(sto facendo con la scuola il Pascal)
Imparare con Python di Mark Luts.
Si,parto da zero,o quasi(sto facendo con la scuola il Pascal)
Posso sapere che scuola fai e che anno?
cdimauro
17-11-2009, 18:06
Imparare con Python di Mark Luts.
Si,parto da zero,o quasi(sto facendo con la scuola il Pascal)
Quel testo è indicato per chi mastica un po' di programmazione.
Comunque se non ti sei formato ancora le basi prova col libro che ho in firma.
>>The Red<<
17-11-2009, 19:32
Posso sapere che scuola fai e che anno?
Faccio l' ITIS,indirizzo Informatica...3°anno
Quel testo è indicato per chi mastica un po' di programmazione.
Comunque se non ti sei formato ancora le basi prova col libro che ho in firma.
Proverò senz'altro!
io avevo letto qualche pagina di quel libro, quando anch'io ero al 3 ITIS e mi è sembrato molto chiaro e semplice. Non avrai difficoltò a imparare il Python con quello ;)
Io però ho optato per il C :cool:
>>The Red<<
17-11-2009, 20:34
io avevo letto qualche pagina di quel libro, quando anch'io ero al 3 ITIS e mi è sembrato molto chiaro e semplice. Non avrai difficoltò a imparare il Python con quello ;)
Io però ho optato per il C :cool:
Beh,speriamo che quando andiamo avanti col Pascal mi si schiariscono le idee...
cdimauro
18-11-2009, 07:17
Se non te le chiarisci non Python, col Pascal sarà più difficile.
Se non te le chiarisci non Python, col Pascal sarà più difficile.
Già...
Io comunque partirei con Python come dice cdimauro, anche se sono un sostenitore e purista dei linguaggi C LIKE. Effettivamente ha un botto di funzionalità interessanti il pitone
>>The Red<<
18-11-2009, 13:32
Se non te le chiarisci non Python, col Pascal sarà più difficile.
Io le idee le ho molto chiare sul pascal fino a quello che abbiamo fatto fino ad ora.
Volevo dire,sperimo bene che mi si schiariscono le idee appena che faccio gli argomenti che tratta il libro(Python) come ad esempio le stringhe.
cdimauro
18-11-2009, 18:56
Già...
Io comunque partirei con Python come dice cdimauro, anche se sono un sostenitore e purista dei linguaggi C LIKE.
Io l'esatto contrario. Vade retro!!! :D
Effettivamente ha un botto di funzionalità interessanti il pitone
:cool:
Io le idee le ho molto chiare sul pascal fino a quello che abbiamo fatto fino ad ora.
Volevo dire,sperimo bene che mi si schiariscono le idee appena che faccio gli argomenti che tratta il libro(Python) come ad esempio le stringhe.
Le stringhe le farai anche in Pascal. E ringrazia dio, se ci credi, che le farai in Pascal e non in C. :asd:
Comunque i concetti che hai appreso finora col Pascal puoi sfruttarli anche con Python (se non sei arrivato ancora alle stringhe, si tratta di roba elementare).
^TiGeRShArK^
18-11-2009, 19:03
Io l'esatto contrario. Vade retro!!! :D
Quindi stai dicendo che tu partiresti con il C anche se sei un sostenitore e purista del python? :O
:ciapet:
>>The Red<<
18-11-2009, 20:03
Le stringhe le farai anche in Pascal. E ringrazia dio, se ci credi, che le farai in Pascal e non in C. :asd:
Perchè?
cdimauro
18-11-2009, 20:22
Quindi stai dicendo che tu partiresti con il C anche se sei un sostenitore e purista del python? :O
:ciapet:
:doh: :sob:
Perchè?
Non hai idea di quanto sia frustrante lavorare con le stringhe in C. E, viceversa, di quanto sia una goduria immensa farlo in Python. :cool:
Ma che ce fate co' 'stre stringhe? Io non vedo una stringa dai tempi della breccia di porta pia...
cdimauro
18-11-2009, 20:45
Beh, io ci lavoro tutti i giorni. E sono comodissime.
Nella versione di Java pre-porta pia che utilizzi immagino che per coerenza alla prospettiva a oggetti si possano costruire soltanto un carattere alla volta, e quindi non dichiarare direttamente. :fagiano:
akfhalfhadsòkadjasdasd
18-11-2009, 20:48
Ciao a tutti
sn molto giovane (14 anni tra poco) e mi piace molto il pc
volevo iniziare a programmare...ma il problema è:
che linguaggio scegliere?????????:help: :doh::confused:
escluderei a priori il dos perchè è si intuitivo ma alla fine non è che puoi dire di saper fare un vero e proprio programma...:D :D (e poi li un po' posso dire che me la cavo...:D :cool: :Prrr: )
vi ringrazio in anticipo...
p.s. una cosa semplice mi raccomando!!!!
Sarò del tutto controcorrente... però ci tengo a dire una cosa: capite prima cosa significa informatica (magari anche cosa è ingegneria informatica), capite prima cosa vuol dire progettare e come si fa, imparate prima a risolvere problemi. E soprattutto ad averne di problemi..
L'informatica e i suoi strumenti sono nati per delle necessità, per risolvere problemi ben precisi e già formulati in qualche modo... e non per qualche prurito..
Impari Java, c# o python... impari sintassi, costrutti e poi che ci fai? Non è che ti si apre il mondo se non avevi in mente qualcosa di preciso da fare prima
Secondo me si deve partire da questo genere di domanda: "voglio fare un sistema così e così" oppure "voglio risolvere questo problema che ho formulato in tal modo, cosa conviene che uso/imparo per implementarlo?"
Beh, io ci lavoro tutti i giorni. E sono comodissime.
Nella versione di Java pre-porta pia che utilizzi immagino che per coerenza alla prospettiva a oggetti si possano costruire soltanto un carattere alla volta, e quindi non dichiarare direttamente. :fagiano:
Non è una questione di orientamento agli oggetti, è un problema di adeguatezza dello strumento. La stringa è un blocco di testo ignoto e costante: una volta che hai fatto un assegnamento o un confronto hai già bell'e che finito di usare le stringhe.
:doh: :sob:
Non hai idea di quanto sia frustrante lavorare con le stringhe in C. E, viceversa, di quanto sia una goduria immensa farlo in Python. :cool:
Concordo... il char * stringa[XXX]; è una gran rottura di palle... al cospetto di mamma = "ciao :)"
cdimauro
19-11-2009, 07:29
Non è una questione di orientamento agli oggetti, è un problema di adeguatezza dello strumento. La stringa è un blocco di testo ignoto e costante:
Che però necessita di essere costruito, e se volessimo legarci mani e piedi alla prospettiva orientata agli oggetti necessiterebbe di una catena di invocazioni di metodi o spedizioni di messaggi per costruirle carattere per carattere.
Che non è il massimo della vita, e spero che almeno su questo sarai d'accordo. ;)
una volta che hai fatto un assegnamento o un confronto hai già bell'e che finito di usare le stringhe.
Ma anche no: dipende da quello che ci fai, e francamente mi pare difficile credere che tu non abbia mai concatenato stringhe, ad esempio, in tutti i tuoi programmi:
KnownTags = 'DISCID', 'DYEAR', 'TTITLE', 'EXTD', 'EXTT', 'PLAYORDER'
def DecodeValue(Value):
try:
DecodedValue = Value.decode('utf8')
except UnicodeDecodeError:
return None
if sum(1 for Ch in DecodedValue if ord(Ch) < 128) > len(DecodedValue) >> 1:
return Value
else:
return None
def ParseFile(FileName):
Lines = open(FileName).readlines()
if Lines and Lines[0].startswith('# xmcd'):
DTITLE = Artist = Title = DGENRE = ''
Tracks = {}
for Line in Lines:
if not Line.startswith('#'):
Line = Line.replace('\n', '')
Key, Dummy, Value = Line.partition('=')
if Dummy:
if Key == 'DTITLE':
if len(Value) > len(DTITLE) and DecodeValue(Value) is not None:
NewArtist, Dummy, NewTitle = Value.partition(' / ')
if not Dummy:
NewArtist, Dummy, NewTitle = Value.partition(' ')
if Dummy and DecodeValue(NewArtist) is not None and DecodeValue(NewTitle) is not None:
DTITLE, Artist, Title = Value, NewArtist, NewTitle
elif Key == 'DGENRE':
if len(Value) > len(DGENRE) and DecodeValue(Value) is not None:
DGENRE = Value
elif not Key.startswith(KnownTags):
raise AttributeError(Key, Value)
else:
raise SyntaxError(Line)
if not Artist or not Title:
return None
return Artist.strip(), Title.strip(), DGENRE.strip()
Questo è un pezzo di codice che si smazza un file di testo dell'archivio dei CD di FreeDB. Le parti in rosso sono o si applicano a stringhe. Mi sembra che non ci sia soltanto qualche assegnamento o confronto, o sbaglio? :O
P.S. Mi rendo conto adesso che avrei dovuto chiamare Separator la variabile Dummy. Colpa del copia & incolla.
Concordo... il char * stringa[XXX]; è una gran rottura di palle... al cospetto di mamma = "ciao :)"
Già. :D
>>The Red<<
19-11-2009, 13:18
Che però necessita di essere costruito, e se volessimo legarci mani e piedi alla prospettiva orientata agli oggetti necessiterebbe di una catena di invocazioni di metodi o spedizioni di messaggi per costruirle carattere per carattere.
Che non è il massimo della vita, e spero che almeno su questo sarai d'accordo. ;)
Ma anche no: dipende da quello che ci fai, e francamente mi pare difficile credere che tu non abbia mai concatenato stringhe, ad esempio, in tutti i tuoi programmi:
KnownTags = 'DISCID', 'DYEAR', 'TTITLE', 'EXTD', 'EXTT', 'PLAYORDER'
def DecodeValue(Value):
try:
DecodedValue = Value.decode('utf8')
except UnicodeDecodeError:
return None
if sum(1 for Ch in DecodedValue if ord(Ch) < 128) > len(DecodedValue) >> 1:
return Value
else:
return None
def ParseFile(FileName):
Lines = open(FileName).readlines()
if Lines and Lines[0].startswith('# xmcd'):
DTITLE = Artist = Title = DGENRE = ''
Tracks = {}
for Line in Lines:
if not Line.startswith('#'):
Line = Line.replace('\n', '')
Key, Dummy, Value = Line.partition('=')
if Dummy:
if Key == 'DTITLE':
if len(Value) > len(DTITLE) and DecodeValue(Value) is not None:
NewArtist, Dummy, NewTitle = Value.partition(' / ')
if not Dummy:
NewArtist, Dummy, NewTitle = Value.partition(' ')
if Dummy and DecodeValue(NewArtist) is not None and DecodeValue(NewTitle) is not None:
DTITLE, Artist, Title = Value, NewArtist, NewTitle
elif Key == 'DGENRE':
if len(Value) > len(DGENRE) and DecodeValue(Value) is not None:
DGENRE = Value
elif not Key.startswith(KnownTags):
raise AttributeError(Key, Value)
else:
raise SyntaxError(Line)
if not Artist or not Title:
return None
return Artist.strip(), Title.strip(), DGENRE.strip()
Questo è un pezzo di codice che si smazza un file di testo dell'archivio dei CD di FreeDB. Le parti in rosso sono o si applicano a stringhe. Mi sembra che non ci sia soltanto qualche assegnamento o confronto, o sbaglio? :O
P.S. Mi rendo conto adesso che avrei dovuto chiamare Separator la variabile Dummy. Colpa del copia & incolla.
Già. :D
MA a che serve quel 'pezzo' di programma?:muro:
ps.quale versione mi consigliate di scaricare per programmare in python?
...
Quel codice è "semanticamente fuorviante". Come peralatro può esserlo un qualsiasi brano di codice scritto da me. E' una determinazione a cui sono giunto da poco. :fagiano:
Codificare il contenuto di una stringa è sempre un errore semantico nel senso che quando scrivo:
String x = "pippo";
Quel "pippo" è qualcosa che non dovrei scrivere perchè esprime un significato che è sempre irrilevante nel codice del programma.
E' errato nello stesso senso in cui lo è rispondere alla domanda "dove vai?" dicendo "il dollaro è salito di un centesimo sull'euro, dal tabaccaio".
C'è un eccesso di significati che fuorvia l'attenzione.
Quel che dovrebbe esserci scritto è invece:
String x = risorsa.pippo;
Dove risorsa denota un riferimento ad una risorsa estranea al codice e pippo una parte di quella risorsa.
Quanto alla manipolazione delle stringhe in tanto è necessaria in quanto le risorse a cui il programma attinge siano strutturalmente deficitarie.
L'analisi che fai sul testo è necessaria perchè qualche furbone ha avuto la bella pensata di usare un formato testuale per quegli archivi fredb. Probabilmente un apologeta delle stringhe.
Con un file strutturato il massimo che dovresti fare sarebbe confrontare un blocco con una costante per decidere a che variabile assegnare il valore del blocco successivo.
Ma, ahime, a volte occorre infilare le mani nell'immondizia.
cdimauro
19-11-2009, 20:01
MA a che serve quel 'pezzo' di programma?:muro:
E' presto per capirlo.
ps.quale versione mi consigliate di scaricare per programmare in python?
Python 2.6 (http://www.python.org/download/).
Quel codice è "semanticamente fuorviante". Come peralatro può esserlo un qualsiasi brano di codice scritto da me. E' una determinazione a cui sono giunto da poco. :fagiano:
Cosa ti ha portato a questa conclusione?
Codificare il contenuto di una stringa è sempre un errore semantico nel senso che quando scrivo:
String x = "pippo";
Quel "pippo" è qualcosa che non dovrei scrivere perchè esprime un significato che è sempre irrilevante nel codice del programma.
E' errato nello stesso senso in cui lo è rispondere alla domanda "dove vai?" dicendo "il dollaro è salito di un centesimo sull'euro, dal tabaccaio".
C'è un eccesso di significati che fuorvia l'attenzione.
Quel che dovrebbe esserci scritto è invece:
String x = risorsa.pippo;
Dove risorsa denota un riferimento ad una risorsa estranea al codice e pippo una parte di quella risorsa.
Quale sarebbe la differenza fra referenziare esternamente o internamente quella stringa? Per una questione di leggibilità a me sembra più chiara la soluzione "classica".
Quanto alla manipolazione delle stringhe in tanto è necessaria in quanto le risorse a cui il programma attinge siano strutturalmente deficitarie.
L'analisi che fai sul testo è necessaria perchè qualche furbone ha avuto la bella pensata di usare un formato testuale per quegli archivi fredb. Probabilmente un apologeta delle stringhe.
Con un file strutturato il massimo che dovresti fare sarebbe confrontare un blocco con una costante per decidere a che variabile assegnare il valore del blocco successivo.
Ma, ahime, a volte occorre infilare le mani nell'immondizia.
Il problema è che il mondo è un immondezzaio e noi programmatori spesso abbiamo a che farci, dobbiamo mettere da parte gli ideali, ed essere quindi pragmatici.
Quelli di freedb non sanno cosa sia un database. Hanno confuso la parola con "archivio", perché di db non c'è traccia. Inoltre la struttura del file è veramente oscena, anche se fortunatamente il parsing non è complicato.
Ho dovuto smazzarmi un archivio da poco meno di 5GB costituito da 2 milioni e mezzo di file di piccolissima dimensione, per dargli finalmente forma come letteratura comanda. Potevano farlo fin da subito così, perché non c'è nulla di trascendentale nella realizzazione di un database con una struttura molto semplice.
Cosa ti ha portato a questa conclusione?
Non sono certo se sia il frutto di un momento di riflessione o della fagiolata con cipolle dell'altra sera. Uno non dovrebbe mai trascurare il potenziale allucinogeno di certi piatti di antico sapore, specialmente se assunti dopo le 21.
Quale sarebbe la differenza fra referenziare esternamente o internamente quella stringa? Per una questione di leggibilità a me sembra più chiara la soluzione "classica".
Non voglio tenere una lezione non richiesta sulla dichiarazione di valori costanti. Mi limito a dire che non si fa riferimento alle costanti per nome anzichè per valore per non esprimere significati irrilevanti nel contesto in cui il valore costante è usato. Questo mi sembra pacifico in letteratura - sebbene poi taluni testi ascrivano il perchè ad un piacere fatto alla regina piuttostochè a fantomatiche pratiche di buona programmazione che, come il prezzemolo, crescono bene dappertutto.
Il punto a cui volevo arrivare è il fatto che essendo le stringhe valori costanti la dichiarazione del loro valore è materia per i file di configurazione e non per il codice. E' un po' come avere una certa variabile che indica il valore della gravità: uno nel codice troverà scritto GRAVITA, il 9.8 è in un file di configurazione.
E sulle costanti non ci sono grandi operazioni da fare a parte la lettura del loro valore.
Circa la manipolazione delle stringhe in tanto è necessaria in quanto si abbia a che fare con risorse esterne mal pensate. Il mitico formato testuale non è ne efficiente nè leggibile, come dimosta la storia dei figli di SGML.
Dal che deriva la mia opinione che la qualità delle API per la manipolazione delle stringhe sia irrilevante.
cdimauro
20-11-2009, 07:35
Sono in parte d'accordo. Nel mio codice individuo 3 tipi di costanti: quelle "di configurazione" (che stanno su appositi file separati), quelle con identificatori (per renderne comprensibile l'utilizzo) e quelle senza identificatori.
Ovviamente le uso in base al contesto e l'obiettivo che mi pongo. Non posso pensare di "esternalizzare" tutte le costanti, perché il codice diventerebbe enorme sia come dimensione che da mantenere. Ad esempio. chi è che scriverebbe:
i = Config.StartIterator
while i < Config.EndIterator:
print i
(con Config che è un apposito modulo in cui sono definite StartIterator = 0 e EndIterator = 10) anziché questo:
i = 0
while i < 10:
print i
?
Lo si fa se e solo se il valore iniziale e/o finale sono soggetti a cambiamenti. Altrimenti si appesantisce inutilmente il codice.
La ragione per cui le costanti si denonimano non ha infatti a che fare con il fatto che siano costanti: al valore costante sostituiamo un nome se e solo se il valore della costante non è significativo ai fini della compresione del codice in cui deve essere usato.
Nell'esempio del while 0 e 10 devono o non devono essere indicati nominativamente a seconda che ciò che intendiamo esprimere sia un ciclo da 0 da 10 piuttostoche un ciclo tra un minmo e un massimo.
Le due versioni:
i = MIN;
while i < MAX { ... }
e:
i = 0;
while i < 10 { ... }
dicono cose diverse. Si tratta di valutare quale dei due significati sia pertinente. Se scrivo da 0 a 10, vuol dire che 0 e 10 contribuiscono al significato di ciò che sto scrivendo: se scrivessi 0 e 9 non sarebbe lo stesso algoritmo oppure sarebbe lo stesso algoritmo ma non avrebbe più lo stesso effetto nel contesto del programma. Se scrivo MIN e MAX dico che il valore, pur determinato, di MIN e MAX non è rilevante ai fini del funzionamento di quel pezzo di codice.
cdimauro
20-11-2009, 08:07
Benissimo. Dal tuo messaggio precedente avevo (erroneamente, a questo punto) pensato che parlassi di esternalizzare sempre. :stordita:
E' che non mi vengono in mente casi sensati in cui una stringa possa essere rilevante per il suo valore per cui dico che le stringhe dovrebbe sempre essere indicate nominativamente.
Ad esempio quando cerchiamo una stringa in un testo perchè quella stringa è un delimitatore non è il contenuto della stringa ad essere rilevante ma il fatto che una certa sequenza ci sia o non ci sia.
Ma se trovassimo almeno un caso in cui il significato di un pezzo di codice cambi a seconda del contenuto di una stringa allora dovrei ammettere che non sempre le stringhe devono essere indicate nominativamente.
Hanno confuso la parola con "archivio", perché di db non c'è traccia.
[...]
Ho dovuto smazzarmi un archivio da poco meno di 5GB costituito da 2 milioni e mezzo di file di piccolissima dimensione, eccolo li il database: hanno sfruttato il file system come database :D
una volta l'ho fatto anche io per un esame in Java: dovevo memorizzare a lungo termine degli account dotati di alcune proprietá tra cui anche la password; siccome per quell'esame non valeva minimamente la pena di affrontare la complessitá di JDBC piu il driver di qualche database, ho sfruttato il file system: in una cartella il mio programma creava una sottocartella per ogni account e in ogni sottocartella un file per ogni proprietá associata all'account; per ciascun file il nome corrispondeva al nome della proprietá ed il contenuto era il valore della proprietá. le password erano memorizzate quindi in files di nome "password" e per la cronaca erano shadow password (memorizzavo gli hash SHA256 mi pare).
considerando che NTFS é implementato sotto forma di database il risultato non mi sembrava niente male, avevo ottenuto un bel database gerarchico e con una semplicitá imbarazzante :asd:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.