Dopo python a cosa potrei passare?

Pubblicità
Mi piace che hai messo “concluso” tra virgolette ;)
Prima di “passare” ad altro, che programmi in Phyton hai scritto?
 
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
 
Bene, lascia stare la GUI in Python, non ne vale la pena.
A cosa sei interessato? È il solo linguaggio che hai studiato?
 
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!
 
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.
 
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... ?
 
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.
 
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.
 
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.
 
Pubblicità
Pubblicità
Indietro
Top