PROBLEMA Non riesco ad imparare Java

Metalcarter

Utente Attivo
540
67
CPU
Ryzen 5 3600
Dissipatore
stock
Scheda Madre
MSI B450m- A-PRO MAX
HDD
SanDisk 250gb x2
RAM
16gb DDR4 Corsair vengeance LP
GPU
AMD RX 480 4Gb XFX
Audio
integrato
Monitor
LG 29wL500 Wide - HP Pavilion 24cw
PSU
Thermaltake Smart SE 530w
OS
windows 10 Pro
Ciao a tutti, scusate in anticipo il tono melodrammatico haha.
Sto studiando Java da 2 settimane, ho delle slide fornite da un mio amico programmatore + diversi eserciziari trovati su internet.
Il problema è che non riesco a farmi entrare in testa la logica che c’è dietro Java.
Ogni volta che mi si pone di fronte un esercizio, anche se magari ne ho svolto uno uguale 1 ora prima , mi sembra sempre roba nuova, come se partissi costantemente da 0.

Anche un semplice esercizio con un ciclo while mi mette in difficoltà.
La teoria fin li l’ho studiata, se leggo un esercizio svolto lo riesco a comprendere nei limiti delle mie conoscenze...ma quando si tratta di scrivere nada, tutto vuoto.

Avete qualche consiglio amici?
 

Metalcarter

Utente Attivo
540
67
CPU
Ryzen 5 3600
Dissipatore
stock
Scheda Madre
MSI B450m- A-PRO MAX
HDD
SanDisk 250gb x2
RAM
16gb DDR4 Corsair vengeance LP
GPU
AMD RX 480 4Gb XFX
Audio
integrato
Monitor
LG 29wL500 Wide - HP Pavilion 24cw
PSU
Thermaltake Smart SE 530w
OS
windows 10 Pro

clessidra

Utente Attivo
766
272
CPU
VIA C3
GPU
Ati Rage
OS
linux - Red Hat 1.1
Beh, forse ti stai spingendo troppo oltre. Magari qualche programmatore che ogni tanto si affaccia qui potrebbe darti un consiglio. Un conto è imparare Java, un altro conto è imparare a programmare. Java è uno dei tanti linguaggi, e nemmeno il più facile.
 
  • Mi piace
Reazioni: vgg5465

vgg5465

Sic Mundus Creatus Est
Utente Èlite
3,919
2,238
CPU
i9-9900k @5.0Ghz 1.208V
Dissipatore
ROG Ryujin 360
Scheda Madre
Asus ROG z390 maximus XI hero
HDD
2TB Toshiba P300, 512GB 970 pro, 256GB SSD Corsair force GS, 2x 1TB 860 EVO
RAM
32GB Corsair Vegeance rgb pro 3200mhz
GPU
GIGABYTE 1080 xTreme
Audio
O2+Odac
Monitor
2x Philips G-Line 272G5DYEB + X34 ACER
PSU
Seasonic Focus Plus platinum 850W
Case
Cooler Master H500M
Periferiche
Sennheiser HD650, Beyerdynamic DT 770 pro, Corsair K95, Logitech G903 & mousepad PowerPlay
Net
dl: 1000mb/s ul: 250mb/s
OS
Windows 10
Non sono un programmatore ma quando mi ero avvicinato io all'argomento con degli amici esperti, ho scoperto che alla base devi capire come funziona una programmazione ad oggetti, non è banale e deve esserci qualcuno in grado di spiegartela, che sia online o corso attivo. In seguito ogni linguaggio è simile, più o meno intuitivo/complesso ma la logica è identica.

Se con Java non riesci (anche io ho avuto problemi) prova ad usare C#, C++ o Python, io mi ero avvicinato alla programmazione con quest'ultimo. Sicuramente più intuitivi... probabilmente qui qualche programmatore storcerebbe il naso, però per me è stato più semplice.
 
  • Mi piace
Reazioni: r3dl4nce e fabio93

fabio93

Utente Attivo
609
173
CPU
AMD Ryzen 5 2400G
Dissipatore
Arctic Alpine64 Plus
Scheda Madre
Gigabyte GA-AX370-Gaming 3
HDD
Crucial MX500 250 GB, Crucial BX500 240 GB
RAM
G.Skill F4-3200C14D-16GFX FlareX 16 GB
Monitor
HP 2010i
PSU
Corsair TX550M
Case
Sharkoon M25-W
Periferiche
Magicforce 68, Logitech G203
OS
Windows 10 Pro, Fedora 31
Esatto, come dice @vgg5465, per imparare Java bisogna imparare contestualmente il paradigma di programmazione Object Oriented, e all'inizio può essere spiazzante. Da' un'occhiata alla sezione dedicata al materiale didattico per trovare delle fonti da cui studiare.
Non conosco bene C# ma per quello che so è molto simile a Java, Python invece è completamente diverso.
 
  • Mi piace
Reazioni: vgg5465

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Non sa guidare un camion e gli state proponendo di guidare un autobus. Il problema è alla radice.
Ha detto che ha problemi a fare un esercizio anche con un semplice while, quindi la sua difficoltà è che non ha ancora capito come passare dal problema alla soluzione ideando un certo algoritmo. Deve imparare la forma mentis del programmatore.
Un primo consiglio è guardare gli esercizi che ha già visto e domandarsi non "come" ma "perchè" è fatto in un certo modo.
 
  • Mi piace
Reazioni: Mursey

vgg5465

Sic Mundus Creatus Est
Utente Èlite
3,919
2,238
CPU
i9-9900k @5.0Ghz 1.208V
Dissipatore
ROG Ryujin 360
Scheda Madre
Asus ROG z390 maximus XI hero
HDD
2TB Toshiba P300, 512GB 970 pro, 256GB SSD Corsair force GS, 2x 1TB 860 EVO
RAM
32GB Corsair Vegeance rgb pro 3200mhz
GPU
GIGABYTE 1080 xTreme
Audio
O2+Odac
Monitor
2x Philips G-Line 272G5DYEB + X34 ACER
PSU
Seasonic Focus Plus platinum 850W
Case
Cooler Master H500M
Periferiche
Sennheiser HD650, Beyerdynamic DT 770 pro, Corsair K95, Logitech G903 & mousepad PowerPlay
Net
dl: 1000mb/s ul: 250mb/s
OS
Windows 10
Non sa guidare un camion e gli state proponendo di guidare un autobus. Il problema è alla radice.
Ha detto che ha problemi a fare un esercizio anche con un semplice while, quindi la sua difficoltà è che non ha ancora capito come passare dal problema alla soluzione ideando un certo algoritmo. Deve imparare la forma mentis del programmatore.
Un primo consiglio è guardare gli esercizi che ha già visto e domandarsi non "come" ma "perchè" è fatto in un certo modo.
Hai ragione, però Java non aiuta... comprendere un While nel casino di Java è sicuramente più complicato che capirlo in Python... per me è sicuramente più semplice capire il perché fare in un certo modo con un linguaggio intuitivo.
Poi quello che dici è corretto, devi pensare come pensa uno script e per quello non c'è linguaggio che possa aiutarti...
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Hai ragione, però Java non aiuta... comprendere un While nel casino di Java è sicuramente più complicato che capirlo in Python... per me è sicuramente più semplice capire il perché fare in un certo modo con un linguaggio intuitivo.
Poi quello che dici è corretto, devi pensare come pensa uno script e per quello non c'è linguaggio che possa aiutarti...
Per fare i primi esercizi non serve ad una mazza sapere cos'è l'OOP, cosi come non serve sapere puntatori, strutture e gestione della memoria in C quando si inizia.
 

icox

Utente Attivo
497
246
Hai ragione, però Java non aiuta... comprendere un While nel casino di Java è sicuramente più complicato che capirlo in Python... per me è sicuramente più semplice capire il perché fare in un certo modo con un linguaggio intuitivo.
Poi quello che dici è corretto, devi pensare come pensa uno script e per quello non c'è linguaggio che possa aiutarti...
Mah i costrutti base li comprendi nella quasi totalita' dei linguaggi moderni, l'unico requisito e' saper leggere. Chiaramente devi sapere cos'e' un while e perche' si usa ma questo esula da quale linguaggio si utilizza.


Sto studiando Java da 2 settimane
Ecco il tuo problema. Studia di piu'.

Scusa la schiettezza ma due settimane per chi inizia da zero non sono niente. Molto bene che tu sia in grado di distinguere un while ma non e' sufficiente saperlo "leggere", devi capire perche' e' stato usato (perche' un while e non un for ad esempio?).
Io ti consiglio di continuare a studiare a piccoli passi: prendi esercizi semplici, riscrivili a manina, modificali, estendili ma sopratutto rompili. Ad ogni modifica che apporti, prima di eseguire, chiediti cosa ti aspetti come output e se questo differisce da quanto ti aspettavi cerca di comprendere il perche'.
Uno strumento piuttosto usato sono i diagrammi di flusso, ti aiutano a scomporre problemi grossi in sottoproblemi (se sono piccoli sono piu' facili da risolvere ed e' meno probabile fare errori) ed a visualizzare la sequenza di operazioni/passi necessari per arrivare alla soluzione.

Tieni duro, all'inizio devi allenare la mente a pensare in modo un po' diverso ma vedrai che col tempo ti verra' naturale :ok:
 

LitterallyWho

Utente Attivo
164
46
Ciao a tutti, scusate in anticipo il tono melodrammatico haha.
Sto studiando Java da 2 settimane, ho delle slide fornite da un mio amico programmatore + diversi eserciziari trovati su internet.
Il problema è che non riesco a farmi entrare in testa la logica che c’è dietro Java.
Ogni volta che mi si pone di fronte un esercizio, anche se magari ne ho svolto uno uguale 1 ora prima , mi sembra sempre roba nuova, come se partissi costantemente da 0.

Anche un semplice esercizio con un ciclo while mi mette in difficoltà.
La teoria fin li l’ho studiata, se leggo un esercizio svolto lo riesco a comprendere nei limiti delle mie conoscenze...ma quando si tratta di scrivere nada, tutto vuoto.

Avete qualche consiglio amici?
Premetto che conosco giusto le basi della programmazione e nulla più.
Secondo me dovresti postare qualche esempio per far capire la difficoltà degli esercizi a cui ti riferisci.
 

nardoz0918

Nuovo Utente
48
8
Se è il tuo primo approccio alla programmazione, se è il tuo primo linguaggio che stai imparando, quello che ti consiglio prima di fare qualsiasi esercizi o qualsiasi prova di esempio di programma è di tenere bene a mente una cosa fondamentale per la programmazione in generale:
  1. Prendi carta e penna, e fai tanti Flowchart (diagrammi di flusso)
Potrebbe essere una cosa inutile, ma per un programmatore è essenziale avere in mente la logica dei passi da eseguire. Con il tempo ti escono in automatico.
Esempio stupido : prendere una bottiglia d'acqua in frigo
I passi sono: ( Andare davanti al frigo - Aprire il frigo - Prendere l'acqua - Chiudere il frigo)

Una volta che riesci a contestualizzare nel miglior modo possibile i "passi" da eseguire dinanzi ad un problema, incominci a strutturare il flowchart inserendo non piu "concetti", ma cerchi di scrivere un qualcosa di simile:
An introduction to Flowcharts - GeeksforGeeks

In questo modo riesci anche a distinguere ciò che hai bisogno per affrontare un problema.
Successivamente apri il tuo editor con il quale programmi, all'inizio va bene anche un semplice blocco note e una shell (In futuro ti consiglio eclipse). E mano a mano cerchi solo di trascrivere il flowchart sotto codice. Questo potrebbe aiutarti nell'impostare un programma da 0.

All'inizio non guardare troppo il significato della programmazione ad oggetti, non farti spaventare. Puoi programmare in Java (Sfruttando praticamente lo 0% del suo potenziale) senza conoscere cos'è la OOP (Object Oriented Programming).

Successivamente se ti può essere utile, per capire bene vari concetti, cerca sempre di fare degli esempi reali mentre studi.

Poi boh, esercizi a manetta.
 
  • Mi piace
Reazioni: fabio93
U

Utente 16812

Ospite
Ciao a tutti, scusate in anticipo il tono melodrammatico haha.
Sto studiando Java da 2 settimane, ho delle slide fornite da un mio amico programmatore + diversi eserciziari trovati su internet.
Il problema è che non riesco a farmi entrare in testa la logica che c’è dietro Java.
Ogni volta che mi si pone di fronte un esercizio, anche se magari ne ho svolto uno uguale 1 ora prima , mi sembra sempre roba nuova, come se partissi costantemente da 0.

Anche un semplice esercizio con un ciclo while mi mette in difficoltà.
La teoria fin li l’ho studiata, se leggo un esercizio svolto lo riesco a comprendere nei limiti delle mie conoscenze...ma quando si tratta di scrivere nada, tutto vuoto.

Avete qualche consiglio amici?

Leggi i miei interventi qui:
Inizia dalla programmazione strutturata in Pascal o in C, ti manca il corretto metodo di studio, la giusta sequenza di lavoro completa, una chiara impostazione del "design" logico dei programmi, un programma non "nasce" ponendosi di fronte ad una tastiera, prima si deve analizzare il problema "a tavolino", comprenderlo a fondo e definirne le varie fasi secondo l'approccio top-down :sisi:
Riprendendo uno dei miei esempi, che mi piace spesso citare, volendo codificare un programma che calcola l'M.C.D. (il massimo comun divisore) tra due numeri interi, la prima domanda da porsi è la seguente: che cos'è il massimo comun divisore (tra due numeri interi) ?
Il Pascal (anche il C) si adatta perfettamente alla descrizione della programmazione strutturata: il linguaggio stesso ne è la rappresentazione, per così dire, naturale.
Ciao ;)
 
  • Mi piace
Reazioni: fabio93

LitterallyWho

Utente Attivo
164
46
Leggi i miei interventi qui:
Inizia dalla programmazione strutturata in Pascal o in C, ti manca il corretto metodo di studio, la giusta sequenza di lavoro completa, una chiara impostazione del "design" logico dei programmi, un programma non "nasce" ponendosi di fronte ad una tastiera, prima si deve analizzare il problema "a tavolino", comprenderlo a fondo e definirne le varie fasi secondo l'approccio top-down :sisi:
Riprendendo uno dei miei esempi, che mi piace spesso citare, volendo codificare un programma che calcola l'M.C.D. (il massimo comun divisore) tra due numeri interi, la prima domanda da porsi è la seguente: che cos'è il massimo comun divisore (tra due numeri interi) ?
Il Pascal (anche il C) si adatta perfettamente alla descrizione della programmazione strutturata: il linguaggio stesso ne è la rappresentazione, per così dire, naturale.
Ciao ;)
Magari andrò controcorrente, però, personalmente, penso che, ancora prima di questo, ci debba essere una predisposizione logico-matematica(innata). Infatti per questo volevo capire quali fossero esattamente le sue difficoltà(se dipendono appunto dalla mancanza di esperienza o proprio da "problemi" suoi). Spero di non essere andato off-topic con questo mio intervento
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!