Linguaggio di programmazione da imparare

Sofi_loki01

Nuovo Utente
18
0
salve a tutti ho 16 anni e una volta finita la scuola superiore vorrei fare l' università di informatica (la scuola che faccio ora non insegna nulla della programmazione) così ho iniziato a studiare il python perchè mi è stato consigliato di non partire con qualcosa di evoluto come c# ma usare un linguaggio semplice potente e versatile come python. ora che ho finito di studiarlo però mi trovo a decidere se studiare il java o il c#. voi quale mi consigliate (li studierei tutti e due in ogni caso solo che ne studierei uno prima e uno dopo).
ditemi cosa fareste voi e in base a cosa.
 

Andretti60

Utente Èlite
6,440
5,091
Hai "finito" di studiare Python!? (Icona di faccia molto stupita)
Tra lo studiare un linguaggio e il saperlo usare c’è una bella differenza.
 
  • Mi piace
Reazioni: 1nd33d

Sofi_loki01

Nuovo Utente
18
0
Hai "finito" di studiare Python!? (Icona di faccia molto stupita)
Tra lo studiare un linguaggio e il saperlo usare c’è una bella differenza.
lo so quanto è grande la differenza ma intanto che padroneggio il python voglio studiare un altro linguaggio.
poi ho inziato col python solo per iniziare a studiare le basi della programmazione.
 

incolto

Utente Èlite
4,310
2,305
CPU
AMD Athlon II x2 240e
Scheda Madre
AS Rock 880GM-LE
HDD
Samsung HM080HC 80GB
RAM
Corsair ValueSelect DDR3 2x2GB @1333 9-9-9-24
GPU
integrata
Audio
integrata
Monitor
SyncMaster P2470HD
PSU
400w
Case
Kraun
OS
Windows 7
Hai "finito" di studiare Python!? (Icona di faccia molto stupita)
Tra lo studiare un linguaggio e il saperlo usare c’è una bella differenza.
lo so quanto è grande la differenza ma intanto che padroneggio il python voglio studiare un altro linguaggio.
poi ho inziato col python solo per iniziare a studiare le basi della programmazione.
Prima dovresti vedere la oop.
Poi i linguaggi. Cmq opterei per c#

Inviato da MotoG3 tramite App ufficiale di Tom\'s Hardware Italia Forum
 

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro
Prima dovresti vedere la oop.
Poi i linguaggi. Cmq opterei per c#

Inviato da MotoG3 tramite App ufficiale di Tom\'s Hardware Italia Forum
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.
 

Sofi_loki01

Nuovo Utente
18
0
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
 

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro
  • Mi piace
Reazioni: Andretti60

Andretti60

Utente Èlite
6,440
5,091
C# è un buon linguaggio, ma ha un grande svantaggio, ossia è proprietario di Microsoft, gira solo su Windows e Microsoft continua a cambiarlo (e migliorarlo) ma come avvenne in passato con i linguaggi proprietari (non solo Windows) il suo futuro è incerto.
Per imparare io opterei di più verso Java, come in genere consiglio anche in questo forum. È un ottimo linguaggio consolidato, gira su tutte le piattaforme, si può creare un po’ di tutto, è Free e il suo standard è ben consolidato. È un linguaggio moderno fortemente orientato ad oggetti, ma si può usarlo anche per programmazione strutturata.
Ovviamente non voglio lasciare stare il caro, vecchio C, che rimane il linguaggio di scelta per gli smanettoni che vogliono "sporcarsi le mani" in quanto ha accesso libero alla memoria, è ideale per servizi e driver di sistema. Ma è "pericoloso" da usare, è un po’ come imparare a guidare con cambio manuale non sincronizzato :) è difficile, ma una volta imparato puoi guidare di tutto. Il grosso vantaggio è che un linguaggio consolidato, con poche modifiche (relative alle chiamate di sistema) compila in tutte le piattaforme, non andrà mai via di moda e verrà sempre richiesto programmatori che lo sappiano usare. Il grosso svantaggio è l'assenza di Classi, che lo rende quindi un linguaggio strutturale, ma per molti questo è un vantaggio :) a volte è meglio un buon coltello da macellaio che un coltellino multiuso (paragone che si applica a molti linguaggi tipo Python). Per questo motivo esiste la estensione C++, che giudico una "estensione" più che un vero linguaggio, non è proprio un vero linguaggio OOP ma alla fine rimane un ibrido. Continua a possedere i vantaggi del C.

Scegliere un linguaggio non è facile. Chi sta studiando, dovrebbe limitarsi a un linguaggio, imparando i trucchi della programmazione piuttosto che i dettagli del linguaggio stesso. Ecco perché Python è così popolare. Imparare un altro linguaggio non è poi così difficile. Ben diverso quando lo si fa per professione, uno si deve per forza di cosa specializzare in un aspetto tipico della programmazione e quindi scegliere un linguaggio favorito. Ormai ben poche aziende vogliono un "generalista" (ossia uno che sappia fare un poco di tutto) bensì cercano programmatori ben specializzati (basta fare un salto nei siti Microsoft e Google e leggere le offerte di lavoro per rendersene conto).
 

Sofi_loki01

Nuovo Utente
18
0
C# è un buon linguaggio, ma ha un grande svantaggio, ossia è proprietario di Microsoft, gira solo su Windows e Microsoft continua a cambiarlo (e migliorarlo) ma come avvenne in passato con i linguaggi proprietari (non solo Windows) il suo futuro è incerto.
Per imparare io opterei di più verso Java, come in genere consiglio anche in questo forum. È un ottimo linguaggio consolidato, gira su tutte le piattaforme, si può creare un po’ di tutto, è Free e il suo standard è ben consolidato. È un linguaggio moderno fortemente orientato ad oggetti, ma si può usarlo anche per programmazione strutturata.
Ovviamente non voglio lasciare stare il caro, vecchio C, che rimane il linguaggio di scelta per gli smanettoni che vogliono "sporcarsi le mani" in quanto ha accesso libero alla memoria, è ideale per servizi e driver di sistema. Ma è "pericoloso" da usare, è un po’ come imparare a guidare con cambio manuale non sincronizzato :) è difficile, ma una volta imparato puoi guidare di tutto. Il grosso vantaggio è che un linguaggio consolidato, con poche modifiche (relative alle chiamate di sistema) compila in tutte le piattaforme, non andrà mai via di moda e verrà sempre richiesto programmatori che lo sappiano usare. Il grosso svantaggio è l'assenza di Classi, che lo rende quindi un linguaggio strutturale, ma per molti questo è un vantaggio :) a volte è meglio un buon coltello da macellaio che un coltellino multiuso (paragone che si applica a molti linguaggi tipo Python). Per questo motivo esiste la estensione C++, che giudico una "estensione" più che un vero linguaggio, non è proprio un vero linguaggio OOP ma alla fine rimane un ibrido. Continua a possedere i vantaggi del C.

Scegliere un linguaggio non è facile. Chi sta studiando, dovrebbe limitarsi a un linguaggio, imparando i trucchi della programmazione piuttosto che i dettagli del linguaggio stesso. Ecco perché Python è così popolare. Imparare un altro linguaggio non è poi così difficile. Ben diverso quando lo si fa per professione, uno si deve per forza di cosa specializzare in un aspetto tipico della programmazione e quindi scegliere un linguaggio favorito. Ormai ben poche aziende vogliono un "generalista" (ossia uno che sappia fare un poco di tutto) bensì cercano programmatori ben specializzati (basta fare un salto nei siti Microsoft e Google e leggere le offerte di lavoro per rendersene conto).


se ad esempio scrivessi tutto il codice c# su un mac ad esempio e trasportassi il tutto su un microsoft per il compilatore non ci sarebbero problemi giusto?
(è solo curiosità per ora non ho un mac)
comunque stavo guardando il programma di lezioni per gli altri linauggi come c# o java e ho capito che tra i linguaggi cambia davvero poco praticamente solo il modo di chiamare una funzione o un comando insomma la logica è la stessa.
quindi come mi hai suggerito vorrei studiarmi bene un linguaggio e saperlo usare bene poi magari per piacere o altro imparare altri linauaggi e a questo punto mi domando come faccio a studiare la logica di un linguaggio di programmazione mi metto a scrivere funzioni qua e la sul pycharm o ce qualche cosa in particolare che posso fare per poter iniziare a programmare ''seriamente'' non so se mi sono spiegato bene.
quindi come fare a padroneggiare un linguaggio??
 
Ultima modifica:

Fenix27

Utente Attivo
863
220
Allora diciamo che Python è un ottimo inizio come introduzione alla programmazione.
Con Python puoi programmare sia come se fossi in C (procedurale) o sfruttare l'OOP.
E' veloce, leggero e la sua sintassi non è poi così complicata (come per Java).

Visto che vuoi scegliere tra Java e C#:
Java funziona ovunque (Linux,Windows,Mac), la macchina necessita solo della JVM.
E' errato dire che è interpretato. E' una via di mezzo tra interpretato e compilato.
Java ha tantissime, ma dico tantissime classi che ti permetteranno di fare ogni cosa: applicazioni desktop,applicazioni software,giochi,gestionali,viene usato pure in campo Android per creare applicazione e creare GUI è molto facile (rispetto a C/C++) ... Java è vasto. Infinito.
Ha però una sintassi un po' bruttina, lascia a desiderare.
Con Java è quasi tutto pronto. Puoi anche non capire un qualcosa ma ti basta andare su internet e copiare un codice e ti funzionerà.
Lo svantaggio è che non capisci e non saresti in grado di modificare quel pezzo di codice.
Una cosa del genere su C o C++ non puoi permetterti di fare (in quel caso o sai cosa stai facendo anche se stai copiando o ritorni al punto di partenza).

Per quanto riguarda C# è Java ma di casa Microsoft (sfrutta il .NET), i concetti dell'OOP che ha Java li ha pure C#. (Ha qualcosina in più).
L'unica differenza è che cambia la sintassi (Preferisco quella di C# che Java) e che funziona solo in ambito Windows (Puoi eseguire programmi scritti in C# su Mac o GNU/Linux ma è un altro discorso...
Sicuramente se vuoi che i tuoi programmi girino solo su Windows vai diretto sul C#: per quanto riguarda applicazioni desktop C# è una bestia rispetto a Java.
Microsoft continua ad aggiornare molto spesso C#.

Quindi differenze tra Java e C# non sono poi così tante (ci sono differenze, ma sono tecnicismi che affronterai solamente quando ti addentri veramente nel linguaggio e spiegarli ora sarebbe inutile), sono entrambi orientati all'OOP (Per alcuni è negativa questa cosa perchè l'OOP ti obbliga a fare ogni cosa con l'OOP).

Comunque io ti consiglio di vederti pure C, secondo me ogni programmatore deve affrontare almeno una volta nella vita questo percorso.
Il C ti insegna anche come affrontare un algoritmo e trovare una soluzione per esso (essendo procedurale).
Poi c'è anche la gestione dei puntatori, argomento complesso ma almeno avere una base ti fa capire come funzionano le cose.
Anche argomenti come liste e code (complessi non da capire ma da applicare ad un primo impatto) sono interessanti.
(In Java per esempio non le affronti, per esempio hai già tutto fatto con ArrayList o LinkedList).
 
Ultima modifica:
  • Mi piace
Reazioni: Andretti60

Sofi_loki01

Nuovo Utente
18
0
Allora diciamo che Python è un ottimo inizio come introduzione alla programmazione.
Con Python puoi programmare sia come se fossi in C (procedurale) o sfruttare l'OOP.
E' veloce, leggero e la sua sintassi non è poi così complicata (come per Java).

Visto che vuoi scegliere tra Java e C#:
Java funziona ovunque (Linux,Windows,Mac), la macchina necessita solo della JVM.
E' errato dire che è interpretato. E' una via di mezzo tra interpretato e compilato.
Java ha tantissime, ma dico tantissime classi che ti permetteranno di fare ogni cosa: applicazioni desktop,applicazioni software,giochi,gestionali,viene usato pure in campo Android per creare applicazione e creare GUI è molto facile (rispetto a C/C++) ... Java è vasto. Infinito.
Ha però una sintassi un po' bruttina, lascia a desiderare.
Con Java è quasi tutto pronto. Puoi anche non capire un qualcosa ma ti basta andare su internet e copiare un codice e ti funzionerà.
Lo svantaggio è che non capisci e non saresti in grado di modificare quel pezzo di codice.
Una cosa del genere su C o C++ non puoi permetterti di fare (in quel caso o sai cosa stai facendo anche se stai copiando o ritorni al punto di partenza).

Per quanto riguarda C# è Java ma di casa Microsoft (sfrutta il .NET), i concetti dell'OOP che ha Java li ha pure C#. (Ha qualcosina in più).
L'unica differenza è che cambia la sintassi (Preferisco quella di C# che Java) e che funziona solo in ambito Windows (Puoi eseguire programmi scritti in C# su Mac o GNU/Linux ma è un altro discorso...
Sicuramente se vuoi che i tuoi programmi girino solo su Windows vai diretto sul C#: per quanto riguarda applicazioni desktop C# è una bestia rispetto a Java.
Microsoft continua ad aggiornare molto spesso C#.

Quindi differenze tra Java e C# non sono poi così tante (ci sono differenze, ma sono tecnicismi che affronterai solamente quando ti addentri veramente nel linguaggio e spiegarli ora sarebbe inutile), sono entrambi orientati all'OOP (Per alcuni è negativa questa cosa perchè l'OOP ti obbliga a fare ogni cosa con l'OOP).

Comunque io ti consiglio di vederti pure C, secondo me ogni programmatore deve affrontare almeno una volta nella vita questo percorso.
Il C ti insegna anche come affrontare un algoritmo e trovare una soluzione per esso (essendo procedurale).
Poi c'è anche la gestione dei puntatori, argomento complesso ma almeno avere una base ti fa capire come funzionano le cose.
Anche argomenti come liste e code (complessi non da capire ma da applicare ad un primo impatto) sono interessanti.
(In Java per esempio non le affronti, per esempio hai già tutto fatto con ArrayList o LinkedList).



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
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
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
Con "studiato" a cosa ti riferisci? Ti sei letto tutta la sintassi? Hai letto un manuale come fosse un romanzo?
Per padroneggiare qualsiasi linguaggio devi scrivere codice, codice e ancora codice. Se a te interessa programmare seriamente (indipendentemente dal linguaggio e sempre secondo la mia opinione) vai di C e sbattici la testa.
 

Sofi_loki01

Nuovo Utente
18
0
Con "studiato" a cosa ti riferisci? Ti sei letto tutta la sintassi? Hai letto un manuale come fosse un romanzo?
Per padroneggiare qualsiasi linguaggio devi scrivere codice, codice e ancora codice. Se a te interessa programmare seriamente (indipendentemente dal linguaggio e sempre secondo la mia opinione) vai di C e sbattici la testa.

no studiato nel senso che mi sono studiato più libri sul python e ho rissuanto e schematizzato ogni comando e funzione di conseguenza ho memorizzato tutto quanto e ora ad esempio so a cosa servono i comandi che leggo quando consulto un sorgente scritto in python.
comunque ora ho studiato il python e voglio padroneggiare quello cosa intendi dire quando dici scrivere codice e riscrivere codice? devo creare vari programmini che facciano cose diverse in modo da acquisire esperienza??
 

ZedFire

Nuovo Utente
36
2
Salve,

da come già consigliato, se fossi in te opterei per lo Java, sopratutto perchè, come da mia esperienza, è uno dei linguaggi più universali che conosco in quanto è molto usato in tutti gli ambienti sia universitari che lavorativi, senza però togliere nulla al C che è MOLTO importante per la formazione di un ottimo programmatore in quanto costituisce, come il phyton, le basi fondamentali.

no studiato nel senso che mi sono studiato più libri sul python e ho rissuanto e schematizzato ogni comando e funzione di conseguenza ho memorizzato tutto quanto e ora ad esempio so a cosa servono i comandi che leggo quando consulto un sorgente scritto in python.
comunque ora ho studiato il python e voglio padroneggiare quello cosa intendi dire quando dici scrivere codice e riscrivere codice? devo creare vari programmini che facciano cose diverse in modo da acquisire esperienza??

Studiare non significa padroneggiare io posso aver studiato tutti i testi di questo mondo e aver visto tutti gli esempi più caratteristici però quando mi capita un qualcosa di diverso che ha bisogno di un particolare ragionamento, lì entri in panico...

Quello che voglio dire è che bello imparare e conoscere cose nuove però devi mettere in pratica le tue conoscenze attraverso dei test ("ESAMI") perchè ogni singolo algoritmo ha dietro di se un pensiero contorto e perverso che ti serve per capire come si risolve un problema, e sopratutto ti serve per affinare la tua abilità di problem solving e sopratutto (una carateristica che a mio avviso sta andando a scomparire) l'elasticità mentale.

Quindi ricapitolando: FAI TANTA ESERCITAZIONE, ma davvero TANTA, soprattutto perchè sei un autodidatta e devi valutarti da solo.


 
  • Mi piace
Reazioni: Andretti60

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili