Dopo python a cosa potrei passare?

Matteo Basso

Utente Attivo
819
69
CPU
Intel i3 380m
Scheda Madre
Acer Aspire 5742G
HDD
HDD WDC WD5000BEVT-22A0RT0 500,1 GB
RAM
4GB ddr3 Samsung
GPU
NVIDIA GT 540M
Monitor
Asus VS197
Case
Acer Aspire 5742G
OS
Windows 7 e 10
Salve, ho appena "concluso" la programmazione in python ho messo "concluso" perché non ho fatto la gui. Dopo python a cosa potrei passare?
P.S: come linguaggio ho fatto solo python.

Inviato da SM-A600FN tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Ultima modifica:

Andretti60

Utente Èlite
6,440
5,091
Mi piace che hai messo “concluso” tra virgolette ;)
Prima di “passare” ad altro, che programmi in Phyton hai scritto?
 

Matteo Basso

Utente Attivo
819
69
CPU
Intel i3 380m
Scheda Madre
Acer Aspire 5742G
HDD
HDD WDC WD5000BEVT-22A0RT0 500,1 GB
RAM
4GB ddr3 Samsung
GPU
NVIDIA GT 540M
Monitor
Asus VS197
Case
Acer Aspire 5742G
OS
Windows 7 e 10
Dai dati in input alla gestione dei file. Ho fatto anche programmazione ad eventi, un po' di matematica, la conversione da binario a decimale e le alte..., controllo dato in input ed eccezioni, creazione di funzioni con def.Il programma più lungo che ho scritto è stato di 135 righe di codice...era un gioco ma a riga di comando in quanto come ho detto non ho fatto la gui.

Inviato da SM-A600FN tramite App ufficiale di Tom\'s Hardware Italia Forum
 

Andretti60

Utente Èlite
6,440
5,091
Bene, lascia stare la GUI in Python, non ne vale la pena.
A cosa sei interessato? È il solo linguaggio che hai studiato?
 

Matteo Basso

Utente Attivo
819
69
CPU
Intel i3 380m
Scheda Madre
Acer Aspire 5742G
HDD
HDD WDC WD5000BEVT-22A0RT0 500,1 GB
RAM
4GB ddr3 Samsung
GPU
NVIDIA GT 540M
Monitor
Asus VS197
Case
Acer Aspire 5742G
OS
Windows 7 e 10

Andretti60

Utente Èlite
6,440
5,091
Direi che hai due possibilità, entrambi con le loro difficoltà.
Innanzi tutto Python è essenzialmente uno script language, va bene per piccole applicazioni dove si richiede qualcosa di più che un semplice linguaggio di comando. Ha il vantaggio di essere gratuito e girare su ogni piattaforma, ed è ottimo per utilizzare librerie di applicazioni quando non c’è bisogno di molta programmazione (per questo viene anche chiamato “glue language” proprio perché funziona come collante). JavaScript è molto simile.
Se sei pronto a un “vero” linguaggio di programmazione, direi che tu abbia due scelte, C o Java. Entrambi trovi compilatori gratuiti per ogni piattaforma.
C è un linguaggio storico molto potente, strettamente procedurale, viene ancora usato tantissimo ed è praticamente indispensabile dove sia richiesta efficienza, velocità e poca richiesta di memoria (tipo applicazioni embedded). Ma è anche un linguaggio “datato” e all’inizio risulta ostico per il suo massiccio uso di puntatori di memoria (ogni cosa viene con il suo prezzo).
Al contrario, Java è un linguaggio moderno pensato essenzialmente per OOP, quindi devi imparare subito il concetto di Classe.

questi sono i miei consigli, ormai i linguaggi di programmazione stanno proliferando come funghi e si stanno specializzando in campi diversi. Un professionista deve conoscerne una bella collezione per il suo lavoro (io sono software engineer, da più di trenta anni ormai).
Nelle discussioni in rilievo trovi suggerimenti sia su come imparare a programmare che sui manuali, ti consiglio di iniziare a leggere quelle.

buona fortuna!
 
  • Mi piace
Reazioni: Moffetta88

ilfe98

Moderatore
Staff Forum
Utente Èlite
3,052
1,278
CPU
Intel i7 7700K
Dissipatore
Bequiet Dark rock pro 4
Scheda Madre
Msi pc mate z270
HDD
Seagate barracuda 1tb, silicon power NVME 500gb
RAM
Patriot viper steel 3733Mhz
GPU
Inno 3d gtx 1080 herculez design
Monitor
Asus mg279q
PSU
Corsair HX750
Case
Itek lunar 23
Net
Tiscali ftth
OS
windows 10,mint,debian,Arch linux
Anche a me hanno insegnato partendo dalla vecchia leva, il c. La comprensione che mi ha dato è sicuramente solida. Potresti anche optare sul c++, è comunque un linguaggio procedurale, ma ha caratteristiche oop.
 
  • Mi piace
Reazioni: Moffetta88

Matteo Basso

Utente Attivo
819
69
CPU
Intel i3 380m
Scheda Madre
Acer Aspire 5742G
HDD
HDD WDC WD5000BEVT-22A0RT0 500,1 GB
RAM
4GB ddr3 Samsung
GPU
NVIDIA GT 540M
Monitor
Asus VS197
Case
Acer Aspire 5742G
OS
Windows 7 e 10
Ok, grazie di tutto

Inviato dal mio SM-A600FN utilizzando Tapatalk
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,222
1,853
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Aggiungo anche la mia esperienza personale.
Io iniziai da Java, ma al contrario tuo partivo da zero. Java è un linguaggio che ti "sbatte" da subito in faccia la OOP oltre che la sua verbosità; ma l'ho amato anche per questo.
Java:
class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Questo Hello World racchiude già tante cose, che vedrai in molte pagine del libro che seguirai (se inizierai da Java): la parola chiave public, la parola chiave static il tipo di ritorno del metodo (void) e il concetto di classe.
Insomma, diciamo che come detto da Andretti la OOP la si nota subito.
Diciamo che le tue 135 righe di Python in Java sarebbero probabilmente il doppio, diciamo (forse con l'introduzione di lambda e altre cose è tutto più compatto, ma non è come in Python).
Per le GUI: in Java hai due scelte, fondamentalmente. Swing, che è un pò "vecchiotta" e JavaFx, che è quella che verrebbe consigliata. Volendo ci sono altre alternative, ma non fanno parte del JDK, dovrai scaricarle a parte.

Non conosco bene C++, ma posso dirti che mi sono sempre pentito di non averlo studiato da subito e come primo linguaggio. Non è semplice, noti un pò meno la OOP rispetto a Java/C# in quanto puoi usarlo anche come procedurale come detto da ife98. E' molto potente ed è complesso, anche come "dimensione"; per questo secondo me se lo affronti e lo impari bene come "primo linguaggio" ti crei una base molto solida (poi nella vita da programmatore, sinceramente, sarà difficle che potrai dire "conosco bene 3 linguaggi"... di solito ne conosci bene 1 o 2 e ne usi molti o ti adatti più o meno rapidamente).
Qui come dice anche Andretti direi le Qt; poi con uno strumento come Qt Creator non è affatto male lavorarci, a quanto ho visto.

C è un linguaggio che amo moltissimo. L'ho studiato però dopo Java. Passare da Java a C è stato un pò traumatico a "causa" di alcuni cocetti: in Java hai i riferimenti agli oggetti, non manipoli però la memoria come fai in C con i puntatori... e l'allocazione è decisamente più complicata, per non parlare della gestione delle stringhe (che non esistono come tipo a sè, e sono effettivamente una sequenza di caratteri) e altre cose ancora.
Secondo me è un linguaggio imprescindibile se vuoi capire meglio come funzionano le cose, e penso sia anche difficile non "amarlo" (e, tra parentesi, anche dare uno sguardo ad Assembly e a tutto il mondo poi delle architetture (in particolare x86 e x64) aiuta molto a comprendere meglio le cose).
Qui per le GUI è un pò diverso. Ci sono le GTK+2 e altre alternative, ma dipende cosa vai cercando, e di cosa necessiti; di certo è una gestione più complessa di quella di Java e forse anche di C++, considerando sturmenti come Qt Creator.

Poi volendo ci sono i linguaggi più recenti come Rust e Go. Go l'ho guardato pochissimo, non mi esprimo in merito; è comunque "semplice" da apprendere rispetto a un linguaggio come C++ o come Rust. Ha una curva di apprendimento ridotta.
Rust appunto ha una curva di apprendimento ben più ripida. Non è propriamente pensato per applicazioni grafiche, dovrai sempre scaricarti lib esterne.
Così, come parere personale, non ti consiglierei Rust all'inizio, potrebbe scoraggiarti, e ti mette di fronte a concetti che non vedi negli altri linguaggi sopra citati; lo lascerei come successivo.

Ho scritto troppo, come al solito... ?
 
  • Mi piace
Reazioni: Andretti60

Zhong

Nuovo Utente
92
26
CPU
i8
Scheda Madre
supermicro
HDD
nas array
RAM
dual ecc
GPU
rage
Audio
beep
Monitor
lcd
PSU
rack supply
Case
hot rack
OS
red hatt
Riguardo il C posso dire che era un linguaggio anni 70 e rispecchia il periodo. Manca l'elevamento a potenza intera ^ e nelle funzioni bisogna ridichiarare ogni volta (int a, int b, ...) e' abbastanza stenografico ed e' strettamente collegato con l'assembler. il C++ invece fu un tentativo di semplificare il sistema dei puntatori ma hanno pasticciato troppo. Comunque con C e' nato unix - linux quindi per un programmatore dovrebbe essere la base.
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,222
1,853
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Manca l'elevamento a potenza intera ^

In che senso manca l'elevamento a potenza? Va importato l'header math.h, la funzione da usare è pow().

e nelle funzioni bisogna ridichiarare ogni volta (int a, int b, ...) e' abbastanza stenografico ed e' strettamente collegato con l'assembler.

Bhe, è del tutto normale anche in altri linguaggi esplicitare il tipo, tranne in linguaggi interpretati o che fanno uso di inferenza (Rust, tanto per citarne uno).
Che sia proprio strettamente collegato con l'assembler... meh, non sono anche qui molto d'accordo, rispetto ad assembly semplifica le cose e dove serve assembly vi è poca scelta.
Poi se intendi dire che ha poco overhead (in effetti non fa check di nessun tipo), allora concordo.
 

Matteo Basso

Utente Attivo
819
69
CPU
Intel i3 380m
Scheda Madre
Acer Aspire 5742G
HDD
HDD WDC WD5000BEVT-22A0RT0 500,1 GB
RAM
4GB ddr3 Samsung
GPU
NVIDIA GT 540M
Monitor
Asus VS197
Case
Acer Aspire 5742G
OS
Windows 7 e 10
Ok, grazie ancora
 

Zhong

Nuovo Utente
92
26
CPU
i8
Scheda Madre
supermicro
HDD
nas array
RAM
dual ecc
GPU
rage
Audio
beep
Monitor
lcd
PSU
rack supply
Case
hot rack
OS
red hatt
In che senso manca l'elevamento a potenza? Va importato l'header math.h, la funzione da usare è pow().
intendevo che manca l'espressione x^n che sarebbe stata utilissima anche senza math.h



Bhe, è del tutto normale anche in altri linguaggi esplicitare il tipo, tranne in linguaggi interpretati o che fanno uso di inferenza (Rust, tanto per citarne uno).
Che sia proprio strettamente collegato con l'assembler... meh, non sono anche qui molto d'accordo, rispetto ad assembly semplifica le cose e dove serve assembly vi è poca scelta.
Poi se intendi dire che ha poco overhead (in effetti non fa check di nessun tipo), allora concordo.
per gli operatori bit a bit e perchè ne rispecchia la struttura. Non vorrei dire che si può tradurre quasi 1:1 ma aggiunge poco di più come le funzioni ricorsive. D'altra parte è nato nel 70 per scrivere lo Unix su macchine che avevano 128K ram.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili