UFFICIALE Imparare a Programmare

Auronzolo

Utente Attivo
1,072
119
CPU
Ryzen 5 1600
Dissipatore
Stock
Scheda Madre
AsRock AB350 Pro 4
HDD
1x SSD SanDisk Extreme 500 GB - 1x Seagate 500GB 3.5" 7200rpm 16MB SATA3 - 1x SSD Samsung 840 Pro
RAM
2x Corsair Vengeance LPX 8GB 3000mhz DDR4
GPU
GTX 1080 Phoenix Gainward
Audio
Sound Blaster Z
Monitor
LG 27GL850 27" QHD
PSU
XFX XTR 550w Gold
Case
Phanteks P400 Tempered Glass
Periferiche
Tastiera: TTesports - Mouse: Logitech G403 Prodigy - Cuffie: DT 990 Pro
Net
Fibra
OS
Windows 10 Pro 64 Bit
Ciao a tutti! Su consiglio di alcune persone, vorrei provare ad avvicinarmi alla programmazione, magari in futuro lavorare anche in questo settore. Ho 30 anni e ai tempi della scuola feci un po' di programmazione per 5 anni in VB / ASP. Ovviamente con tutti i suoi limiti. Poi dopo la scuola decisi di fare altro nella vita ma con i PC me la sono sempre cavata, a livello Software / Hardware, diciamo che "me ne capisco un po' di più rispetto all'utente medio".

Come dicevo, vorrei approcciarmi ora alla programmazione nel tempo libero e farne, capacità e tempo permettendo, una mia competenza, vuoi per voglia di imparare, sapere e magari un domani chissà, aggiungere questa competenza sul curriculum.

Come linguaggio ho scelto il C# e su consiglio di una persona che lavora da anni nel settore, ho acquistato un libro inerente C# per capire le basi; lo sto leggendo con interesse (mi sembra ben fatto), alternandolo con tutorial di spiegazioni trovati su YouTube e reperendo informazioni su google per capire i concetti teorici.

Scrivo questo post perchè, dopo una settimana di lettura (che va a rilento perchè devo fermarmi a pensare, ragionare, cercare di capire la logica), videospiegazioni di YouTube e alcune stesure di righe di codice, noto che capisco il piccolo esercizio in se ma dopo, se provo a uscire dagli schemi per fare qualcosa che non è riportato nelle guide / esercizi, vado nel pallone, mi blocco delle mezz'ore per cercare la soluzione e la cosa mi fa sentire un po' ritardato. Vorrei capire un attimo con quale approccio dovrei gestire la situazione.

Voi ricordate quando è stata la prima volta che vi siete avvicinati alla programmazione? Com'è stato? Come vi siete comportati davanti ai problemi? E' solo una questione di tempo / pratica quindi tutti prima o poi riescono a diventare bravi o ci sono delle eccezioni?

Tutto questo nasce dal fatto che, stando a quello che ho studiato sul libro, dovrei essere in grado di gestire bene le variabili, gli operatori aritmetici, l'istruzione IF e i cicli FOR, WHILE e DO-WHILE; il problema arriva quando devo mettere insieme tutte queste cose per realizzare un programmino per completare le esercitazioni e non capisco se impiegare un sacco di tempo per far funzionare tutto, sia normale. Considerando che queste sono le basi e mi aspettano ancora una miriade di argomenti.

Qual'è il metodo corretto da seguire e passare da "Aiuto, non ci capisco niente, come faccio, mi scoppia la testa" a "Eh dai, non è poi così male".
 

_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
Non credo che il C# sia il miglior linguaggio con cui iniziare. È molto verboso e il fatto che sia orientato agli oggetti non aiuta.
Inizierei con il C++. Permette di fare esercizi semplici di vario tipo senza dover smanettare troppo sulla teoria. Ovviamente alla fine non è semplice da comprendere a fondo come il C#, ma all'inizio semplifica solo.
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
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
Come linguaggio ho scelto il C# e su consiglio di una persona che lavora da anni nel settore, ho acquistato un libro inerente C# per capire le basi; lo sto leggendo con interesse (mi sembra ben fatto), alternandolo con tutorial di spiegazioni trovati su YouTube e reperendo informazioni su google per capire i concetti teorici.

Scrivo questo post perchè, dopo una settimana di lettura (che va a rilento perchè devo fermarmi a pensare, ragionare, cercare di capire la logica), videospiegazioni di YouTube e alcune stesure di righe di codice, noto che capisco il piccolo esercizio in se ma dopo, se provo a uscire dagli schemi per fare qualcosa che non è riportato nelle guide / esercizi, vado nel pallone, mi blocco delle mezz'ore per cercare la soluzione e la cosa mi fa sentire un po' ritardato. Vorrei capire un attimo con quale approccio dovrei gestire la situazione.

Se hai iniziato solo da una settimana, prosegui. In pratica è come se non avessi iniziato.
E' giusto così, devi sviluppare capacità di problem solving differenti, cambiare alcuni tuoi schemi (ed il fatto che non sei più un giovincello di certo può rallentarti un pò :hihi:).
Studiare e fare pratica sono gli unici due suggerimenti sensati che mi sento di darti: stai attento a YouTube, ci sono cose buone, ma tante da evitare.

Voi ricordate quando è stata la prima volta che vi siete avvicinati alla programmazione? Com'è stato? Come vi siete comportati davanti ai problemi? E' solo una questione di tempo / pratica quindi tutti prima o poi riescono a diventare bravi o ci sono delle eccezioni?

Tutti i programmatori non sono bravi allo stesso livello, questo è sicuro (discorso che estenderei ai laureati); io programmo da qualche annetto (11-12), ma non sono ancora bravo. :D
Il tempo certamente è un fattore importante: come dicevo sopra, una settimana è niente. Ci devi sbattere la testa. Anche quando avrai esperienza incontrerai problemi che ti faranno pensare per ore o giorni (progettando e poi scrivendo codice).

Tutto questo nasce dal fatto che, stando a quello che ho studiato sul libro, dovrei essere in grado di gestire bene le variabili, gli operatori aritmetici, l'istruzione IF e i cicli FOR, WHILE e DO-WHILE; il problema arriva quando devo mettere insieme tutte queste cose per realizzare un programmino per completare le esercitazioni e non capisco se impiegare un sacco di tempo per far funzionare tutto, sia normale. Considerando che queste sono le basi e mi aspettano ancora una miriade di argomenti.

Qual'è il metodo corretto da seguire e passare da "Aiuto, non ci capisco niente, come faccio, mi scoppia la testa" a "Eh dai, non è poi così male".

Cerca esercizi in rete; sui forum di qualche anno fa (ora inattivi) ne troverai ancora una miriade. Ci sono anche dispense universitarie ed esercizi di scuola superiore.
Io ho iniziato da Java, e da autodidatta. Java è simile a C# sotto molti aspetti, compresa la verbosità, come dice Achille. Programmazione ad oggetti o no, alla fine l'importante è sviluppare la giusta mentalità, impostare i ragionamenti etc etc. Probabilmente ci vorrà 2 o 3 volte il tempo che impiegheresti con un linguaggio come Python, ma tutto ha pro e contro.

Prosegui con C# e abbi fede.

Ps. ci sono comunque almeno quattro o cinque topic sull'argomento, se cerchi sul forum trovi altri consigli dati ad altri.
 
  • Mi piace
Reazioni: Auronzolo

Auronzolo

Utente Attivo
1,072
119
CPU
Ryzen 5 1600
Dissipatore
Stock
Scheda Madre
AsRock AB350 Pro 4
HDD
1x SSD SanDisk Extreme 500 GB - 1x Seagate 500GB 3.5" 7200rpm 16MB SATA3 - 1x SSD Samsung 840 Pro
RAM
2x Corsair Vengeance LPX 8GB 3000mhz DDR4
GPU
GTX 1080 Phoenix Gainward
Audio
Sound Blaster Z
Monitor
LG 27GL850 27" QHD
PSU
XFX XTR 550w Gold
Case
Phanteks P400 Tempered Glass
Periferiche
Tastiera: TTesports - Mouse: Logitech G403 Prodigy - Cuffie: DT 990 Pro
Net
Fibra
OS
Windows 10 Pro 64 Bit
Se hai iniziato solo da una settimana, prosegui. In pratica è come se non avessi iniziato.
E' giusto così, devi sviluppare capacità di problem solving differenti, cambiare alcuni tuoi schemi (ed il fatto che non sei più un giovincello di certo può rallentarti un pò :hihi:).
Studiare e fare pratica sono gli unici due suggerimenti sensati che mi sento di darti: stai attento a YouTube, ci sono cose buone, ma tante da evitare.



Tutti i programmatori non sono bravi allo stesso livello, questo è sicuro (discorso che estenderei ai laureati); io programmo da qualche annetto (11-12), ma non sono ancora bravo. :D
Il tempo certamente è un fattore importante: come dicevo sopra, una settimana è niente. Ci devi sbattere la testa. Anche quando avrai esperienza incontrerai problemi che ti faranno pensare per ore o giorni (progettando e poi scrivendo codice).



Cerca esercizi in rete; sui forum di qualche anno fa (ora inattivi) ne troverai ancora una miriade. Ci sono anche dispense universitarie ed esercizi di scuola superiore.
Io ho iniziato da Java, e da autodidatta. Java è simile a C# sotto molti aspetti, compresa la verbosità, come dice Achille. Programmazione ad oggetti o no, alla fine l'importante è sviluppare la giusta mentalità, impostare i ragionamenti etc etc. Probabilmente ci vorrà 2 o 3 volte il tempo che impiegheresti con un linguaggio come Python, ma tutto ha pro e contro.

Prosegui con C# e abbi fede.

Ps. ci sono comunque almeno quattro o cinque topic sull'argomento, se cerchi sul forum trovi altri consigli dati ad altri.

Grazie per il tuo contributo :) Si concordo anch'io che 30 anni non sono più un giovincello, più che altro dal punto di vista di apprendimento, riconosco che un conto è cominciare a 20 anni, la vita ti permette di avere ritmi diversi. A 30 una persona dovrebbe essere già formata.. Vedrò cosa posso fare. Da quando ho cominciato sono un po' ossessionato dall argomento, magari sto facendo dell altro e mi capita spesso di pensare a nozioni di programmazione, rielaboro concetti che magari ho appreso un paio d'ore prima.
Conosci una raccolta ben fatta di esercizi per sviluppare la logica utile alla risoluzione dei problemi? Divisa per livelli di difficoltà, dall esercizio più stupido e andando per gradi, diventando via via più complessi da risolvere.
 
U

Utente 16812

Ospite
Grazie per il tuo contributo :) Si concordo anch'io che 30 anni non sono più un giovincello, più che altro dal punto di vista di apprendimento, riconosco che un conto è cominciare a 20 anni, la vita ti permette di avere ritmi diversi. A 30 una persona dovrebbe essere già formata.. Vedrò cosa posso fare. Da quando ho cominciato sono un po' ossessionato dall argomento, magari sto facendo dell altro e mi capita spesso di pensare a nozioni di programmazione, rielaboro concetti che magari ho appreso un paio d'ore prima.
Conosci una raccolta ben fatta di esercizi per sviluppare la logica utile alla risoluzione dei problemi? Divisa per livelli di difficoltà, dall esercizio più stupido e andando per gradi, diventando via via più complessi da risolvere.

Leggi i miei interventi qui:
https://forum.tomshw.it/threads/gioco-di-snake-in-c.639967/post-6157025
https://forum.tomshw.it/threads/applicare-la-teoria-dei-linguaggi-informatici.621439/post-5956348
Dai un'occhiata anche al primo post, in cui evidenzio le 2 fasi della progettazione degli algoritmi, dal problema all'algoritmo e dall'algoritmo alla codifica: https://forum.tomshw.it/threads/imparare-a-programmare.549368/post-5183225;)
Premesso quanto sopra, Code.org potrebbe essere un buon punto di partenza (non farti ingannare dal suo aspetto "ludico", sotto sotto c'è JavaScript): https://studio.code.org/courses;)
https://it.khanacademy.org/ :)
https://www.html.it/programmazione/guide/ ;)
https://www.youtube.com/user/fcamuso
A presto :)

P.S. Ti consiglio infine il testo "How to think like a computer scientist" che prende spunto da Python per illustrare tutti i concetti chiave della programmazione:
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm :)
Post unito automaticamente:

Prova a "giocare" con https://www.codewars.com/ potrebbe esserti di aiuto.

Ah ah ah … bravissimo … :inchino:
A quello suggerito da te aggiungo anche alcuni "giochini":
https://codecombat.com/
http://lightbot.com/
https://codespark.com/
http://www.zachtronics.com/spacechem/
Ciao ;)
 
Ultima modifica da un moderatore:

Auronzolo

Utente Attivo
1,072
119
CPU
Ryzen 5 1600
Dissipatore
Stock
Scheda Madre
AsRock AB350 Pro 4
HDD
1x SSD SanDisk Extreme 500 GB - 1x Seagate 500GB 3.5" 7200rpm 16MB SATA3 - 1x SSD Samsung 840 Pro
RAM
2x Corsair Vengeance LPX 8GB 3000mhz DDR4
GPU
GTX 1080 Phoenix Gainward
Audio
Sound Blaster Z
Monitor
LG 27GL850 27" QHD
PSU
XFX XTR 550w Gold
Case
Phanteks P400 Tempered Glass
Periferiche
Tastiera: TTesports - Mouse: Logitech G403 Prodigy - Cuffie: DT 990 Pro
Net
Fibra
OS
Windows 10 Pro 64 Bit
Leggi i miei interventi qui:
https://forum.tomshw.it/threads/gioco-di-snake-in-c.639967/post-6157025
https://forum.tomshw.it/threads/applicare-la-teoria-dei-linguaggi-informatici.621439/post-5956348
Dai un'occhiata anche al primo post, in cui evidenzio le 2 fasi della progettazione degli algoritmi, dal problema all'algoritmo e dall'algoritmo alla codifica: https://forum.tomshw.it/threads/imparare-a-programmare.549368/post-5183225;)
Premesso quanto sopra, Code.org potrebbe essere un buon punto di partenza (non farti ingannare dal suo aspetto "ludico", sotto sotto c'è JavaScript): https://studio.code.org/courses;)
https://it.khanacademy.org/ :)
https://www.html.it/programmazione/guide/ ;)
https://www.youtube.com/user/fcamuso
A presto :)

P.S. Ti consiglio infine il testo "How to think like a computer scientist" che prende spunto da Python per illustrare tutti i concetti chiave della programmazione:
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm :)
Post unito automaticamente:



Ah ah ah … bravissimo … :inchino:
A quello suggerito da te aggiungo anche alcuni "giochini":
https://codecombat.com/
http://lightbot.com/
https://codespark.com/
http://www.zachtronics.com/spacechem/
Ciao ;)
Ottimo, ringrazio entrambi per le dritte :)
 
  • Mi piace
Reazioni: Utente 16812

stamp90

Nuovo Utente
77
11
Si ma, nonostante non abbia problemi con l'inglese, se fosse in Italiano il materiale lo preferirei... sarebbe più scorrevole. Per esempio, consigliate "Imparare a programmare con Python" di Boscaini?
 

pabloski

Utente Èlite
2,868
916

Dangel981

Nuovo Utente
2
0
Domanda da profano: è possibile diventare programmatore da autodidatta? Magari leggendo libri di programmazione e facendo pratica sul proprio computer? Quanti linguaggi e quali linguaggi di programmazione bisogna conoscere minimo per diventare bravi programmatori? Tre o quattro anni di intenso studio basterebbero per diventare un programmatore tale da poter essere assunto da un'azienda?
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
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
Domanda da profano: è possibile diventare programmatore da autodidatta? Magari leggendo libri di programmazione e facendo pratica sul proprio computer? Quanti linguaggi e quali linguaggi di programmazione bisogna conoscere minimo per diventare bravi programmatori? Tre o quattro anni di intenso studio basterebbero per diventare un programmatore tale da poter essere assunto da un'azienda?

Eh, giovane Padawan... :D

È possibile, ma vanno aggiunti vari "dipende".
Innanzitutto il settore: fare il programmatore web, lato backend, è diverso dallo scrivere applicazioni desktop e ancora di più lo è scrivere firmware.
Focalizzare il settore è il primo passo (dopo aver curiosato ovunque, per capire cosa sono i vari campi).

Se bastassero N linguaggi per essere "bravi programmatori" io e molti altri saremmo bravi. :P
Il linguaggio dipende in particolare dal tipo di applicazione che andrai a scrivere. Il settore è ovviamente un discriminante importante. Se lavori sul Web non ti serve conoscere C (ai fini pratici), mentre se scrivi firmware è indispensabile.

Io ne conosco alcuni, come C, PHP, Java, C++, assembly. La mera conoscenza non è sufficiente comunque, serve sviluppare la mentalità giusta, imparare a risolvere problemi etc etc.
È quindi molta pratica.

Il tempo dipende da te, dalla velocità di apprendimento e dal tempo dedicato.
Quanti anni hai?

Oltre ai linguaggi, ciascun settore richiede competenze anche teoriche particolari, che variano da architettura del calcolatore, OS, reti alla matematica, che attraversa in maniera trasversale molti campi.

Insomma, la risposta breve alla tua domanda iniziale è si, si può (io ne sono la prova), ma viste le competenze richieste, raggiungere alcuni obiettivi può essere molto arduo senza un percorso formativo di un certo tipo (università). Va da sé che secondo me rimane imprescindibile lo studio da autodidatta; di solito però se sei appassionato è una cosa che nasce prima dell'uni.

Se hai domande specifiche ti si può rispondere meglio. ;)
 
  • Mi piace
Reazioni: Andretti60

nostyn

Nuovo Utente
5
0
Una volta conclusa la lettura di "Il linguaggio C. Principi di programmazione e manuale di riferimento." di Dennis M. Ritchie, Brian W. Kernighan. (2018) ho intenzione di leggere altri testi per approfondire il linguaggio, le librerie standard, algoritmi ecc. Anche per quanto concerne la sintassi, il modo di ragionare, programmazione "avanzata".. Qualcosa da consigliare?
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili