Come Creare un Programma
I programmi dei computer sono implementati ovunque ai giorni nostri, dalle auto agli smartphone e in quasi tutti gli ambienti lavorativi. Man mano che il mondo diventa sempre più digitale, la domanda per nuovi programmi continuerà ad aumentare. Se hai la prossima idea che può cambiare il mondo, perché non realizzarla da solo? Inizia dal passaggio 1 per scoprire come imparare un linguaggio di programmazione, sviluppare le tue idee in un prodotto che possa essere testato e poi correggerlo fino a renderlo pronto alla pubblicazione.
1. **Pensa a delle idee.** Un buon programma esegue un compito che rende la vita più semplice per l'utente. Fai una ricerca sui programmi al momento disponibili per il compito che vuoi svolgere e controlla se esistono dei metodi per rendere il processo più semplice o chiaro. Un programma di successo offre all'utente molta utilità.

Esamina le operazioni che svolgi ogni giorno al computer. C'è un modo in cui potresti rendere automatica una porzione di questi compiti con un programma?
Scrivi ogni idea. Anche quelle che ti sembrano sciocche o assurde, perché potrebbero dar vita a qualcosa di utile o geniale.
2. **Studia gli altri programmi.** Cosa fanno? Come potrebbero essere migliorati? Cosa gli manca? Rispondere a queste domande può aiutarti a trovare delle idee.
3. **Scrivi un documento di progetto.** Questo documento descriverà le caratteristiche e gli obiettivi del tuo progetto. Durante la fase di sviluppo potrai fare riferimento al documento di progetto per non perdere la concentrazione e non deviare dall'idea originale. Scrivere il documento di progetto di aiuterà anche a decidere il linguaggio di programmazione migliore.
4. **Inizia da qualcosa di semplice.** Quando sei un principiante della programmazione, la scelta migliore è iniziare dalle piccole cose e passare con il tempo a quelle più impegnative. Imparerai molto di più se ti porrai obiettivi tangibili che puoi raggiungere con un programma semplice.
5. **Scarica un buon editor di testo.** Quasi tutti i programmi sono scritti in editor di testo e poi compilati per essere eseguiti sui computer. Anche se puoi usare dei programmi come Blocco Note o TextEdit, è molto consigliato scaricare un editor che evidenzi la sintassi come Notepad++, JEdit o Sublime Text. Questi programmi faciliteranno molto l'analisi visiva del tuo codice.
Alcuni linguaggi come Visual Basic includono un editor e un compiler in un solo programma.
6. **Impara un linguaggio di programmazione.** Tutti i programmi sono creati scrivendo del codice. Se vuoi creare i tuoi programmi, dovrai avere familiarità con almeno un linguaggio di programmazione. I linguaggi che dovrai imparare varieranno secondo il tipo di programma che vorrai creare. Alcuni dei più utili e dei più importanti includono:

C - C è un linguaggio di basso livello che interagisce da molto vicino con l'hardware del computer. E' uno dei linguaggi più vecchi che viene ancora molto usato.
C++ - il più grande lato negativo di C è che non è orientato a oggetti. E C++ risolve questo problema. C++ è al momento il linguaggio di programmazione più usato del mondo. Programmi come Chrome, Firefox, Photoshop e molti altri sono scritti in C++. Si tratta inoltre di un linguaggio molto usato per i videogiochi.
Java - Java è un'evoluzione di C++, ed è estremamente portabile. La maggior parte dei computer, a prescindere dal loro sistema operativo, possono eseguire una macchina virtuale Java, e questo rende il programma utilizzabile quasi universalmente. È molto usato per i videogiochi e dalle aziende, e spesso è consigliato come linguaggio essenziale.
C# - C# è un linguaggio su base Windows ed è uno di quelli più usati per la creazione di programmi per Windows. È molto simile a Java e C++, e dovrebbe essere facile impararlo se conosci già quei linguaggi. Se vuoi creare un programma per Windows o Windows Phone, dovrai conoscere questo linguaggio.
Objective-C - Si tratta di un altro cugino del linguaggio C pensato specificamente per i sistemi Apple. Se vuoi creare un'applicazione per iPhone o iPad, questo è linguaggio che fa al caso tuo.
7. **Scarica il compiler o l'interprete.** Per qualunque linguaggio di alto livello, come C++ o Java, e molti altri, avrai bisogno di un compiler per convertire il tuo codice in un formato che può essere usato dal tuo computer. Esistono molti compiler tra cui scegliere, sulla base del linguaggio che stai usando.
Alcuni linguaggi sono interpretati, e questo significa che non hanno bisogno di un compiler. Richiedono solamente che l'interprete del linguaggio sia installato sul computer, e il programma potrà essere eseguito subito. Alcuni esempi di linguaggi interpretati includono Perl e Python.
8. **Impara i concetti di base della programmazione.** A prescindere dal linguaggio che hai scelto, dovrai imparare alcuni concetti comuni di base. Sapere come gestire la sintassi del linguaggio ti permetterà di creare programmi molto più potenti. I concetti comuni includono:

Dichiarare le variabili - le variabili sono il modo in cui dati vengono archiviati temporaneamente nel tuo programma. Questi dati possono poi essere salvati, modificati, e richiamati in altre parti del programma.
Usare le affermazioni condizionali (if, else, when, ecc.) - queste sono le funzioni di base del programma, e dettano il funzionamento delle logiche. Le affermazioni condizionali si basano sulle condizioni "true" e "false".
Usare i loop (for, goto, do, ecc.) - i loop ti permettono di ripetere i processi più volte finché non sarà dato il comando di stop.
Usare sequenze di escape - questi comandi eseguono funzioni come creare nuove linee, indentazioni, citazioni, ecc.
Commentare il codice - i commenti sono fondamentali per ricordare cosa fa il tuo codice, aiutare gli altri programmatori a comprendere il tuo codice, e per disabilitare temporaneamente parti del codice.
Comprendere le espressioni regolari.
9. **Trova dei testi sul linguaggio di tua scelta.** Esistono libri per ogni linguaggio e per tutti i livelli di esperienza. Puoi trovarli nelle librerie locali o su internet. Un testo può essere uno strumento inestimabile perché puoi tenerlo a portata di mano quando lavori.
Oltre ai libri, la rete è una fonte inesauribile di guide e tutorial. Cerca delle guide sul linguaggio che hai scelto su siti come Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools, e molti altri.
10. **Segui dei corsi.** Chiunque può imparare da solo a creare un programma se ha la giusta determinazione, ma in alcuni casi un insegnante e l'ambiente di un'aula scolastica possono essere molto utili. Del tempo privato con un esperto può ridurre molto il tempo necessario per afferrare i concetti fondamentali della programmazione. Le aule sono un ottimo luogo dove imparare concetti avanzati di matematica e logica necessari per i programmi più complessi.
Le lezioni costano denaro, perciò assicurati di iscriverti a classi che ti aiuteranno a imparare ciò che vuoi sapere.
11. **Fai delle domande.** Internet è un modo fantastico per mettersi in contatto con altri sviluppatori. Se ti blocchi su un progetto, chiedi aiuto su siti come StackOverflow. Assicurati di fare le domande in modo intelligente e dando la prova di aver già provato diverse soluzioni possibili.
12. **Inizia a scrivere un programma semplice con le funzionalità principali.** Questo sarà il prototipo che mostra le funzionalità che stai cercando di ottenere. Un prototipo è un programma veloce, e dovrebbe essere corretto fino a trovare un design che funziona. Se ad esempio stai creando un programma per un calendario, il tuo prototipo sarà un semplice calendario (con le date corrette!) e un modo per aggiungervi eventi.

Il tuo prototipo cambierà spesso durante il ciclo di sviluppo quando troverai nuovi metodi per affrontare i problemi o penserai a un'idea che vuoi integrare nel programma.
Il prototipo non deve essere curato graficamente In effetti la grafica e il design dovrebbero essere una delle ultime cose su cui concentrarti. Usando nuovamente l'esempio del calendario, il tuo prototipo dovrebbe essere costituito solo da testo.
Se stai realizzando un gioco, il tuo prototipo dovrebbe essere divertente! Se il prototipo non è divertente, probabilmente non lo sarà neppure il gioco completo.
Se le meccaniche desiderate non funzionano nel prototipo, probabilmente è il caso di ripartire da zero.
13. **Forma una squadra.** Se stai sviluppando un programma da solo, puoi usare un prototipo per aiutare a costruire la squadra. Un team ti aiuterà a individuare i bug più velocemente, a correggere le funzionalità e progettare gli aspetti grafici del programma.

Un team non è necessario per i progetti piccoli, ma ridurrà i tempi di sviluppo significativamente.
Guidare un team è un'operazione complessa e difficile, e richiede buone qualità di gestione e un team costruito bene.
14. **Riparti da zero se necessario.** Quando hai acquisito familiarità con il tuo linguaggio, potresti essere in grado di creare prototipi funzionanti in pochi giorni. Per questo motivo, non aver paura di cestinare la tua idea e ricominciare da un punto di vista diverso se non sei felice dei tuoi progressi. È molto più semplice implementare modifiche importanti in questa fase e non successivamente quando avrai già creato le funzionalità.
15. **Commenta tutto.** Usa la sintassi per commentare del tuo linguaggio di programmazione per lasciare delle note su tutte le linee di codice importanti. Questo ti aiuterà a ricordare cosa stavi facendo se devi abbandonare il progetto per un po', e aiuterà gli altri sviluppatori a capire il tuo codice. Questo è molto importante se lavori come parte di un team di programmazione.
Puoi usare i commenti per disabilitare temporaneamente delle parti di codice durante i test. Ti basterà includere il codice che vuoi disabilitare nella sintassi dei commenti e quello non sarà compilato. Potrai poi eliminare la sintassi dei commenti e il codice sarà ripristinato.
16. **Riunisci un team di testing.** Nella fase alfa, il team di testing dovrebbe essere piccolo. Un piccolo gruppo ti aiuterà a ricevere commenti pertinenti e ti darà la possibilità di rapportarti con i tester personalmente. Ogni volta che aggiorni il prototipo, le nuove versioni saranno sottoposte agli alfa tester. I tester proveranno tutte le funzionalità incluse e cercheranno anche di trovare gli errori, documentando i loro risultati.

Se stai sviluppando un prodotto commerciale, dovrai assicurarti che tutti i tuoi tester firmino un Accordo di Non Divulgazione (NDA). Questo impedirà loro di divulgare informazione alle altre persone sul tuo programma, ed eviterà le soffiate alla stampa e agli altri utenti.
Dedica del tempo alla progettazione di un solido piano di testing. Assicurati che i tuoi tester abbiano un metodo semplice per riportare i bug nel programma, e accedere alle nuove versioni dell'alfa. GitHub e le altre repository di codice sono un ottimo modo per gestire questo aspetto.
17. **Testa continuamente il tuo prototipo.** I bug sono la rovina di ogni sviluppatore. Gli errori nel codice e gli utilizzi inaspettati possono provocare moltissimi problemi nel prodotto finito. Mentre continui a lavorare sul tuo prototipo, testalo il più possibile. Fai tutto quello che puoi per trovare gli errori del programma e poi cerca di evitare che si creino degli errori in futuro.

Prova a inserire date strane se il tuo programma lavora con le date. Delle date molto vecchie o nel futuro lontano possono provocare reazioni strane nel programma.
Inserisci i tipi di variabili errati. Ad esempio, se hai un modello che richiede l'età dell'utente, inserisci invece una parola e guarda cosa accade al programma.
Se il tuo programma ha un'interfaccia grafica, fai click su tutto. Cosa accade quando torni a uno schermata precedente, o fai click sui pulsanti nell'ordine sbagliato?
18. **Risolvi i bug in ordine di priorità.** Quando correggi il programma nell'alfa, passerai molto tempo a sistemare le caratteristiche che non funzionano correttamente. Quando organizzi i rapporti sui bug dei tuoi alfa tester, dovrai ordinarli secondo due valori:  e.

La Gravità di un bug è la misura dei danni che può provocare. I bug che provocano il crash del programma, corrompono dei dati e impediscono al programma di essere eseguito sono definiti Bloccanti. Le caratteristiche che non funzionano o restituiscono risultati scorretti sono definite Critiche, mentre le funzionalità difficili da usare o dall'aspetto sgradevole sono definite Maggiori. Esistono anche bug Normali, Minori e Superflui che colpiscono sezioni più piccole o funzionalità meno importanti.
La Priorità di un bug determina l'ordine in cui li affronterai in sede di correzione. Risolvere i bug di un programma è un processo che richiede tempo, che deve essere sottratto al tempo per aggiungere nuove funzionalità e rifinire il programma. Perciò dovrai tenere conto della priorità di un bug per assicurarti di rispettare le scadenze. Tutti i bug Bloccanti e Critici hanno la priorità più alta, in alcuni casi definita P1. I bug a P2 sono solitamente i bug Maggiori che devono essere risolti, ma non impediranno la pubblicazione del prodotto. Per i bug P3 e P4 di solito non viene fissata una scadenza per la risoluzione, e ricadono nella categorie delle migliorie che sarebbe bello implementare.
19. **Aggiungi più funzionalità.** Durante la fase alfa, aggiungerai più funzionalità al tuo programma per renderlo più simile al programma che hai descritto nel tuo documento di progetto. Durante la fase alfa il prototipo si evolve nelle basi del programma completo. Alla fine della fase alfa, il tuo programma dovrebbe avere implementate tutte le sue funzionalità.
Non allontanarti troppo dal progetto originale. Un problema comune nello sviluppo dei software è l'accumulo di funzionalità, ovvero la costante aggiunta di nuove idee che provocano lo smarrimento del progetto originale e una perdita di tempo in fase di sviluppo- Il tuo programma dovrebbe essere il migliore della sua categoria, e non un tuttofare.
20. **Testa ogni funzionalità quando la aggiungi.** Quando aggiungi una nuova funzionalità in fase alfa, consegna la nuova versione ai tuoi tester. La regolarità delle nuove versioni dipenderà interamente dalla dimensione della tua squadra e dalla velocità dei tuoi progressi.
21. **Blocca le funzionalità quando la fase alfa è terminata.** Una volta implementate tutte le funzionalità nel tuo programma, potrai terminare la fase alga. A questo punto, non dovrai aggiungere altre caratteristiche al programma, e quelle incluse dovrebbero funzionare. Adesso puoi passare a una fase di testing più ampia e alla rifinitura del programma, conosciuta come fase beta.
22. **Aumenta la dimensione del gruppo di prova.** Nella fase beta, il programma è reso disponibile a un gruppo di persone molto più ampio. Alcuni sviluppatori rendono la fase beta pubblica, definita in questo caso open beta. Questo permette a tutte le persone di iscriversi e partecipare alla fase di test del prodotto.
Secondo le necessità del tuo prodotto, puoi decidere se organizzare un'open beta.
23. **Testa la connettività.** Man mano che i programmi diventano sempre più interconnessi, c'è una buona probabilità che il tuo programma faccia affidamenti sulla connessione con altri prodotti o a dei server. Il beta testing ti permette di assicurarti che queste connessioni funzionano con un carico maggiore, e questo ti garantirà che il programma potrà essere utilizzato dal pubblico al momento del rilascio.
24. **Rifinisci il tuo programma.** Nella fase beta, non dovrai più aggiungere funzionalità, perciò puoi concentrarti sul miglioramento dell'estetica e della facilità d'uso del programma. In questa fase, la progettazione dell'interfaccia per l'utente diventa una priorità, per garantire che gli utenti non trovino difficoltà nella navigazione del programma e riescano a sfruttarne tutte le funzionalità.

La progettazione dell'interfaccia può essere molto difficile e complessa. Esistono professionisti che si dedicano solo a questo aspetto della programmazione. Assicurati solo che il tuo progetto personale sia facile da usare e gradevole alla vista. Potrebbe non essere possibile realizzare un'interfaccia professionale senza una notevole spesa e un team di sviluppatori.
Se hai il denaro a disposizione, puoi assumere un progettista grafico che realizzi l'interfaccia per te. Se hai creato un ottimo progetto che può diventare un programma di successo, trova un buon designer e fallo entrare nella squadra.
25. **Continua a cercare i bug.** Per tutta la fase beta, dovresti ancora catalogare e dare la giusta priorità ai bug trovati dai tuoi utenti. Dal momento che nuovi tester stanno provando il programma, probabilmente saranno scoperti nuovi bug. Elimina i bug secondo la loro priorità, tenendo a mente le tue scadenze finali.
26. **Fai pubblicità al tuo programma.** Se vuoi trovare degli utenti, dovrai assicurarti che sappiano che il tuo programma esiste. Come per ogni prodotto dovrai fare un po' di pubblicità per farti conoscere dalle persone. L'estensione e la profondità della tua campagna di marketing saranno dettate dalle funzionalità del tuo programma e dal budget a tua disposizione. Alcuni metodi semplici per aumentare l'esposizione del tuo programma includono:

Pubblicare post sul tuo programma su forum specializzati. Assicurati di seguire le regole di pubblicazione per non rischiare che i tuoi post siano segnalati come spam.
Inviare comunicati stampa ai siti di tecnologia. Trova alcuni blog e siti di tecnologia che trattano di argomenti simili ai contenuti del tuo programma. Invia agli editori un comunicato stampa che descrive i dettagli del tuo programma e del suo funzionamento. Includi alcune istantanee delle schermate del programma.
Realizza dei video da caricare su YouTube. Se il tuo programma è progettato per completare un compito specifico, crea un video di YouTube che mostra il tuo programma in azione. Struttura i tuoi video come guide.
Crea delle pagine sui social network. Puoi creare delle pagine di Facebook e Google+ per il tuo programma, e puoi usare Twitter per rilasciare notizie sulla tua compagnia e relative al programma.
27. **Rendi disponibile il tuo programma sul tuo sito web.** Per i programmi più piccoli, potrai riuscire a caricare il file direttamente sul server del sito. Potresti includere un sistema di pagamento se si tratta di un software a pagamento. Se il tuo programma diventerà molto conosciuto, potresti aver bisogno di caricare il file su un server in grado di gestire più download.
28. **Crea un servizio di supporto.** Quando il tuo programma è stato pubblicato, vi saranno immancabilmente degli utenti con problemi tecnici o che non capiscono il funzionamento del programma. Il tuo sito web dovrebbe offrire una documentazione completa e qualche tipo di servizio di supporto. Questi possono includere un forum di supporto tecnico, un'email di supporto, aiuto dal vivo con un operatore, ecc. Ciò che puoi offrire ai tuoi utenti dipende dal budget a tua disposizione.
29. **Mantieni il tuo prodotto aggiornato.** Quasi tutti i programmi al giorno d'oggi ricevono patch e aggiornamenti per molto tempo dopo il loro rilascio. Queste patch possono correggere bug critici e non critici, aggiornare i protocolli di sicurezza, migliorare la stabilità o persino aggiungere funzionalità o cambiare la grafica. Mantenere il tuo programma aggiornato lo aiuterà a rimanere competitivo.
{"url": "https://www.wikihow.it/Creare-un-Programma", "language": "it"}