Cosa studiare !?

di il
9 risposte

Cosa studiare !?

Ciao a tutti, ho imparato solo la programmazione in c++ top-down seguendo un libro, ho svolto tutti gli esercizi sono arrivato ai puntatori, e svolto alcuni esercizi per sfruttarli al meglio, la mia domanda è:
Inizio a studiare la OOP ?
Anche perchè non so cosa fare, una vocina in mente mi dice che esistono altre cose da fare prima della OOP , aiutatemi xD

9 Risposte

  • Re: Cosa studiare !?

    Dipende da quello che vuoi fare ma di sicuro non ti fa male
  • Re: Cosa studiare !?

    Intanto dovresti specificare di che testo si tratta. Come secondo step, leggi con attenzione questa bibliografia ragionata: per "imparare" un linguaggio come C++ occorre innanzi tutto studiare un notevole numero di testi, piuttosto eterogenei.
  • Re: Cosa studiare !?

    Il c++ è stato pensato per la programmazione ad oggetti (altrimenti mica l'avrebbero messa, avrebbero soltanto "aggiustato" il c) quindi se vuoi rimanere in questo linguaggio penso sia obbligatorio conoscerla.
  • Re: Cosa studiare !?

  • Re: Cosa studiare !?

    Sicuramente @M.A.W 1968 potrebbe essere piu' esauriente, ma siamo chiari, il linguaggio di programmazione e' solo una piccola parte delle conoscenze che un programmatore deve avere.

    Piu' che il linguaggio di programmazione, importante e' sapere che cosa e' un algoritmo, che cosa sono le strutture dati, QUALI SONO le proprieta' di algoritmi e strutture dati! Come funzionano gli algoritmi di ricerca e ordinamento.

    Proprio in questi giorni mi e' capitato di vedere del codice C# scritto da un consulente (e non una persona di primo pelo!!!! E si spaccia pure per professionista) in cui usava delle liste, con relativa ricerca sequenziale, quando la struttura dati adatta a quel lavoro era una mappa!!!!!

    In altri termini, uno che si vuole approcciare alla programmazione NON puo' non aver STUDIATO un testo come

    https://mitpress.mit.edu/books/introduction-algorithm

    (o testi simili).

    E questo SOLO PER INIZIARE, perche poi' di cose da sapere, ce ne sono decisamente tante. Ma solo per indicare alcuni che sono FONDAMENTALI:

    - programmazione parallela
    - database relazionali, SQL
    - programmazione di rete, TCP/IP, FTP, HTTP,...
    - XML, JSON
    - altri paradimi di programmazione (funzionale, logica, a regole, ...)
    - altri linguaggi di programmazione (Javascript, PHP, Java, C#, Python, Erlang, Haskell, ...)
    - ...

    A voglia

    @+m+ evita di dire sciocchezze, per favore!!!!
  • Re: Cosa studiare !?

    migliorabile ha scritto:


    @+m+ evita di dire sciocchezze, per favore!!!!
    Indica, per favore, quali sarebbero, a tuo parere, le sciocchezze che ho scritto.
    Talvolta mi capita di scriverle, nemo hominum quavis sapiens reperitur in hora, ma per l'informatica in media mi accade ogni 8 anni
  • Re: Cosa studiare !?

    +m+ ha scritto:


    ritengo che la situazione sia opposta: C++ è proprio un "aggiustamento" di C con l' "appiccicaticcio" di uno strato di oggetti (man mano evoluti dalle primissime versioni, si fa presto a dire C++ ma dalla prima versione autografata da Stroustrup di acqua ne è passata sotto i ponti). Cosa intendete per "aggiustamenti" del C?
    Nella mia piccola esperienza molti dei progetti sono stati sviluppati in C, spesso perchè si trattava di firmware e in questo campo il C fornisce tutto il necessario: altre volte è stato scelto il C++ quando la complessità del progetto lo richiedeva (e la costruzione di oggetti poteva agevolare lo sviluppo e la manutenzione). Quindi per me, e per le persone con cui ho lavorato, il C++ viene scelto rispetto al C per l'OOP e basta, non capisco quali siano questi "aggiustamenti" del C e ve lo chiedo solo per poter capire
  • Re: Cosa studiare !?

    candaluar ha scritto:


    +m+ ha scritto:


    ritengo che la situazione sia opposta: C++ è proprio un "aggiustamento" di C con l' "appiccicaticcio" di uno strato di oggetti (man mano evoluti dalle primissime versioni, si fa presto a dire C++ ma dalla prima versione autografata da Stroustrup di acqua ne è passata sotto i ponti).
    Cosa intendete per "aggiustamenti" del C?
    Nella mia piccola esperienza molti dei progetti sono stati sviluppati in C, spesso perchè si trattava di firmware e in questo campo il C fornisce tutto il necessario: altre volte è stato scelto il C++ quando la complessità del progetto lo richiedeva (e la costruzione di oggetti poteva agevolare lo sviluppo e la manutenzione). Quindi per me, e per le persone con cui ho lavorato, il C++ viene scelto rispetto al C per l'OOP e basta, non capisco quali siano questi "aggiustamenti" del C e ve lo chiedo solo per poter capire Sono abbastanza vecchio per "esserci" quando C++ non esisteva.
    Farne la storia è lungo, e di sicuro troverai su internet tutto quello che vuoi senza che debba riscriverla io.
    In supersintesi il buon Stroustrup, sull'onda dei vari OOP "veri" (es. Smalltalk) ha evoluto il C mettendoci sopra qualcuno dei concetti della programmazione ad oggetti.
    Inizialmente era proprio una schifezza (i primi compilatori C++, tanto per dire, non facevano altro che prendere il codice C++ e trasformarlo... in C... per poi compilarlo come C), parlo dei tempi grosso modo prima che mi iscrivessi all'università, fine '80

    Poi, mano a mano, ha iniziato a prendere piede (il C++) e da lì è stato evoluto con diverse versioni, che hanno introdotto tante belle cose, sempre "appiccicate" sulla fondazione C (per non perdere la retrocompatibilità).
    Hanno fatto un sacco di commissioni e sottocommissioni per stabilire cosa mettere "dentro", cosa lasciare "fuori", e cosa TENERE dentro (cioè dettagli davvero pessimi che però, tolti, avrebbero impedito la retrocompatibilità di progetti importanti).

    Gira che ti gira hanno avuto la brillante idea di aggiungere al linguaggio "base" (perchè abbiamo detto che NON si vuole/voleva cambiarlo troppo, per non "rompere" col passato) la mitica libreria standard (adesso sto banalizzando), spostando strutture dati non elementari, algoritmi, funzioni varie etc "fuori" dalla base.

    In tal modo C++ è ancora per la maggior parte compatibile col C (e gli stramiliardi di codici che lo usano), pur avendo cose "belle" tipo le stringhe etc, col "trucchetto".

    Poi man mano si son fatti prendere la mano introducendo aspetti del linguaggio cui, francamente, non interessa niente a praticamente nessuno (se non in qualche oscuro e del tutto inutile corso aaccademico), per arrivare a C++98 e C++11, che è da un lato molto simile al "vecchio" C++ anni '80, dall'altro ha tante belle cose e comode (e tante altre invece rimaste anche se deprecate).

    Qui ci vorrebbe la "storia" dei linguaggi di programmazione dal 1950 a oggi, con le varie "ere geologiche", le varie "mode" etc.

    Quindi, in supersintesi, C++ non aveva nulla di un "vero" linguaggio ad oggetti (quando è nato), ora ne ha un pochino in più (dopo una 20 ina di anni di evoluzione).
    Ma poi ci si è resi conto che un linguaggio "puro" non frega in realtà a (quasi) nessuno, e che anche se è bello e fico e tutto quello che vuoi, se nessuno lo usa, rimarrà una nicchia pressochè morta o moribonda.
    Mentre un "ibrido-bastardo" (come C++) fa il suo sporco lavoro, cioè funzionare ragionevolmente bene e ragionevolmente velocemente, con un'ottima retrocompatibilità (che in informatica è sacra, a parte per Apple)


    Poi fermiamo subito i flammoni sul perchè e percome un linguaggio è a oggetti, puro, ibrido, bastardo, in parte etc: sono tutti argomenti che si fanno (facevano?) all'università.
  • Re: Cosa studiare !?

    D'accordo, purtroppo (per l'età) anch'io ho seguito questa "storia".
    Il punto è che Çlÿkÿ~ ha detto
    avrebbero soltanto "aggiustato" il c
    e mi chiedevo cosa non andasse nel linguaggio C tale da richiedere un "aggiustamento"; evidentemente ho interpretato male le frasi.
    Siccome mi rendo conto di essere fortemente OT chiedo scusa e chiudo qui
Devi accedere o registrarti per scrivere nel forum
9 risposte