Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - cosa fare dopo aver studiato C?
Forum - C/C++ - cosa fare dopo aver studiato C?

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
alexxx99 (Ex-Member)
Newbie


Messaggi: 13
Iscritto: 03/09/2016

Segnala al moderatore
Postato alle 20:21
Giovedì, 01/12/2016
Salve da settimane ormai ho finito la programmazione in C sia a livello scolastico sia da autodidatta e durante tutto questo tempo mi sono aiutato con il manuale di Deitel sul C; adesso però sono davanti a un bivio e non so più come procedere infatti sono indeciso su queste scelte:
-Approfondire il linguaggio C con il Manuale di Brian Kernighan e Dennis Ritchie.
-Passare al C++ e quindi agli oggetti (in parallelo con le attività scolastiche su Java).
-Seguire il programma scolastico munendomi di un buon manuale Java per approfondire.

Qualcuno più esperto di me potrebbe illustrarmi quali sarebbero i vantaggi per ognuna delle precedenti scelte? Come dovrei procedere??:-?

Ultima modifica effettuata da alexxx99 il 01/12/2016 alle 20:22
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 20:49
Giovedì, 01/12/2016
Dipende, cosa ti interessa fare?
Secondo me il C dovrebbe saperlo ogni programmatore perché è diventata un po' una lingua franca.
Il C++ è un buon linguaggio sui cui arrovellarsi e sbattere la testa ma solo se ti piace, è molto complesso e pieni di dettagli.
Anche Java a suo modo è un po' una lingua franca, delle scimmie produttrici di codice.

Cosa sai del C? Cosa ti manca?

Tieni conto che una volta imparato il linguaggio, quello che conta è imparare concetti dell'informatica che non sono strettamente legati all'utilizzo di un linguaggio o un altro.


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:38
Giovedì, 01/12/2016
Sei sicuro di conoscere il C tanto da dire "ho finito la programmazione in C" ?

Forse avrai terminato la parte teorica ... ma sei sicuro di riuscire a lavorare tranquillamente su programmi complessi? Soprattutto con puntatori e algoritmi complessi?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Template (Member)
Pro


Messaggi: 177
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 21:40
Giovedì, 01/12/2016
Sai le basi del C?
Bene, compra il Kernighan-Ritchie: la parte finale su come davvero il codice viene letto dai compilatori è un'illuminazione.
Per imparare bene come funziona la libreria standard, puoi comprare il testo di Plauger (che mi pare si intitoli "The standard C library" o una cosa del genere).
Poi, dotati di una distro Linux e studia "Advanced programming in the UNIX environment" di Stevens-Rago: per la programmazione efficiente è imprescindibile conoscere le API dei sistemi operativi. In alternativa, se preferisci imparare in ambiente Windows puoi comprare "Windows system programming" di Hart.
Ancora, a tempo perso, dai una lettura a "Expert C programming" di Van Der Linden: non è un testo necessario, ma fornisce alcuni spunti di riflessione interessanti.


Tutto questo, ovviamente, partendo dal presupposto che tu conosca un po' di algoritmica generale: se così non fosse, il tuo primo acquisto dovrebbe ovviamente essere un testo come il Cormen-Leiserson-Rivest-Stein.

Ultima modifica effettuata da Template il 01/12/2016 alle 21:41
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 21:47
Giovedì, 01/12/2016
Testo quotato

Postato originariamente da Template:

Sai le basi del C?
Bene, compra il Kernighan-Ritchie: la parte finale su come davvero il codice viene letto dai compilatori è un'illuminazione.
Per imparare bene come funziona la libreria standard, puoi comprare il testo di Plauger (che mi pare si intitoli "The standard C library" o una cosa del genere).
Poi, dotati di una distro Linux e studia "Advanced programming in the UNIX environment" di Stevens-Rago: per la programmazione efficiente è imprescindibile conoscere le API dei sistemi operativi. In alternativa, se preferisci imparare in ambiente Windows puoi comprare "Windows system programming" di Hart.
Ancora, a tempo perso, dai una lettura a "Expert C programming" di Van Der Linden: non è un testo necessario, ma fornisce alcuni spunti di riflessione interessanti.


Tutto questo, ovviamente, partendo dal presupposto che tu conosca un po' di algoritmica generale: se così non fosse, il tuo primo acquisto dovrebbe ovviamente essere un testo come il Cormen-Leiserson-Rivest-Stein.



Sconsiglio il Cormen come testo introduttivo agli algoritmi, almeno senza un corso complementare, perché come testo è più un reference.

Riguardo al resto, boh, dipende da cosa vuole fare, non a tutti interessa fare programmazione di sistema.

Ultima modifica effettuata da lumo il 01/12/2016 alle 21:52
PM Quote
Avatar
alexxx99 (Ex-Member)
Newbie


Messaggi: 13
Iscritto: 03/09/2016

Segnala al moderatore
Postato alle 22:38
Giovedì, 01/12/2016
Innanzitutto sento in dovere di ringraziarvi per la disponibilità! :)

Testo quotato

Postato originariamente da nessuno:

Sei sicuro di conoscere il C tanto da dire "ho finito la programmazione in C" ?

Forse avrai terminato la parte teorica ... ma sei sicuro di riuscire a lavorare tranquillamente su programmi complessi? Soprattutto con puntatori e algoritmi complessi?



