UFFICIALE Imparare a Programmare

Pubblicità
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".
 
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.
 
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.
 
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.
 
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 :)
--- i due messaggi sono stati uniti ---
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:
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 :)
--- i due messaggi sono stati uniti ---


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 :)
 
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?
 
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?
 
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. ;)
 
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?
 
Pubblicità
Pubblicità
Indietro
Top