Consigli per imparare informatica da autodidatta.

di il
26 risposte

Consigli per imparare informatica da autodidatta.

Salve a tutti, sono un ragazzo di 15 anni e vorrei chiedervi dei consigli.

Da più piccolo mi è sempre piaciuto usare computer e in generale dispositivi elettronici e mi sono fatto una cultura di base in informatica (come è formato e quali sono i componenti di un computer, cos'è un sistema operativo, cosa sono i server ecc...) da quest'anno però ho provato a iniziare a prendere la cose un po' più seriamente, così ho provato a programmare, ho scelto JS perchè dicono che è un linguaggio non molto difficile e ottimo per iniziare.

Per adesso sono ancora all'inizio ma ho provato a fare un programmino semplice che scomponga un numero in fattori primi.


HTML:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">

    <title>Scomposition</title>
  </head>

  <body>

    <h3 >Insert the number here:</h3>

    <input type="number" id="number" >

    <p>Click the button to scompose the number in prime numbers.</p>

    <button onclick="myFunction()">Scompose</button>

    <p id="demo"></p>

      <script>
        function myFunction() {
          var n = document.getElementById("number").value;
          var s = n + ' = ';

          function testPrime(n){if (n===1){return false;}
            else if (n === 2) {return true;}
            else {for(var x = 2; x < n; x++){if(n % x === 0){return false;}}return true;}};

         for (var i = 2; testPrime(i)||i < n||n % i === 0 ; i++) {while(n % i === 0) {n/=i; s+=i+'x'};};

         s=s.substring(0, s.length -1);
         document.getElementById("demo").innerHTML = s;
       }
     </script>

  </body>
</html>
L'unica cosa è che mi sento ancora poco preparato nelle basi di informatica (per esempio so come si accende un computer, cos' è il BIOS ecc... ma non so cosa siano le porte di un server o un TCP).

Potete per favore darmi dei consigli su cosa fare, eventuali libri da prendere ecc...

Grazie mille in anticipo

26 Risposte

  • Re: Consigli per imparare informatica da autodidatta.

    Che js sia semplice è discutibile. Personalmente lo odio. Punterei piuttosto su python. Come libro prenderei , che oltre al linguaggio include un'introduzione generale all'informatica (tant'è che adottato da alcune università nel primo corso di informatica).
  • Re: Consigli per imparare informatica da autodidatta.

    .
  • Re: Consigli per imparare informatica da autodidatta.

    Se vuoi fare qualcosa più di "artigianato informatico" ti serve avere delle solide basi... Ti scrivo una serie di libri che devi aver letto, almeno a mio parere.

    * the art of computer programming (knuth)
    * introduzione agli algoritmi (Corman)
    * automi, linguaggi e calcolabilita (MIT press)
    * la semantica formale dei linguaggi di programmazione (winskell)
    * structure and interpretation of computer program
    * Compilers: Principles, Techniques, and Tools (Aho)
    * reti di calcolatori (Tannenbaum)
    * basi di dati relazionali e a oggetti (Albano, ghelli)
    * sistemi operativi, progetto e implementazione (Tannenbaum)
    * understanding Linux kernel (O'Reilly)
    * mathematical foundation of information theory (chincin)
    * introduzione alla crittografia (Fabrizio Luccio)
    * Algebra (Herstein)
    * analisi (Enrico Giusti)
    * architettura degli elaboratori (vanneschi)
    * logica (Gianni Rigamonti)

    E questo è proprio il minimo teorico, almeno secondo me.
  • Re: Consigli per imparare informatica da autodidatta.

    Pardon, ho risposto senza leggere il post ma solo il titolo del thread, a 15 anni per quello che vuoi fare ti basta un qualsiasi buon libro su javascript e html.
  • Re: Consigli per imparare informatica da autodidatta.

    Ciao migliorabile, volevo fare una nota, javascript è molto bello e ha alcune caratteristiche del paradigma funzionale e in futuro ne avrà di più a quanto dicono le proposale stage 0 e 1 di ecmascript ma per ora è imperativo. Per accorgertene ti basti pesare che ha l'assegnamento, I linguaggi funzionali veri non possono averlo, vedi gnu Epsilon.Al massimo si può considerare un linguaggio a paradigma ibrido come ocaml
  • Re: Consigli per imparare informatica da autodidatta.

    .
  • Re: Consigli per imparare informatica da autodidatta.

    FabioBuono ha scritto:


    Se vuoi fare qualcosa più di "artigianato informatico" ti serve avere delle solide basi... Ti scrivo una serie di libri che devi aver letto, almeno a mio parere.

    * the art of computer programming (knuth)
    * introduzione agli algoritmi (Corman)
    * automi, linguaggi e calcolabilita (MIT press)
    * la semantica formale dei linguaggi di programmazione (winskell)
    * structure and interpretation of computer program
    * Compilers: Principles, Techniques, and Tools (Aho)
    * reti di calcolatori (Tannenbaum)
    * basi di dati relazionali e a oggetti (Albano, ghelli)
    * sistemi operativi, progetto e implementazione (Tannenbaum)
    * understanding Linux kernel (O'Reilly)
    * mathematical foundation of information theory (chincin)
    * introduzione alla crittografia (Fabrizio Luccio)
    * Algebra (Herstein)
    * analisi (Enrico Giusti)
    * architettura degli elaboratori (vanneschi)
    * logica (Gianni Rigamonti)

    E questo è proprio il minimo teorico, almeno secondo me.
    Mavviaaaa...
    Già solo col primo tagli fuori il 99%.
    Analisi? Algebra? Mettiamoci anche un corso per tortellini e piadina.
    Il mitico ma ormai vecchissimo Tannenbaum?

    Tornando alla domanda: javascript è palesemente una (schifezza,chiavica,porcheria,...) ma SOPRATTUTTO è quasi sempre usato in "combo" con le pagine HTML.
    Questo è devastante, a dir poco, in quanto insegna tutta una serie di cattivissime / pessimissimissime abitudini cui spesso è molto difficile liberarsi in seguito.
  • Re: Consigli per imparare informatica da autodidatta.

    Io non sono uno sviluppatore web, ma a me javascript server side piace molto e anche client side da quel poco che ho visto se usato bene, e ci sono tanti framework mvvm o mvc che permettono di usarlo bene. Comunque questione di gusti, secondo me. Una volta ti avrei dato ragione per la schifezza, ma ES6 ha rivoluzionato tutto. È un linguaggio strano, semplicissimo ma con cui puoi fare cose molto complesse ma anche schifezze, dipende da chi lo usa. Anche il Pascal sembra un linguaggio banale ma ci scrissero il primo Oracle (li era delphi, dello stesso creatore di c# e .net) ora è rimasto solo oracle sql developer in Delphi, Skype o Dreamweaver e tanta roba seria. Anche se ormai è in disuso. Però delphi nonostante fosse fatto molto bene è sempre passato con il pascal come linguaggio banale e anche il capo progetto di Microsoft Office è d'accordo con il mio punto di vista. Per esempio leggi "Joel e il software". Comunque punto di vista alla fine ogni cosa Turing completa è equivalente, si sceglie un linguaggio o un altro per quello che ci serve e per comodità /propensione/altro...
  • Re: Consigli per imparare informatica da autodidatta.

    Migliorabile a mio parere basato su categorie, come pure basato su prototipi è un sotto caso della programmazione a oggetti che comunque è un sotto paradigma. I paradigmi di programmazione da quello che so, almeno se il caro vecchio professor Giorgio Levi di Pisa nelle sue lezioni diceva il giusto, sono imperativo, funzionale e logico. Poi a oggetti, a prototipi, a contratto ecc sono sotto categorie che possono essere applicate a ogni macro paradigma. Sbaglio?
  • Re: Consigli per imparare informatica da autodidatta.

    FabioBuono ha scritto:


    Io non sono uno sviluppatore web, ma a me javascript server side piace molto e anche client side da quel poco che ho visto se usato bene, e ci sono tanti framework mvvm o mvc che permettono di usarlo bene. Comunque questione di gusti, secondo me. Una volta ti avrei dato ragione per la schifezza, ma ES6 ha rivoluzionato tutto. È un linguaggio strano, semplicissimo ma con cui puoi fare cose molto complesse ma anche schifezze, dipende da chi lo usa. Anche il Pascal sembra un linguaggio banale ma ci scrissero il primo Oracle (li era delphi, dello stesso creatore di c# e .net) ora è rimasto solo oracle sql developer in Delphi, Skype o Dreamweaver e tanta roba seria. Anche se ormai è in disuso. Però delphi nonostante fosse fatto molto bene è sempre passato con il pascal come linguaggio banale e anche il capo progetto di Microsoft Office è d'accordo con il mio punto di vista. Per esempio leggi "Joel e il software". Comunque punto di vista alla fine ogni cosa Turing completa è equivalente, si sceglie un linguaggio o un altro per quello che ci serve e per comodità /propensione/altro...
    1) Oracle non è stato minimamente scritto in delphi
    2) Lo uso dalla versione 2 fino a oggi, avendoci scritto circa 1,5 milioni di righe
    3) Per le applicazioni desktop il linguaggio è l'ultimo degli elementi significativi, basti vedere VB dove B sta per Beginner's All Purpose Symbolic Instruction Code
  • Re: Consigli per imparare informatica da autodidatta.

    A onor del vero esisterebbe anche un'altra classe, il Lisp, che rientra tra i linguaggi funzionali ma oggi è a ragione considerato una famiglia di linguaggi e secondo molti potrebbe quasi rappresentare un paradigma a sé, quello dei linguaggi a s-espressioni dove dati è codice non si davvero distinguono.
  • Re: Consigli per imparare informatica da autodidatta.

    Boh io sapevo che infatti l'avessero chiamato oracle proprio perché scritto in delphi... Ricordi la pubblicità di anni fa? " Delphi the way to Oracle " (gioco di parole su l'oracolo di delphi) ma forse mi sbaglio.
  • Re: Consigli per imparare informatica da autodidatta.

    FabioBuono ha scritto:


    Migliorabile a mio parere basato su categorie, come pure basato su prototipi è un sotto caso della programmazione a oggetti che comunque è un sotto paradigma. I paradigmi di programmazione da quello che so, almeno se il caro vecchio professor Giorgio Levi di Pisa nelle sue lezioni diceva il giusto, sono imperativo, funzionale e logico. Poi a oggetti, a prototipi, a contratto ecc sono sotto categorie che possono essere applicate a ogni macro paradigma. Sbaglio?
    Sbagli / sbaglia.
    Il "mondo", in realtà, è il linguaggio macchina, l'assembly se preferisci.
    Tutto il resto è costruito sopra, dalla ricorsione (che non esiste in realtà) in giù
    Ci sono più linguaggi che stelle nel cielo (...oddio... diciamo in termini figurati...), ma alla fin fine diventano tutti... carica il registro, scrivi nella locazione di memoria, sottrai qualcosa, salta-se-zero e così via.

    Se qualcosa la storia dell'informatica ha insegnato è che gli standard, per quanto pessimi, sono meglio del "nuovo" ma incompatibile.
    Che per cambiare uno standard con il "nuovo" quest'ultimo deve essere almeno due ordini di grandezza migliore, altrimenti rimarrà nell'oblio.

    C'è una lingua universale, l'esperanto, eppure nessuno (o quasi) lo usa.
  • Re: Consigli per imparare informatica da autodidatta.

    FabioBuono ha scritto:


    Boh io sapevo che infatti l'avessero chiamato oracle proprio perché scritto in delphi... Ricordi la pubblicità di anni fa? " Delphi the way to Oracle " (gioco di parole su l'oracolo di delphi) ma forse mi sbaglio.
    Direi che ti sbagli.
Devi accedere o registrarti per scrivere nel forum
26 risposte