DOMANDA Imparare informatica da autodidatti

Stato
Discussione chiusa ad ulteriori risposte.

TheMagicGame

Nuovo Utente
16
2
Hardware Utente
CPU
Intel Core i7 7700k
Dissipatore
-
Scheda Madre
Asus ROG Strix Z270E
Hard Disk
3TB HDD + 256GB SSD
RAM
16GB DDR4
Scheda Video
NVIDIA GeForce 1080 ti
Monitor
Asus VX238H, 23'', FHD 1920x1080
Alimentatore
750W
Case
NZXT Noctis 450 ROG
Sistema Operativo
Windows 10
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.

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

Grazie mille in anticipo
 
Ultima modifica:
  • Mi piace
Reactions: Raptor95

sc0rp10n

Nuovo Utente
26
0
Hardware Utente
CPU
INTEL DUAL CORE E8500 3GHZ
Scheda Madre
ASUS P5Q SE
Hard Disk
1 DA 250GB E 1 DA 500 GB
RAM
2 CHANNEL FATALITY 2 GB
Scheda Video
NVIDIA GEFORCE GTX260 768 mb
Scheda Audio
8.1
Monitor
19"
Alimentatore
600 WATT
Case
vecchio del 2001
Sistema Operativo
winwos 7 32BIT
Libri? Odio leggere. Smanettato tanto . Quello che posso dirti io è cerca la cosa che ti piace e cresci su quello.
Però prova ad andare su YouTube , se sai cercare esce il mondo

Inviato da 5056X tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 

Hobet

Utente Attivo
609
222
Hardware Utente
CPU
i5 6600k
Dissipatore
AIO H100
Scheda Madre
ASUS z170 Deluxe
Hard Disk
1 WD Blue 1 TB; evo 850 500gb
RAM
Vengeance 4x4
Scheda Video
GTX 1070ti MSI
Scheda Audio
Nope
Monitor
MG278Q
Case
750D Corsair
Internet
Fastweb 200/30
Sistema Operativo
PucyBuntu
  • Mi piace
Reactions: Manuel Ferrari

TheMagicGame

Nuovo Utente
16
2
Hardware Utente
CPU
Intel Core i7 7700k
Dissipatore
-
Scheda Madre
Asus ROG Strix Z270E
Hard Disk
3TB HDD + 256GB SSD
RAM
16GB DDR4
Scheda Video
NVIDIA GeForce 1080 ti
Monitor
Asus VX238H, 23'', FHD 1920x1080
Alimentatore
750W
Case
NZXT Noctis 450 ROG
Sistema Operativo
Windows 10
Come sei messo con l'inglese?

Che ne dici di questa playlist dell'MIT intitolata Introduction to Computer Science and Programming? :)
Di inglese sono sono quasi B2 e a scuola facci informatica in inglese quindi abbastanza bene.
Grazie per il consiglio
 
Ultima modifica:

BAT00cent

Utente Attivo
997
424
Hardware Utente
Javascript per iniziare è una scelta senza senso, rimani su un linguaggio di programmazione convenzionate (C, C++, Java).
Ho dato un'occhiata alla funzione di test di primalità che hai scritto...
ad occhio "funzionicchia" ma è terribilmente inefficiente (non c'è alcun bisogno di fare tutte le divisioni fino a n): il test di primalità è un problema intrinsecamente serio dal punto di vista computazionale, nel senso che per numeri grandi richiede molto tempo di calcolo.
Programmare significa imparare a ragionare dal punto di vista algoritmico, e gli algoritmi devono anche essere efficienti;
Javascript non ti aiuta in questo, non è né carne né pesce, scegliti un linguaggio che ti "inquadri" e compra un libro di programmazione di base.
 
Ultima modifica:
  • Mi piace
Reactions: TheMagicGame

TheMagicGame

Nuovo Utente
16
2
Hardware Utente
CPU
Intel Core i7 7700k
Dissipatore
-
Scheda Madre
Asus ROG Strix Z270E
Hard Disk
3TB HDD + 256GB SSD
RAM
16GB DDR4
Scheda Video
NVIDIA GeForce 1080 ti
Monitor
Asus VX238H, 23'', FHD 1920x1080
Alimentatore
750W
Case
NZXT Noctis 450 ROG
Sistema Operativo
Windows 10
Javascript per iniziare è una scelta senza senso, rimani su un linguaggio di programmazione convenzionate (C, C++, Java).
Ho dato un'occhiata alla funzione di test di primalità che hai scritto...
ad occhio "funzionicchia" ma è terribilmente inefficiente (non c'è alcun bisogno di fare tutte le divisioni fino a n): il test di primalità è un problema intrinsecamente serio dal punto di vista computazionale, nel senso che per numeri grandi richiede molto tempo di calcolo.
Programmare significa imparare a ragionare dal punto di vista algoritmico, e gli algoritmi devono anche essere efficienti;
Javascript non ti aiuta in questo, non è né carne né pesce, scegliti iun linguaggio che ti "inquadri" e compra un libro di programmazione di base.
Python può andare bene?
 
  • Mi piace
Reactions: V&N0M

BAT00cent

Utente Attivo
997
424
Hardware Utente
Vanno benissimo Python, Java, C, C++, C# ma Javascript proprio no, a meno che tu non sia orientato sulla programmazione web (inizialmente soprattutto lato client)
 
Ultima modifica:
  • Mi piace
Reactions: V&N0M

TheMagicGame

Nuovo Utente
16
2
Hardware Utente
CPU
Intel Core i7 7700k
Dissipatore
-
Scheda Madre
Asus ROG Strix Z270E
Hard Disk
3TB HDD + 256GB SSD
RAM
16GB DDR4
Scheda Video
NVIDIA GeForce 1080 ti
Monitor
Asus VX238H, 23'', FHD 1920x1080
Alimentatore
750W
Case
NZXT Noctis 450 ROG
Sistema Operativo
Windows 10
A me hanno sempre detto che C è troppo difficile per cominciare, ma è vero?
 
Ultima modifica:

V&N0M

Nuovo Utente
A me hanno sempre detto che C è troppo difficile per cominciare, ma è vero?

Inviato da SM-A520F tramite App ufficiale di Tom\\\'s Hardware Italia Forum
No non e' difficile se spiegato bene, poi online troverai molto piu materiale rispetto a python, questo perche' C viene usato a scopo didattico nelle universita' e anche nei licei in alcuni casi (io ho fatto visual basic come primo linguaggio al tecnico commerciale)
 

BAT00cent

Utente Attivo
997
424
Hardware Utente
A me hanno sempre detto che C è troppo difficile per cominciare, ma è vero?
Il discorso non è così semplice;
se hai un buon insegnante, è suo compito dosare i concetti teorici e gli esercizi applicativi, in modo da assegnarti compiti ragionevolmente semplici/complicati senza dover per questo arrabbattarsi con le complicazioni intrinseche di ciascun linguaggio.
Se invece devi fare tutto da solo, dal punto di vista didattico è conveniente partire con Java, per il fatto che esegue automaticamente alcune operazioni che in C/C++ il neoprogrammatore deve gestire manualmente (e che gli procura grandi mal di testa perché vedrà molti programmi non funzionare anche quando il compilatore non gli segnala nessun errore).
A farla breve, è una questione di metodo; se vuoi cominicare con il C il libro suggerito da @Sinatrap va benissimo, a patto che tu non abbia fretta e che svolgi tutti gli esercizi suggeriti.
Se preferisci Java, suggerisco come sempre Programmazione di base e avanzata con Java di W. Savitch. Vale lo stesso discorso per gli esercizi.
Ti esorto a non dar retta ai saputelli di turno che ti dicono che i libri non servono tanto c'è tutto sul web: i libri servono eccome!
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando