Consigli su come iniziare con la programmazione?

Stato
Discussione chiusa ad ulteriori risposte.

JMarston

Nuovo Utente
25
2
Buongiorno,

vorrei consigli su come avvicinarmi alla programmazione.
Il fatto è che informandomi su internet e non solo, il consiglio è sempre quello di trovare un libro o un corso su un "linguaggio tipo" che spieghi anche le basi della programmazione.
Ne ho provati alcuni ma li ho trovati tutti troppo discorsivi e poco pratici, e visto che sono agli inizi mi sembra più appropriato ed efficace leggere e testare ciò che apprendo.
Ciò che vorrei sarebbe capire cosa sto facendo e non solo "ora faccio l'esempio del libro e sono a posto", avere coscienza di ciò che faccio e capacità di pensare, non solo di farlo "perché è scritto così".
Per questo vorrei il vostro aiuto per indirizzarmi verso qualcosa (libri o video corsi) che mi diano la base tecnico-pratica da cui poter poi trovare il mio percorso.
Ho la passione per questo settore, ma mi sento come in un deserto, dove ogni cosa che faccio è un granello di sabbia insignificante e che non mi porta a realizzare nulla.

Grazie in anticipo a tutti.
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Buongiorno,

vorrei consigli su come avvicinarmi alla programmazione.
Il fatto è che informandomi su internet e non solo, il consiglio è sempre quello di trovare un libro o un corso su un "linguaggio tipo" che spieghi anche le basi della programmazione.
Ne ho provati alcuni ma li ho trovati tutti troppo discorsivi e poco pratici, e visto che sono agli inizi mi sembra più appropriato ed efficace leggere e testare ciò che apprendo.
Ciò che vorrei sarebbe capire cosa sto facendo e non solo "ora faccio l'esempio del libro e sono a posto", avere coscienza di ciò che faccio e capacità di pensare, non solo di farlo "perché è scritto così".
Per questo vorrei il vostro aiuto per indirizzarmi verso qualcosa (libri o video corsi) che mi diano la base tecnico-pratica da cui poter poi trovare il mio percorso.
Ho la passione per questo settore, ma mi sento come in un deserto, dove ogni cosa che faccio è un granello di sabbia insignificante e che non mi porta a realizzare nulla.

Grazie in anticipo a tutti.
Secondo me un problema della frustrazione è che hai aspettative eccessive ed i progressi in questo ambito sono molto lenti e richiedono parecchio impegno nel recepire contemporaneamente concetti e nozioni.

Sinceramente penso che se hai di queste difficoltà i libri e brevi corsi online non siano ideali per primi approcci e percorso autodidatta. Forse dovresti frequentare un corso in cui confrontarti direttamente con qualcuno e ricevere delle dritte.
Te lo dico anche come istruttore (volontario) in corsi LUG.

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Ultima modifica:

quizface

Utente Èlite
15,242
5,226
Come sei messo con la matematica e con la logica? prima di arrivare alla pratica c'e' molta teoria e capire concetti, non c'e' un libro (bacchetta magica) che in un attimo ti apre la mente. Da autodidatta la vedo dura.
 
  • Mi piace
Reazioni: Utente 16812

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro
Come sei messo con la matematica e con la logica? prima di arrivare alla pratica c'e' molta teoria e capire concetti, non c'e' un libro (bacchetta magica) che in un attimo ti apre la mente. Da autodidatta la vedo dura.
Da autodidatta invece è fattibilissimo, ma serve gran forza di volontà.
L’insiemistica e la logica la si impara in pochissimo tempo.

Il vero problema è, appunto, la forza di volontà. Apprendere concetti su concetti e non poterli utilizzare minimamente senza saperne altri.
Ad esempio, la prima volta che ho incontrato i puntatori in C++ (e le variabili reference) mi son detto “Ok, ma perché mai dovrei utilizzare una variabile che punta ad un’altra? Per cambiarle nome?”. Magari ti vengono spiegati prima i puntatori delle funzioni e degli array ma intanto ti sei imparato che significhi &, *, *&, *&*&*&*&, ...
Per non parlare dei puntatori a funzione (evitabili grazie ai template), poliformismo ecc...

Comunque se ti interessa sapere che stai facendo in (quasi) ogni punto del programma ti consiglio di partire dal C (nemmeno dal C++, già dal std::cout usi un oggetto della classe ostream con operatore << sovraccaricato...).
 
  • Mi piace
Reazioni: _Gra_

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,208
1,845
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Buongiorno,
Ho la passione per questo settore, ma mi sento come in un deserto, dove ogni cosa che faccio è un granello di sabbia insignificante e che non mi porta a realizzare nulla.

Se ti può sconfortare ulteriormente (:asd:), sarà così anche in seguito, e spera continui ad essere così, in quanto sarà la benzina per continuare ad esplorare.

Per il resto, ci sono un sacco di topic con domande analoghe; dai un occhio ad esempio a questo: https://www.tomshw.it/forum/threads/continuare-a-imparare.725808/
 
  • Mi piace
Reazioni: _Gra_

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Da autodidatta invece è fattibilissimo, ma serve gran forza di volontà.
L’insiemistica e la logica la si impara in pochissimo tempo.

Il vero problema è, appunto, la forza di volontà. Apprendere concetti su concetti e non poterli utilizzare minimamente senza saperne altri.
Ad esempio, la prima volta che ho incontrato i puntatori in C++ (e le variabili reference) mi son detto “Ok, ma perché mai dovrei utilizzare una variabile che punta ad un’altra? Per cambiarle nome?”. Magari ti vengono spiegati prima i puntatori delle funzioni e degli array ma intanto ti sei imparato che significhi &, *, *&, *&*&*&*&, ...
Per non parlare dei puntatori a funzione (evitabili grazie ai template), poliformismo ecc...

Comunque se ti interessa sapere che stai facendo in (quasi) ogni punto del programma ti consiglio di partire dal C (nemmeno dal C++, già dal std::cout usi un oggetto della classe ostream con operatore QUOTE]Mah, da autodidatta è fattibile per molti, per altri una prima infarinatura può essere ottimale.. non è cosa su cui dibattere..
Il discorso sui puntatori è molto relativo invece, uno può programmare per una vita senza sentirne la necessità, stiamo parlando a una persona che chiede informazioni su come incominciare da zero, forse un giorno imparerà anche a usare i puntatori alle funzioni con successo e grande soddisfazione, ma per ora c'è altro.
Non posso dire a uno che vuole imparare l'aritmetica da solo che è una buona idea ed è facile, ma dovrà fare attenzione perché un giorno dovrà affrontare le equazioni differenziali!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro
Più che altro visto che a lui interessa la programmazione a basso livello i puntatori dovrà sicuramente utilizzarli (o almeno è quello che ho capito dal suo “voglio capire che sto facendo”)
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Più che altro visto che a lui interessa la programmazione a basso livello i puntatori dovrà sicuramente utilizzarli (o almeno è quello che ho capito dal suo “voglio capire che sto facendo”)
Io invece ho capito che non ha alba, sta cercando di capire da solo cosa significa fare un programma ma non ne viene fuori e non capisce ciò che sta facendo.

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

JMarston

Nuovo Utente
25
2
Secondo me un problema della frustrazione è che hai aspettative eccessive ed i progressi in questo ambito sono molto lenti e richiedono parecchio impegno nel recepire contemporaneamente concetti e nozioni.

Sinceramente penso che se hai di queste difficoltà i libri e brevi corsi online non siano ideali per primi approcci e percorso autodidatta. Forse dovresti frequentare un corso in cui confrontarti direttamente con qualcuno e ricevere delle dritte.
Te lo dico anche come istruttore (volontario) in corsi LUG.

Inviato dal mio Nexus 5 utilizzando Tapatalk
Questo centra una parte del discorso, perchè il mio problema non è che non riesco a diventare il "re dei programmatori" in un batter d'occhio, ma che ciò che studio lo sento distante perchè non posso metterlo in pratica con l'ingegno ma solo con l'esempio stampato sul libro, e dopo poco ciò che ho appreso sbiadisce, perchè devo concentrarmi sullo step successivo, che però nell'insieme non porta ad un nulla di concreto, ma solo ad esercizi fini a se stessi e non ad un qualcosa che mi dia la visione d'insieme (es. la pratica del libro una volta interamente completata, non porta ad un lavoro unico che va ad incastrarsi, ma solo ad esercizietti che nulla hanno in comune).
Quello che vorrei è avere dei punti di riferimento da cui poi espandermi per poter imparare cose nuove.
 

JMarston

Nuovo Utente
25
2
Io invece ho capito che non ha alba, sta cercando di capire da solo cosa significa fare un programma ma non ne viene fuori e non capisce ciò che sta facendo.

Inviato dal mio Nexus 5 utilizzando Tapatalk
Questo in parte è vero, la cosa che più mi scoraggia è che le persone con cui parlo per dei consigli, sembra che non vogliano darmi una mano quasi come se li disturbasse il fatto che io abbia la loro stessa passione, e questo mi demoralizza non poco, perchè non è che io voglia fare solo di testa mia, anzi, il fatto è che c'è una chiusura e un non voler aiutare per me incomprensibile (e l'ho notato in molti dei miei "amici" programmatori).
 

_Gra_

ExModertrattore
Utente Èlite
7,982
2,709
CPU
Intel i7 11700kf
Dissipatore
Noctua NH-C14S
Scheda Madre
Gigabyte Z590i Aorus Ultra
HDD
Samsung 970 Evo Plus
RAM
Crucial Ballistix 2*16 3600c16
GPU
Gigabyte 3060 Ti Eagle
Audio
Asus Xonar U7
Monitor
LG 27GR75Q e BenQ TH671ST
PSU
Corsair SF600 Platinum
Case
ITX Custom mod
Periferiche
L'elenco sarebbe lungo...
Onestamente partirei dall'architettura degli elaboratori (sbucciandoti anche un po di 8088, oppure assembly mips o ijvm per dire... Giusto per prendere confidenza con alcuni concetti, come per esempio quello di registro di memoria, quello di operatore, quello di stack ecc.) per sapere un minimo come sono organizzati processore e memoria, cosa è una ALU, cosa è il program counter ecc. ecc. giusto per sapere poi esattamente cosa stai facendo e anche come lo stai facendo. Contemporaneamente partirei dal C, come si fa di solito e come credo facciano in Programmazione1 più o meno tutte le facoltà di informatica d'Italia. Poi il resto, tipo algoritmi e strutture dati, verranno da se. Alla fine scegli un linguaggio che ti ispira particolarmente e esercitati su quello. Essere "bravo" in molti linguaggi, con tutte le differenze che hanno, è praticamente impossibile o comunque richiederebbe anni di esperienza come sviluppatore in ognuno di essi.
My 2 cents.

eDit: rileggendo, ho forse capito cosa manca a te. Ti manca la percezione del progresso. Il conseguimento di un obiettivo. Sai come avevo iniziato a imparare C ?
Creando un clone di campo minato, senza interfaccia grafica complessa, solo con matrice e asterischi e cancelletti. Lo feci in realtà per poterci bindare un'altra roba, ma questa è un altra storia.
Poi ricordo che per il corso di pr1 ci venne chiesto di fare un clone di Ruzzle utilizzando le GTK, che son delle librerie grafiche di Windows. E da là capii anche la gestione degli eventi (per il movimento del mouse per esempio) e diverse altre cose. Il tutto sempre vedendo "risultati", che mi pare che sia quello che ti manchi di più.
Altra cosa che ti manca, se l'amico non ti da una mano, è un gruppo di amici nerdoni che han gli stessi interessi xD. Ma su questo purtroppo non ho consigli da poter dare.
 
Ultima modifica:
  • Mi piace
Reazioni: JMarston
U

Utente 16812

Ospite
Buongiorno,

vorrei consigli su come avvicinarmi alla programmazione.
Il fatto è che informandomi su internet e non solo, il consiglio è sempre quello di trovare un libro o un corso su un "linguaggio tipo" che spieghi anche le basi della programmazione.
Ne ho provati alcuni ma li ho trovati tutti troppo discorsivi e poco pratici, e visto che sono agli inizi mi sembra più appropriato ed efficace leggere e testare ciò che apprendo.
Ciò che vorrei sarebbe capire cosa sto facendo e non solo "ora faccio l'esempio del libro e sono a posto", avere coscienza di ciò che faccio e capacità di pensare, non solo di farlo "perché è scritto così".
Per questo vorrei il vostro aiuto per indirizzarmi verso qualcosa (libri o video corsi) che mi diano la base tecnico-pratica da cui poter poi trovare il mio percorso.
Ho la passione per questo settore, ma mi sento come in un deserto, dove ogni cosa che faccio è un granello di sabbia insignificante e che non mi porta a realizzare nulla.

Grazie in anticipo a tutti.

Leggi il mio intervento qui (in cui propongo, tra l'altro, un esercizio da svolgere sull'algoritmo di Euclide):
https://www.tomshw.it/forum/threads...dei-linguaggi-informatici.621439/post-5956348
Poi leggi gli articoli sulla "progettazione degli algoritmi" che ho linkato qui:
https://www.tomshw.it/forum/threads...-e-ambienti-di-esecuzione.549368/post-5183225
Se ti va, puoi dare un'occhiata ad altri miei interventi qui:
https://www.tomshw.it/forum/threads/iniziare-a-programmare.514996/post-4847860
https://www.tomshw.it/forum/threads...-e-ambienti-di-esecuzione.549368/post-5497853
https://www.tomshw.it/forum/threads/iniziare-a-programmare.573652/post-5430543
https://www.tomshw.it/forum/threads/come-creare-un-software-ad-alto-livello.574820/post-5451458
https://www.tomshw.it/forum/threads/aiuto.642400/post-6199215
https://www.tomshw.it/forum/threads/ciclo-while-e-for.665104/post-6448366
https://www.tomshw.it/forum/threads/ciclo-while-e-for.665104/post-6452499
Ciao ;)
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili