PDA

View Full Version : [Java] Impararlo in 20 giorni


NY0
22-11-2006, 10:48
Ho l'esame tra una 20ina di giorni di programmazione e purtroppo non ho mai potuto frequentare, secondo voi se mi metto d'impegno riesco a studiarlo in una 20ina di giorni in maniera decente?Il mio testo è l'Hortsman ma ho anche il Savich in inglese, che mi dite?

cionci
22-11-2006, 10:53
Non è impossibile... Se conosci già qualche linguaggio non credo che tu possa avere particolari problemi...

Ziosilvio
22-11-2006, 11:24
Se per questi 20 giorni non fai altro, potresti anche farcela.
L'Horstmann è un ottimo testo, ma conviene avere sottomano anche quello consigliato dal docente.
Cosa chiede il programma d'esame?

MEMon
22-11-2006, 11:47
Secondo me per imparare il corso di java dell'uni(non so che uni tu faccia...) ci metti anche meno di 20 giorni, ovviamente mettendoti d'impegno!

NY0
22-11-2006, 11:56
Se per questi 20 giorni non fai altro, potresti anche farcela.
L'Horstmann è un ottimo testo, ma conviene avere sottomano anche quello consigliato dal docente.
Cosa chiede il programma d'esame?

è proprio quello consigliato dal docente, quello che ho io per i fatti miei, è il savich

NY0
22-11-2006, 11:57
Secondo me per imparare il corso di java dell'uni(non so che uni tu faccia...) ci metti anche meno di 20 giorni, ovviamente mettendoti d'impegno!


uni padova, ho gli esami prima di natale o appena dopo le feste...

ilmambo
22-11-2006, 12:58
cosa devi imparare per l'esame?

giannola
22-11-2006, 16:16
Ho l'esame tra una 20ina di giorni di programmazione e purtroppo non ho mai potuto frequentare, secondo voi se mi metto d'impegno riesco a studiarlo in una 20ina di giorni in maniera decente?Il mio testo è l'Hortsman ma ho anche il Savich in inglese, che mi dite?

se hai mai programmato in c, c++, allora è possibile.
Altrimenti :Prrr: (ovviamente escludendo che tu sia una qualche specie di genio) :D

71104
22-11-2006, 16:50
se programmi in C++ allora ci metti anche solo DUE giorni... perché in tal caso sarebbe solo questione di vedere le differenze sintattiche più qualche altra caratteristica. per un esame universitario poi, manco che ti chiederanno chissaccosa: lo sappiamo com'è l'università, probabile che per quell'esame dovrai studiare si 20 giorni, ma 2 per il Java e 18 per altre cose di matematica che non ti serviranno mai a una ceppa :read:

Hal2001
22-11-2006, 16:52
se programmi in C++ allora ci metti anche solo DUE giorni...

Allora devo imparare a programmare in C!
Qualche testo da dove cominciare?

NY0
22-11-2006, 17:00
mai programmato in c solo qualcosa a livello autodidatta tipo i costrutti elementari etc....

quindi sono cagato :muro:

cionci
22-11-2006, 17:00
Dai dai che ce la fai...

Hal2001
22-11-2006, 17:04
Dai dai che ce la fai...
Ediocelafarò?:)DaiconsigliamiqualchetestodiCconosenzaplusplus

cionci
22-11-2006, 17:06
Ediocelafarò?:)DaiconsigliamiqualchetestodiCconosenzaplusplus
Non è banale dire "con o senza ++"...è una scelta di vita :sofico:

giannola
22-11-2006, 17:13
Allora devo imparare a programmare in C!
Qualche testo da dove cominciare?

bellini - guidi ed. mcgraw-hill

aitken-jones ed. apogeo

due ottimi libri, a te la scelta.

giannola
22-11-2006, 17:16
Ediocelafarò?:)DaiconsigliamiqualchetestodiCconosenzaplusplus

ah no!
un conto è studiare c ed un altro è studiare c++.
Se vuoi imparare le basi della programmazione prima devi studiarti il c e poi il c++.
Ma che università fai ?
Nella mia facoltà devo necessariamente imparare prima il c e poi il c++, che sono simili ma hanno approcci fondamentalmente diversi.

giannola
22-11-2006, 17:16
Non è banale dire "con o senza ++"...è una scelta di vita :sofico:

quoto.

giannola
22-11-2006, 17:17
quindi sono cagato :muro:

ti sei pulito ? :D

NY0
22-11-2006, 17:26
in caso mi date una mano, dai devo fare questo esamaccio...

Hal2001
22-11-2006, 17:52
ah no!
un conto è studiare c ed un altro è studiare c++.

Perché mi spieghi, che differenza c'è?

Ma che università fai ?

Ehm.. non ho avuto la vostra fortuna, ho preso la licenza elementare proprio quest'anno.

Nella mia facoltà devo necessariamente imparare prima il c e poi il c++, che sono simili ma hanno approcci fondamentalmente diversi.

Mi spiegheresti questi approcci diversi?

lovaz
22-11-2006, 17:59
... e perché non leggere la guida di HWUpgrade? :D

Ci metti molto meno di 20 giorni, e se hai dubbi leggendola
chiedi qui sul forum...

Un consiglio molto disinteressato... :fiufiu:

PGI-Bis
22-11-2006, 18:02
Conoscendo C o C++ sei avvezzo a taluni operatori ed alla dot notation il che ti aiuta a riconoscere come familiare alcuni pattern (nel senso linguistico) del codice sorgente scritto nel linguaggio di programmazione Java.

Per il resto la conoscenza di C o di C++ è d'aiuto quanto un cactus tra le palle (è una figura retorica che conoscevamo io e il petrarca :D).

Lo dico chiedendomi quanti dei molti autoprofessantisi programmatori java siano a conoscenza delle norme sulla compatibilità binaria, del modello di memoria, del procedimento di risoluzione dei nomi e di tutte quelle pinzillacchere che insieme rendono tale un qualsiasi linguaggio di programmazione concorrente orientato agli oggetti.

E trattiamo seriamente del minimo di sussistenza: da lì a usare Java per fare qualcosa che non sia suscitare imbarazzo ce ne corre.

Detto questo penso che in 20 giorni NY0 possa farcela perchè gli esami universitari sono una questione più statistica che di conoscenza, il genio è sempre in agguato e l'impossibile non esiste.

Andrea16v
22-11-2006, 19:32
Se si tratta del primo laboratorio ce la dovresti fare senza problemi da qua alla sessione di Gennaio..però devi installarti un compilatore e metterti a lavorare da subito..

NY0
22-11-2006, 20:50
grazie, da domani mi metto perchè so solo fare l'hello world!

71104
22-11-2006, 23:58
Per il resto la conoscenza di C o di C++ è d'aiuto quanto un cactus tra le palle (è una figura retorica che conoscevamo io e il petrarca :D). guarda che non deve arrivare ai tuoi livelli :ave: tali da mettersi a flammare qui e farsi pippe mentali atroci: deve solo essere in grado di risolvere correttamente gli esami degli anni precedenti del suo corso (chissà poi che saranno...)

vuoi sapere come ho imparato il Java io? :D
conoscevo C++ (manco sapevo la differenza tra C e C++ :D), ho visto dei sorgenti di esempio in Java, mi sono subito reso conto di cosa mancava in Java rispetto al C++, e anche di qualche differenza sintattica; ho provato a scrivere qualche sorgente, mi sono accorto che non riuscivo mai a compilare: scrivevo funzioni; ho iniziato a scrivere metodi e a consultare http://java.sun.com/; fine: sapevo il Java :sofico: :D

non c'è bisogno di essere tanto filosofici :asd:

giannola
23-11-2006, 06:44
Perché mi spieghi, che differenza c'è?



Ehm.. non ho avuto la vostra fortuna, ho preso la licenza elementare proprio quest'anno.



Mi spiegheresti questi approcci diversi?

il c è un linguaggio molto potente basato su funzioni e puntatori.
Per questo viene collogato nella fascia tra il linguaggio assembly e gli altri linguaggi di alto livello.

Il c++ eredità tutte le caratteristiche del c ma alle strutture tipiche del predecesore sostituisce la programmazione ad oggetti con l'ereditarietà.
Questo lo rende più versatile.

Diciamo che prima ti conviene studiare il c perchè ti forma la mente in senso matematico, poi passa al c++ per acquisire la competenza nella programmazione ad oggetti.

Tutto molto in sintesi :D

giannola
23-11-2006, 06:54
Conoscendo C o C++ sei avvezzo a taluni operatori ed alla dot notation il che ti aiuta a riconoscere come familiare alcuni pattern (nel senso linguistico) del codice sorgente scritto nel linguaggio di programmazione Java.

Per il resto la conoscenza di C o di C++ è d'aiuto quanto un cactus tra le palle (è una figura retorica che conoscevamo io e il petrarca :D).

Lo dico chiedendomi quanti dei molti autoprofessantisi programmatori java siano a conoscenza delle norme sulla compatibilità binaria, del modello di memoria, del procedimento di risoluzione dei nomi e di tutte quelle pinzillacchere che insieme rendono tale un qualsiasi linguaggio di programmazione concorrente orientato agli oggetti.

E trattiamo seriamente del minimo di sussistenza: da lì a usare Java per fare qualcosa che non sia suscitare imbarazzo ce ne corre.

Detto questo penso che in 20 giorni NY0 possa farcela perchè gli esami universitari sono una questione più statistica che di conoscenza, il genio è sempre in agguato e l'impossibile non esiste.

beh, c (soprattutto) e c++ formano il programmatore da punto di vista dell'approccio logico, in considerazione del fatto che se sbagli anche una virgola il programma non parte nemmeno e spesso il compilatore non di dice come e dove è sbagliato.
Senza considerare che un programma può essere sintatticamente corretto e il compilatore non rilevare errori, però una volta avviato il programma crasha perchè crea casino nella memoria.
Questo per far capire che nel c è importante avere chiara la logica da seguire prima ancora di mettersi a scrivere righe di codice.

Evidentemente uno che ha studiato il c++, approcciando il java si ritrova una struttura linguistica e organizzativa simile, per cui non avrà difficoltà a sostituire una parola.

Per quanto riguarda gli esami, dipende molto dal professore, io per esempio ho dovuto letteralmente programmare in c liste di liste ordinate, tipo i proprietari e le loro auto, lette da un file e poi fare delle statistiche, tipo su chi ha + auto o ha l'auto + vecchia, e scriverle su un altro file.
Ecco in questo caso 20 giorni per imparare "ex novo" un linguaggio sono pochi. ;)

MEMon
23-11-2006, 09:19
guarda che non deve arrivare ai tuoi livelli :ave: tali da mettersi a flammare qui e farsi pippe mentali atroci: deve solo essere in grado di risolvere correttamente gli esami degli anni precedenti del suo corso (chissà poi che saranno...)

vuoi sapere come ho imparato il Java io? :D
conoscevo C++ (manco sapevo la differenza tra C e C++ :D), ho visto dei sorgenti di esempio in Java, mi sono subito reso conto di cosa mancava in Java rispetto al C++, e anche di qualche differenza sintattica; ho provato a scrivere qualche sorgente, mi sono accorto che non riuscivo mai a compilare: scrivevo funzioni; ho iniziato a scrivere metodi e a consultare http://java.sun.com/; fine: sapevo il Java :sofico: :D

non c'è bisogno di essere tanto filosofici :asd:
Ma l'avrai imparato?

dnarod
23-11-2006, 09:52
imho la risposta alla sua domanda è: se vuoi imparare a fare 4 metodini elementari, 20 giorni sono anche troppi...se vuoi imparare (anche se imparare non è il termine adatto secondo me) anche solo il 20% di cio che puo fare java (come qualsiasi altro linguaggio di programmazione) ti servono k*20 giorni, dove k è un intero a piacere

jappilas
23-11-2006, 11:25
Direi che qui ci sia da fare un distinguo, tra "imparare Java" nel senso di ricordare la manciata di keyword del linguaggio e la struttura standard del file sorgente .java tipo, e "imparare java" nel senso di acquisire dimestichezza e poi una discreta padronanza delle funzioni dell' ambiente java e dei package che lo compongono, proveniente da Sun :O
E se imho per la seconda occorrerà anche più di qualche settimana di pratica e studio di documentazione, per la prima basterà poco (a patto di avere già un' idea di programmazione a oggetti)
imho la risposta alla sua domanda è: se vuoi imparare a fare 4 metodini elementari, 20 giorni sono anche troppi...se vuoi imparare (anche se imparare non è il termine adatto secondo me) anche solo il 20% di cio che puo fare java (come qualsiasi altro linguaggio di programmazione) ti servono k*20 giorni, dove k è un intero a piacerequoto, scusa se non ho visto il tuio msg prima di postare ;)
Ma l'avrai imparato?
nel primo senso sicuramente l' ha imparato, come l' ho imparato io (che ho impiegato 2 giorni all' inizio della mia applicazione su Diamonds... per qto mi riguarda, un gran ringraziamento va anche ad Eclipse e al suo error fix a portata di click)

dnarod
23-11-2006, 11:54
ecco, eclipse è uno strumento che di fatto ti farebbe apprendere java in maniera incredibilmente piu veloce; se ogni volta che sbagli sintassi c e qualcuno (eclipse) che ti da la bacchettata e non ti fa andare avanti, nel giro di breve impari a capire come fare certe cose, perche farle, come scrivere un programma sintatticamente giusto...è come un professore sempre a portata di mouse...inoltre le funzioni di completamento automatico (infinite) ti danno la possibilita di imparare a usare le api java in base a quelloche ti serve realmente fare (e non come studio bovino, del quale solitamente rimane poco nella memoria)...se poi a quello unisci un minimo di curiosita e passione e consulti ogni 5 minuti le api (ci sono anche plugin per farlo da eclipse stesso), non ti ci andranno anni per imparare java (anni che ci andrebbero se volessi imparare studiando sui libri e provando a scrivere i programmini con textpad o simili)

mi sono reso conto che non c' e argomento di java che non possa essere sviscerato (ovviamente non in profondita!) con "eclipse + api + goglatina veloce per beccarti due dispense universitarie e al massimo una queratina sul forum per cio che proprio non capisci"

jappilas
23-11-2006, 12:51
ecco, eclipse è uno strumento che di fatto ti farebbe apprendere java in maniera incredibilmente piu veloce; .....infatti :)
piccolo OT: oh, com'è che tu non partecipi a Diamonds? ;)

71104
23-11-2006, 12:53
Ma l'avrai imparato? di fatto io in Java riesco a produrre i risultati che voglio, quindi all'atto pratico si. poi se dici di no allora ti lascio fare tutte le filosofie* che vuoi :)

* pippe mentali

dnarod
23-11-2006, 13:46
-----------
piccolo OT: oh, com'è che tu non partecipi a Diamonds?
-----------

ci ho veramente provato, lo giuro, con tutto me stesso...ma è ancora fuori dalla mia portata al momento...potrei dire qualcosa se avessi il tempo di mettermi a studiare seriamente il tdd; ho materiale per studiare 2 vite e diventare piu tdd di kent beck, ma al momento fra casa nuova e trasloco (allacciamenti, rogito fra una settimana ecc...), 3 esami in dicembre, allenamento (6 giorni settimana) e un minimo di vita sociale, riesco a malapena a non addormentarmi alle 11.30 tutti i giorni per la stanchezza...ormai i miei unici momenti di cazzeggio sono qui sul forum :)

mdr268
23-11-2006, 13:46
ma.. per programmare in java che programma serve?
dove lo si può trovare? è gratis?

PGI-Bis
23-11-2006, 13:59
E' tutto gratis e all'inizio dell'anno prossimo sarà anche quasi tutto "libero".

Per programmare ti serve blocco note e il JDK, che è un polpettone scaricabile da

http://java.sun.com/javase/downloads/index.jsp

pigia "JDK 5.0 Update 9", il terzo pulsante dall'alto.

gli altri sono polpettoni che includono altri polpettoni non strettamente necessari allo sviluppo di programmi per la piattaforma Java SE.

in basso trovi anche la documentazione standard:

J2SE 5 Documentation

uno zippone che contiene delle pagine html con una certa abbondanza di informazioni riguardo alla piattaforma, agli strumenti di sviluppo, gli oggetti disponibili per la costruzione di applicazioni... c'è un po' di tutto.

mdr268
23-11-2006, 14:03
OK.. l'ho messo in coda download.. sono circa 50 mega..

ho fatto un piccolo ragionamento..

so programmare in pascal (me lo fanno studiare a scuola), che è simile al C
il C è simile al C++
e il C++ è simile al java.. quindi non sarà difficile imparare il java.. credo..


x quanto riguarda la documentazione.. c'è in inglese o in giapponese.. per ora imparerò dal forum scopiazzando qualche codice.. poi mi metterò a leggere i docs giapponesi :D

MEMon
23-11-2006, 14:41
di fatto io in Java riesco a produrre i risultati che voglio, quindi all'atto pratico si. poi se dici di no allora ti lascio fare tutte le filosofie* che vuoi :)

* pippe mentali
Sei fortunato allora, anche io mi dico sempre che so usare java per fare un po' di tutto, quindi all'atto pratico lo so usare, il problema sorge quando la mia mente malata produce qualche folle idea molto complessa da realizzare, probabilmente è in quel momento che imparo ancora perchè mi devo spingere sempre più in là.
Non so se mi son spiegato...

71104 mica volevo dire che in realtà non lo conosci eh, volevo solo sapere se davvero pensavi di averlo "imparato", io penso di aver imparato la struttura, ma non conosco tutto quello che sa fare.

jappilas
23-11-2006, 17:30
Sei fortunato allora, anche io mi dico sempre che so usare java per fare un po' di tutto, quindi all'atto pratico lo so usare, il problema sorge quando la mia mente malata produce qualche folle idea molto complessa da realizzare, probabilmente è in quel momento che imparo ancora perchè mi devo spingere sempre più in là.
Non so se mi son spiegato...lì subentrano le capacità individuali nei confronti del "design" di un progetto SW, cioè nei confronti di un approccio al problema che lo scomponga ricorsivamente in sottoproblemi ognuno facilmente risolvibile con gli strumenti a disposizione :O

PGI-Bis
23-11-2006, 18:00
lì subentrano le capacità individuali nei confronti del "design" di un progetto SW, cioè nei confronti di un approccio al problema che lo scomponga ricorsivamente in sottoproblemi ognuno facilmente risolvibile con gli strumenti a disposizione :O

Per l'amor del cielo non tiriamo in ballo il design. Materia da stregoni. Vogliamo chiederci quanti tra coloro che parlano di scomposizione sappiano anche perchè la scomposizione dovrebbe aiutare?

E' possibile ricostruire le ragioni di questo metodo ma facendolo si arriva a certe conclusioni in merito tanto all'essenza del problema da risolvere tanto al come, quando, quanto e perchè dividere.

"Facilmente risolvibile" non vuol dir nulla perchè, come diceva un mio professore, <<lo sdudende addendo bodrebbe ghiedere>> cosa distingue un problema "facilmente risolvibile" da uno "difficilmente risolvibile"?

