Domanda Percorso di studio C

nostyn

Utente Electrum
12 Gennaio 2017
284
25
83
126
Una volta conclusa la lettura di "Il linguaggio C. Principi di programmazione e manuale di riferimento." di Dennis M. Ritchie, Brian W. Kernighan. (2018) ho intenzione di leggere altri testi per approfondire il linguaggio, le librerie standard, algoritmi ecc. Anche per quanto concerne la sintassi, il modo di ragionare, programmazione "avanzata".. Qualcosa da consigliare?
 
Se posso darti un consiglio, non ne vedo la necessità.
1) La sintassi del C è quella che è. Una volta imparata hai finito, non c'è una sintassi avanzata.
2) Il modo di ragionare non lo impari di certo leggendo un altro libro sul C.
3) Non vedo l'utilità di conoscere tutte le librerie standard, quando ti servirà qualcosa cercherai e capirai come funziona.
4) Algoritmi, bene se vuoi imparare gli algoritmi ti consiglio di leggere Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Questo è veramente utile, è un libro che ogni programmatore dovrebbe leggere e capire interamente.
 
  • Mi piace
Reazioni: nostyn e Laempo
Per apprendere il modo di ragionare la cosa più conveniente da fare è guardare l'implementazione di programmatori più ferrati e vedere come organizzano loro il codice. Sviluppa prima la tua versione poi confrontala per renderti conto. È in questo modo che ti rendi conto di eventuali librerie standard che possono tornarti utili duranta la tua attività di sviluppo.
Per quanto riguarda gli algoritmi ti rimando a quanto detto da Closure. Il Cormen è un testo fantastico, troverai tutto spiegato dalle basi, senza aver necessità di conoscenze preliminari se non di un po' di concetti di programmazione semplici.
 
  • Mi piace
Reazioni: nostyn
4) Algoritmi, bene se vuoi imparare gli algoritmi ti consiglio di leggere Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Questo è veramente utile, è un libro che ogni programmatore dovrebbe leggere e capire interamente.

Il Cormen è un testo fantastico, troverai tutto spiegato dalle basi, senza aver necessità di conoscenze preliminari se non di un po' di concetti di programmazione semplici.

Sisi, avevo già dato un'occhiata al Cromen e avevo intenzione di acquistarlo. In piu' ho preso in considerazione anche questi altri:
Clean Code , Clean Architecture , Pragmatic Programmer . I primi due fanno parte della stessa collana e sono complementari. Cosa ne pensate?
 
Cosa ne pensate?
Clean Code e Pragmatic Programmer sono sicuramente da leggere, ma attenzione, sono due facce della stessa medaglia. Ciò che uno ti consiglia l'altro ti sconsiglia, quindi devi prendere con cautela le nozioni che ti danno e questo è dovuto al fatto che tra i due libri ci sono 10 anni di differenza, per cui gli usi e le tecnologie sono cambiate. Un buon 60% di pragmatic programmer è obsoleto. Clean Architecture tienilo per ultimo.
 
  • Mi piace
Reazioni: nostyn
Grazie mille, iniziero' da Clean Code e Introduzione agli Algoritmi allora.

dovuto al fatto che tra i due libri ci sono 10 anni di differenza, per cui gli usi e le tecnologie sono cambiate.
Eppure sono stati pubblicati nell'edizione corrente (almeno in lingua Italiana) a distanza di pochi mesi. :eek:

Hai avuto modo di leggerli tutti? Potresti riassumermi il "punto di forza" di ognuno di questi in una frase/parola?
 
Clean code è un libro che da dei principi per aumentare la produttività degli sviluppatori, la readbility dei loro codici, in quanto al lavoro tutti lavoriamo su snippets di tutti, e l'estendibilità.

Pragmatic Programmer, in entrambe le edizioni mantiene lo stesso scheletro, è più un libro da cultura personale, per farti degli esempi ti da continui esempi(in perl ed in bash) di come automatizzare l'input o i test su snippets(nel 2019 è altamente improbabile che utilizzerai questa metodologia al lavoro), ti da una visione di eccezione diversa da quella che ti da clean code ed è più improntato sulla programmazione difensiva.

Se dovessi fare un'estrema sintesi brutale dei due ti direi: Clean Code è più un libro da sviluppatori sul mondo del lavoro, Pragmatic Programmer è più da progettisti di API o studenti.

Ciò non vuol dire che l'uno prevale sull'altro o che uno dei due è da non leggere. È importante leggerli entrambi per vedere come le stesse cose vengono esaminate da diversi punti di vista a seconda degli scenari.
 
  • Mi piace
Reazioni: nostyn
Clean code è un libro che da dei principi per aumentare la produttività degli sviluppatori, la readbility dei loro codici, in quanto al lavoro tutti lavoriamo su snippets di tutti, e l'estendibilità.

Pragmatic Programmer, in entrambe le edizioni mantiene lo stesso scheletro, è più un libro da cultura personale, per farti degli esempi ti da continui esempi(in perl ed in bash) di come automatizzare l'input o i test su snippets(nel 2019 è altamente improbabile che utilizzerai questa metodologia al lavoro), ti da una visione di eccezione diversa da quella che ti da clean code ed è più improntato sulla programmazione difensiva.

Se dovessi fare un'estrema sintesi brutale dei due ti direi: Clean Code è più un libro da sviluppatori sul mondo del lavoro, Pragmatic Programmer è più da progettisti di API o studenti.

Ciò non vuol dire che l'uno prevale sull'altro o che uno dei due è da non leggere. È importante leggerli entrambi per vedere come le stesse cose vengono esaminate da diversi punti di vista a seconda degli scenari.
Grazie ancora ^-^ Avendo la tua attenzione, mi consigli una piattaforma tra tante (come hackerrank o anche di altro genere) per fare esercizio sulla sintassi? es. problem solving che coinvolge dichiarazioni complesse di puntatori ecc. Come anche qualche consiglio per fare pratica in generale, magari potrebbe essere produttivo partecipare a qualche progettino su GitHub (?)
 
Ultima modifica:
Ti consiglio tre cose:
1) Leetcode(ci sono le mock interview davvero utili, ma falle quando sarai veramente preparato) puoi seguire le "lezioni" e fare degli esercizi non banali, HackerRank non te lo consiglirei a meno che non vuoi intraprendere il ramo del competitive programmer;
2) Contribuisci a progetti open-source su github, trovi la bug list(issues) scegli qualcosa del tuo livello e invia una pull con il fix;
3) Avvia in parallelo un tuo progetto non banale che coinvolga il 100% delle tue conoscenze.

Comunque sia ho dimenticato di dirti la cosa più importante: se vuoi limitarti a studiare il C te ne fai relativamente poco dei suggerimenti che ti danno quei libri lì, in quanto sono per lo più suggerimenti orientati alla programmazione object oriented e processi produttivi di tipo Agile, in C vigono altre code conventions e principi.
 
  • Mi piace
Reazioni: nostyn
...se vuoi limitarti a studiare il C...
Tranquillo, ho studiato il C puntando al C++ per due ragioni: la prima e' che mi sto iscrivendo ad Ingegneria (Informatica) e la seconda invece e' che mi e' stato consigliato di studiare il C prima di passare al C++ anche per via del riutilizzo frequente che viene fatto del codice C.
A tal proposito mi consigli un testo completo per il C++? O una serie di testi che si compensino a vicenda. Mi e' stato consigliato il Primer, ma non e' aggiornato all'ultimo standard e non e' stato tradotto. Ora.. non sarebbe un problema per me doverlo leggere in inglese, ma credo che quel mattone sia ugualmente una lettura un po pesante (scusa il gioco di parole), e sicuramente qualcosa in lingua Italiana renderebbe lo studio piu' gradevole.
 
  • Mi piace
Reazioni: 0xbro
Una curiosità, cosa ti ha spinto a scegliere ingegneria informatica al posto di computer science?
Va bene il Primer, non fa niente se non è aggiornato all'ultimo standard. Prendilo in Inglese, leggi qualsiasi cosa in Inglese, guarda serie tv in Inglese, impara l'Inglese.
 
  • Mi piace
Reazioni: nostyn e 0xbro
Va bene il Primer...
Lo prendero' sicuramente, se state calcando cosi' tanto, non metto in dubbio che sia un ottimo testo e che non possa mancare nella mia libreria. Ci sono anche delle valide soluzioni Italiane o produciamo solo carta da ardere? ahaha

Una curiosità, cosa ti ha spinto a scegliere ingegneria informatica al posto di computer science?
Prima di tutto e' una questione di possibilita': sono della Campania, e qui non c'e nessun ateneo con questa facolta'. Mi sto diplomando da perito elettronico e credo che l'ingegneria informatica sia il percorso piu' affine con cio' che sto studiando, oltre al fatto che la magistrale offre anche sbocchi nell'ambito della robotica alla quale sono interessato. Avevo intenzione di fare la triennale qui alla Federico II e poi conseguire la magistrale al Politecnico di Milano.
 
Ci sono anche delle valide soluzioni Italiane o produciamo solo carta da ardere?
- Stroustrup, The C++ Programming Language - Special Edition, che è la versione corretta della terza edizione
- Eckel, Thinking in C++ volume 1 e 2
Non conosco il Primer quindi non so se consigliartelo o meno. Posso consigliarti, invece, caldamente lo Stroustrup.
 
  • Mi piace
Reazioni: nostyn
Thinking in C++ ce l'ho e non mi è proprio piaciuto, sia come struttura logica del libro che come struttura proprio fisica. Pagine leggerissime, tipo di carta velina, quasi trasparenti
Beh, per come sono allora non e' il caso ahahah per come sono delicato sarei capace di strappare le pagine senza nemmeno rendermene conto. :asd: