Con quali linguaggi di programmazione mi consigliate di iniziare?

Sono nuovissimo e vorrei iniziare con un linguaggio semplice.

Quale mi consigliate?

10 risposte

Classificazione
  • 6 mesi fa

    Il C ti insegna le basi della programmazione ed è il padre di tutti i nuovi linguaggi. Se capisci il C, arrivi ovunque.

    Per imparare il Java devi avere delle conoscenze pregresse, anche perché è a oggetti.

    Il C ha pochi e semplici comandi, ma ti insegna ad arrangiarti. Infatti devi lavorare di più e non ti dà la pappa pronta.

    Il Python é facilissimo, ma è praticamente un linguaggio wrapper del C. Infatti il 99% delle sue librerie sono scritte in C e il compilatore è completamente scritto in C.

    E comunque con il Python impari a fare le cose senza ragionare. Hai già tutte le librerie pronte all'uso

    Impara il C e poi il resto. Tra l'altro il C è il linguaggio più performante che ci sia.

    Permette di lavorare a basso livello con una sintassi di alto livello

  • 6 mesi fa

    Esistono due scuole di pensiero: quelli che iniziano da C e quelli che iniziano da Python, Java, etc.

    Secondo me è meglio la vecchia scuola, quella che ti fa iniziare da C, perché C è un linguaggio di programmazione che ti rende versatile e ti aiuta ad imparare gli altri linguaggi.

  • 4 mesi fa

    il linguaggio c

  • 2 mesi fa

    Nella sua opera "magna", The Art Of Computer Programming, Knuth, per evitare di ancorare il lettore a questo o quel linguaggio mentre spiegava cose che sono trasversali a qualunque linguaggio, si è inventato un assembly (linguaggio macchina), MMIX, e gli algoritmi sono scritti in tale linguaggio di basso livello.

    È un approccio che ha senso quando si vogliono imparare gli algoritmi e le strutture dati fondamentali, ma in generale questi si possono imparare con qualunque linguaggio di programmazione, che è solo un mezzo per “vedere” un concetto.

    Imparare un linguaggio di programmazione e imparare a programmare sono due cose diverse. Per imparare a programmare serve un linguaggio di programmazione, ma nessuno dice che questo linguaggio debba esistere. Per verificare che il codice scritto faccia ciò che pensiamo che faccia, è utile che il codice sia eseguibile (Knuth scrisse un simulatore di MMIX allo scopo), ma non è strettamente necessario in quanto la nostra mente è in grado di “simulare” l'esecuzione di ciò che abbiamo scritto; ed è così che un programmatore si può accorgere del fatto che del codice sia sbagliato ancora prima che tale codice venga eseguito dal computer. (Non tutti gli errori, purtroppo, sono facili da vedere, però…)

    Con questo discorso voglio dire che se stai imparando a programmare non penso che faccia tutta questa differenza: i concetti base appresi usando un linguaggio devono poter essere usati anche in un altro linguaggio di programmazione.

    Ciò detto, un linguaggio spoglio come MMIX, o come il C che qualcuno ti suggerisce, sicuramente ti costringe a fare più lavoro mentale, ginnastica molto utile. Linguaggi con più “utilità” già incorporate, però, non ti impediscono di fare altrettanto. Per esempio il Python ha il tipo dictionary (una mappa chiave-valore); in C lo devi implementare (e qui si apre un mondo grande che riguarda la teoria, necessaria, per poter scrivere un'implementazione efficiente)… ma se l'esercizio è implementare una hashtable, puoi farlo anche il Python: basta che ti dai dei limiti e decidi di non usare certe funzionalità già pronte.

    In linguaggi come il Python non ti dovrai confrontare con la gestione della risorsa memoria e con altri dettagli di basso livello. Se vuoi fare questa esperienza, devi scartare tutti i linguaggi che nascondono al programmatore le allocazioni dinamiche della memoria o che implementano un “garbage collector” (del codice che automaticamente restituisce la memoria di variabili non più usate al sistema operativo).

    Se vuoi vedere come fa il codice a interagire con l'hardware, devi scegliere un linguaggio più di "basso livello"… ma se vuoi scrivere programmi che girano su un sistema operativo, e non si tratta di driver, puoi tranquillamente scegliere linguaggi come Python, Ruby e altri.

    Ciò detto, molti suggeriscono di iniziare con il Python, e mi accodo a loro. Aggiungo che nessuno ti vieta di imparare altri linguaggi di programmazione dopo il primo, tra cui anche C, Java, C#, ecc.

    Voglio poi correggere alcune imprecisioni lette in altre risposte, onde evitare che si diffondano senza controllo.

    Il C non è il padre di tutti i linguaggi. Non esiste niente di simile. Esistono molti linguaggi che si sono ispirati alla sua sintassi. Ma ce ne sono altri che non l'hanno fatto, e tra questi c'è il Python.

    Non c'è differenza tra imparare il C, imparare Java, imparare Python: c'è sempre una cosa in comune: imparare. Non serve nessuna conoscenza pregressa per il Java: tutto ciò che ti serve sapere della programmazione a oggetti puoi impararlo proprio imparando Java, e hai così pure esempi pratici di concetti che altrimenti restano astratti. Java non è l'unico linguaggi OO (Object Oriented): anche il Python lo è. Molti linguaggi (tra cui anche Python e Java) sono in realtà multiparadigma, nel senso che non impongono per forza di cose di scrivere a oggetti.

    Che il Python sia «un linguaggio wrapper del C» è una sciocchezza. Il linguaggio è una cosa, l'implementazione di un interprete o di un compilatore per un linguaggio è un'altra cosa. L'interprete di riferimento del Python è scritto in C; non significa che il Python è uno «wrapper del C». Inoltre esistono altre implementazioni, p.es. IPython (Iron Python), scritto in C# (e quindi integrato con la piattaforma .NET), Jython (J Python) scritto in Java, …

    Un interprete o un compilatore di un linguaggio di programmazione X può essere scritto in qualunque linguaggio di programmazione (X incluso; in tal caso però serve "bootstrapparlo"), e mai ciò significa che il linguaggio X è uno “wrapper” del linguaggio in cui è scritto l'interprete o le librerie base del linguaggio.

    Come ho già scritto, è una sciocchezza; ed è senza senso.

    Sulle performance del C: essendo compilato e i compilatori C moderni sono bravissimi ad ottimizzare il codice per un processore target, è spesso più veloce dei linguaggi interpretati. Ma i linguaggi moderni raramente sono interpretati nel senso in cui lo erano 30 anni fa; con tecniche come compilazione JIT si possono ottenere performance prossime a quelle "native". Bisogna correggere due idee errate: una è che le performance dipendano dal linguaggio. Sbagliato: dipendono dall'interprete, o dal compilatore per i linguaggi compilati, di quel linguaggio. Un'altra idea è il chiodo fisso delle performance intese come uso della forza "bruta" del processore: pochissime applicazioni richiedono questo tipo di performance, e in moltissime applicazioni è meglio barattare un po' di “potenza” in cambio di maggiore facilità nello scrivere codice corretto e manutenibile.

  • Che ne pensi delle risposte? Puoi accedere per votare la risposta.
  • 3 mesi fa

    Linguaggio C. Con C impari tutti gli altri linguaggi

  • 4 mesi fa

    Tanti anni fa ho fatto un corso di programmazione  che usava il  "C", ricordo solo che mi piaceva tanto, molto logico.

  • Anonimo
    4 mesi fa

    Unix                 

  • 6 mesi fa

    io ho fatto prima c++ poi java e con quest'ultimo mi sono trovato meglio ma sono gusti...

  • 6 mesi fa

    di solito partono tutti dal c++ ma io ti consiglio vivamente python

    se no esiste anche l'html e il vhdl che non sono proprio linguaggi di programmazione ma di descrizione.

    esiste se no anche il visual basic e c#

    quelli che ti consiflio in ordine dal piu consigliato sl meno consigliato sono: python, c#,c++

    pee inziare

Altre domande? Fai una domanda e ottieni le risposte che cerchi.