DOMANDA come iniziare per programmare

Stato
Discussione chiusa ad ulteriori risposte.

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Formalmente le differenze sono che i linguaggi di scripting operano:

1. in un ambiente runtime specializzato, quindi non quello fornito dal compilatore/sistema operativo ma cose tipo il dom di un browser o Unity o Blender
2. sono interpretati
3. eseguono task ad alto livello, quindi teoricamente cose come shift, operazioni aritmetiche sono vietate??

Python non ha i limiti descritti sopra, ma può operare in quel tipo di ambiente. Ma a parte qualche linguaggio di scripting di nicchia, ad oggi nessuno dei linguaggi maggiori ha quelle limitazioni.
Si, in pratica come lo pensavo anch'io.. il fatto che sia interpretato è intrinseco (condizione necessaria ma non sufficiente, appunto), la presenza di operatori aritmetici (quelli logici mi pare che ci siano anche nei linguaggi di scripting più vecchi) potrebbe essere una cosa in più.. ma ciò svincolerebbe praticamente tutti i linguaggi da questa classificazione!..

Poi, che python consenta di implementare algoritmi anche di considerevole complessità è abbastanza evidente.

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

Andretti60

Utente Èlite
6,440
5,091
Ok, concordo... ma allora qual'è la differenza tra un linguaggio di scripting è un linguaggio di programmazione?!? ...
A volte la differenza è netta, a volte no come nel caso di Python che nacque come scripting ma divenne multi uso, mentre invece per le varie shell dei sistemi operativi rimangono scripting. Vecchie definizioni non valgono più, tipo se il linguaggio sia interpretato o compilato. Adesso quello che conta maggiormente è l’uso che si fa di un linguaggio, scripting viene usato appunto per scrivere piccole applicazioni chiamate appunto scripting, che servono per automatizzare un processo del sistema operativo, per esempio automatizzare un sistema di backup, di installazione e di mantenimento di software e hardware del computer. VBA e Excel sono un classico esempio. Python adesso fa parte dei linguaggi chiamati “glue”, ossia che vengono usati come linguaggi di collegamento, come se fossero una colla, tra diversi moduli che fanno cose diverse. Quello è il compito in cui Python eccelle e per cui viene usato in ambiente professionale.
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Dopo lunghe dissertazioni su scripting & c. adesso ci mancava anche il "glue".. ma lasciar perdere tutti questi tentativi sterili di classificazione e chiamarlo "linguaggio di programmazione"? Come mai questa cosa disturba tanto?!?

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
  • Mi piace
Reazioni: Andretti60

Andretti60

Utente Èlite
6,440
5,091
Dopo lunghe dissertazioni su scripting & c. adesso ci mancava anche il "glue".. ma lasciar perdere tutti questi tentativi sterili di classificazione e chiamarlo "linguaggio di programmazione"? Come mai questa cosa disturba tanto?!?
...
Non sono assolutamente tentativi "sterili", sono tentavivi di creare una classificazione in modo da poter poi creare una definizione "formale" e poter scriverci sopra una teoria rigorosa. Come per esempio la differenza tra numeri reali e numeri immaginari: in questa maniera si costruisce una "disciplina" di studio (l'informatica nel nostro caso) che cerca di dare ordine ai concetti basandosi su una teoria astratta. Prendi per esempio i paradigmi di programmazione: se devo usare una tecnica di programmazione ad oggetto scelgo un linguaggio che supporta OOP. "Linguaggio di programmazione" era un termine che aveva senso negli anni settanta, adesso dobbiamo guardare e andare piu' in la' di quello se vogliamo che l'informatica possa venire considerata una "scienza" a tutti gli effetti.

Dobbiamo quindi mandare giu' il rospo. E anche chi comincia a programmare deve capire che esiste molto di piu' di quello che si impara scrivendo due programmini :) Conoscere come funziona un ciclo 'for' non e' abbastanza per scrivere un algoritmo di intelligenza artificiale, e' solo il punto di partenza di un lungo viaggio, per chi lo vuole intrappendere. Questa e' la grande differenza tra un semplice programmatore e un informatico, e l'importanza di una disciplina universitaria come la Scienza dell' Informazione.
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Non sono assolutamente tentativi "sterili", sono tentavivi di creare una classificazione in modo da poter poi creare una definizione "formale" e poter scriverci sopra una teoria rigorosa. Come per esempio la differenza tra numeri reali e numeri immaginari: in questa maniera si costruisce una "disciplina" di studio (l'informatica nel nostro caso) che cerca di dare ordine ai concetti basandosi su una teoria astratta. Prendi per esempio i paradigmi di programmazione: se devo usare una tecnica di programmazione ad oggetto scelgo un linguaggio che supporta OOP. "Linguaggio di programmazione" era un termine che aveva senso negli anni settanta, adesso dobbiamo guardare e andare piu' in la' di quello se vogliamo che l'informatica possa venire considerata una "scienza" a tutti gli effetti.

Dobbiamo quindi mandare giu' il rospo. E anche chi comincia a programmare deve capire che esiste molto di piu' di quello che si impara scrivendo due programmini :) Conoscere come funziona un ciclo 'for' non e' abbastanza per scrivere un algoritmo di intelligenza artificiale, e' solo il punto di partenza di un lungo viaggio, per chi lo vuole intrappendere. Questa e' la grande differenza tra un semplice programmatore e un informatico, e l'importanza di una disciplina universitaria come la Scienza dell' Informazione.
Ok prof.. leggi il post iniziale, basta teorizzare rigorosamente!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