Una curiosità mia: ma non vi fate mai domande?

E, 71104, c'è una bella differenza tra "fare filosofia" ed essere competenti, esattamente la stessa che passa tra un programma che funziona per accidente ed un uno che funziona perchè non potrebbe essere altrimenti.

lovaz
23-11-2006, 18:04
x quanto riguarda la documentazione.. c'è in inglese o in giapponese.. per ora imparerò dal forum scopiazzando qualche codice.. poi mi metterò a leggere i docs giapponesi :D
Scusate se insisto, ma la mia guida (che trovate qui sul forum)
è in italiano, ed è per quanto possibile sintetica in modo da introdurre
velocemente.
Se poi proprio non vi garba potete sempre passare ad altro, no?

ciao
:)

71104
23-11-2006, 18:11
E, 71104, c'è una bella differenza tra "fare filosofia" ed essere competenti, quindi tu non sei competente.

71104
23-11-2006, 18:17
-----------
piccolo OT: oh, com'è che tu non partecipi a Diamonds?
----------- al momento partecipo pochissimo (ho fatto 2 o 3 commit di recente) a causa di vari impegni (università, vita sociale minimale, e ultimo ma non per importanza sport, visto che ne faccio anch'io :D), ma spero di rimettermi seriamente all'opera al più presto, anche perché per quanto mi riguarda il 12 Dicembre DC ha chiuso: quello che c'è c'è e quello che non c'è non c'è. il 12 Dicembre era la data che avevamo inizialmente stabilito come timeline ultimissima e non rimandabile.

ci ho veramente provato, lo giuro, con tutto me stesso...ma è ancora fuori dalla mia portata al momento... posso solo dirti che sicuramente si tratta più che altro di un'impressione causata in buona parte dal fatto che il codice è ancora abbastanza incasinato e per il resto dal fatto che (da quanto ricordo) tu non hai mai fatto training in pair programming con uno dei membri di vecchia data del team: quest'ultima cosa ti aiuterebbe moltissimo.

AngeL)
23-11-2006, 18:51
ho fatto un piccolo ragionamento..

so programmare in pascal (me lo fanno studiare a scuola), che è simile al C
il C è simile al C++
e il C++ è simile al java.. quindi non sarà difficile imparare il java.. credo..
non so come la pensano gli altri ma non credo che questo ragionamento sia esatto..
è come dire "io so contare fino a 5... posso anche contare fino a 1000, tanto i numeri sono simili..."
cio' non è impossibile, pero' è molto difficile, in quando bisogna imparare a leggere l'1 con uno zero, il 2 con uno zero...
se invece sai contare fino a 100 e vuoi contare fino a 1000, puoi farlo, basta sapere che 1 con tre zeri si legge "mille"

giannola
23-11-2006, 19:02
Per l'amor del cielo non tiriamo in ballo il design. Materia da stregoni. Vogliamo chiederci quanti tra coloro che parlano di scomposizione sappiano anche perchè la scomposizione dovrebbe aiutare?

E' possibile ricostruire le ragioni di questo metodo ma facendolo si arriva a certe conclusioni in merito tanto all'essenza del problema da risolvere tanto al come, quando, quanto e perchè dividere.

"Facilmente risolvibile" non vuol dir nulla perchè, come diceva un mio professore, <<lo sdudende addendo bodrebbe ghiedere>> cosa distingue un problema "facilmente risolvibile" da uno "difficilmente risolvibile"?

Una curiosità mia: ma non vi fate mai domande?

E, 71104, c'è una bella differenza tra "fare filosofia" ed essere competenti, esattamente la stessa che passa tra un programma che funziona per accidente ed un uno che funziona perchè non potrebbe essere altrimenti.

quoto, non ne ho capito un caxxo però mi piace :D

scherzo ;)
cmq davvero condivido, studiando il c mi sono reso conto che non puoi stare li a copiaincollare linee di codice come si fa con certi linguaggi internet.
Devi sapere ESATTAMENTE cosa stai facendo, avere compreso fino in fondo il problema, ma soprattutto la soluzione e il modo di metterla in atto.
Alle volte mi sono domandato "ma perchè cavolo il programma non fa quello che gli dico di fare pur se concettualmente mi sembra giusto".
Nella frase che ho appena detto sta la differenza tra usare un linguaggio e padroneggiarlo.

giannola
23-11-2006, 19:05
non so come la pensano gli altri ma non credo che questo ragionamento sia esatto..
è come dire "io so contare fino a 5... posso anche contare fino a 1000, tanto i numeri sono simili..."
cio' non è impossibile, pero' è molto difficile, in quando bisogna imparare a leggere l'1 con uno zero, il 2 con uno zero...
se invece sai contare fino a 100 e vuoi contare fino a 1000, puoi farlo, basta sapere che 1 con tre zeri si legge "mille"

diciamo che se sai programmare (bene) in c/c++ allora puoi tranquillamente imparare tutti gli altri linguaggi.
Parafrasandoti è come dire "se so contare fino a 1000, allora so contare fino a 5". ;)

jappilas
24-11-2006, 00:58
Vogliamo chiederci quanti tra coloro che parlano di scomposizione sappiano anche perchè la scomposizione dovrebbe aiutare?
E' possibile ricostruire le ragioni di questo metodo ma facendolo si arriva a certe conclusioni in merito tanto all'essenza del problema da risolvere tanto al come, quando, quanto e perchè dividere.
"Facilmente risolvibile" non vuol dir nulla perchè, come diceva un mio professore, <<lo sdudende addendo bodrebbe ghiedere>> cosa distingue un problema "facilmente risolvibile" da uno "difficilmente risolvibile"?
guarda che adesso ti tocca scendere nei dettagli :D
Una curiosità mia: ma non vi fate mai domande? non ultimamente, perchè il mio neurone da qualche settimana lavora un po' a rilento :O
per fortuna (e non è ironia) sono su un forum dove altri ne sanno più di me e mi possono illuminare e mostrare le cose da punti di vista diversi dal mio, limitato e un po' "ingessato" su quel poco che mi insegnarono in uni :)

jappilas
24-11-2006, 01:14
X 71104:
tieni conto però che apparentemente, nel thread del punto della situazione, mi è parso di capire che le deadline precdentemente fissate, siano cadute e che (per parafrasare fek) Diamonds uscirà quando sarà pronto (con un certo insieme minimo di funzioni testate e prive di bug, se non altro)
il codice è ancora abbastanza incasinato non tutto :D .... Game ha una struttura semplice :D :O
tu non hai mai fatto training in pair programming con uno dei membri di vecchia data del team: quest'ultima cosa ti aiuterebbe moltissimo.vero, e si potrebbero intanto fare due cose : documentare le struttura generale, e le relazioni tra classi , e trovare qualche area idonea all' aggiunta di funzioni o a modifiche a passi semplici ;)

offtopic, sorry :O

PGI-Bis
24-11-2006, 01:24
Io ho detto di essere matto, non competente.

OCCHIO! Panegirico dal Software Design alle lacrime di studentessa.

Funziona la scomposizione ricorsiva di un problema in sottoproblemi?

Per me è bacata.

L'idea che un problema sia una proposizione a cui mancano dei pezzi per potersi dire completa. La suddivisione opera ottenendo, ricorsivamente come dice jappilas, dei problemi minori, cioè proposizioni a cui, singolarmente, mancano meno informazioni rispetto all'originale e che, complessivamente, siano carenti di un numero di informazioni che non potrà mai essere minore di quante mancavano al super-problema.

Ma alla fine della fiera cosa otteniamo? Al meglio, un numero di problemi minori, a cui manchi una sola X per essere completati, non certo inferiore al numero di X che mancavano al problema originale.

E mo'? Basta il fatto che le informazioni mancanti siano in numero minore per poter rendere il problema "più semplice"? A me pare di no: è complicato quanto ogni altro problema, se ci manca il pezzo per completarlo. D'altronde, se quel pezzo l'avessimo, allora l'avremmo avuto anche per completare l'informazioni originale.

Io non ho la soluzione a quest'empasse.

Mi sconfiffera di più l'idea della manipolazione. Sempre problemi, sempre carenza di informazioni. Sempre procedimento ricorsivo.

Il problema viene non tanto suddiviso quanto manipolato. Viene trasformato, eventualmente tramite suddivisione, in un insieme di problemi diversi che abbiano un numero di informazioni mancanti ovviamente non complessivamente inferiore a quelle che mancavano all'origine.

La trasformazione si ferma quando si arriva non ad un problema minimo ma ad un problema di cui si possiede in memoria una versione identica risolta. Il problema risolto viene estratto dalla memoria e sostituito al problema insoluto nell'insieme di problemi prodotti dalla manipolazione dell'unico originale. A prescindere dal fatto che al problema manchino una, due o cento parti per poter essere trasformato in informazione completa.

Cosa c'entrano le tabelline con:

4*X*X + 5*X -25 = ?

se x vale 2?

Boh. Quanto fa 4*2*2? Boh. Quanto fa 4*2? Toh, alle elementari m'hanno ficcato in testa la soluzione a questo problema. Tabellina del due, quattro per due fa otto. E quanto fa 8*2? Toh, come sopra, fa 16. Quanto fa 16 + 5*X - 25? Boh...e così via.

Ma se, puta caso, avessi affrontato un'equazione del tutto simile due secondi fa, allora non scomporrei un bel nulla e direi al volo: ovvio, 1. Non per magia ma perchè quel problema, in quella forma, corrisponde ad uno schema che possiedo e che è associato alla sua soluzione.

Non riconosciamo il problema originale come risolvibile anche se astrattamente possediamo (o possiamo ricavare) tutte le informazioni che gli mancano semplicemente perchè le soluzioni note o ottenibili non sono riconducibili alla soluzione di quel problema. Cerchiamo non problemi fantomaticamente minori ma problemi diversi, già risolti, il cui insieme corrisponda al problema ignoto.

Cosa che per un essere umano è piuttosto difficile. Rispetto al cervello umano, un calcolatore spara soluzioni esatte ad un ritmo da fantascienza. In compenso un calcolatore non è fisicamente in grado di dare una risposta probabile, darà una risposta certa secondo un grado di probabilità determinato. A dire puttanate, invece, è il cervello che è fenomenale. Basta versare un caffè. Dove vuoi mettere la mano, lì? Ghe pensi mi, un elettron volt al muscolo flicche flocche, due e cinque al fricche fracche, una scarica qui, una là e non ti bruci la dita sulla caffettiera. Vi siete mai scottati con la caffettiera? Eh, chiedete al vostro cervello se era proprio sicuro di quel due e cinque al fricche fracche. Assolutamente importante: il cervello non può dire "non lo so" perchè "non lo so" significa che il leone mi si mangia.

Queste particolarità presunte della macchina cervello spiegherebbero tante cose. Ad esempio perchè si possa sbagliare a risolvere un problema. Che succede ad un macchina che non può dire "non lo so", se non trova il problema risolto? Succede che ne cerca uno non identico risolto ma solo analogo risolto. Ed è anche probabile – specie se ha parecchio da fare – che scambi l'analogo risolto per l'esatto risolto, pur possendendo entrambi. Perchè l'hai fatto, se sai che non si può fare? Be', lì per lì mi sembrava un'ottima idea...

E notate che è subdolo. Veramente non ammette mai di non saper risolvere un problema e fa cose fenomenali pur di non ammetterlo. Può cambiare il problema originale con uno che sa risolvere:

questa soluzione non c'entra niente con il problema, perchè l'hai consegnata? Oddio, non mi ricordo neanche di averla scritta!

Può cambiare il contesto dell'attenzione in uno in cui il problema originale non abbia più significato:

adesso mi faccio una mezz'ora con la playstation e poi torno! (e di solito ci si casca come fessi).

E quando proprio non ha altra via di scampo risponde con la soluzione che ha trovato che, di solito, corrisponde ad uno dei comportamenti ancestrali: aggressività, eccitazione, paura. V'è mai capitato di vedere una ragazza (non so perchè ma di solito conta il genere) che scoppia in lacrime ad un esame? Perchè piange? E' una soluzione ancestrale ad un problema a cui il cervello del soggetto non è in grado di dare una soluzione migliore. E poichè una soluzione la deve dare (altrimenti il leone...), risponde grattando il fondo del barile.

Non sempre, ma ogni tanto si scoprono soluzioni informatiche attraverso problemi che apparentemente di informatico non hanno nulla.

http://www.cogsci.rpi.edu/CSJarchive/contents.html

PGI-Bis
24-11-2006, 01:27
:D 'A jappilas, a quest'ora ci stiamo io te e due lupi mannari in giro! Mi rispondi alla due e quattordici!!?? :D

giannola
24-11-2006, 10:42
Io ho detto di essere matto, non competente.

OCCHIO! Panegirico dal Software Design alle lacrime di studentessa.

Funziona la scomposizione ricorsiva di un problema in sottoproblemi?

Per me è bacata.

L'idea che un problema sia una proposizione a cui mancano dei pezzi per potersi dire completa. La suddivisione opera ottenendo, ricorsivamente come dice jappilas, dei problemi minori, cioè proposizioni a cui, singolarmente, mancano meno informazioni rispetto all'originale e che, complessivamente, siano carenti di un numero di informazioni che non potrà mai essere minore di quante mancavano al super-problema.

Ma alla fine della fiera cosa otteniamo? Al meglio, un numero di problemi minori, a cui manchi una sola X per essere completati, non certo inferiore al numero di X che mancavano al problema originale.

E mo'? Basta il fatto che le informazioni mancanti siano in numero minore per poter rendere il problema "più semplice"? A me pare di no: è complicato quanto ogni altro problema, se ci manca il pezzo per completarlo. D'altronde, se quel pezzo l'avessimo, allora l'avremmo avuto anche per completare l'informazioni originale.

Io non ho la soluzione a quest'empasse.

Mi sconfiffera di più l'idea della manipolazione. Sempre problemi, sempre carenza di informazioni. Sempre procedimento ricorsivo.

Il problema viene non tanto suddiviso quanto manipolato. Viene trasformato, eventualmente tramite suddivisione, in un insieme di problemi diversi che abbiano un numero di informazioni mancanti ovviamente non complessivamente inferiore a quelle che mancavano all'origine.

La trasformazione si ferma quando si arriva non ad un problema minimo ma ad un problema di cui si possiede in memoria una versione identica risolta. Il problema risolto viene estratto dalla memoria e sostituito al problema insoluto nell'insieme di problemi prodotti dalla manipolazione dell'unico originale. A prescindere dal fatto che al problema manchino una, due o cento parti per poter essere trasformato in informazione completa.

Cosa c'entrano le tabelline con:

4*X*X + 5*X -25 = ?

se x vale 2?

Boh. Quanto fa 4*2*2? Boh. Quanto fa 4*2? Toh, alle elementari m'hanno ficcato in testa la soluzione a questo problema. Tabellina del due, quattro per due fa otto. E quanto fa 8*2? Toh, come sopra, fa 16. Quanto fa 16 + 5*X - 25? Boh...e così via.

Ma se, puta caso, avessi affrontato un'equazione del tutto simile due secondi fa, allora non scomporrei un bel nulla e direi al volo: ovvio, 1. Non per magia ma perchè quel problema, in quella forma, corrisponde ad uno schema che possiedo e che è associato alla sua soluzione.

Non riconosciamo il problema originale come risolvibile anche se astrattamente possediamo (o possiamo ricavare) tutte le informazioni che gli mancano semplicemente perchè le soluzioni note o ottenibili non sono riconducibili alla soluzione di quel problema. Cerchiamo non problemi fantomaticamente minori ma problemi diversi, già risolti, il cui insieme corrisponda al problema ignoto.

Cosa che per un essere umano è piuttosto difficile. Rispetto al cervello umano, un calcolatore spara soluzioni esatte ad un ritmo da fantascienza. In compenso un calcolatore non è fisicamente in grado di dare una risposta probabile, darà una risposta certa secondo un grado di probabilità determinato. A dire puttanate, invece, è il cervello che è fenomenale. Basta versare un caffè. Dove vuoi mettere la mano, lì? Ghe pensi mi, un elettron volt al muscolo flicche flocche, due e cinque al fricche fracche, una scarica qui, una là e non ti bruci la dita sulla caffettiera. Vi siete mai scottati con la caffettiera? Eh, chiedete al vostro cervello se era proprio sicuro di quel due e cinque al fricche fracche. Assolutamente importante: il cervello non può dire "non lo so" perchè "non lo so" significa che il leone mi si mangia.

Queste particolarità presunte della macchina cervello spiegherebbero tante cose. Ad esempio perchè si possa sbagliare a risolvere un problema. Che succede ad un macchina che non può dire "non lo so", se non trova il problema risolto? Succede che ne cerca uno non identico risolto ma solo analogo risolto. Ed è anche probabile – specie se ha parecchio da fare – che scambi l'analogo risolto per l'esatto risolto, pur possendendo entrambi. Perchè l'hai fatto, se sai che non si può fare? Be', lì per lì mi sembrava un'ottima idea...

E notate che è subdolo. Veramente non ammette mai di non saper risolvere un problema e fa cose fenomenali pur di non ammetterlo. Può cambiare il problema originale con uno che sa risolvere:

questa soluzione non c'entra niente con il problema, perchè l'hai consegnata? Oddio, non mi ricordo neanche di averla scritta!

Può cambiare il contesto dell'attenzione in uno in cui il problema originale non abbia più significato:

adesso mi faccio una mezz'ora con la playstation e poi torno! (e di solito ci si casca come fessi).

E quando proprio non ha altra via di scampo risponde con la soluzione che ha trovato che, di solito, corrisponde ad uno dei comportamenti ancestrali: aggressività, eccitazione, paura. V'è mai capitato di vedere una ragazza (non so perchè ma di solito conta il genere) che scoppia in lacrime ad un esame? Perchè piange? E' una soluzione ancestrale ad un problema a cui il cervello del soggetto non è in grado di dare una soluzione migliore. E poichè una soluzione la deve dare (altrimenti il leone...), risponde grattando il fondo del barile.

Non sempre, ma ogni tanto si scoprono soluzioni informatiche attraverso problemi che apparentemente di informatico non hanno nulla.

http://www.cogsci.rpi.edu/CSJarchive/contents.html


sei teribbole! :D

jappilas
24-11-2006, 12:15
:D 'A jappilas, a quest'ora ci stiamo io te e due lupi mannari in giro! Mi rispondi alla due e quattordici!!?? :D
da qualche parte dovrebbe esserci un mio vecchio post lasciato a un' ora ancora più insolita... tipo le quattro del mattino... :p

ps: sto pensando a cosa rispondere alla digressione di cui sopra... sono indeciso se trattare la differenza tra una macchina dotata di memoria ad accesso casuale e unità di calcolo in logica binaria, e il cervello umano combinazione di una cache FIFO correlativa e di una unità di calcolo inferenziale basata su logica fuzzy, e il modo in cui intrinsecamente affrontano i problemi... ma non so da dove iniziare... :stordita::D

71104
24-11-2006, 12:45
Io ho detto di essere matto, non competente. e io dico che sei il solito illuminante esempio di autocritica :asd: