Linguaggio di programmazione da imparare

Pubblicità
Quoto. O C++ o C#.
Il primo è un miscuglio di programmazione procedurale (C) e ad oggetti. Hai un completo controllo della memoria. Gira sia su Windows che su Linux
C# è orientato agli oggetti, ha molte somiglianze con C++ e passare da quest’ultimo è abbastanza semplice. In più programmare una interfaccia è facilissimo. Pena, gira su Windows perché utilizza .NET.
pecatto che c++ non giri su linux ma comunque sia studierò c# grazie per il consiglio
Dopo questa sarebbe stato sufficiente consigliarti di studiare C/C++ in modo serio, e proseguire con gli studi (in particolare approfondire informatica) e... rivederci tra qualche anno.

Hai già ricevuto molti consigli, non ho letto le due pagine di topic, e mi limiterò a dirti: apprendine bene uno, approfittando per studiare altro (magari capire come funziona un PC, comprendere la memoria, etc etc) e poi non sarà un grosso problema cambiare linguaggio. Ovviamente la pratica è essenziale. Studiare le ricette di cucina non ti rende capace di cucinare.

L'unico aspetto davvero importante è l'approccio alla risoluzione dei problemi, il modo in cui ragioni per trovare soluzioni a problemi. Il linguaggio è solo un mezzo.
Il vantaggio di C, può essere la vicinanza al basso livello, ed il conseguente utilizzo di puntatori alla memoria (indirizzi virtuali).
 
dopo aver studiato per intero un linguaggio di programmazione come posso fare a padroneggiare il linguaggio per poter scrivere qualsiasi funzione io voglia.
leggi il post scritto sopra e se riesci rispondimi per favore

Devi focalizzarti su un obiettivo e cercare di raggiungerlo, capire il problema e cercare di trovare una soluzione.
Per padroneggiare un linguaggio devi continuare a programmare, questa è l'unica strada.
In quanto tempo hai studiato Python e cosa hai studiato precisamente ?
 
Devi focalizzarti su un obiettivo e cercare di raggiungerlo, capire il problema e cercare di trovare una soluzione.
Per padroneggiare un linguaggio devi continuare a programmare, questa è l'unica strada.
In quanto tempo hai studiato Python e cosa hai studiato precisamente ?
beh ho studiato ogni comando e ogni funzione.
ad esempio quali problemi potrei provare a risolvere? dove posso trovare esercizi da svolgere?
 
beh ho studiato ogni comando e ogni funzione.
ad esempio quali problemi potrei provare a risolvere? dove posso trovare esercizi da svolgere?
Possiamo affermare quindi che tu di python non abbia ancora fatto nulla. Hai letto i vari comandi e funzioni? Crea dei programmi in cui li testi ciascuno e insieme.
Prova a guardare su codewars.
 
Un esercizio complesso potrebbe essere l’implementazione di un Bubblesort e di una ricerca binaria, ovviamente guardando come funzionano ma senza guardare nè codice nè pseudocodice.

Questa è la spiegazione del Bubble sort: https://it.wikipedia.org/wiki/Bubble_sort
Leggi la teoria e in seguito prova a vedere lo pseudocodice e prova ad implementarlo in Python.
Se hai interesse vediti pure gli altri algoritmi di ordinamento.
 
Mi inserisco nella discussione per dare una mia opinione, spero di non uscirne troppo massacrato :a27:
Ma ha davvero senso iniziare dal Python?
Arrivando fresco fresco di ingegneria informatica, posso dirvi che come base lì sfruttano il C, e per un motivo abbastanza semplice a mio parere.
Come linguaggio ti insegna a pensare, ad aggirare i problemi, a sbatterci la testa, ad insultare da Bill Gates a Linus Torvalds :asd:
Secondo me è la base da cui partire per chiunque voglia fare il programmatore, oltretutto passare da C all'assembly è molto più che semplice che dal Java per dire, e per certi ambiti l'assembly è imprescindibile (ma è anche un percorso molto specifico, IMO se non ti piace la programmazione a basso livello (anzi bassissimo) potrai vivere una vita da programmatore felice anche senza senza saperlo :D)
Poi il C ha una base di utenza impressionante essendo del '70 o giù di lì, trovi un po' tutto online e siti come stackexchange e co. offrono una community eccezionale se ti dovesse servire aiuto.
Per non parlare dei manuali accademici, se vuoi provare a cimentarti nel C ti consiglio il King, c'è tutto quello che si può sapere di quel linguaggio, e forse anche qualcosa di più vista la mole di quel libro :asd:
Comunque qualunque linguaggio tu studierai, il problema più grande secondo me saranno le esercitazioni.
Hai bisogno di esercizi mirati, sempre più difficili e complessi, e da solo o anche da internet penso possa essere difficile riuscire a trovarli (ti darei roba mia, ma penso di aver cancellato tutti i file che avevo ormai :/)

Per concludere una mia "IMHO":
Secondo me la cosa migliore che tu possa fare in questo momento è solo pensare a divertirti, hai 16 anni, goditeli. Fidati che avrai abbastanza tempo da perdere sui libri (o davanti uno schermo) più avanti.
E poi vale davvero la pena pensare a programmare adesso? Fidati che quello che faresti sarebbero comunque tutte cose che faresti nella prima settimana di lezione, oppure cose che faresti "nel modo sbagliato": ricorda sempre che la programmazione è molto molto di più di conoscere semplicemente la sintassi di un linguaggio.

Buona fortuna :ok:
 
...
Come linguaggio ti insegna a pensare, ad aggirare i problemi, a sbatterci la testa, ad insultare da Bill Gates a Linus Torvalds :asd:
...
Secondo me la cosa migliore che tu possa fare in questo momento è solo pensare a divertirti, hai 16 anni, goditeli. ..l

Beh, il linguaggio C con Gates e Torvalds proprio non ci hanno nulla a che fare :)
Ma ogni linguaggio è buono per imparare a risolvere i problemi.
E ci si può divertire a 16 anni anche avendo un hobby, perché mai? Io ero troppo giovane, non c'erano ancora i pc in quei anni, ma mi divertivo a costruire circuiti elettronici (da cui il mio interesse all'elettronica e poi a quella digitale e poi i computer e l'informatica), anche se poi uscivo con amici e amiche. E il saldatore era solo uno dei miei hobby.
 
Ma ha davvero senso iniziare dal Python?

Espressività. Python è in cima alla lista dei linguaggi in quanto ad espressività. Cioè i costrutti sono di alto livello, dunque semplici da capire e usare. Ciò consente di creare programmi corretti più facilmente ( meno bug ). Ovviamente significa meno stress per il programmatore, cosa importante soprattutto per chi inizia. Dici bene sulla questione università, ma quante maledizioni hai mandato ( tu e anche i tuoi colleghi ) al prof perchè quei dannati puntatori scazzavano in continuazione mandando in segfault il programma su cui avevi lavorato per settimane?

Qualsiasi linguaggio t'insegna a pensare, ovvero a risolvere i problemi in maniera algoritmica. Il resto sono dettagli implementativi, dipendenti dallo stack software e dall'architettura hardware. E credimi, esiste un universo là fuori che non si basa sulle architetture hardware/software comuni ( programmazione funzionale, dataflow, dichiarativa, hardware non di Von Neumann, ecc... ). Il C t'insegna a pensare nei termini dello schema classico, ma è tutt'altro che un linguaggio onniparadigma.

E infine ci sono le non trascurabili differenze nelle implementazioni di alcuni costrutti e modelli e la disponibilità di librerie chiavi in mano per implementare funzionalità complesse ( penso a Numpy, Pygame, ecc... che Python ha ). Sui costrutti e modelli, penso alla concorrenza. Il modello processo/thread popolarizzato da Unix e C non è nè il migliore nè il più semplice da usare ( anzi è il più complesso e prono agli errori ).

Il vantaggio del C è che implementa un modello di programmazione quanto più a basso livello possibile, prima d'incappare nell'Assembly. E infatti è stato definito "Assembly portabile". Ma se da un lato ti dà una visione chiara della macchina, dall'altro non ti aiuta affatto nell'affrancarti dalle idiosincrasie dell'hardware.
 
Per me il grosso problema di Python è che non ha dichiarazioni di variabili, e quindi è facile sbagliare una variabile con un’altra non scrivendola correttamente. Infatti quando uso Python uso una fonte grossa perché ho sempre paura di sbagliare i nomi! Ovviamente deve essere così perché le variabili in Python non sono associate a una variabile, solo il contenuto delle stesse, cosa buona per un certo tipo di programmazione ad oggetti (specie se gli oggetti sono sempre gli stessi...)
 
Per me il grosso problema di Python è che non ha dichiarazioni di variabili

Ma è pure la ragione della sua flessibilità. E' una diatriba che dura tra decenni quella tra i vari modi di tipizzazione e ci sono pro e contro per ognuna delle soluzioni.

Del resto Javascript implementa lo stesso modello di tipizzazione e guarda la popolarità che ha. Certo diventa un altro paio di maniche quando si realizza software complesso da milioni di righe di codice. Nel qual caso però può essere un grande aiuto uno stile di programmazione funzionale.
 
Concordo in tutto, ma è la flessibilità un buon punto a favore del valore educativo di un linguaggio? Usare un linguaggio non strongly typed richiede grande disciplina, e a livello professionale un grande lavoro di regression testing per provare che ogni vo,ta che si modifica qualcosa non si ha rotto nulla. Lo stesso motivo per cui critico il C, puntatori e memoria dinamica mettono in crisi i neofiti. Ecco perché quando studiavo io il linguaggio preferito dalle scuole era il Pascal.
 
Pubblicità
Pubblicità
Indietro
Top