UFFICIALE Imparare a Programmare

ketavet

Utente Attivo
259
28
Per motivi di pura cultura mi piacerebbe imparare qualcosa sulla programmazione, non mi serve per cercare lavoro quindi non ho esigenze specifiche.
Da cosa potrei iniziare? Esistono dei must da imparare per farsi le ossa e poi procedere in modo propedeutico?
Quali sono i linguaggi "basilari" che servono da fondamenta per costruire il percorso futuro?
O addirittura esiste qualcos'altro da imparare prima di addentrarsi nei linguaggi? Come per esempio i diagrammi di flusso.
Uso Windows ma potrei installare Linux in dual boot, il problema sarebbe impararlo. Attualmente non ho possibilità di usare un MacOS.
 

Edmund Blackadder

Utente Attivo
327
171
Quali sono i linguaggi "basilari" che servono da fondamenta per costruire il percorso futuro?
Premessa: tutti i linguaggi sono validi. Non ne esiste uno perfetto. Il linguaggio migliore è quello che si adatta meglio alle tue attuali esigenze.

C'è chi ti consiglierà linguaggi difficili come il C o Rust e chi ti consiglierà linguaggi semplici come Python oppure Javascript o anche Java. Personalmente ritengo che sia meglio iniziare a programmare con cose semplici e, una volta imparato, passare a cose più difficili.

Sceglierei Python per imparare le basi. È un ottimo linguaggio, il fatto che sia semplice non vuol dire che sia un linguaggio con cui puoi fare poche cose, anzi puoi farci quasi di tutto. Io su Linux lo uso per piccoli script ma un sacco di aziende lo utilizzano per grandi progetti.

O addirittura esiste qualcos'altro da imparare prima di addentrarsi nei linguaggi? Come per esempio i diagrammi di flusso.
Li ho studiati ma li ritengo inutili. Quando scriverai il programma ci sarà sempre qualche piccolo dettaglio che ti cambierà il diagramma.

Uso Windows ma potrei installare Linux in dual boot, il problema sarebbe impararlo.
A parte il fatto che è la migliore piattaforma per sviluppare, Linux ti darebbe un grande aiuto a capire come funziona il sistema operativo, cosa non da poco visto che i programmi che scriverai dovranno interagire con di esso.

Linux è più semplice di quanto tu non creda quindi il mio consiglio è di installarlo in dual boot e sviluppare lì (e utilizzare come editor di testo Vistual Studio Code).
 
  • Mi piace
Reazioni: Moffetta88

clessidra

Utente Attivo
766
272
CPU
VIA C3
GPU
Ati Rage
OS
linux - Red Hat 1.1
Se è per hobby io, che non sono un programmatore, vedrei bene python. Ma non per le cose troppo serie.
 
  • Mi piace
Reazioni: Moffetta88
U

Utente 16812

Ospite
Per motivi di pura cultura mi piacerebbe imparare qualcosa sulla programmazione, non mi serve per cercare lavoro quindi non ho esigenze specifiche.
Da cosa potrei iniziare? Esistono dei must da imparare per farsi le ossa e poi procedere in modo propedeutico?
Quali sono i linguaggi "basilari" che servono da fondamenta per costruire il percorso futuro?
O addirittura esiste qualcos'altro da imparare prima di addentrarsi nei linguaggi? Come per esempio i diagrammi di flusso.
Uso Windows ma potrei installare Linux in dual boot, il problema sarebbe impararlo. Attualmente non ho possibilità di usare un MacOS.

Se parti da zero, prima di iniziare a programmare c'è parecchia strada da percorrere; in questo percorso la conoscenza di strumenti utili, quali i diagrammi a blocchi e la pseudo-codifica (il cosiddetto "linguaggio di progetto"), alla descrizione di un algoritmo, operazione tutt'altro che semplice, è il primo passo da compiere se si vogliono progettare e "comunicare" algoritmi.
Premesso ciò, la mia risposta è sempre la stessa (basta fare una semplice ricerca qui sul Forum per trovare centinaia di interventi in cui dico le stesse cose, in mille "salse" diverse): il processo di programmazione passa attraverso alcune "fasi", di cui quella di progettazione dell'algoritmo (distinta nelle due "sotto-fasi" che vanno dal problema all'algoritmo e poi dall'algoritmo al programma) è la più importante e solo in un secondo tempo si arriva alla vera e propria attività di "implementazione" del programma, utilizzando uno specifico "ambiente integrato di sviluppo" (IDE).
Riporto il mio intervento (ripreso da un altro Forum):

"Dando per scontato che tu conosca già le nozioni matematiche di base (le proprietà dell'algebra booleana, le equivalenze logiche, i sistemi di numerazione e le regole di conversione tra sistemi diversi, la codifica delle informazioni, ecc.) e soprattutto gli "schemi" di progettazione di algoritmi (distinti nelle due fasi di passaggio dal problema all'algoritmo e dall'algoritmo al programma), la scelta dipende da dove vuoi cominciare (dovrai decidere la strada da intraprendere): ad esempio Python è un vero e proprio ambiente di programmazione che consente di utilizzare diversi "paradigmi" di programmazione (la programmazione strutturata, la programmazione ad oggetti e la programmazione funzionale), poi c'è la programmazione Web lato client (HTML, fogli di stile, JS, ecc.), lato server (PHP, MySQL, ecc.) e lato Mobile (smartphone e tablet).
Volendo sviluppare applicazioni per tablet e smartphone suggerisco Swift e Objective-C per sistemi iOS e Kotlin e Java per Android (ovviamente JavaScript per entrambi i sistemi, soprattutto per applicazioni "ibride"), se invece vuoi programmare in Windows ti consiglio di studiare la programmazione .NET in C#, che è la meno complessa, oppure Visual Basic/Visual Studio (C++, Java e JavaScript sempre consigliati).
Infine se intendi programmare su piattaforme come Arduino o altri micro-controllori, dovresti conoscere il linguaggio C (Python per la board Raspberry PI), mentre per lo scambio di dati tra applicazioni differenti può essere utile conoscere l'XML e/o il formato JSON (preferibilmente insieme ad altre tecnologie)."

A presto ?

P.S. A breve dovrebbe iniziare il mio corso di Object-Pascal/Delphi (non chiedetemi quando perché non lo so ?)
 
  • Mi piace
Reazioni: Moffetta88

giammo82

Utente Attivo
1,199
518
Da dove si inizia non ha importanza,l’importante è applicarsi ogni giorno ed la multidisciplina che aiuta a superare i problemi,con la consapevolezza che in questo campo non si finisce mai dì studiare


Inviato dal mio iPhone utilizzando Toms Hardware Italia Forum
 

giammo82

Utente Attivo
1,199
518

Fenzo

Nuovo Utente
59
5
Da un pò di tempo mi sto interessando alla programmazione.
Ho studiato a distanza il corso base di livello scuole superiori su C# (vivo in Svezia) nell'ottica di accedere eventualmente ad un scuola professionale di 2 anni (il corso base è un requisito d'accesso).
Nel frattempo parlando con una conoscente che lavora in un'agenzia di reclutamento, mi veniva consigliato di intraprendere un percorso indirizzato al fullstack piuttosto che una interamente back-end (sembra che sia quello più richiesto al momento nel mercato stoccolmese).
Così nel frattempo mi sono avvicinato a HTML e CSS e mi sono iscritto anche al corso base di web dev, così da ampliare i requisiti prescolastici e farmi un'idea de "l'altra faccia della programmazione".

Ora il punto è, mentre il lato front-end è più facilmente identificabile, di quello back-end ho invece (dal basso della mia pochissima esperianza) un'immagine un pò fumosa. Quello che mi domando è cosa possa trovarsi a fare nel quotidiano, una persona che si è studiato 2 anni di Java o C#.
Perchè finchè si tratta di quello che ho studiato su C# fino adesso (fatto giusto un pò di oop), l'ho trovato divertente, ma poi uno esattamente cosa farà?
Mi piacciono le esercitazioni, trovo divertente quel "risolvere enigmi" ma se poi in ambito lavorativo tutto si riduce a debuggare per giorni e giorni, forse allora lo troverei meno divertente, ecco.
 
U

Utente cancellato 371741

Ospite
Se non trovi il lavoro che ti diverte, sceglitelo e createlo.
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,464
12,877
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Mi piacciono le esercitazioni, trovo divertente quel "risolvere enigmi" ma se poi in ambito lavorativo tutto si riduce a debuggare per giorni e giorni, forse allora lo troverei meno divertente, ecco.
Hai lo stesso problema del mio socio, solo che lui lavora già, facendo dei gran grossi casini e quindi perdendo credibilità.
Se una cosa la programmi te, te la devi debuggare, non puoi prendere, scrivere del codice e poi lasciare la parte rognosa al cliente o ai colleghi. Uno sguardo lo devono dare pure i colleghi, vero, ma il grosso lo devi fare te.
COmunque per il backend ormai ci sono un'infinità di linguaggi di programmazione, chi più semplici chi più ostici
 

Fenzo

Nuovo Utente
59
5
Se una cosa la programmi te, te la devi debuggare, non puoi prendere, scrivere del codice e poi lasciare la parte rognosa al cliente o ai colleghi. Uno sguardo lo devono dare pure i colleghi, vero, ma il grosso lo devi fare te.
Mi sono espresso male.

Mi pare corretto (diciamo quantomeno etico) prendersi la paternità di ciò che si scrive (ed assicurarsi che funzioni). Nel corso che base che ho seguito in effetti puntavano molto sul fatto che la programmazione non consiste solo nello scrivere codice ma anche nel controllare la sua efficacia e chiarezza (con commenti adeguati etc).

Non avendo mai visto e/o operato su un vero programma completo, non ho idea di come esso si presenti e di quanto possa essere vasto. Magari la domanda corretta potrebbe essere: "Quanto tempo passa mediamente un progammatore a creare/scrivere codice rispetto al tempo che passa a fare debug o altro?".
Perdonami, ma non riesco a focalizzare la "giornata tipo del programmatore" e diventa difficile anche fare le domande nel modo corretto.
Post unito automaticamente:

Se non trovi il lavoro che ti diverte, sceglitelo e createlo.

Mi lasci pensare che sia un mondo molto aperto e questo sarebbe uno dei punti forti a mio avviso.
 
Ultima modifica:
U

Utente cancellato 371741

Ospite
Intendo dire che ci sono molte community open dove si puo contribuire, e imparare, visto che il codice e' aperto, e che ci sono esperti che ti aiutano. In questo senso, la community la scegli tu, secondo quello che ti piace, e ti fai un esperienza in quel ramo.

Non esiste solo il lavoro dipendente, che spesso ti confina a un certo ruolo, col tempo piu o meno noioso, si puo anche lavorare a contratto, con partita iva, scegliendo lavori diversi, o scegliendosi le aziende a cui inviare il curriculum.

L'abilita' a produrre buon codice, ben funzionante, non sempre lega con chiarezza e stile del codice. Ho visto codici orrendi che funzionavano alla perfezione. E codici splendidi con problemi che ti perseguitano perche mal ideati.

Non e' un lavoro semplicissimo, comunque. Fare debug di un qualcosa gia in piedi e' potenzialemente piu semplice che progettare e implementare un lavoro, non hai responsabilita' sul design piu o meno buono. Allo stesso tempo resti di seconda classe, le cose piu belle le pappano gli altri.
 
  • Mi piace
Reazioni: Fenzo

pabloski

Utente Èlite
2,868
916
Mi lasci pensare che sia un mondo molto aperto e questo sarebbe uno dei punti forti a mio avviso.

Lo è. Ha ragione bigendian.

Io ho sempre fatto di testa mia ( il lavoro dipendente è il mio nemico numero uno ), ma molti colleghi d'università che avevano iniziato come lavoratori dipendenti, sono poi finiti a lavorare in proprio come consulenti.

Direi che è quasi la naturale progressione di quest'attività. Se non lavori con partita iva, è perchè sei stato in grado di diventare il dirigente di qualche grossa azienda.
 
U

Utente cancellato 371741

Ospite
Per imparare a programmare vedrei utile:

1) Suggerirei di installare Linux, anche in virtualbox, dove tutto quello che serve e' gratuito, a mio avviso l'ambiente ideale per programmare. Strumenti "open" ci sono naturalmente anche per windows.
2) Iniziare dalle cose semplici, per andare gradualmente verso obbiettivi piu complessi.
3) libri, tutorial, video, tutto buono, come anche imparare dal molto codice opensource che esiste in giro
4) copiare pezzi di codice va bene, ma "capendo" ogni riga. Altrimenti e' cargo-cult (https://en.wikipedia.org/wiki/Cargo_cult_programming)
5) Non va piu di moda, perche si pensa di poter imparare tutto da google/youtube. Ma invece, qualche amico esperto puo aiutarti a capire determinate cose che non e' facile trovare spiegate. Questo forum certamente ha buoni maestri.
 
  • Mi piace
Reazioni: Mursey

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili