UFFICIALE Imparare a Programmare

Pubblicità
Più che un libro ti consiglierei un canale Youtube.
Io iniziai con il corso C# del proff Camuso a detta di molti il migliore in italiano. Molto molto bravo.
Magari non tutto è aggiornato, Java per esempio è un po' datato, ma potresti iniziare da C# che è equivalente, per lo meno ti fai un'idea della materia.
Se poi volevi sperimentare più il front-end magari il proff non è il massimo.
Per esperienza personale, appena puoi e se hai possibilità segui in inglese, avrai possibilità di trivare fonti più aggiornate.
Grazie
 
Salve!
Per iniziare a creare programmi desktop vanno bene questi linguaggi?
Go, Scala, Python, C++, C#
Sono sufficienti o ne servono anche altri? O addirittura di alcuni posso farne a meno?

Inviato dal mio SM-A528B utilizzando Tapatalk
 
Sul web e su questo stesso forum ci sono pareri contrastanti su quali linguaggi servano per un determinato settore (es. per creare SO o app desktop). Quindi uno che vuole iniziare a programmare (io compreso), come fa a capire effettivamente su quali linguaggi puntare?

Inviato dal mio SM-A528B utilizzando Tapatalk
 
Sul web e su questo stesso forum ci sono pareri contrastanti su quali linguaggi servano per un determinato settore (es. per creare SO o app desktop). Quindi uno che vuole iniziare a programmare (io compreso), come fa a capire effettivamente su quali linguaggi puntare?

Inviato dal mio SM-A528B utilizzando Tapatalk

Ci sono pareri contrastanti poichè la maggior parte dei linguaggi che non sono rivolto solo a un determinato campo (JavaScript, PHP etc) li puoi utilizzare in molteplici contesti. Quindi ciascuno spesse volte riporta il linguaggio con cui si trova meglio, che gli piace di più, che è più rapido da apprendere e/o utilizzare etc

Se devi iniziare l'importante è che inizi. Per iniziare sconsiglierei Python o Javascript (o PHP), per il semplice fatto che semplificano molto le cose (eg. non impari nemmeno cosa sono i tipi di dato, tanto per citare una cosa tra tante) e la loro astrazione aiuta, ma non ti permette di comprendere concetti che stanno alla base.

Detto ciò, sei libero di iniziare da quello che preferisci, l'importante è che sviluppi il ragionamento che fai per risolvere un problema. Il linguaggio è solo uno strumento. Non puoi pensare di iniziare a programmare e imparare 5-6 linguaggi di programmazione...

Chi lo fa per lavoro ne conosce pochi e ne usa molti. La conoscenza vera del linguaggio la crei con il tempo e con il suo utilizzo (oltre che lo studio). Capita di usare un certo linguaggio e di cambiare azienda e doverne usare un altro; oppure di doverne imparare un altro in aggiunta a quello che già si conosce "bene".

Per altro nel mondo odierno non è sufficiente conoscere 1 solo linguaggio: ci sono anche i framework da imparare. Se diventi un programmatore Java e lavori sul web, dovrai conoscere molto probabimlente Spring. Se usi PHP, probabilmente Laravel etc.
Non puoi imparare tutto. 😉


Le app desktop sono fatte in una miriade di linguaggi diversi ormai, e dipende alle volte dal sistema operativo: Windows, probabilmente C#, ma puoi usare anche C+. Anche Rust ha ormai librerie grafiche. Puoi anche creare un'applicazione in Electron + un altro linguaggio.

I SO sono scritti per la maggior parte in C (ci si trova anche del C++). Stanno iniziando ad introdurre però Rust sia in Linux che in Windows (in alcuni driver è già usato pare).
 
Ci sono pareri contrastanti poichè la maggior parte dei linguaggi che non sono rivolto solo a un determinato campo (JavaScript, PHP etc) li puoi utilizzare in molteplici contesti. Quindi ciascuno spesse volte riporta il linguaggio con cui si trova meglio, che gli piace di più, che è più rapido da apprendere e/o utilizzare etc

Se devi iniziare l'importante è che inizi. Per iniziare sconsiglierei Python o Javascript (o PHP), per il semplice fatto che semplificano molto le cose (eg. non impari nemmeno cosa sono i tipi di dato, tanto per citare una cosa tra tante) e la loro astrazione aiuta, ma non ti permette di comprendere concetti che stanno alla base.

Detto ciò, sei libero di iniziare da quello che preferisci, l'importante è che sviluppi il ragionamento che fai per risolvere un problema. Il linguaggio è solo uno strumento. Non puoi pensare di iniziare a programmare e imparare 5-6 linguaggi di programmazione...

Chi lo fa per lavoro ne conosce pochi e ne usa molti. La conoscenza vera del linguaggio la crei con il tempo e con il suo utilizzo (oltre che lo studio). Capita di usare un certo linguaggio e di cambiare azienda e doverne usare un altro; oppure di doverne imparare un altro in aggiunta a quello che già si conosce "bene".

Per altro nel mondo odierno non è sufficiente conoscere 1 solo linguaggio: ci sono anche i framework da imparare. Se diventi un programmatore Java e lavori sul web, dovrai conoscere molto probabimlente Spring. Se usi PHP, probabilmente Laravel etc.
Non puoi imparare tutto.


Le app desktop sono fatte in una miriade di linguaggi diversi ormai, e dipende alle volte dal sistema operativo: Windows, probabilmente C#, ma puoi usare anche C+. Anche Rust ha ormai librerie grafiche. Puoi anche creare un'applicazione in Electron + un altro linguaggio.

I SO sono scritti per la maggior parte in C (ci si trova anche del C++). Stanno iniziando ad introdurre però Rust sia in Linux che in Windows (in alcuni driver è già usato pare).
Grazie mille!
Finalmente sono riuscito a comprendere meglio questo aspetto.

Riguardo ai linguaggi C/C++ per creare programmi desktop, potrei imparare solo il C++ e il C# escludendo il C? In quali casi il C potrebbe tornarmi utile?

Inviato dal mio SM-A528B utilizzando Tapatalk
 
In quali casi il C potrebbe tornarmi utile?
di fatto mai, tranne che se volessi lavorare come sviluppatore di sistemi operativi (Linux), cosa di cui dubito
questa sarà la decima discussione che apri su come imparare a programmare e non hai ancora neanche iniziato 😆
 
di fatto mai, tranne che se volessi lavorare come sviluppatore di sistemi operativi (Linux), cosa di cui dubito
questa sarà la decima discussione che apri su come imparare a programmare e non hai ancora neanche iniziato
Si hai ragione ahahaha
A volte però ci vuole lo stimolo giusto, e adesso credo proprio sia arrivato

Ultima domanda (anche se sicuramente ne seguiranno altre):
Una volta "imparato un linguaggio", ad esempio leggendo una guida completa online, come si fa a saperlo usare e padroneggiare?
Inoltre leggo spesso parlare di libri che approfondiscono un determinato linguaggio. Ma approfondiscono che cosa nello specifico? Una volta imparata la sintassi e le regole cosa si potrebbe approfondire?

Inviato dal mio SM-A528B utilizzando Tapatalk
 
Ultima modifica da un moderatore:
di fatto mai, tranne che se volessi lavorare come sviluppatore di sistemi operativi (Linux), cosa di cui dubito
E chi lo sa, mai dire mai... 🤓

Ultima domanda (anche se sicuramente ne seguiranno altre):
Una volta "imparato un linguaggio", ad esempio leggendo una guida completa online, come si fa a saperlo usare e padroneggiare?

La parte più importante è fare pratica mentre lo studi, e non studiare un libro e poi iniziare. Poichè così di sicuro non avrai imparato quasi nulla, se non nulla (e non ti ricorderai 1/3 delle keywords). E soprattutto, se devi iniziare, non è "da leggere", dovrai capire ed effettivamente studiare. Ovviamente, affronta un solo linguaggio, non iniziarne 2-3.

Inoltre leggo spesso parlare di libri che approfondiscono un determinato linguaggio. Ma approfondiscono che cosa nello specifico? Una volta imparata la sintassi e le regole cosa si potrebbe approfondire?

Inviato dal mio SM-A528B utilizzando Tapatalk
Dipende, ci sono argomenti specifici che un libro non può trattare in maniera esaustiva. I testi servono per approfondire qualcosa di specifico.
Per fare un esempio concreto: c'è un testo minuscolo che approfondisce aspetti di Rust che tratta la concorrenza, come strutturare un progetto, gestione degli errori e altro ancora. In C c'è il famoso "Expert C Programming" che tra le tante cose tratta di array, differenza tra array e puntatori e altro ancora.

Tieni poi in considerazione che il linguaggio è solo una parte, ci sono altri concetti che andrai a studiare di pari passo (alcuni dicono anche prima, io sono un pò scettico in merito): algoritmi e strutture dati, per esempio.

Riguardo ai linguaggi C/C++ per creare programmi desktop, potrei imparare solo il C++ e il C# escludendo il C? In quali casi il C potrebbe tornarmi utile?

Non mettere troppa carne sul fuoco, C++ è immenso e non ha la curva di apprendimento di Python (tantomeno se si considera la curva per imparare ad usarlo in maniera decente).

Puoi imparare anche solo C++ e usare Qt come libreria grafica, senza usare C#. Le scelte sono svariate ormai. Però padroneggiare un linguaggio di quelle dimensioni richiede davvero tempo...
Esistono altri linguaggi comunque eh, come Go.

C è più piccolo come linguaggio, padroneggiarlo chiaramente richiede del tempo. Vedresti molti dei concetti che sono presenti in altri linguaggi, e altri che probabilmente non vedrai (escluso C++, in particolare), overo la gestione della memoria. E da qui capirai anche perchè sono nati linguaggi tipo Rust (anche se continuo ad adorare C, personalmente).
 
Ahia, se mi dici che C++ è immenso mi fai un po' paura...
Pensi che in questo caso seguire una guida online come quella di HTML.it possa bastare?

Inviato dal mio SM-A528B utilizzando Tapatalk
 
Ahia, se mi dici che C++ è immenso mi fai un po' paura...
Pensi che in questo caso seguire una guida online come quella di HTML.it possa bastare?

Inviato dal mio SM-A528B utilizzando Tapatalk

No, sono assolutamente da evitare quelle guide. Così come la gran parte delle altre che trovi online. C++ ha una libreria enorme più che altro, ma piano piano vedrai che riuscirai; non scoraggiarti, poichè ci saranno sicuramente momenti nei quali vorrai fermarti.

Potresti iniziare da questo: https://en.cppreference.com/w/cpp/language
Puoi provare anche su questo sito, ma non so come sia: https://www.learncpp.com/

Ma potrebbe anche aver senso pensare ad un libro di testo se ti trovi più comodo. Per i linguaggi di solito si evita, poichè vengono aggiornati e quello che hai sul libro rimane indietro... però può aver senso: per esempio, quello di Rust ho preferito comprarlo, mi trovavo scomodo a consultare il libro online.
 
Capito...
Quindi mi sconsigli qualunque guida online?
I libri come è possibile che diventino obsoleti se le cose sono sempre le stesse?

Inviato dal mio SM-A528B utilizzando Tapatalk
 
Capito...
Quindi mi sconsigli qualunque guida online?
I libri come è possibile che diventino obsoleti se le cose sono sempre le stesse?

Inviato dal mio SM-A528B utilizzando Tapatalk

Qualunque no, sicuramente puoi evitare quelle in italiano poiché nella maggior parte dei casi non sono aggiornate.

La prima che ti ho linkato è ufficiale, è il reference di C++.

I linguaggi non rimangono gli stessi, può rimanere invariato il core del linguaggio ma ad ogni versione vengono aggiunte delle cose. Talvolta vengono anche deprecate: esempio stupido, ci sono funzioni usate in PHP 5.6 che in PHP 8 sono deprecate.

Java ora è alla versione 20. Quando l'ho Imparato io nel 2007 era alla 5 (uscì la 6 in quel periodo). In Java 8 hanno introdotto in sacco di cose, quindi non avrebbe senso imparare Java 5.

Un conto è conoscere una versione e aggiornarsi, un altro paio di maniche è imparare su materiale datato di anni per poi doversi aggiornare.

Guarda la history di C++ per esempio https://en.cppreference.com/w/cpp/language/history
 
Pubblicità
Pubblicità
Indietro
Top