Sono un programmatore che è ancora adolescente. Ho fatto un po 'di programmazione per un paio d'anni, ho iniziato su Ruby e in seguito sono passato a Python a causa della massiccia quantità di risorse di apprendimento lì. Non ho mai veramente creato qualcosa di utile con Python, ma mi sento come se avessi imparato una discreta quantità di principi di programmazione che attraversavano il Learn Python The Hard Way di Zed Shaw
.Negli ultimi mesi ho cercato oltre le lingue per imparare, poiché provavo una mancanza di interesse per Python. Alla fine ho deciso di voler imparare sia C # che Haskell come le mie prossime lingue. Mio fratello, un ingegnere del software, mi consiglia di non apprendere ancora Haskell, poiché pensa che mi farò inciampare con alcune delle idee ad esso associate, come se fosse pura. Inizialmente mi sarei limitato ad imparare C #, dato che ho alcuni libri su di esso e su framework come XNA, ma Haskell continua a trascinarmi indietro. Ho anche una copia di Learn You A Haskell per il grande bene che sembra un ottimo inizio per Haskell.
Mi sento come se potessi imparare C # insieme a Haskell allo stesso tempo, anche se potrebbe richiedere più tempo. Una delle mie preoccupazioni per non imparare C # velocemente è che con il ritmo veloce dello sviluppo di C # /. NET / XNA che i libri che ho saranno superati dal momento in cui sono veramente pronto ad usarli. (Non ho direttamente a che fare con C #, solo C # in Depth, un paio di ASP.NET e un libro XNA 4.0.) Inoltre, ho accesso a Visual Studio Ultimate, che sembra possa essere utile nell'apprendimento come programmare pur ottenendo l'accesso a Intellisense e ad altre funzionalità di VS.
Haskell d'altra parte sembra estremamente allettante in quanto sono davvero interessato ad alcune delle cose che è meglio, come algoritmi / problemi in siti come Project Euler. I vantaggi dell'apprendimento di due linguaggi paradigmatici molto diversi all'inizio della mia carriera di programmatore sembrano molto vantaggiosi.
La mia domanda è questa, sarebbe meglio (considerando la mia situazione) di imparare C # e scrivere alcuni programmi non banali, qualcosa che devo ancora fare davvero, quindi provare ad imparare Haskell e scrivere alcuni programmi in esso ? Oppure potrei apprendere in modo imparziale allo stesso tempo e allo stesso tempo essere fluente in entrambi e riuscire a scrivere progetti in entrambi?
Modifica: ho scelto la risposta di tdammers perché le domande rispondono per il fatto che ha riconosciuto entrambe le opzioni e ha fornito i motivi per cui entrambi potrebbero funzionare. In qualche modo sono d'accordo con Sayem, che in genere è meglio imparare solo una lingua e padroneggiarla. Tuttavia, ho anni prima che entrerò nel mondo del lavoro come programmatore, e dal momento che è una delle cose che amo di più, mi sento come se non fosse un fardello avere il tempo di imparare entrambi e padroneggiare entrambi contemporaneamente. Detto questo, potrei ancora scegliere di concentrarmi principalmente su una lingua e imparare l'altra dalla parte.
Modifica 2: ho scelto di imparare sia C # sia Haskell allo stesso tempo. Userò risorse online insieme a un paio di libri che ho. Di seguito è riportato un elenco delle risorse che utilizzerò per ciascuna lingua.
C # -
- Programmazione C # 4.0 - Ian Griffiths, Matthew Adams, e Jesse Liberty
- C # in profondità - Jon Skeet
-
Libri specifici del framework
- Programmazione XNA Game Studio 4.0 - Tom Miller & Dean Johnson
Haskell -
- Impara a conoscere Haskell per il meglio - Miran Lipovaca ( Anche disponibile gratuitamente online. )
- Ancora un altro tutorial Haskell - Hal Daume ( Versione Wiki trovata qui. )
- Real World Haskell - Bryan O'Sullivan, John Goerzen e Don Stewart ( Disponibile online qui )