Quote:
Originariamente inviato da pabloski
Algoritmi in C++ di Sedgewick scommetto 
|
No, non è quello! Il Sedgewick non è affatto sconosciuto!
Quote:
Originariamente inviato da pabloski
Comunque il problema l'hai inquadrato nella seconda parte, cioè riguardo il trovarsi davanti una classe di persone che, per forza di cose, non hanno nè la stessa propensione a maneggiare oggetti logici nè le stesse esperienze a riguardo.
|
Ma qui si parla di studio da autodidatta, si presuppone una buona dose di motivazione.
Quote:
Originariamente inviato da pabloski
[...]. Ma il punto era che l'esperienza col basic mi aveva reso capace di inquadrare immediatamente la soluzione ai problemi, di creare l'algoritmo nella mia testa ( niente diagrammi di flusso o scemenze ausiliarie ).
Arrivai al punto di criticare l'esistenza stessa di strumenti come i diagrammi di flusso, oppure la necessità di mettersi ad abbozzare su carta gli algoritmi.
Ma il punto è che lo faceva implicitamente il mio cervello!! E secondo me, il tuo caso è lo stesso. Tu vedi il problema e immediatamente, nella tua testa, crei l'algoritmo per risolverlo. A quel punto è banale tradurlo in qualsiasi linguaggio ( non banale per progetti di grandi dimensioni ).
Il punto è che chi non riesce nemmeno ad immaginarsi i passi astratti, si ritrovano buttato in un pozzo se gli chiedi pure di immaginarsi tutti i dettagli ( array allocati dinamicamente che svolazzano, puntatori che si perdono per strada, ecc... ).
|
Capisco. Rileggendo questa discussione mi rendo conto che forse non ho colto un aspetto. La semplicità del C per me è eleganza. È un linguaggio che va imparato rispettandolo. Altrimenti non serve a niente e anzi vieni punito con errori difficili da rintracciare. Non è un linguaggio che va studiato tanto per dire di conoscere il C.
Quote:
Originariamente inviato da DanieleC88
Perché, fondamentalmente, devi risolvere problemi: lo strumento con cui lo fai è un dettaglio. Per iniziare ad imparare come risolvere problemi, non vuoi (spero!) stare lì a sbatterti con malloc e free e manipolazione di "stringhe" (che in C non sono nemmeno un "first-class citizen", occhio).
Io ho iniziato dal BASIC, per poi passare ad Object Pascal e da lì al C. Avere iniziato con un linguaggio "giocattolo" non mi ha impedito di imparare tutto il resto e proseguire proficuamente con gli studi, anzi: ricordo che con Visual Basic era letteralmente un gioco da ragazzi sviluppare applicazioni grafiche, e non puoi capire la frustrazione di quando ho provato a rifare le stesse cose in C.
Posso dire di cavarmela molto bene col C, ma ciò non toglie che lo evito come la peste. Se proprio ho necessità di sviluppare in C, amen, ma altrimenti... 
|
Siamo tutti d'accordo che la produttività consentita dal C è bassissima rispetto ad altri linguaggi, e non lo usi se non devi scrivere un kernel o se non sei l'autore di git.

Ma non è questo il problema. Se l'obiettivo è scrivere immediatamente un'applicazione che faccia qualcosa, allora dato che stiamo parlando di Windows la mia risposta è secca: C# punto e basta, non c'è alternativa che tenga. Se la metrica è la produttività, anche un linguaggio come Python potrebbe andar bene, con le sue peculiarità tra cui essere interpretato.
Ma ripeto: secondo me l'obiettivo è un altro, è di tipo didattico, anzi
autodidattico. Io credo che il C consenta di comprendere cosa è un linguaggio di programmazione, cosa significa scrivere un sorgente, come funziona il colloquio tra uomo e macchina.
Comunque una cosa è chiara: si può continuare a discutere per giorni e giorni, magari anche mettendo in campo ragionamenti interessanti, ma...
(r3((h3: (un nick più umano no, eh!

) ormai ti sei fatto un'idea delle diverse idee :P quindi prendi il primo libro che ti ritrovi e inizia a studiare, che sia di C o di Python, senza farti troppi problemi. Se ti rendi conto che l'approccio è quello che desideri, bene; altrimenti cambi.