pabloski

Utente Èlite
2,868
916
Beh direi che visto il post iniziale, il consiglio migliore è proprio un linguaggio "glue". Alla fin fine all'inizio conta la possibilità di poter esprimere le proprie idee in codice il più rapidamente possibile, con meno bug possibile, realizzando cose il più complesse possibile.

Con Python e QT puoi creare un programma bello complesso e con tanto di GUI "all'avanguardia". L'espressività è imho il fattore fondamentale. Basic aveva/ha un'elevata espressività, Python lo stesso. E il supporto ad un paradigma di programmazione diretto ( come quello procedurale ) è un aiuto ulteriore, perchè si presta all'utilizzo con una metodologia agile.

Per questo mi suona strano quando consigliano di cominciare col C. Non che sia sbagliato a prescindere, ma si pone di fronte allo studente un percorso più arduo. E per cosa? Col rischio che poi l'entusiasmo venga meno e si abbandoni tutto. Le finezze della macchina sono adatte a chi già mastica un bel pò di programmazione, non certo ai novellini. Non finirò mai di ricordare quanto piacevole, per me, sia stato il mio personale percorso: Basic -> Pascal -> Assembly e da lì il resto.
 

LillinoGamer

Utente Attivo
209
50
Io, quando andavo a scuola (ho finito quest'anno) mi hanno fatto cominciare dal c++ e quindi ti consiglio quello.
Chiaramente conosco solo le basi, i concetti più importanti del linguaggio sono sicuramente le istruzioni if-else, i cicli di ripetizione while, do while, for e poi i vettori.
 

clessidra

Utente Attivo
766
272
CPU
VIA C3
GPU
Ati Rage
OS
linux - Red Hat 1.1
c'è qualche guida online tipo libri,videoguida, per imparare sui linguaggi e imparare a programmare?! non dico di diventare un hacker professionista, però comunque mi piacerebbe saper programmare un minimo.
Partendo da questa premessa, e premettendo inoltre che non sono un programmatore professionista, io consiglio solo Python, giunto alla versione 3.x. Documentazione: c'è quella ufficiale, e online trovi altro materiale, sia buono, che cattivo (decisamente nell'uso delle classi). Hai scritto che hai già programmato con Excel, forse usando solo le formule nella barra delle formule, ma questo è già un punto di partenza. Se ritieni che queste basi siano sufficienti allora puoi già iniziare con Python. Io ti suggerisco questo link:
https://docs.python.org/3/tutorial/index.html
per iniziare col piede giusto, anzi...
Suggerisco Python perchè non necessita di compilazione, il codice che scrivi e che vedi è immediatamente eseguibile, non ti lascia dubbi interpretativi ed è veramente un linguaggio di programmazione potente e completo.
 

TerrorUberAlles

Nuovo Utente
127
39
Se il tuo scopo è buttar giù linee di codice che facciano cose va di Python o Js (ci tiri fuori cose interessati pur non sapendone minimamente di programmazione); se invece sei interessato a capire a fondo i fondamenti della programmazione ti conviene partire dagli anni '70 con Pascal o C (più che altro per apprezzare l'evoluzione di linguaggi e compilatori) per poi transire ad un java/c++ a quel punto hai tutte le conoscenze di base per comprendere qualsiasi linguaggio.
 
  • Mi piace
Reazioni: Andretti60

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Beh direi che visto il post iniziale, il consiglio migliore è proprio un linguaggio "glue". Alla fin fine all'inizio conta la possibilità di poter esprimere le proprie idee in codice il più rapidamente possibile, con meno bug possibile, realizzando cose il più complesse possibile.

Con Python e QT puoi creare un programma bello complesso e con tanto di GUI "all'avanguardia". L'espressività è imho il fattore fondamentale. Basic aveva/ha un'elevata espressività, Python lo stesso. E il supporto ad un paradigma di programmazione diretto ( come quello procedurale ) è un aiuto ulteriore, perchè si presta all'utilizzo con una metodologia agile.

Per questo mi suona strano quando consigliano di cominciare col C. Non che sia sbagliato a prescindere, ma si pone di fronte allo studente un percorso più arduo. E per cosa? Col rischio che poi l'entusiasmo venga meno e si abbandoni tutto. Le finezze della macchina sono adatte a chi già mastica un bel pò di programmazione, non certo ai novellini. Non finirò mai di ricordare quanto piacevole, per me, sia stato il mio personale percorso: Basic -> Pascal -> Assembly e da lì il resto.
Ma certo, io la penso proprio come te. Il concetto di espressività che hai nominato mi piace molto. Il fatto è che, come dicevamo sopra, Python è assolutamente pratico da utilizzare da subito con soddisfazione.

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3

Andretti60

Utente Èlite
6,440
5,091
Per questo mi suona strano quando consigliano di cominciare col C. Non che sia sbagliato a prescindere, ma si pone di fronte allo studente un percorso più arduo. ...
Questo te lo posso spiegare io.
C’e Differenza tra l’imparare a programmare da soli, per svago o per uno scopo specifico, e invece usare un linguaggio per studiare Scienza dell’Informazione (informatica) a scuola. Nel caso scolastico, il linguaggio C rimane tra i preferiti perché è rigorosamente formale e permette di affrontare concetti tipici dell’informatica, primo tra i quali la allocazione di memoria, che rimane uno dei capisaldi del C/C++ e il motivo per cui questi linguaggi siano ancora i preferiti per chi scrive applicazioni embedded, device drivers e dove occorra un diretto accesso e controllo dell’uso della memoria.
Per imparare a scrivere un programmino e i rudimenti della programmazione, anche io consiglio Python o Java.
 

TerrorUberAlles

Nuovo Utente
127
39
Non è che per imparare Java devi conoscere il Fortran! Deve imparare a programmare, non la storia della programmazione!


Inviato dal mio Nexus 5 utilizzando Tapatalk

No certo ma partire da c ti permette di apprezzare quello che java ti offre a gratis. Almeno io a livello accademico imparai java per poi passare a c e rimpiango di non aver seguito il percorso opposto.

Inviato da STF-L09 tramite App ufficiale di Tom\'s Hardware Italia Forum
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
No certo ma partire da c ti permette di apprezzare quello che java ti offre a gratis. Almeno io a livello accademico imparai java per poi passare a c e rimpiango di non aver seguito il percorso opposto.

Inviato da STF-L09 tramite App ufficiale di Tom\'s Hardware Italia Forum
Sono due paradigmi diversi: molto più probabile che lo aiuti a fare confusione...

e poi che stress! Se fossi un principiante che vuole imparare con l'unico scopo di divertirmi a programmare, solo l'idea di dover usare Java, o anche C, mi deprime! Partire con Python è decisamente più easy

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!