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 ?)