Vorrei che iniziasse bene... e contemporaneamente � venuta voglia anche a me
di re-iniziare (io col tempo che ho).
Vi chiedo dunque un po' di consigli, se vorrete (� Natale!!!) darmeli:
- libri indispensabili per 1) iniziare (se serve qualcosa che non sia
precisamente "java" ma sia essenziale per capire, ditemi anche quello!) 2)
proseguire bene e "irrobustirsi" quando si siano terminati i primi "morbidi"
sui fondamentali
- quali siano i pacchetti essenziali da scaricare per iniziare subito a
lavorare su quel che si legge
- ambiente di sviluppo, sia per "essere un po' pi� scomodi ma imparare" sia
per chi ha pi� bisogno di lavorare velocemente.
- indirizzi indispensabili su web, punti di riferimento per newbie e poi
invece "quick reference" che voi stessi utilizzate sempre se avete bisogno.
Grazie e auguri a tutti ;-)
Salve,
sono la persona meno indicata per dare consigli visto che sono un
principiante in Java.Considerato però che provengo da altri linguaggi
ho trovato l'ambiente di sviluppo NetBeans veramente ottimo. Completo,
in italiano, gratuito, personalizzabile e ben supportato.
Buon inizio
Biagio
Potresti consigliargli di frequentare (anche solo virtualmente) qualche
JUG. In Italia ce ne sono molti, quindi probabilmente anche vicino al
luogo in cui abitate:
Ciao
Lucio
--
Lucio Benfante
JUG Padova http://www.parancoe.org ...have a look at it!
www.jugpadova.it http://www.jugevents.org
Per me sarebbe una buona idea adottare un buon libro Java, l'unico ed
ultimo libro che si possa comprare sull'argomento. Perchè secondo me è
necessario avere comunque un riferimento immediato.
Bisogna comunque prestare attenzione perchè molti testi Java
pretendono che il lettore abbia già una (anche minima) infarinatura.
Quindi un testo completo che parta dai tipi di dati e arrivi fino alla
presentazione del J2EE è una buona scelta.
In rete si trovano molte informazioni sull'argomento Java, ma
seguendole (secondo me) c'è il rischio di prendere strade sbagliate e
che portano solo ulteriori confusioni sull'argomento.
Sono uno sviluppatore e lavoro con dei "Senior Developer" che non
sanno come creare una eccezione. (solitamente 4°/5° capitolo di un
testo java). Con questo voglio dire che un percorso eseguito
correttamente sarà utile per non trovarsi di fronte a problemi
concettuali in un futuro.
Spero di esserti stato di aiuto..
Auguri
Luigi
p.s. Il titolo del testo che ho adottato te lo direi se solo fossi a
casa mia vicino alla libreria... Ma "ahimè" sono in vacanza, lontano
da casa... :)
Permetti due domande:
- a scuola con cosa programmano (linguaggio, IDE, eventuali librerie,
sistema operativo, etc.)?
- testi solo in italiano o possono andare bene anche in inglese?
Ciao,
Pablo
Personalmente preferisco i testi in inglese, poiche' a volte (spesso)
le traduzioni possono lasciare a desiderare.
Oliver
grazie!
Pablo wrote:
> orpy ha scritto:
>> vorrei dare consigli ad un ragazzo (il mio figlioccio) che sta
>> iniziando a programmare ad una scuola media superiore.
>
> Permetti due domande:
> - a scuola con cosa programmano (linguaggio, IDE, eventuali librerie,
> sistema operativo, etc.)?
so solo che usano "Jcreator" immagino versione free
> - testi solo in italiano o possono andare bene anche in inglese?
per me potrebbero andare bene anche in inglese (e quindi dimmi pure) ... ma
per lui immagino di no... dato che anche questa � una materia che deve
imparare... potrebbe essere un buono spunto per impararle tutte e due... ma
lui � alle superiori e tutto � "una palla" ... ma io cerco di fare in modo
che si accorga un domani che "quanto � stato utile imparare questo a scuola
invece che dopo!!!" :-)
Acrive wrote:
>[...]
> Per me sarebbe una buona idea adottare un buon libro Java, l'unico ed
> ultimo libro che si possa comprare sull'argomento.
ho letto il tutto e ho visto che sei lontano dal titolo: attendo dunque il
tuo ritorno vicino alla libreria... e il titolo!! :-)
[...]
> Quindi un testo completo che parta dai tipi di dati e arrivi fino alla
> presentazione del J2EE � una buona scelta.
[...]
[...]
> p.s. Il titolo del testo che ho adottato te lo direi se solo fossi a
> casa mia vicino alla libreria... Ma "ahim�" sono in vacanza, lontano
> da casa... :)
allora aspetto che torni!!! :-)
Lucio Benfante wrote:
> orpy ha scritto:
>> - indirizzi indispensabili su web, punti di riferimento per newbie e
>> poi invece "quick reference" che voi stessi utilizzate sempre se
>> avete bisogno.
>
> Potresti consigliargli di frequentare (anche solo virtualmente)
> qualche JUG. In Italia ce ne sono molti, quindi probabilmente anche
> vicino al luogo in cui abitate:
>
> http://maps.google.com/maps?f=q&hl=en&geocode=&q=http:%2F%2Fsv-web-jug.dev.java.net%2Fkml%2Fjug-leaders.kml&ie=UTF8&om=1&ll=41.787039,11.481644&spn=13.671528,33.815918&z=6
>
> Ciao
> Lucio
grazie anche a te Lucio!
Biagio wrote:
[...]
> Salve,
>
> sono la persona meno indicata per dare consigli visto che sono un
> principiante in Java.Considerato per� che provengo da altri linguaggi
> ho trovato l'ambiente di sviluppo NetBeans veramente ottimo. Completo,
> in italiano, gratuito, personalizzabile e ben supportato.
grazie anche a te Biagio!
Ovvio che tenderemo ad ascoltare maggiormente i consigli di un veterano...
ma intanto io raccolgo! I veterani potrebbero anche non rispondere mai :-)
E ringrazio molto, tutti.
Ti consiglio molto caldamente bluej ( www.bluej.org )come IDE specifica
per la didattica di Java e OO programming.
Non ha supporto per la costruzione di GUI ma ha dei tools che lo rendono
unico se si vuole veramente capire la programmazione ad oggetti (giusto
per citarne uno la possibilita' di istanziare quasiasi oggetto e
controllarne lo stato).
Inoltre, se non ci sono problemi con l' inglese c'e' anche un testo
molto ben fatto (trovi il link sulla home page).
Giorgio
Conosco e capisco bene la difficolt� di suscitare interesse negli
adolescenti. Un augurio! :-)
IMHO ad oggi non vale la pena comprare testi cartacei, vista la qualit�
media di quelli italiani, la prolissit� (giustificata solo dalla
possibilit� di aumentare il costo) e, appunto, il prezzo.
Al limite un "pocket" da una decina di euro tanto per avere un
riferimento a portata.
- How to Think Like a Computer Scientist (Java version, en):
www.greenteapress.com/thinkapjava/thinkapjava.pdf
Esiste anche la versione italiana ma al momento non trovo il link. Se
interessa ho quello della versione Python (un'occhiata la darei):
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm
- Thinking in Java, l'ultima versione (4a) � a pagamento, le precedenti
sono reperibili qui:
http://www.mindview.net/Books/TIJ/
Della versione 2 dovrebbe esserci anche una traduzione in italiano.
Altre risorse qualitativamente meno valide ma utili (e probabilmente pi�
semplici e comprensibili) come punti di partenza e tutte in italiano:
Wikibooks ha un manuale ancora in fase di preparazione ma adatto a un
ragazzo che stia iniziando ora:
http://it.wikibooks.org/wiki/Java/
Sui siti javaportal.it e html.it (ignorando la troppa pubblicit�) si
trovano delle guide abbastanza dettagliate e curate. Non ho i link a
portata (e la rete, la loro presumo, oggi fa le bizze).
Premettendo che non sono interessato a flame: personalmente quando
faccio corsi di programmazione a novizi completi parto con Python.
Meno prolisso, supporta pi� paradigmi di programmazione (procedurale e
in parte funzionale), con meno vincoli nei nomi (non serve un file per
classe o nomi directory uguali a nomi package) e dei comandi da
prompt/shell pi� facili da imparare (es. compilazione � automatica,
niente path/classpath).
Visto che il primo impatto, il primo "gradino" � quello pi� difficile da
superare in questo modo lo "aggiro". Quando si inizia la maggior parte
degli errori e delle difficolt� sono in cose assolutamente banali,
solitamente errori di sintassi o di case sensitive e difficolt� nel
leggere in trace degli errori; con Python � pi� lineare il processo di
scrittura -> esecuzione -> debug del codice.
Poi quando iniziano a prendere mano (di solito bastano pochi giorni)
passo al linguaggio "ufficiale" del corso (di solito Java, ma non solo).
Non uso IDE ma "semplici" editor e riga di comando: mi interessa (e
interessa anche ai committenti) formare programmatori Java, non Eclipse
o Netbeans.
Buono studio,
Pablo
Giorgio Pastore wrote:
> orpy wrote:
>> Salve,
>> vorrei dare consigli ad un ragazzo (il mio figlioccio) che sta
>> iniziando a programmare ad una scuola media superiore.
>
> Ti consiglio molto caldamente bluej ( www.bluej.org )come IDE
> specifica per la didattica di Java e OO programming.
intreressante, grazie anche a te Giorgio!
> Non ha supporto per la costruzione di GUI ma ha dei tools che lo
> rendono unico se si vuole veramente capire la programmazione ad
> oggetti (giusto per citarne uno la possibilita' di istanziare
> quasiasi oggetto e controllarne lo stato).
immagino di dover provare per sapere quali siano questi tool specifici...
per� lo scopo mi sembra in effetti utile!
> Inoltre, se non ci sono problemi con l' inglese c'e' anche un testo
> molto ben fatto (trovi il link sulla home page).
grazie!
Pablo wrote:
> orpy ha scritto:
>> per me potrebbero andare bene anche in inglese (e quindi dimmi pure)
>> ... ma per lui immagino di no... dato che anche questa � una materia
>> che deve imparare... potrebbe essere un buono spunto per impararle
>> tutte e due... ma lui � alle superiori e tutto � "una palla" ... ma
>> io cerco di fare in modo che si accorga un domani che "quanto �
>> stato utile imparare questo a scuola invece che dopo!!!" :-)
>
> Conosco e capisco bene la difficolt� di suscitare interesse negli
> adolescenti. Un augurio! :-)
grazie ;-)
> IMHO ad oggi non vale la pena comprare testi cartacei, vista la
> qualit� media di quelli italiani, la prolissit� (giustificata solo
> dalla possibilit� di aumentare il costo) e, appunto, il prezzo.
ah!
ma non c'� - secondo te - qualche "testo sacro" che tutti considerano la
base indiscussa ecc ecc ecc?
> Al limite un "pocket" da una decina di euro tanto per avere un
> riferimento a portata.
credo che se sei davvero interessato, se sei al punto della quick reference
allora non hai pi� problemi a "partire". Mentre immagino che il problema pi�
grosso ci sia all'inizio e che sia quindi necessario un buon testo per
quella fase, che ti dia sicurezza, che ti faccia fare le prove giuste finch�
poi ti fai delle domande che hanno pi� la forma di "dove posso trovare
questa cosa che sicuramente deve esistere?"
> - How to Think Like a Computer Scientist (Java version, en):
> www.greenteapress.com/thinkapjava/thinkapjava.pdf
> Esiste anche la versione italiana ma al momento non trovo il link. Se
> interessa ho quello della versione Python (un'occhiata la darei):
> http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm
> - Thinking in Java, l'ultima versione (4a) � a pagamento, le
> precedenti sono reperibili qui:
> http://www.mindview.net/Books/TIJ/
> Della versione 2 dovrebbe esserci anche una traduzione in italiano.
grazie!!
> Altre risorse qualitativamente meno valide ma utili (e probabilmente
> pi� semplici e comprensibili) come punti di partenza e tutte in
> italiano: Wikibooks ha un manuale ancora in fase di preparazione ma
> adatto a un ragazzo che stia iniziando ora:
> http://it.wikibooks.org/wiki/Java/
adatto anche se � ancora in preparazione? comunque eccellente eccellente,
non mi aspettavo granch� da wikibooks e invece... mi devo ricredere e ne
sono felice!
> Sui siti javaportal.it e html.it (ignorando la troppa pubblicit�)
opera browser, nessun problema ;-)
>si
> trovano delle guide abbastanza dettagliate e curate. Non ho i link a
> portata (e la rete, la loro presumo, oggi fa le bizze).
sono guide buone per partire?
partire nel senso di: "ti serve questo, si installa cos� e si configura cos�
e si fa cos� per questo e questo motivo" ?
beginner's guide ;-))
> Premettendo che non sono interessato a flame: personalmente quando
> faccio corsi di programmazione a novizi completi parto con Python.
a me personalmente � gi� balzato agli occhi diverse volte ... e quindi mi
interessa :-)
> Meno prolisso, supporta pi� paradigmi di programmazione (procedurale e
> in parte funzionale), con meno vincoli nei nomi (non serve un file per
> classe o nomi directory uguali a nomi package) e dei comandi da
> prompt/shell pi� facili da imparare (es. compilazione � automatica,
> niente path/classpath).
ah, invece credo di aver visto problemi proprio in questo, quindi da
imparare ;-)
per� � interessante questa tua considerazione.
> Visto che il primo impatto, il primo "gradino" � quello pi� difficile
> da superare in questo modo lo "aggiro". Quando si inizia la maggior
> parte degli errori e delle difficolt� sono in cose assolutamente
> banali, solitamente errori di sintassi o di case sensitive e
> difficolt� nel leggere in trace degli errori;
tuttsa o quasi roba che non conosco nemmeno io... e che quindi mi fa pensare
: meglio partire *anche* con questo e scontrarsi e risolvere ... e poi
passare al resto...
>con Python � pi�
> lineare il processo di scrittura -> esecuzione -> debug del codice.
mi piace e ne terr� conto per me personalmente.
per� per il giUovine serve il java... quello fa a scuola :-)
> Poi quando iniziano a prendere mano (di solito bastano pochi giorni)
> passo al linguaggio "ufficiale" del corso (di solito Java, ma non
> solo). Non uso IDE ma "semplici" editor e riga di comando: mi
> interessa (e interessa anche ai committenti) formare programmatori
> Java, non Eclipse o Netbeans.
mi interessa *molto* anche questo genere di approccio.
ma allora ora sarebbe interessante avere anche da te l'elenco che chiedevo
ad inizio thread! :)
> Buono studio,
> Pablo
grazie molte professore! ;-)))
La documentazione ufficiale e di riferimento � innanzitutto quella sul
sito della Sun:
http://java.sun.com/docs/books/tutorial/
http://java.sun.com/reference/index.jsp
http://java.sun.com/javase/6/docs/api/
di cui esistono versioni cartacee, pi� o meno rivisitate.
> [...] testo per quella fase, che ti dia sicurezza, che ti faccia fare le
> prove giuste finch� poi ti fai delle domande che hanno pi� la forma di
> "dove posso trovare questa cosa che sicuramente deve esistere?"
Un testo unico, che fornisca questa sicurezza, IHMO non pu� esistere: le
casistiche sono tante e tali che dovrebbe essere un'enciclopedia ;)
Per� riportando il discorso a casi "umani" (quindi trattando senza
approfondimenti esagerati linguaggio, package e classi comunemente pi�
usate) credo che Thinking in Java sia uno dei migliori.
Senza dimenticare che vista la numerosissima comunit� di javisti, in
rete si trova praticamente tutto. Cosa che per un ragazzo che impara
potrebbe essere controproducente: al minimo problema si cerca in google,
si trova la soluzione e la si applica acriticamente e senza
approfondirla/capirla.
> sono guide buone per partire?
> partire nel senso di: "ti serve questo, si installa cos� e si configura
> cos� e si fa cos� per questo e questo motivo" ?
> beginner's guide ;-))
Su javaportal ci sono soprattutto guide tematiche/specialistiche
specifiche per argomento, mentre su html.it trovi una guida introduttiva
abbastanza dettagliata e mirata per i tuoi scopi (il sito continua a
rispondere a singhiozzo: la trovi con una semplice ricerca).
> mi interessa *molto* anche questo genere di approccio.
>
> ma allora ora sarebbe interessante avere anche da te l'elenco che
> chiedevo ad inizio thread! :)
Quindi:
> - libri indispensabili per 1) iniziare
Direi di partire con un tutorial semplice che descriva in termini
generici la struttura del linguaggio e approfondisca l'uso dei comandi
di base (java e javac).
L'ideale sarebbe la beginning guide di Sun ma, se l'inglese � scomodo,
punterei su quella di html.it
> 2) proseguire bene e "irrobustirsi" quando si siano terminati i primi
> "morbidi" sui fondamentali
Le basi fondamentali sono liste e dizionari (il Java Collections
Framework), l'IO e in particolare gli stream (usati anche in molti altri
ambiti), le comunicazioni di rete (socket client e server).
Molto utili sono poi JDBC e infine (utilit� "relativa": per
programmazione web o di applicazioni console non serve) la GUI (awt e
Swing).
In concreto si traduce nei package:
java.util, java.io (e java.nio), java.net, java.sql, java.awt (e
sotto-package) e javax.swing (e sotto-package).
> - quali siano i pacchetti essenziali da scaricare per iniziare subito
> a lavorare su quel che si legge
I package che servono per iniziare sono gi� inclusi nella standard
library che si scarica e installa con il JDK.
> - ambiente di sviluppo, sia per "essere un po' pi� scomodi ma
> imparare" sia per chi ha pi� bisogno di lavorare velocemente.
Sia Eclipse che Netbeans (non cito tutti gli altri perch� non li vedo da
anni) hanno pregi e difetti, credo sia prematuro a questo punto
sceglierne uno "definitivamente".
IMHO l'ideale �, come dicevo, iniziare con un buon editor testuale (con
funzioni di supporto alla programmazione) e la riga di comando.
> - indirizzi indispensabili su web, punti di riferimento per newbie e
> poi invece "quick reference" che voi stessi utilizzate sempre se avete
> bisogno.
Quelli che ritengo indispensabili sono quelli della Sun citati nella
prima risposta, in particolare (quando si � un po' pi� smaliziati) le
API (Javadoc).
Installato il JDK si trova anche un file (src.zip) con tutti i sorgenti
delle classi presenti nelle API. Io lo uso veramente molto, ma temo di
essere un caso particolare...
> grazie molte professore! ;-)))
Sfotti poco! ;-)
Ciao,
Pablo
E' indubbiamente un buon libro, ma secondo me non � adatto a chi inizia:
manca di un approccio didattico, e scende troppo nei dettagli subito,
non lasciando a chi lo legge il tempo di familiarizzare con gli
argomenti, ed applicarli in pratica. Ad esempio, se non ricordo male
(sono passati ormai un po' di anni), si arriva a compilare il primo
programma dopo pi� di un centinaio di pagine. Un principiante a quel
punto si sar� gi� stufato, e sicuramente avr� capito poco nulla di
quelle cento pagine di elucubrazioni sulla programmazione object-oriented.
Personalmente io di solito consiglio "Java 2 - I fondamenti" di
Horstmann & Cornell, disponibile anche in italiano (ma sono quasi sempre
meglio le edizioni nella lingua originale), e ne esiste anche una
versione pocket che costa circa 15 Euro (ma � decisamente "condensato" e
quindi un po' pi� faticoso da leggere della versione "grande").
> Senza dimenticare che vista la numerosissima comunit� di javisti, in
> rete si trova praticamente tutto. Cosa che per un ragazzo che impara
> potrebbe essere controproducente: al minimo problema si cerca in google,
> si trova la soluzione e la si applica acriticamente e senza
> approfondirla/capirla.
A mio avviso infatti, superato lo scoglio iniziale di dover imparare a
programmare (e in questo senso quasi sempre un linguaggio vale l'altro),
se l'obiettivo � diventare ottimi programmatori Java, sarebbe meglio
studiare in maniera approfondita il linguaggio stesso, cosa che permette
poi di affrontare con tranquillit� qualunque altro problema, magari
affidandosi semplicemente alla "googlata".
A questo scopo, il libro migliore � sicuramente "The Java programming
Language" di Arnold, Gosling & Holmes (non per niente uno degli autori �
Gosling).
Ma soprattutto...programmare � come imparare a lanciarsi con il
paracadute: non basta leggere un libro. Occorre soprattutto tanta
pratica...altrimenti...splash! :) (ok, forse programmare non � cos�
pericoloso)
Il modo migliore per fare pratica � partecipare a progetti open-source,
sia iniziandone di propri da zero, ma soprattutto cercando di
partecipare a progetti esistenti, esaminando quindi il modo di lavorare
di altri, e iniziando a fare i propri esperimenti su codice reale.
<modalit� auto-promozione>
Questi sono alcuni di quelli che gestisco io:
http://code.google.com/p/minimark/
http://code.google.com/p/scarabocio/
http://code.google.com/p/jslideshare/
http://code.google.com/p/lambico/
http://code.google.com/p/parancoe/
http://code.google.com/p/jugevents/
Se qualcuno � interessato a contribuire...mi faccia un fischio, o scriva
nelle mailing-list del progetto.
</modalit� auto-promozione>
Su questo concordo, infatti ho consigliato guide pi� semplici per
iniziare. Qui si parlava di un testo "il pi� completo possibile".
In effetti, nel discorso, abbiamo un po' vagato... :)
> Personalmente io di solito consiglio "Java 2 - I fondamenti" di
> Horstmann & Cornell, disponibile anche in italiano
Hai ragione! L'avevo scordato anche se praticamente � stato il mio primo
testo "serio" su Java (in italiano) ;)
Non � per niente male e adatto a principianti: all'epoca ricordo che
l'avevo letto e "provato" in un paio di settimane (anche se con Java gi�
trafficavo da un paio d'anni).
Purtroppo la mia copia � del 1999, non conosco la qualit� di edizioni
pi� recenti.
> Questi sono alcuni di quelli che gestisco io:
>
> http://code.google.com/p/minimark/
> http://code.google.com/p/scarabocio/
> http://code.google.com/p/jslideshare/
> http://code.google.com/p/lambico/
> http://code.google.com/p/parancoe/
> http://code.google.com/p/jugevents/
>
> Se qualcuno � interessato a contribuire...mi faccia un fischio, o scriva
> nelle mailing-list del progetto.
Quoto la tua auto-promozione ;)
Ciao,
Pablo
Io credo di aver usato una seconda edizione inglese, e ho acquistato
come aggiornamento la sesta pocket in italiano (del 2004). Sempre ottima.
Inoltre Horstman, � uno che si aggiorna costantemente, sia dal punto di
vista tecnico, che didattico.
alle superiori studiavo informatica e, almeno allora, il programma era
ottimo, dava le basi per imparare e poi sapersi muovere nel mondo IT,
in autonomia. Forse un consiglio che puoi dargli è di seguire con
interesse le lezioni, perchè il tempo che usa oggi, servirà alla sua
maturità di domani.
Un concetto che si insinua nelle pieghe della mente a 15 anni, resta
indelebile e crea una forma mentis, che gli consentirà anche in futuro
di cogliere al volo il problema e sviscerarlo..
> La mia esperienza di programmazione è stantia, obsoleta e da autodidatta.
> Riesco a dargli consigli generici che si rivelano essere normalmente esatti
> e che lo indirizzano correttamente, ma le necessità del mio lavoro mi
> portano più vicino allo scripting che alla programmazione. Non voglio far
> danno.
I linguaggi di scripting hanno solitamente (ruby, javascript, groovy,
etc) alcuni concetti molto interessanti, come le closure, la funzione
lambda, che java non ha e che difficilmente introdurrà. C'è il rischio
(?) che poi se ne innamori e non li abbandoni più!
Con la versione corrente di java, c'è il supporto a tali linguaggi:
programmi in ruby, python, groovy e la tua applicazione gira nella
JVM.
> Vorrei che iniziasse bene... e contemporaneamente è venuta voglia anche a me
> di re-iniziare (io col tempo che ho).
Java stesso è cambiato talmente tanto da quand'è nato, che forse il
miglior testo per approcciarsi ad esso è qualche libro di design
pattern, che spieghi concetti di Aspect Oriented Programming:
- http://en.wikipedia.org/wiki/Aspect-oriented_programming.
[CUT]
> - libri indispensabili per 1) iniziare (se serve qualcosa che non sia
> precisamente "java" ma sia essenziale per capire, ditemi anche quello!)
Il primo libro java che ho usato è stato thinking in java, non ricordo
l'edizione, ma mi è piaciuto di più: "Dai fondamenti agli oggetti.
Corso di programmazione Java", più semplice del primo, perchè parte
dai concetti di Object Oriented. Non so se tratta tematiche di AOP a
dire il vero. Tieni conto che comunque ha 15 anni!
> 2) proseguire bene e "irrobustirsi" quando si siano terminati i primi "morbidi"
> sui fondamentali
> - quali siano i pacchetti essenziali da scaricare per iniziare subito a
> lavorare su quel che si legge
> - ambiente di sviluppo, sia per "essere un po' più scomodi ma imparare" sia
> per chi ha più bisogno di lavorare velocemente.
JDK di Sun:
- http://java.sun.com/javase/downloads/index.jsp
Netbeans IDE, più semplice e completo di eclipse, anche se meno
diffuso:
- http://netbeans.org/
> - indirizzi indispensabili su web, punti di riferimento per newbie e poi
> invece "quick reference" che voi stessi utilizzate sempre se avete bisogno.
Google e wikipedia ;)
- http://www.google.it/
- http://wikipedia.org/
Un'ultima cosa, quel che ci riesce meglio è, solitamente, quel che ci
piace di più! Se gli piace la programmazione, non è detto che gli
piaccia tutta!
Alcuni amano lo sviluppo di User Interfaces, quindi javascript e
librerie (jquery), css ed HTML. Altri odiano qualsiasi cosa abbia
grafica, allora java è perfetto. Altri ancora preferiscono vedere le
cose nell'insieme ed essere autonomi ed usano .net, che con il suo IDE
maschera molta complessità. Chi ama i prodotti mobile, usa objective C
e sviluppa su iPhone (fico) o android.
*La vera cosa che conta è che si diverta!*
Spero di esser stato di aiuto.
Buon anno, Davide.
Davide wrote:
> Ciao
>> vorrei dare consigli ad un ragazzo (il mio figlioccio) che sta
>> iniziando a programmare ad una scuola media superiore.
>
> alle superiori studiavo informatica e, almeno allora, il programma era
> ottimo, dava le basi per imparare e poi sapersi muovere nel mondo IT,
> in autonomia. Forse un consiglio che puoi dargli � di seguire con
> interesse le lezioni, perch� il tempo che usa oggi, servir� alla sua
> maturit� di domani.
15 anni fa circa, questo non era vero.
sembrerebbe, in effetti, che da qualche anno sia come dici, almeno nella
scuola che vedo frequentare da questo ragazzo.
non so se sia una ottima preparazione, ma di sicuro non era come quando
andavo allo scientifico io... ne sapevamo molto di pi� noi dei prof, che
per� si attaccavano a terminologie che forse avevano sentito in alcuni
corsi, senza comprendere che noi le conoscevamo meglio, pi� estesamente ...
perch� in quel momento se sapevi qualcosa, significava che ci avevi messo
mano anche 10 anni prima, quasi mai "solo per giocare".
riguardo al consiglio, questo � sicuro... ma credo che se dato
esplicitamente cadrebbe un po' nel vuoto o sarebbe addirittura
controproducente ;-)
per ora mi *sembra* che la strada migliore e pi� "affascinante" per lui
(quella che non lo fa smettere dopo 10 secondi per andare a giocare con la
playstation o wowarcraft) sia quella del "guru" ... finch� ci crede (che io
sappia tante cose) meglio cos� ... ;-)) Preferisco che abbia l'incentivo a
"fare a gara a chi ne sa di pi�" ... sembra che funzioni.
> Un concetto che si insinua nelle pieghe della mente a 15 anni, resta
> indelebile e crea una forma mentis, che gli consentir� anche in futuro
> di cogliere al volo il problema e sviscerarlo..
sono d'accordo e mi pare che i concetti fondamentali ci siano, sperando bene
:-)
[...]
>> Vorrei che iniziasse bene... e contemporaneamente � venuta voglia
>> anche a me di re-iniziare (io col tempo che ho).
>
> Java stesso � cambiato talmente tanto da quand'� nato, che forse il
> miglior testo per approcciarsi ad esso � qualche libro di design
> pattern, che spieghi concetti di Aspect Oriented Programming:
> - http://en.wikipedia.org/wiki/Aspect-oriented_programming.
hai qualche suggerimento riguardo a libri su questo?
sia in italiano che in inglese.
se c'� un libro "perfetto", non ha importanza se � in italiano o in inglese,
naturalmente.
[...]
> Il primo libro java che ho usato � stato thinking in java, non ricordo
> l'edizione, ma mi � piaciuto di pi�: "Dai fondamenti agli oggetti.
> Corso di programmazione Java", pi� semplice del primo, perch� parte
> dai concetti di Object Oriented. Non so se tratta tematiche di AOP a
> dire il vero. Tieni conto che comunque ha 15 anni!
Dimmi, che cosa significa tenerne conto?
quale parte � cambiata tantissimo?
[...]
> JDK di Sun:
> - http://java.sun.com/javase/downloads/index.jsp
>
> Netbeans IDE, pi� semplice e completo di eclipse, anche se meno
> diffuso:
> - http://netbeans.org/
>
[...]
> Un'ultima cosa, quel che ci riesce meglio �, solitamente, quel che ci
> piace di pi�! Se gli piace la programmazione, non � detto che gli
> piaccia tutta!
>
> Alcuni amano lo sviluppo di User Interfaces, quindi javascript e
> librerie (jquery), css ed HTML. Altri odiano qualsiasi cosa abbia
> grafica, allora java � perfetto.
mh :)
eccomi! :)
anche se rischia di diventare un vizio e un limite (per me)
>Altri ancora preferiscono vedere le
> cose nell'insieme ed essere autonomi ed usano .net, che con il suo IDE
> maschera molta complessit�. Chi ama i prodotti mobile, usa objective C
> e sviluppa su iPhone (fico) o android.
>
> *La vera cosa che conta � che si diverta!*
in questo momento devo darti proprio ragione! :))
> Spero di esser stato di aiuto.
>
> Buon anno, Davide.
GRAZIE molte anche a te Davide!!! e ancora auguri (per la Befana, oggi!!!)
ciao! :-)
Pablo wrote:
> orpy ha scritto:
>> ma non c'� - secondo te - qualche "testo sacro" che tutti
>> considerano la base indiscussa ecc ecc ecc?
>
> La documentazione ufficiale e di riferimento � innanzitutto quella sul
> sito della Sun:
[...]
> di cui esistono versioni cartacee, pi� o meno rivisitate.
>
[...]
>
> Un testo unico, che fornisca questa sicurezza, IHMO non pu� esistere:
> le casistiche sono tante e tali che dovrebbe essere un'enciclopedia ;)
la javapedia! :-)
> Per� riportando il discorso a casi "umani" (quindi trattando senza
> approfondimenti esagerati linguaggio, package e classi comunemente pi�
> usate) credo che Thinking in Java sia uno dei migliori.
bene!
> Senza dimenticare che vista la numerosissima comunit� di javisti, in
> rete si trova praticamente tutto. Cosa che per un ragazzo che impara
> potrebbe essere controproducente: al minimo problema si cerca in
> google, si trova la soluzione e la si applica acriticamente e senza
> approfondirla/capirla.
ah, questo lo vorrei evitare all'inizio (e quindi chiedo conferma, per
evitarlo, qual'� la strada migliore da seguire?) ma in seguito pu� essere
utile e quindi : quali sono le comunit� che a *tuo* avviso sono le pi� utili
(e non ostili) ?
[...]
> Su javaportal ci sono soprattutto guide tematiche/specialistiche
> specifiche per argomento, mentre su html.it trovi una guida
> introduttiva abbastanza dettagliata e mirata per i tuoi scopi [...]
grazie anche per questa info
[...]
> Direi di partire con un tutorial semplice che descriva in termini
> generici la struttura del linguaggio e approfondisca l'uso dei comandi
> di base (java e javac).
> L'ideale sarebbe la beginning guide di Sun ma, se l'inglese � scomodo,
> punterei su quella di html.it
ok
>> 2) proseguire bene e "irrobustirsi" quando si siano terminati i primi
>> "morbidi" sui fondamentali
>
> Le basi fondamentali sono liste e dizionari (il Java Collections
> Framework), l'IO e in particolare gli stream (usati anche in molti
> altri ambiti), le comunicazioni di rete (socket client e server).
ottimo ottimo!
> Molto utili sono poi JDBC e infine (utilit� "relativa": per
> programmazione web o di applicazioni console non serve) la GUI (awt e
> Swing).
> In concreto si traduce nei package:
> java.util, java.io (e java.nio), java.net, java.sql, java.awt (e
> sotto-package) e javax.swing (e sotto-package).
devo tradurre anche per me:
questo significa che � bene usare la documentazione che hai citato sopra, ma
puntando in particolare su quella relativa ai concetti che hai appena
citato, giusto?
[...]
> I package che servono per iniziare sono gi� inclusi nella standard
> library che si scarica e installa con il JDK.
molto bene
[...]
> Sia Eclipse che Netbeans (non cito tutti gli altri perch� non li vedo
> da anni) hanno pregi e difetti, credo sia prematuro a questo punto
> sceglierne uno "definitivamente".
> IMHO l'ideale �, come dicevo, iniziare con un buon editor testuale
> (con funzioni di supporto alla programmazione) e la riga di comando.
in questo caso che editor (freeware/commerciale) consigli? (per windows)
>> - indirizzi indispensabili su web, punti di riferimento per newbie e
>> poi invece "quick reference" che voi stessi utilizzate sempre se
>> avete bisogno.
>
> Quelli che ritengo indispensabili sono quelli della Sun citati nella
> prima risposta, in particolare (quando si � un po' pi� smaliziati) le
> API (Javadoc).
ok, cercheremo di fare una "scaletta" :)
> Installato il JDK si trova anche un file (src.zip) con tutti i
> sorgenti delle classi presenti nelle API. Io lo uso veramente molto,
> ma temo di essere un caso particolare...
ne terr� conto, anche se in questo momento non so nemmeno cosa voglia dire!!
immagino che usi lo stesso codice di java come un manuale, giusto?
>> grazie molte professore! ;-)))
>
> Sfotti poco! ;-)
Dai che sei prof!!! :)
si o no? ;-)
insegnare � un'arte.
comunque RINGRAZIO MOLTISSIMO!!! :)
interessante!
[...]
[communities]
> A mio avviso infatti, superato lo scoglio iniziale di dover imparare a
> programmare (e in questo senso quasi sempre un linguaggio vale
> l'altro), se l'obiettivo � diventare ottimi programmatori Java,
> sarebbe meglio studiare in maniera approfondita il linguaggio stesso,
> cosa che permette poi di affrontare con tranquillit� qualunque altro
> problema, magari affidandosi semplicemente alla "googlata".
>
> A questo scopo, il libro migliore � sicuramente "The Java programming
> Language" di Arnold, Gosling & Holmes (non per niente uno degli
> autori � Gosling).
io segno tutto!!! :)
> Ma soprattutto...programmare � come imparare a lanciarsi con il
> paracadute: non basta leggere un libro. Occorre soprattutto tanta
> pratica...altrimenti...splash! :) (ok, forse programmare non � cos�
> pericoloso)
infatti pensavo che ci fosse qualche libro con dei casi da studiare, alcune
soluzioni ecc.
ma in effetti penso che la cosa migliore sia darsi da soli dei problemi da
risolvere, cose che ti servono proprio, proporre ad altri, vedere se il loro
approccio nell'usare il tuo programma ti pone degli altri problemi che non
sai risolvere e cos� via.
ai miei tempi (Quick e Turbo Basic... roba vecchia... ma ho visto che il
Visual non � poi tanto diverso eh... sorry, � passato tanto tempo) la mia
"scuola" � stato mio padre.... lui aveva bisogno di risolvere alcuni
problemi e cercava di arrangiarsi... finch� l'ho superato io ... ma a quel
punto lui � iniziato ad essere "il cliente" e "l'utente" ... e ammazza
quanto rompeva le scatole!!! non potendomene sbarazzare nemmeno a casa, e
sottoponendomi questioni sia relative al trapping degli errori sia relative
all'interfaccia, mi ha dato involontariamente delle ottime basi.
Quell'approccio che ti fa pensare "se non ci penso prima io, tanto poi mi
romper� le scatole l'utente"
immagino pratica standard per tutti voi
va beh, comunque lui non ha nessun genere di stimolo di questo tipo.
forse potrebbe essere una buona cosa per lui pensare di poter creare un
programma che funziona sul suo cellulare... � una cosa possibile o creerei
delle false aspettative?
> Il modo migliore per fare pratica � partecipare a progetti
> open-source, sia iniziandone di propri da zero, ma soprattutto
> cercando di partecipare a progetti esistenti, esaminando quindi il modo di
> lavorare di altri, e iniziando a fare i propri esperimenti su codice
> reale.
perbacco per�... di solito per fare questo, partecipare e non guardare e
basta ... devi sapere gi� programmare abbastanza bene, no?
inoltre se non erro (altro argomento che non conosco e non so da che parte
iniziare) i progetti online richiedono anche la conoscenza dell'ambiente per
la collaborazione... CVS ... cose del genere (che non conosco!!!) sbaglio?
> <modalit� auto-promozione>
>
> Questi sono alcuni di quelli che gestisco io:
[...]
> Se qualcuno � interessato a contribuire...mi faccia un fischio, o
> scriva nelle mailing-list del progetto.
>
> </modalit� auto-promozione>
he he!! :)
interessante
grazie anche delle tue considerazioni!!!
Pablo wrote:
> Lucio Benfante ha scritto:
>[...]
>> Personalmente io di solito consiglio "Java 2 - I fondamenti" di
>> Horstmann & Cornell, disponibile anche in italiano
>
> Hai ragione! L'avevo scordato anche se praticamente � stato il mio
> primo testo "serio" su Java (in italiano) ;)
> Non � per niente male e adatto a principianti: all'epoca ricordo che
> l'avevo letto e "provato" in un paio di settimane (anche se con Java
> gi� trafficavo da un paio d'anni).
[...]
bene, allora, se concordate,� sicuramente in lista! :)
> Quoto la tua auto-promozione ;)
piano, piano!!! ;-))
grazie a tutti voi
Su questo non so proprio aiutarti: a parte usenet non frequento forum o
simili, solo qualche mailing list specifica, ma relativa ad argomenti
non strettamente legati a Java.
> questo significa che � bene usare la documentazione che hai citato
> sopra, ma puntando in particolare su quella relativa ai concetti che hai
> appena citato, giusto?
Giusto: le API Java sono molto corpose, partendo da quelle che ti ho
segnalato _IMHO_ (lo sottolineo due volte ;) ) parti dai concetti di
basi senza perderti nel mare magnum.
> in questo caso che editor (freeware/commerciale) consigli? (per windows)
Premesso che sviluppo principalmente sotto *NIX, personalmente mi trovo
bene con SciTE e Notepad++. In passato ho usato parecchio (per esigenze
aziendali) JPadPro ma non so a che livello sia, oggi.
> ne terr� conto, anche se in questo momento non so nemmeno cosa voglia
> dire!!
> immagino che usi lo stesso codice di java come un manuale, giusto?
S�, hai a disposizione i sorgenti delle classi di (quasi) tutta la
libreria standard di Java: un buon punto di partenza per vedere e capire
"chi fa cosa e come".
> Dai che sei prof!!! :)
> si o no? ;-)
S�, ma solo come attivit� saltuaria e secondaria :)
Buono studio! ;)
Pablo
Pablo wrote:
[...]
>> questo significa che � bene usare la documentazione che hai citato
>> sopra, ma puntando in particolare su quella relativa ai concetti che
>> hai appena citato, giusto?
>
> Giusto: le API Java sono molto corpose, partendo da quelle che ti ho
> segnalato _IMHO_ (lo sottolineo due volte ;) ) parti dai concetti di
> basi senza perderti nel mare magnum.
>
>> in questo caso che editor (freeware/commerciale) consigli? (per
>> windows)
>
> Premesso che sviluppo principalmente sotto *NIX, personalmente mi
> trovo bene con SciTE e Notepad++. In passato ho usato parecchio (per
> esigenze aziendali) JPadPro ma non so a che livello sia, oggi.
grazie anche per queste dritte.
>> ne terr� conto, anche se in questo momento non so nemmeno cosa voglia
>> dire!!
>> immagino che usi lo stesso codice di java come un manuale, giusto?
>
> S�, hai a disposizione i sorgenti delle classi di (quasi) tutta la
> libreria standard di Java: un buon punto di partenza per vedere e
> capire "chi fa cosa e come".
[...]
> Buono studio! ;)
> Pablo
grazie mille di tutto anche a te
[cut]
>
> perbacco per�... di solito per fare questo, partecipare e non guardare e
> basta ... devi sapere gi� programmare abbastanza bene, no?
No, non necessariamente. Mentre si impara e si prende confidenza con il
progetto e con le faccende tecniche/tecnologiche si pu� anche
contribuire in maniera preziosa (anzi, preziosissima), scrivendo
documentazione, segnalando bug, suggerendo feature, ecc. ecc. Anche la
semplice scrittura nelle mailing-list del progetto delle proprie
difficolt� (ad esempio ad eseguire il build del progetto) � utile alla
crescita e al consolidamento del progetto stesso.
> inoltre se non erro (altro argomento che non conosco e non so da che
> parte iniziare) i progetti online richiedono anche la conoscenza
> dell'ambiente per la collaborazione... CVS ... cose del genere (che non
> conosco!!!) sbaglio?
S�, e queste conoscenze sono erroneamente considerate accessorie. Al
giorno d'oggi dovrebbero essere parte fondamentale del bagaglio
culturale di uno sviluppatore, forse anche pi� importanti della
conoscenza del linguaggio. Dopotutto, a che serve saper programmare, se
poi non si riesce a gestire il codice che si produce?
La collaborazione con progetti open-source � utilissima anche per
imparare le pratiche e gli strumenti di gestione di un progetto.
CVS? ....roba vecchia (comunque ancora molto usato). Oggi si usa
soprattutto Subversion, e anche questo incomincia ad essere rimpiazzato
da sistemi di controllo di versione distribuiti, ad esempio Mercurial
(che � quello che uso di solito) o Git.
Lucio Benfante wrote:
[...]
>> inoltre se non erro (altro argomento che non conosco e non so da che
>> parte iniziare) i progetti online richiedono anche la conoscenza
>> dell'ambiente per la collaborazione... CVS ... cose del genere (che
>> non conosco!!!) sbaglio?
>
> S�, e queste conoscenze sono erroneamente considerate accessorie. Al
> giorno d'oggi dovrebbero essere parte fondamentale del bagaglio
> culturale di uno sviluppatore, forse anche pi� importanti della
> conoscenza del linguaggio. Dopotutto, a che serve saper programmare,
> se poi non si riesce a gestire il codice che si produce?
ok allora fai conto che stia iniziando il thread di nuovo ( hey!!! vale per
tutti!!! ^__^ )... per questa parte, dove si impara passo passo, dove sono
le basi? ci sono dei libri? qualcosa che spiega i concetti e poi la pratica?
grazie! :)
Rimanendo nel campo dei sistemi di gestione dei sorgenti (SCM - Source
Code Management), e considerando solo i principali:
Subversion: http://svnbook.red-bean.com/
Mercurial: http://hgbook.red-bean.com/
Git: http://book.git-scm.com/
CVS direi che � da considerare obsoleto. Comunque se toccasse usarlo,
l'utilizzo � praticamente identico a Subversion.
Ovviamente dopo gli SCM ci sarebbe un'infinit� di altre cose da
approfondire, che non riguardano la conoscenza del linguaggio, ma che un
buon sviluppatore dovrebbe usare. Ad esempio: programmazione assistita
dai test (lo so, � una dicitura non-convenzionale, ma a me il TDD non
piace, e di solito li uso in maniera pi� light), pratiche di continuous
integration, sistemi di issue management, scrittura della
documentazione, qualit� del software, ecc. ecc... Un'infinit�, appunto.
Un libro interessante e ad ampio spettro:
http://www.pragprog.com/titles/prj/ship-it
...ovviamente � solo il primo passo.
Se poi volete dare un'occhiata alla mia libreria (purtroppo � un po' che
non la aggiorno, manca qualche acquisto dell'ultimo anno, e forse
qualcosa di pi�...ma cercher� di aggiornarla...prima o poi):
http://www.librarything.com/catalog/benfante/yourlibrary
vai qui:
http://www.claudiodesio.com
scarica il book:
Object Oriented && Java 5 (II Edizione)
che � gratis e in italiano, puoi scaricare anche l'editor EJE
di cui sono forniti anche i sorgenti per vedere come � fatta una
applicazione desktop
Lucio Benfante wrote:
[...]
> Rimanendo nel campo dei sistemi di gestione dei sorgenti (SCM - Source
> Code Management), e considerando solo i principali:
>
> Subversion: http://svnbook.red-bean.com/
> Mercurial: http://hgbook.red-bean.com/
> Git: http://book.git-scm.com/
>
> CVS direi che � da considerare obsoleto. Comunque se toccasse usarlo,
> l'utilizzo � praticamente identico a Subversion.
grazie!
metto via, non credo che a lui interessi immediatamente.
ma a me gi� interessa :)
> Ovviamente dopo gli SCM ci sarebbe un'infinit� di altre cose da
> approfondire, che non riguardano la conoscenza del linguaggio, ma che
> un buon sviluppatore dovrebbe usare. Ad esempio [...] Un'infinit�,
> appunto.
> Un libro interessante e ad ampio spettro:
>
> http://www.pragprog.com/titles/prj/ship-it
>
> ...ovviamente � solo il primo passo.
tutto interessantissimo & credo utile : grazie!
> Se poi volete dare un'occhiata alla mia libreria (purtroppo � un po'
> che non la aggiorno, manca qualche acquisto dell'ultimo anno, e forse
> qualcosa di pi�...ma cercher� di aggiornarla...prima o poi):
>
> http://www.librarything.com/catalog/benfante/yourlibrary
quando la aggiorni l'indirizzo � sempre lo stesso, no? :)
ottimo ottimo!!! ancora grazie a tutti per il supporto!
Remo Williams wrote:
> "orpy" <or...@urcaurca.tirulero> ha scritto nel messaggio
> news:4b4b88d8$0$818$4faf...@reader5.news.tin.it...
>>
>> ok allora fai conto che stia iniziando il thread di nuovo ( hey!!!
>> vale per tutti!!! ^__^ )... per questa parte, dove si impara passo
>> passo, dove sono le basi? ci sono dei libri? qualcosa che spiega i
>> concetti e poi la pratica?
>>
>
> vai qui:
> http://www.claudiodesio.com
>
> scarica il book:
>
> Object Oriented && Java 5 (II Edizione)
>
> che � gratis e in italiano, puoi scaricare anche l'editor EJE
>
> di cui sono forniti anche i sorgenti per vedere come � fatta una
> applicazione desktop
intanto subito _grazie_ anche a te!
secondo: questo tratta di gestione del codice? subversion, CVS ecc ecc?