Newsgroup: it.comp.java
Titolo: [HELP] - Iniziare a programmare... Come???

Ciao,
ti ringrazio per aver dato attenzione al mio messaggio,
ho 16 anni,
vorrei imparare a programmare,
sai darmi qualche consiglio?
Come iniziare?
Quali linguaggi devo conoscere?
Quali guide devo leggere a riguardo?
Quali siti devo visitare per ottenere maggiori informazioni?
Quali newsgroup devo frequentare?
ecc., ecc..
Puoi rispondermi se vuoi sia tramite NewsGroup che tramite E-Mail.
Grazie
Ciao

Semplice:
1. ti scarichi dal sito della sun 
java.sun.com
 il compilatore Java ed il suo
tutorial
2. ti leggi il tutorial e se necessario ti scarichi anche il "Thinking in
Java"
3. ti metti a lavorare.
Davide

 ecc., ecc..
Ciao Fergus. Purtroppo rispondere alla tua domanda non è PER NULLA
semplice. Anzi è una delle domande più complicate che ci possano essere
:)
Come iniziare? Beh io iniziai con un Sinclair ZX Spectrum 16K espanso a
48K (si, 48K di memoria, non 128M!), rigorosamente con registratore a
cassette... ma probabilmente data la tua età dovevi ancora nascere
quando uscì il primo modello, (C) 1982 Sinclair Research Ltd. Ad ogni
modo imparai ad usare il BASIC e siccome questo era troppo lento per
gestire le routine di compressione della grafica che mi ero scritto (a
14 anni) decisi di passare all'Assembler Z80 (ebbene si, avevo una
gloriosa CPU Z80 cloccata a 4MHz, altro che AMD K6 a 400 come adesso, ah
ah ah). Non ti spaventare, già all'epoca mi divertivo parecchio a
sperimentare con tutto quel che trovavo. Nel tuo caso, ti suggerirei di
procurarti il JDK1.2.2 o meglio il JBuilder 2 (che mi sembra che
regalassero con una rivista in edicola tempo fa, in versione entry) -
dipende dalla macchina che hai a disposizione.
Quali linguaggi devi conoscere? L'italiano, per qualche manuale
introduttivo alla programmazione, e l'inglese, per la documentazione
tecnica, sono più che sufficienti. Non penso che ti serva conoscere
qualche linguaggio di programmazione per conoscere Java, anche se magari
una infarinatura di C/C++ non guasterebbe sicuramente. Certo non ti
servirà il BASIC, visto che lo ZX Spectrum è fuori produzione...
oddio... Visual Basic... ZX Spectrum... mi vengono curiose idee in mente
ah ah ah
Quali libri leggere? Questa sì che è una bella domanda. All'epoca io
comprai 'ABC Personal Computer' (pubblicazione a fascicoli) sul quale
insegnavano chissà quale dialetto del BASIC. Mi ricordo che oltre a
quello la mia scuola aveva organizzato un breve corso sul BASIC fuori
dall'orario scolastico, che mi servì per imparare i primi rudimenti
della programmazione... ossia i tre costrutti principali che un
linguaggio di programmazione deve avere: assegnazioni, iterazioni,
condizioni. E, nota, questo è vero a prescindere dal linguaggio
utilizzato (a meno che non scendiamo nei linguaggi di AI o di inferenza
in generale, tipo... Prolog?).
Ti dico subito una cosa: imparare a programmare in Java è a mio parere
di gran lunga più complicato di quanto lo sia in BASIC. Questo perchè il
Java è a oggetti, mentre il vecchio BASIC non lo era certamente. Ad
esempio, finchè scrivevi PRINT "Ciao a tutti", sapevi che PRINT era una
istruzione, voleva la stringa da stampare a video, e la stampava. In
Java, l'equivalente System.out.println("Ciao a tutti") è un metodo
statico richiamato sull'istanza di OutputStream out appartenente alla
classe System, e che può accettare come parametro tra gli altri una
istanza di java.lang.String (perché è polimorfo) . Forte eh? :)
Scherzi a parte, puoi anche fare finta che System.out.println sia una
ridenominazione della vecchia PRINT del BASIC, stamparti la tua stringa
e poi passare ad altro. I linguaggi OO sono un po' duri da digerire,
occorre molta pazienza e tenacia... Sempre per esempio, in BASIC il
programma partiva alla prima istruzione della prima linea di programma a
meno che tu facessi GOTO linea_di_programma_da_eseguire. In Java occorre
inserire in una classe il metodo statico main che dà il punto di accesso
al programma. Il java poi dispone di librerie per costruire interfacce
grafiche (AWT, Swing), per connettersi in rete (
java.net
), per fare un
milione di cose. Sta a te scoprire quali ti servono per iniziare e quali
no. Lascia perdere la costruzione di interfacce all'inizio, cerca di
capire i tre costrutti fondamentali: assegnazione (a = 5), iterazione
(for (int n=0; n < 10; n++), while(condizione) istruzione, ...) e
condizione (if (a=5) ...). Poi passa alla lettura da standard input ('da
linea di comando'). E poi passa a tutto il resto quando hai ben chiari
questi concetti di base.
Quali siti consultare e quali ng frequentare? Beh direi...
www.java.sun.com
 e it.comp.java naturalmente! :)
E ricorda che siamo qui tutti per imparare qualcosa di nuovo quando
salta fuori... quindi non ti preoccupare di porre anche le domande più
banali, quasi tutti noi abbiamo iniziato con
10 PRINT "Ciao a tutti"
20 GOTO 10
Anche imparare il Pascal potrebbe esserti di aiuto per capire come
funziona un linguaggio procedurale, tra parentesi, ma a questo punto
tanto vale passare direttamente al Java.
...mi ricordo che quando mi stufai del BASIC e del Pascal imparai il C
sotto AmigaDOS visto che un mio amico si era divertito a fargli
disegnare l'insieme di Mandelbrot... e come primo programma feci una
avventura grafica, ma questa è un'altra storia, avevo già qualche anno
di 'programmazione' sulle spalle.
Buona fortuna!
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

 ah ah
Scusami, ma la frase che ha scritto mi induce a pensare che a Lei non piace
il Visual Basic. Sarà pure una schifezza per scrivere programmi robusti,  ma
è molto utile per creare velocemente una GUI accettabile sotto Windows.

Quali newsgroup devo frequentare?
Quelli relativi al linguaggio che hai scelto, comunque prima di iniziare
a postare su un NG :
	- informati dell'esistenza di una FAQ (lista di domande
	  frequenti)
	- Leggi per almeno due mesi (anche di piu`) il Ng cosi ti rendi
	  conto del livello della discussione
	- segui il primo consiglio che ti ho dato : non spedire lo
	  stesso messaggio su piu` ng.
Buon Lavoro!!
-- 
       _--~~--_
     /~/_|  |_\~\
    |____________|                   
    |[][][][][][]|:=  .               
  __| __         |__ \  ' .          
 |  ||. |   ==   |  |  \    ' .     
(|  ||__|   ==   |  |)   \      'O
 |  |[] []  ==   |  |      \    /|\ 	Han Solo
 |  |____________|  |        \   |      ICQ 62548838
 /__\            /__\          \/ \
  ~~              ~~

 è molto utile per creare velocemente una GUI accettabile sotto Windows.
Parli bene tu che scrivi in un ng dedicato al Java, che quest'ultimo è da
buttare! :)
Personalmente adoro il Java e disprezzo Visual Basic, e non in quanto Basic.
Adoravo il Basic dello Spectrum. Per scrivere una GUI velocemente anche il
JBuilder non scherza quando sai dove mettere le mani. Però ammetto che per
scrivere velocemente una GUI che si agganci a un database come il VB c'è poco.
Per il resto, de gustibus non disputandum [est].


 aspetti.
Scusa, puoi precisare il tuo pensiero riguardo a Java? Perche` pensi che sia da buttare? Un punto di partenza per arrivare dove?
Riguardo alla portabilita` sono d'accordo che all'utente finale probabilmente non interessa ma per lo sviluppatore e` una gran pacchia... io sviluppo in Unix perche` ritengo Windows un ambiente assolutamente inadatto per sviluppare (cosi` come per fare qualsiasi altra cosa, a parte i giochini ;)), poi piglio le mie classi (pochi KB) e le invio per posta elettronica all'utente che ha il PC Windows oppure le copio sul server NT oppure le faccio girare su Unix... e se giorno ci sara` da sviluppare qualcosa per AS/400 almeno non dovro` impararmi il RPG...
Ciao, Cris
-- 
Cristian Veronesi - CRPA SpA - Reggio Emilia, Italy
Whatever it is, I'm against it (Groucho Marx)

sia da buttare? Un punto di partenza per arrivare dove?
Credo di proprio di essermi espresso male, quindi tenterò di rimediare.
Io ho imparato tale linguaggio per primo e per lungo tempo l'ho giudicato
come il migliore,  ma la mancanza di occuparmi un po' più da vicino del
codice  mi mancava troppo. Allora ho cominciato a i mparare il C++ e devo
dire che come linguaggio forse è meglio del Java sotto vari aspetti.
Cioè:
 - alcuni dicono che il C++ è inadatto per scrivere codice robusto: non è
assolutamente vero. Essendo questo molto più diffcile mi sembra logico che
sbagliare qualche indirizzo di puntatore o cosa molto comune ( compreso il
sottoscritto ) utilizzarlo malamente il codice ne risente. Se poi i
programmatori C++ si decidessero a trattare le eccezioni...
In Java invece molti aspetti, come l'allocazione della memoria, sono
lasciati al compilatore.
Di certo in fase di costruzione devo lavorare di più ma personalmente trovo
più divertimento che viaggiare ai 300 all'ora in Visual Basic.
- dicono che sia meno tipizzato rispetto a Java. Anche questo senza
fondamenta.
- non è molto ricco "grammaticalmente". ( Eppure in Java non ho mai sentito
parlare di enumerazioni, strutture, unioni, ecc.)
Per quanto rigurda Java è un ottimo punto di partenza per imparare a
programmare ( al posto del solito Pascal ) ma per produrre sistemi molto
complessi come un SO, di certo non lo scelgo.
La considerazione Java senza la portabilità è da buttare non era esattamente
quello che volevo dire, infatti mi capita spesso di trovare Java nel Web ma
raramente l'ho trovato in applicazioni Windows o su altri sistemi operativi.
Può essere utile la portabilità, ma non mi permette una gestione del disco a
basso livello.
Se io volessi fare un applet potrei benissimo farlo in C++, ma si capisce
che come tempo/prestazioni.... sceglierei Java. Quindi la scelta del
linguaggio da utilizzare è sempre da valutare prima di iniziare il progetto.
Mi scuso ancora.
