Visualizza messaggio singolo
Vecchio 04-04-2017, 13.50.32   #6
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: Richiesta informazioni generiche

Provo ad essere breve:

A mio parere non c'è età per iniziare: c'è però da dire che quando sei giovane hai molte più energie, quindi iniziare alla tua età non è facile, ma non impossibile. Te ne renderai conto.
C'è poi da dire che la curva di apprendimento quando lavori è molto più ripida (e quindi rapida) rispetto a quando studi, ma è importante che qualcuno ti guidi, altrimenti rischi di imparare nel modo sbagliato (o obsoleto).

Io ritengo che un minimo di basi teoriche siano assolutamente necessarie: non puoi pensare di creare software un minimo complessi da smanettore, l'approccio "dal basso all'alto" (come già citato) a mio parere è fondamentale perchè devi assolutamente capire cosa stai facendo e non procedere per tentativi. Devi padroneggiare ciò che stai facendo.

I linguaggi di programmazione sono solo la sintassi, e quella si impara in fretta.
Esistono delle "categorie": linguaggi procedurali, ad oggetti, funzionali... ogni categoria necessità un po' di "forma mentis" per essere appresa, quindi teoria ed esercizi.
Una volta che entri nella "mentalità" di una certa categoria di linguaggio, apprendere il linguaggio vero e proprio è questione di apprendere le differenze e fare pratica.
Parlando di casi reali, un linguaggio di programmazione può includere funzionalità appartenenti a più categorie, che risultano utili in diversi casi. In definitiva, prima o poi bisogna approcciarsi alle varie tipologie di linguaggio, apprendere i linguaggi è alla fine un processo incrementale.
Infine, è bene notare che apprendere un linguaggio non significa saper programmare bene in quel linguaggio: bisogna apprendere le API, ossia il software a corredo del linguaggio che viene fornito per estenderne le funzionalità e rendere più accessibili procedure altrimenti complicate. Di fatto si programma sulle API, ovviamente avendo conoscenza dei linguaggi, dei loro limiti e dei trucchetti.

Software e Hardware: dipende dal tipo di software che intendi progettare.
Con l'evoluzione dell'informatica i linguaggi di programmazione sono diventati sempre più ad alto livello (ossia sempre più distanti dall'hardware), spostando l'onere dell'ottimizzazione sui compilatori.
In generale un software che richieda prestazioni elevate necessita di un po' di programmazione a basso livello, che è difficile e richiede conoscenza dell'hardware (e taaaanta esperienza). C'è però da dire che l'evoluzione dei compilatori oggi è spesso in grado di ottimizzare più di quanto riesca a fare lo sviluppatore software medio.
I vantaggi di un approccio lontano dall'hardware sono diversi: velocità di produzione, meno errori madornali nel software e quindi maggiore sicurezza, portabilità del software (ossia non essere legati ad uno specifico hardware o ecosistema), ecc... Di contro, hai meno controllo su quello che fai (non sempre è un male ) e talvolta non è sufficiente se vuoi ottenere un certo livello di prestazioni (per questo quasi tutti i linguaggi prevedono qualche clausola per inserire del codice di basso livello all'interno dei programmi).
In definitiva, avere una conoscenza dell'hardware, almeno di base, è sempre utile, ma programmare oggi non richiedere conoscenza approfondita dell'hardware in molti casi.

Ah, la "compilazione" non è altro che il processo di conversione del codice dal linguaggio in cui è stato scritto dal programmatore al linguaggio che la macchina è in grado di comprendere (in modo diretto o indiretto). Non tutti i linguaggi vengono compilati, altri vengono interpretati, in altri casi abbiamo diverse vie di mezzo (come il bytecode java, per citare forse il più famoso) o il supporto a più modalità.

Ad ogni modo quello della programmazione è un campo vasto e in continua evoluzione, se pensi di avvicinarti a questo mondo sappi che è un continuo studiare ed aggiornarsi.
Nel tuo caso è anche un continuo incrementare le tue conoscenze di base (non puoi certo sperare di imparare tutto il necessario in una volta sola) dato che hai ancora necessità di creare questa base e farti una visione sufficientemente chiara della situazione.
Il mio consiglio è anche quello di leggere qualche testo (anche universitario) come "lettura" informatica (non da studiare, sarebbe molto più pesante), perchè una buona lettura può aiutarti molto nel chiarirti le idee. Magari se lo recupero te ne consiglio uno che mi era piaciuto.

EDIT: ecco, volevo essere breve!
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando