UFFICIALE Imparare a Programmare

Andretti60

Utente Èlite
3,969
2,680
Scusa, ma cosa hai studiato in un anno da autodidatta? Dovresti darci un po' piu' dettagli sul cosa sai (e non sai). Python e C sono linguaggi MOLTO diversi, sono usati in maniera completamente diversa. Per cominciare a programmare vanno entrambi bene, ma molto dipende da cosa sai adesso e quali sono i tuoi obiettivi futuri.
 

Fenix27

Utente Attivo
726
185
Concordo con ciò che hanno detto sopra di me riguardo al fatto che sono due linguaggi differenti.
Nonostante usi poco o quasi niente Python (se non ogni tanto per fare qualche scriptino) scegliere C sarebbe un'ottima opzione visto che ti offre delle basi che all'inizio potranno essere difficili da comprendere ma quando poi studierai altri linguaggi sarai molto avantaggiato.
Per esempio potresti iniziare con Python ma non saprai mai bene cosa sono questi dannati puntatori di cui si parla spesso e fidati che conoscerli e saperli usarli bene (che è molto difficile, si cade in errori molto facilmente) ti fa capire svariate cose sia in C che il funzionamento di altri linguaggi.
Con C hai più libertà, può essere un vataggio ma anche uno svantaggio visto che devi prestare più attenzione, sopratutto quando si tratta di puntatori.
Poi se volessimo parlare di velocità C è tutt'altra storia ma questo non centra molto con la tua domanda e ora come ora potresti pure fare finta di niente.
 

Clejd

Nuovo Utente
3
0
Ciao a tutti.
E' da poco più di un mese ormai che ho cominciato ad approfondire l'argomento. Frequento il quinto liceo scientifico, finora non ho mai avuto a che fare con questa materia, nemmeno a scuola, nonostante sia un ambito che mi interessa particolarmente. Infatti il prossimo anno (spero) studierò ingegneria informatica (o informatica...questo devo ancora definirlo) e volevo cominciare a imparare qualcosa da autodidatta, non per portarmi avanti con il programma - che sarebbe abbastanza inutile visto che all'università si parte da zero - ma semplicemente perché mi appassiona. Ho chiesto a un mio amico che studia ingegneria informatica a Torino e mi ha consigliato di partire prima dalla teoria, ovvero da alcuni appunti che mi ha mandato e approfondendo su internet, e poi studiare il C. Non ho avuto molti problemi con la teoria, certo non li ho studiati da dio, ma ho capito i concetti. Una volta passato al C però mi sono trovato davanti un mare di informazioni e mi è sembrato tutto troppo complesso, mi sono quindi spostato su Python, perché , leggendo su vari forum, ho visto che viene da molti considerato il linguaggio ideale per imparare a programmare, e in effetti con Python mi è sembrato tutto più chiaro all'inizio, ho imparato i concetti di base e mi sono fermato all'utilizzo delle librerie, che è diventato uno scoglio, ma sono persino riuscito a creare il mio minuscolo programmino che si esegue da terminale, ne vado molto fiero nonostante sia consapevole che sarà pieno di errori XD. Il mio problema sostanzialmente è che non so come muovermi. non pretendo la "pappa pronta", ne tanto meno diventare un programmatore in pochi mesi, sapevo gia prima di partirmi che questa è una materia vasta e complessa, e me ne sono reso conto ancor di più quando ci ho messo mano e ho visto veramente quante cose ci sono da imparare, e non è quello che chiedo. Ho semplicemente bisogno di una rampa di lancio, per capire come muovermi e come informarmi, una chiave di lettura in poche parole. Perché ora come ora imparo per inerzia, ovvero risolvo un dubbio, se ne presenta un altro e cerco di risolverlo. Certo questo mi ha portato a imparare qualcosa, ma senza consolidare e contestualizzare. se vi steste chiedendo qual è il mio obiettivo, diciamo che sarei molto soddisfatto se riuscissi a imparare tutto XD, ma so che è impossibile, almeno non in una vita, però vorrei avere quanta più conoscenza possibile e ovviamente specializzarmi come sviluppatore o in cyber security (entrambe mi interessano moltissimo). Sono arrivato qui dopo innumerevoli video su YouTube, tutorial online e quant'altro perché ho capito che ho bisogno di qualcuno più esperto di me con cui interagire e che possa effettivamente darmi qualche dritta. Sono arrivato alla conclusione che continuando a cercare di imparare da internet non riuscirò mai ad avere una visione chiara di quello che imparo, infatti sto già prendendo in considerazione l'idea di comprare un libro, magari che parta dalle basi. Questo mi darebbe delle basi solide, e in questo caso forse voi potreste consigliarmi al meglio cosa acquistare. Vi ringrazio in anticipo perchè so che non ho chiesto cose molto semplici.
 

clessidra

Utente Attivo
763
268
CPU
VIA C3
GPU
Ati Rage
OS
linux - Red Hat 1.1
Io la penso così (detto da uno che ha imparato python, e la programmazione, per hobby):
- il tuo amico ti ha suggerito bene;
- usare python per imparare le basi della programmazione è una scelta sensata, a patto di non considerare python la scelta definitiva; anche io l'ho imparato perchè ho sempre letto in giro che è un linguaggio di scripting (volevo usare uno di questi) migliore di altri, ma sulla base di quello che so oggi non lo imparerei, anzi, mi ha fatto smettere di programmare :oogle: ;
- per il c studia il manuale scritto dal suo inventore.
Il tutto in maniera disinteressata.
 

gronag

Utente Èlite
20,527
6,992
Salve @Clejd,
leggi qui il mio intervento:
Altri miei interventi qui:
A presto e tanti auguri ;)
 
  • Like
Reactions: Moffetta88

pabloski

Utente Èlite
2,566
695
Sono arrivato alla conclusione che continuando a cercare di imparare da internet non riuscirò mai ad avere una visione chiara di quello che imparo

Ma la domanda è: "stai semplicemente leggendo o stai provando a scrivere programmi"? Perchè è impossibile imparare a programmare senza fare.

Puoi leggerti tutte le millemila pagine di Java the complete reference, ma se poi non scrivi programmi, ci saranno una marea di concetti che non ti saranno affatto chiari.

Per esempio citavi le librerie in Python, ma non è chiaro a cosa ti riferissi. In Python si chiamano moduli, a meno che tu non stessi parlando del FFI, cioè interfacciamento a librerie esterne in C, che è un argomento estremamente avanzato.
 

Clejd

Nuovo Utente
3
0
Ma la domanda è: "stai semplicemente leggendo o stai provando a scrivere programmi"? Perchè è impossibile imparare a programmare senza fare.

Puoi leggerti tutte le millemila pagine di Java the complete reference, ma se poi non scrivi programmi, ci saranno una marea di concetti che non ti saranno affatto chiari.

Per esempio citavi le librerie in Python, ma non è chiaro a cosa ti riferissi. In Python si chiamano moduli, a meno che tu non stessi parlando del FFI, cioè interfacciamento a librerie esterne in C, che è un argomento estremamente avanzato.

No no ho già provato a scrivere qualcosa, come ho già detto ho scritto un mio piccolo programmino, è una cosa banalissima XD. Poi ogni volta che incontro una cosa nuova la metto in pratica scrivendo qualcosa. Per quanto riguarda le librerie, il solo fatto che abbia sbagliato il nome ti fa capire quanti dubbi abbia sull’argomento XD, sicuramente è un’argomento troppo avanzato per me e mi sono spinto troppo oltre.
Post unito automaticamente:

Grazie a tutti per le risposte:ok:. Fatemi sapere se conoscete qualche altro libro da consigliarmi.
 

Andretti60

Utente Èlite
3,969
2,680
... Fatemi sapere se conoscete qualche altro libro da consigliarmi.
Questa discussione ha 11 pagine ed è piena di consigli, se non ti basta questa ce ne è un’altra sempre in evidenza che raccoglie libri e risorse di studio.
Per gli autodidatti non esiste un esatto “percorso” di studio, bisogna farselo da soli in base alle proprie conoscenze e predisposizioni. Io personalmente ho usato pochi libri, quasi e solo il codice scritto da chi lo sapeva fare, ma non è una cosa che consiglio.
 

lc1997

Nuovo Utente
54
4
CPU
intel core i7 8700k
Dissipatore
arctic freezer 11lp
Scheda Madre
asus rog strix z370-e gaming
HDD
western digital caviar black
RAM
hyperx fury 16Gb ddr4 2666MHz
GPU
asus rog strix rx480 o8c gaming
PSU
evga supernova 650 g2
Case
asus tuf gt501
Periferiche
asus rog pugio, asus rog strix flare
OS
windows 10 home
Ciao a tutti, vorrei iniziare a studiare un linguaggio e non ho idea di quale possa fare al caso mio. Vorrei in futuro arrivare a fare dei semplici programmi per catalogare materiale multimediale, attualmente ho solo delle basi imparate a scuola e alcune cose riguardanti il lua. Grazie dell'aiuto.

Inviato da BLA-L09 tramite App ufficiale di Tom\'s Hardware Italia Forum
 

Cibachrome

Utente Èlite
16,656
6,023
Ciao a tutti, vorrei iniziare a studiare un linguaggio e non ho idea di quale possa fare al caso mio. Vorrei in futuro arrivare a fare dei semplici programmi per catalogare materiale multimediale, attualmente ho solo delle basi imparate a scuola e alcune cose riguardanti il lua. Grazie dell'aiuto.

Inviato da BLA-L09 tramite App ufficiale di Tom\'s Hardware Italia Forum

Ciao.

Intendi programmi per Windows?
Che basi ti hanno insegnato a scuola?
Hai fatto la OOP (programmazione orientata agli oggetti)?
 

lc1997

Nuovo Utente
54
4
CPU
intel core i7 8700k
Dissipatore
arctic freezer 11lp
Scheda Madre
asus rog strix z370-e gaming
HDD
western digital caviar black
RAM
hyperx fury 16Gb ddr4 2666MHz
GPU
asus rog strix rx480 o8c gaming
PSU
evga supernova 650 g2
Case
asus tuf gt501
Periferiche
asus rog pugio, asus rog strix flare
OS
windows 10 home
Ciao.

Intendi programmi per Windows?
Che basi ti hanno insegnato a scuola?
Hai fatto la OOP (programmazione orientata agli oggetti)?
Sì, programmi per windows, a scuola mi hanno insegnato un po' come si programma in c++, però essendo passati anni l'unica cosa che ricordo bene è il modo in cui ragionare, per quanto riguarda la oop non penso, ho solo iniziato a studicchiare traducendo il manuale programming in lua.
 

giammo82

Utente Attivo
442
160
Bisogna anche avere bene in mente dove si vuol arrivare,sento parlare di imparare lo C, ogni linguaggio ha il suo campo specifico se vogliamo creare pagine web ed applicativi ad esso converrà seguire un'altra strada,chi vuol imparare lo C(la scaletta è la seguente C--->C++---->C#) in genere lo fa perchè lo scopo finale è lavorare nel campo dei videogiochi dei motori grafici e fisici.

Chi vuol lavorare nel campo del Machine learning,IA,Data Cloud computing dovrà passare per Python,Django ecc.

Non è una regola scritta si può fare Intelligenza artificiale anche con Assembly e cobol ma esiste una regola nel mondo della programmazione che dice di evitare di inventare la ruota 2 volte,invece di prendersi un linguaggio a caso ed andarsi a costruire le librerie sarebbe buona cosa andare già a prendere un linguaggio strutturato apposta per quel campo.

Se uno vuol imparare le basi della programmazione basterebbe anche il Pascal che è nato proprio per i studenti e serve solo a insegnare loro come muoversi.
 

pabloski

Utente Èlite
2,566
695
sento parlare di imparare lo C

Quello serve per scoraggiare quanta più gente possibile :asd:

Se siamo in troppi, i salari scendono! :fumato:

Parlando seriamente, allo stato attuale esistono solo una manciata di linguaggi di utilità generale e mainstream: C, C++, C#, Java, Python, Ruby, PHP, Go, Javascript/Typescript, Dart ( per Flutter/mobile ), Objc/Swift.

Alcuni di questi in lento declino ( Ruby, PHP ). Altri in ascesa ( Go, Dart ). Altri ancora da tenere d'occhio per il prossimo futuro ( Kotlin, Rust ).

Complessivamente, chi lavora in ambiente JVM, deve conoscere ovviamente Java e farebbe bene a studiarsi Kotlin il prima possibile.

Chi opera in ambiente web backend, webservices, tooling, non può non conoscere Go.

Per la programmazione di sistema, Rust è da studiare. Anche se non sostituirà C++ domani mattina, comunque sta guadagnando rapidamente terreno. E del resto ci sono validissimi motivi.
 
  • Like
Reactions: Moffetta88 e gronag

LitterallyWho

Nuovo Utente
101
27
@pabloski ma un po' di tempo fa non c'era stata una discussione piuttosto accesa riguardo rust ed il suo creatore? Se non ricordo male riguardava proprio la struttura del linguaggio in sé ed alcune sue criticità; purtroppo non ricordo adesso i dettagli
 

pabloski

Utente Èlite
2,566
695
@pabloski ma un po' di tempo fa non c'era stata una discussione piuttosto accesa riguardo rust ed il suo creatore? Se non ricordo male riguardava proprio la struttura del linguaggio in sé ed alcune sue criticità; purtroppo non ricordo adesso i dettagli

si c'è molta gente che (1) trova difficile capire Rust e lo attacca, (2) ha una certa esperienza in C++ e si sente minacciata

fatto sta che è l'unico linguaggio ad essere stato in grado di eliminare intere classi di bug senza essere strettamente funzionale, scarsamente performante o basato su garbage collector
 

Entra

oppure Accedi utilizzando

Hot: PS5 VS XBOX X/S?

  • Playstation 5

    Voti: 296 63.5%
  • XBOX Series X/S

    Voti: 170 36.5%

Discussioni Simili