1) meglio uno di quei libri (quale?) o la guida online per iniziare?
con la guida è facile capire subito e poi approfondire i dettagli
2) meglio C# o C++ ? sempre parlando per un futuro da programmatore visto che sono ancora un ragazzo (non conosco bene nessun altro linguaggio)
c++ è molto più usato e deve far parte delle conoscenze di un programmatore
c# è molto usato nelle pmi e soprattutto per il web
se parliamo di un futuro a livello professionale, i linguaggi che assolutamente si devono conoscere sono c, c++ e java
a cui vanno aggiunti c# perchè è richiesto in certi ambiti e objective-c perchè è il linguaggio su cui apple basa tutti i suoi sdk ( mi riferisco alla programmazione per mac, iphone, ipad, ecc... )
c e c++ svolgono una funzione didattica fondamentale e li trovi usati praticamente ovunque ( da soli o come spalla forte di altri linguaggi ) laddove è necessario scrivere codice performante....fai un gioco? sta sicuro che userai python, c#, pure java al limite, ma poi alcune parti saranno necessarimente in c++
fai un software per la gestione dei tabelloni ferroviari? avrai un bel programma java o altro, ma con un backend in c++
non parliamo poi dei settori in voga oggi e cioè la sicurezza e l'automazione, due settori in cui l'uso di c e c++ è fondamentale, come lo sono le conoscenze che essi apportano ( soprattutto nel campo della sicurezza )
poi c'è java che è il linguaggio per i middleware d'eccellenza...non esiste azienda al mondo in cui non giri un applicativo java
tieni però presente che il panorama dei linguaggi è in continua evoluzione e che le cose cambiano rapidamente....ad esempio php è risaputo essere il linguaggio preferito per il web dinamico, tuttavia oggi non gode di nemmeno la metà della reputazione di cui godeva solo 3-4 anni fa
e se guardi, ti accorgi che da più parti stanno spingendo html5 e javascript ( ad esempio windows 8 li userà per creare applicativi metro!!!! )....per i "più anziani" pensare che due linguaggi definiti giocattolo, fino ad un paio d'anni fa, possano diventare i protagonisti nel settore desktop e mobile, è incredibile....
eppure sta succedendo
il succo del mio ragionamento è che i linguaggi vanno e vengono e bisogna impararne vari lungo il percorso, non ci si può fermare mai....però tutti questi nuovi mirabolanti linguaggi si basano tutti, più o meno pesantemente, su c e c++ ( la sintassi soprattutto, certi costrutti, ecc... )
sono pochi i linguaggi che romporno con il duo c/c++....penso ad esempio a python o delphi
poi c'è un altro linguaggio che sta registrando molti consensi ed è google go....il vantaggio enorme di questo linguaggio, è che rende facilissima la programmazione multithread....se più in là ti troverai a scrivere programmi che usano thread o processi multipli, ti ritroverai a passare ore di panico e d'angoscia per trovare quell'assurdo bug che non fa funzionare il tutto
ebbene, con google go, questi bug sono un ricordo del passato