Dato che mi hai citato, non posso fare a meno che essere gentile e dare una risposta esaustiva.
Prima di tutto, ti faccio riflettere: come hai imparato tu le lingue che conosci? Come hai imparato l'italiano? E lo spagnolo?
Sicuramente non le hai imparate così, all'improvviso.
La risposta è una sola: studiando ciò che c'era da studiare, esercitandoti e provando, provando e riprovando.
Bene, per un linguaggio di programmazione è valido lo stesso principio: è un linguaggio a tutti gli effetti, come se fosse un'altra lingua.
E, quindi, come imparo un'altra lingua? Studiando dai libri, esercitandomi nell'uso della stessa, provando finché non la padroneggio perfettamente.
Purtroppo - o per fortuna - bisogna studiare per apprendere.
Successivamente ti renderai conto come la sola conoscenza del linguaggio non basta, effettivamente, a renderti un programmatore. Avere buone basi logico/matematiche, buone doti di riflessione e problem solving sono un must have.
Una volta acquisite anche queste abilità, non ti resta che acquisire esperienza.
Una volta acquisito il tutto, potresti iniziare a definirti un "master" e fregiarti in quanto tale. Ma una volta acquisito, bisogna anche mantenerlo questo status. Per questo motivo, dovrai continuare ad aggiornarti e a studiare.
Per quanto riguarda i libri, posso consigliartene svariati: alla fine ne basterà comunque uno (o, al massimo, un paio se vuoi confrontare le nozioni). Se non ti piace rileggere le stesse nozioni da libri differenti (e cioè le variabili e i cicli di cui parlavi), basta saltare quei paragrafi.
Un libro che mi sento di consigliarti è sicuramente "C# 6.0 in a Nutshell" di Joseph e Ben Albahari (O'Really): puoi trovarne un assaggio qui (parla solo del multithreading) o acquistarne una copia qui (che è completa).
Altra serie di libri che mi sento di consigliare a chi inizia (per via dell'approccio molto "spensierato" e poco pesante) sono gli Head First, che puoi trovare qui.
Mi preme anche sottolineare che la conoscenza dell'inglese è obbligatoria in questo campo. Tutte le risorse/materiale migliori/e sono disponibili solo in questa lingua.
Infine, dato che hai chiesto anche il racconto del percorso personale di chi risponde, ti lascio qualche dettaglio su di me.
Io ho iniziato con il Pascal, a scuola. Ho poi proseguito con C e poi PHP negli anni delle superiori, per poi continuare con il C/C++, ASM e Java all'Università.
Mi avvicinai ad Irrlicht ed Ogre3D per un breve periodo, dato che lo sviluppo di videogame et similia mi aveva sempre affascinato fin da bambino: miravo dunque ad avvicinarmi a questo ramo.
Al C# mi sono avvicinato da auto-didatta durante il primo anno di Università, dato che mi interessava il mondo del .NET. Mi colpì estremamente come linguaggio (e il .NET mi colpì come framework), ne ho letto qualche testo (i due che ti ho citato, più vari spezzoni qua e là) e un'infinità di articoli, paper e materiale vario.
Sempre seguendo la passione di game developer, mi misi al lavoro con XNA (puoi trovare testimonianze di questo periodo anche qui sul forum, oltre ad altre guide e thread sempre realizzati da me riguardo le argomentazioni che ti ho già citato).
Misi le mani su Unity, infine, che mi permetteva di utilizzare il C# e mi permise di essere più produttivo.
Da qui in avanti è storia recente degli ultimi due anni.
Prima di tutto, ti faccio riflettere: come hai imparato tu le lingue che conosci? Come hai imparato l'italiano? E lo spagnolo?
Sicuramente non le hai imparate così, all'improvviso.
La risposta è una sola: studiando ciò che c'era da studiare, esercitandoti e provando, provando e riprovando.
Bene, per un linguaggio di programmazione è valido lo stesso principio: è un linguaggio a tutti gli effetti, come se fosse un'altra lingua.
E, quindi, come imparo un'altra lingua? Studiando dai libri, esercitandomi nell'uso della stessa, provando finché non la padroneggio perfettamente.
Purtroppo - o per fortuna - bisogna studiare per apprendere.
Successivamente ti renderai conto come la sola conoscenza del linguaggio non basta, effettivamente, a renderti un programmatore. Avere buone basi logico/matematiche, buone doti di riflessione e problem solving sono un must have.
Una volta acquisite anche queste abilità, non ti resta che acquisire esperienza.
Una volta acquisito il tutto, potresti iniziare a definirti un "master" e fregiarti in quanto tale. Ma una volta acquisito, bisogna anche mantenerlo questo status. Per questo motivo, dovrai continuare ad aggiornarti e a studiare.
Per quanto riguarda i libri, posso consigliartene svariati: alla fine ne basterà comunque uno (o, al massimo, un paio se vuoi confrontare le nozioni). Se non ti piace rileggere le stesse nozioni da libri differenti (e cioè le variabili e i cicli di cui parlavi), basta saltare quei paragrafi.
Un libro che mi sento di consigliarti è sicuramente "C# 6.0 in a Nutshell" di Joseph e Ben Albahari (O'Really): puoi trovarne un assaggio qui (parla solo del multithreading) o acquistarne una copia qui (che è completa).
Altra serie di libri che mi sento di consigliare a chi inizia (per via dell'approccio molto "spensierato" e poco pesante) sono gli Head First, che puoi trovare qui.
Mi preme anche sottolineare che la conoscenza dell'inglese è obbligatoria in questo campo. Tutte le risorse/materiale migliori/e sono disponibili solo in questa lingua.
Infine, dato che hai chiesto anche il racconto del percorso personale di chi risponde, ti lascio qualche dettaglio su di me.
Io ho iniziato con il Pascal, a scuola. Ho poi proseguito con C e poi PHP negli anni delle superiori, per poi continuare con il C/C++, ASM e Java all'Università.
Mi avvicinai ad Irrlicht ed Ogre3D per un breve periodo, dato che lo sviluppo di videogame et similia mi aveva sempre affascinato fin da bambino: miravo dunque ad avvicinarmi a questo ramo.
Al C# mi sono avvicinato da auto-didatta durante il primo anno di Università, dato che mi interessava il mondo del .NET. Mi colpì estremamente come linguaggio (e il .NET mi colpì come framework), ne ho letto qualche testo (i due che ti ho citato, più vari spezzoni qua e là) e un'infinità di articoli, paper e materiale vario.
Sempre seguendo la passione di game developer, mi misi al lavoro con XNA (puoi trovare testimonianze di questo periodo anche qui sul forum, oltre ad altre guide e thread sempre realizzati da me riguardo le argomentazioni che ti ho già citato).
Misi le mani su Unity, infine, che mi permetteva di utilizzare il C# e mi permise di essere più produttivo.
Da qui in avanti è storia recente degli ultimi due anni.