Precedentemente ho affermato di aver "finito" la programmazione in C per il fatto che con il Deitel e programmando in C le mie conoscenze sono passate da 0 a saper usare i puntatori e quindi anche le strutture ricorsive e infine le operazioni sui file; ovviamente tutto questo fatto a un livello base e non approfondito.
Sono a conoscenza del fatto che non ho assolutamente imparato tutto del C e proprio per questo ho chiesto se conviene leggersi la guida di Kernighan oppure passare subito ad altri linguaggi più moderni come lo sono C++ e Java.

Testo quotato

Postato originariamente da lumo:

Dipende, cosa ti interessa fare?
Secondo me il C dovrebbe saperlo ogni programmatore perché è diventata un po' una lingua franca.
Il C++ è un buon linguaggio sui cui arrovellarsi e sbattere la testa ma solo se ti piace, è molto complesso e pieni di dettagli.
Anche Java a suo modo è un po' una lingua franca, delle scimmie produttrici di codice.

Cosa sai del C? Cosa ti manca?

Tieni conto che una volta imparato il linguaggio, quello che conta è imparare concetti dell'informatica che non sono strettamente legati all'utilizzo di un linguaggio o un altro.



A volte sono molto interessato all'ottimizzazione del codice e quindi mi diverto a testare algoritmi pesanti e a cercare di capire come ridurre i tempi di esecuzione, tuttavia per il futuro sono interessato anche ad altri campi come ad esempio lo sviluppo di software con GUI e quindi più utili anche nella vita giornaliera.
_____________________________________________________________________________________
Dimenticavo... Sempre per il discorso dell'ottimizzazione sono anche interessato alla programmazione parallela sia sotto Linux (per ora ho solo inserito delle fork() ignorantemente) sia sotto Windows (non ho la minima idea di come si faccia :rotfl: )

Ultima modifica effettuata da alexxx99 il 01/12/2016 alle 22:55
PM Quote
Avatar
Template (Member)
Pro


Messaggi: 177
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 0:01
Venerdì, 02/12/2016
Testo quotato

Postato originariamente da alexxx99:
Dimenticavo... Sempre per il discorso dell'ottimizzazione sono anche interessato alla programmazione parallela sia sotto Linux (per ora ho solo inserito delle fork() ignorantemente)  



Fork? Benissimo... e la sincronizzazione la gestisci usando l'algoritmo di Peterson? E i segnali? E la IPC, con le pipe e tutto... perchè non passare ai thread? :rotfl:

Dai uno sguardo al libro che ti ho consigliato: se ti piace l'argomento, ti divertirai tantissimo ;)

MA PRIMA leggi bene il Kernighan-Ritchie e il Cormen(*): magari potresti imparare qualcosa delle API UNIX anche conoscendo solo superficialmente il linguaggio, ma per programmare come si deve occorre capire quale deve essere la forma mentis del programmatore, e questo solo un minimo di comprensione del "senso" del linguaggio e del ragionamento algoritmico possono insegnartelo... anche perchè il Deitel è deleterio, in questo senso.



(*)Il Cormen NON È un testo introduttivo, è vero, ma ha vari vantaggi rispetto, per esempio, al Sedgewick:

1 - Non propone gli algoritmi in C
2 - Spiega e dimostra il funzionamento degli algoritmi, il ragionamento che ci sta dietro e la loro complessità computazionale
3 - Contiene una quantità industriale di algoritmi, e di molti presenta versioni migliorate
4 - Propone alternative praticamente a qualsiasi scelta implementativa, analizzando dettagliatamente vantaggi, svantaggi ed applicabilità di ciascuna
5 - Propone una bibliografia sconfinata alla fine di ogni capitolo
[...]


Ultima modifica effettuata da Template il 02/12/2016 alle 0:02
PM Quote
Avatar
alexxx99 (Ex-Member)
Newbie


Messaggi: 13
Iscritto: 03/09/2016

Segnala al moderatore
Postato alle 11:09
Venerdì, 02/12/2016
Testo quotato

Postato originariamente da Template:

Fork? Benissimo... e la sincronizzazione la gestisci usando l'algoritmo di Peterson? E i segnali? E la IPC, con le pipe e tutto... perchè non passare ai thread? :rotfl:

Dai uno sguardo al libro che ti ho consigliato: se ti piace l'argomento, ti divertirai tantissimo ;)


Potresti spiegare meglio a quale libro ti riferisci? Me ne hai consigliati almeno 3.

Per quanto riguarda il Cormen ho provato a cercare in rete ma ho trovato diverse edizioni e versioni, a quale dovrei far riferimento?

In ogni caso credo che la miglior cosa da fare sia quella di approfondire il C almeno per altri 6 mesi mentre in parallelo studio Java a livello scolastico, dopo di che passerei a linguaggi moderni (credo C++).
Cosa ne pensate?
Grazie.

Ultima modifica effettuata da alexxx99 il 02/12/2016 alle 11:10
PM Quote
Avatar
Template (Member)
Pro


Messaggi: 177
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 11:51
Venerdì, 02/12/2016
Mi riferisco allo Stevens-Rago, che approfondisce la programmazione su sistemi UNIX-derivati.
Per quanto riguarda il Cormen, questo andrà benissimo: https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Pres ...

Circa il percorso: va bene approfondire il C, e Java ti tocca... ma per il momento io dimenticherei il C++, perchè già il C (che è tutt'altro che caduto in disuso) ti darà parecchio da fare :k:

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo