Come creare software

Parte1

Imparare le corde

  1. Determina quale tipo base di sviluppo software ti interessa. Ci sono due campi di base dello sviluppo del software: Sviluppo di applicazioni e Sviluppo di sistemi. Lo sviluppo di applicazioni si concentra sulla creazione di programmi che soddisfano i bisogni degli utenti. Questi possono andare dalle applicazioni per cellulari, ai videogiochi ad alta produzione, al software di contabilità a livello aziendale. Lo sviluppo dei sistemi si concentra sulla creazione e la manutenzione di sistemi operativi utilizzando lo sviluppo del ciclo di vita. Lo sviluppo dei sistemi spesso coinvolge l'operatività della rete e la sicurezza dei dati.

2. Insegnati un linguaggio di programmazione. Chiunque può avere delle idee, ma uno sviluppatore sarà in grado di trasformare queste idee in qualcosa di tangibile. Anche se vuoi lavorare solo sugli aspetti di design del software, dovresti avere una certa familiarità con la codifica ed essere in grado di creare prototipi di base. C'è un'enorme varietà di linguaggi di programmazione che puoi imparare da solo. Alcuni dei più utili e importanti includono:

  • C - C è uno dei linguaggi più vecchi ancora in uso, ed è la base per la maggior parte degli altri linguaggi in questa lista. Il C è usato per sviluppare programmi di basso livello, e lavora a stretto contatto con l'hardware del computer.
  • C++ - Questa è la versione orientata agli oggetti del C, ed è il linguaggio di programmazione più popolare al mondo. Programmi come Chrome, Firefox, Photoshop e molti altri sono tutti costruiti con C++. È anche un linguaggio molto popolare per creare videogiochi. Gli sviluppatori C++ sono quasi sempre molto richiesti.
  • Java - Questo è un'evoluzione del linguaggio C++, ed è usato per la sua facilità di portabilità. Quasi ogni sistema può eseguire una Java Virtual Machine, permettendogli di eseguire software Java. È ampiamente usato nei videogiochi e nel software aziendale, e molte persone lo raccomandano come un linguaggio essenziale.
  • C# - C# è un linguaggio basato su Windows che fa parte del framework .NET di Microsoft. È strettamente legato a Java e C++, e se si impara Java si può passare rapidamente a C#. Questo linguaggio è particolarmente utile per gli sviluppatori che lavorano con software Windows o Windows Phone.
  • Objective-C - Questo è un altro cugino del linguaggio C che è specificamente progettato per i sistemi Apple. Vede un'immensa popolarità nelle applicazioni per iPhone e iPad. È un ottimo linguaggio da imparare come libero professionista.
  • Python - Questo è un linguaggio incredibilmente facile da imparare, uno dei più facili. Python è specializzato nello sviluppo web.
  • PHP - Questo non è esattamente sviluppo di software, ma PHP è essenziale se sei interessato ad entrare nello sviluppo web. C'è sempre un sacco di lavoro per gli sviluppatori PHP, anche se non è così redditizio come lo sviluppo di software.

3. Trova risorse per aiutarti ad imparare. La maggior parte delle librerie ha intere sezioni dedicate ai libri di programmazione, e ce ne sono tonnellate disponibili su Amazon e altri rivenditori elettronici. Un libro di programmazione ben scritto sarà probabilmente la migliore risorsa che possiate avere, e vi permetterà di fare rapidamente riferimento ad esso mentre lavorate ai progetti.

  • Oltre ai libri, internet è un tesoro infinito di guide e tutorial. Cercate guide sul linguaggio di vostra scelta su siti come CodeAcademy, Code.org: What will you create?, Bento, Udacity, Udemy, Khan Academy, W3Schools, e molti altri.

4. Prendi qualche lezione. Anche se non hai bisogno di una laurea completa per entrare nello sviluppo del software, non può far male prendere qualche lezione al tuo college locale o centro di apprendimento. Questo vi darà il beneficio di un'istruzione individuale, e sarete sfidati a risolvere problemi che probabilmente non avreste risolto se aveste imparato da soli.

  • I corsi costano, quindi assicuratevi di iscrivervi a corsi che vi aiuteranno ad imparare ciò che volete sapere.
  • Mentre molti sviluppatori sono in grado di entrare nell'industria basandosi puramente sui meriti delle loro abilità, vi aiuterete a distinguervi dalla massa se avete una laurea in informatica da un'università di quattro anni. Una laurea ti darà un più ampio background di conoscenze e ti darà accesso a classi aggiuntive utili come la matematica e la logica.

5. Lavora su progetti personali. Prima di iniziare a provare ad applicare le tue nuove abilità di programmazione ai lavori del mondo reale, lavora su alcuni progetti per te stesso. Sfida te stesso a risolvere problemi usando il tuo linguaggio di programmazione. Non solo questo aiuterà a sviluppare le tue abilità, ma aiuterà anche a costruire il tuo curriculum.

  • Per esempio, invece di usare il programma di calendario del tuo computer per rimanere organizzato, prova a progettare il tuo!
  • Se sei interessato allo sviluppo di videogiochi, lavora su giochi semplici che non si concentrano sulla grafica o su meccaniche complesse. Invece, concentrati sul renderli divertenti e unici. Una collezione di piccoli giochi creati da te farà un figurone nel tuo portfolio.

6. Fai domande. Internet è un modo fantastico per connettersi con altri sviluppatori. Se vi trovate bloccati su uno dei vostri progetti, chiedete aiuto su siti come Stack Overflow. assicuratevi di chiedere in modo intelligente e di poter dimostrare di aver già provato diverse soluzioni possibili.

7. Fate pratica ogni giorno. Lavorate sui vostri progetti preferiti ogni giorno, anche se solo per un'ora. Questo vi aiuterà a rimanere freschi e ad imparare costantemente nuove tecniche. Molti sviluppatori hanno avuto successo nell'imparare un linguaggio assicurandosi di esservi esposti quotidianamente.

  • Stabilite ogni giorno un tempo che potete dedicare alla codifica, o stabilite una scadenza entro la quale dovete finire. Cerca di lavorare sui tuoi progetti ogni giorno durante la settimana, così potrai rilassarti nel fine settimana.

Parte2: Sviluppare un programma

  1. Brainstorming Ideas. Un buon programma eseguirà un compito che rende la vita più facile all'utente. Guarda il software che è attualmente disponibile per il compito che vuoi svolgere, e vedi se ci sono modi in cui il processo potrebbe essere più facile o più agevole. Un programma di successo è un programma che gli utenti troveranno molto utile.Esaminate i vostri compiti quotidiani sul vostro computer. C'è un modo per automatizzare una parte di questi compiti con un programma? Scrivete ogni idea. Anche se al momento sembra sciocca o stravagante, potrebbe trasformarsi in qualcosa di utile o addirittura brillante.Esaminate altri programmi. Cosa fanno? Come potrebbero farlo meglio? Cosa manca loro? Rispondere a queste domande può aiutarvi a trovare idee per il vostro approccio.

2, Scrivete un documento di progettazione. Questo documento delineerà le caratteristiche e ciò che si intende ottenere con il progetto. Fare riferimento al documento di design durante il processo di sviluppo aiuterà a mantenere il progetto in pista e concentrato. Vedere questa guida per i dettagli sulla scrittura del documento.

3. Creare un prototipo. Questo è un programma di base che mostra la funzionalità che si vuole ottenere. Un prototipo è un programma veloce, e dovrebbe essere iterato fino a trovare un design che funziona. Per esempio, se state creando un programma di calendario, il vostro prototipo sarà un calendario di base (con le date corrette!) e un modo per aggiungervi degli eventi.

  • Il vostro prototipo cambierà spesso durante il ciclo di sviluppo quando vi verranno in mente nuovi modi per affrontare i problemi o penserete ad un'idea che volete incorporare.
  • Il prototipo non deve essere bello. Infatti, l'arte e il design dovrebbero essere una delle ultime cose su cui ci si concentra. Usando ancora l'esempio del calendario, il tuo prototipo dovrebbe essere molto probabilmente solo testo.

4. Testalo più e più volte. I bug sono la rovina di ogni sviluppatore. Errori nel codice e usi inaspettati possono causare tutti i tipi di problemi in un prodotto finito. Mentre continuate a lavorare sul vostro progetto, testatelo il più possibile. Fate tutto il possibile per romperlo, e poi cercate di evitare che si rompa in futuro. Fate testare il vostro programma da amici e familiari e riportatene i risultati. Qualsiasi modo per avere un feedback aiuterà il vostro processo di sviluppo.

  • Provare ad inserire date dispari se il vostro programma ha a che fare con le date. Date molto vecchie o date lontane nel futuro possono causare strane reazioni con il programma.
  • Inserite il tipo sbagliato di variabili. Per esempio, se hai un modulo che chiede l'età dell'utente, inserisci invece una parola e vedi cosa succede al programma.
  • Se il tuo programma ha un'interfaccia grafica, clicca su tutto. Cosa succede quando torni a una schermata precedente, o clicchi su pulsanti nell'ordine sbagliato? Lucidate i vostri progetti. Mentre va bene fare un progetto grezzo per la fase di prototipazione e sviluppo, se volete che altri lo usino dovrete dedicare del tempo alla rifinitura. Questo significa assicurarsi che i menu scorrano in modo logico, che l'interfaccia utente (UI) sia pulita e facile da usare, che non ci siano bug evidenti o eclatanti, e che sia rivestita di una bella finitura.
    • Il design e la funzionalità dell'UI possono essere molto difficili e complessi. La gente fa intere carriere nella progettazione delle UI. Assicurati solo che il tuo progetto personale sia facile da usare e facile per gli occhi. Una UI professionale potrebbe non essere possibile senza un budget e un team.
    • Se hai il budget, ci sono molti grafici freelance che potrebbero potenzialmente progettare una UI a contratto per te. Se hai un progetto solido che speri diventi la prossima grande cosa, trova un buon designer di UI e rendilo parte del tuo team.

    6. Metti i tuoi progetti su GitHub. GitHub è una comunità open-source che ti permette di condividere il tuo codice con gli altri. Questo vi permetterà di avere una visione del vostro codice e di beneficiare gli altri che stanno cercando soluzioni che voi potreste aver trovato. GitHub è una grande risorsa di apprendimento così come un buon modo per costruire il vostro portfolio.

    7. Distribuite il vostro software. Una volta che avete un prodotto finito, potete scegliere se distribuirlo o meno. Ci sono una varietà di modi per farlo al giorno d'oggi a seconda del tipo di software che avete creato.

    • Uno dei modi più comuni per i piccoli team o gli sviluppatori indipendenti di distribuire il loro software è attraverso un sito web personale. Assicuratevi che tutte le vostre caratteristiche siano ben documentate, e includete alcuni screenshot e tutorial. Se stai vendendo il tuo software, assicurati di avere un buon sistema di pagamento digitale e un server da cui distribuire il software.
    • Se stai sviluppando software per uno specifico dispositivo o sistema operativo, ci sono diversi negozi digitali che potresti essere in grado di utilizzare. Per esempio, se stai creando un software per dispositivi Android, puoi vendere la tua applicazione attraverso il Google Play Store, l'Amazon App Store, o il tuo sito web personale.

    Parte3: Ottenere lavoro

    1. Prendere lavori a contratto. Anche se questi non pagano bene e sono meno affidabili di un lavoro a tempo pieno, puoi aumentare significativamente il tuo portfolio prendendo una serie di lavori a contratto. Controlla siti come Elance e ODesk (conosciuto anche come "Upwork" ora) per trovare lavoro. Mentre può essere difficile essere considerati per un contratto, una volta ottenuto il tuo primo lavoro diventa molto più facile.
    • Hacker News è una grande risorsa per i lavori a contratto e freelance. Controlla la sezione "Ask".
    • Mentre può essere allettante fare un'offerta bassa per assicurarsi un lavoro a contratto, non vendere i tuoi servizi a buon mercato. Non solo finirai per lavorare di più per meno di quanto meriti, ma farai anche arrabbiare gli altri nel tuo campo, portando a meno networking.
    • Un buon lavoro su un lavoro a contratto può talvolta portare a una posizione a tempo pieno. Fai sempre del tuo meglio!

    2. Fai rete il più possibile. Partecipa al maggior numero possibile di convention e hack-a-thon. Non solo questo ti esporrà a più codice e problemi da risolvere, ma ti aiuterà anche a incontrare altre persone nel settore. Nonostante quello che si potrebbe pensare dei programmatori che lavorano da soli nel loro scantinato, la maggior parte degli sviluppatori a tempo pieno fanno parte di un team e il networking è importante come in qualsiasi altro campo.

    3. Fai domanda per posizioni a tempo pieno. Una volta che hai qualche lavoro a contratto sotto la cintura, puoi iniziare a inviare il tuo curriculum e il tuo portfolio a organizzazioni più grandi per un impiego a tempo pieno. Oltre a Monster e Indeed, ci sono una varietà di siti di lavoro specifici per sviluppatori che dovresti guardare, tra cui GitHub Jobs, StackOverflow Job Board, AngelList, CrunchBoard, Hirelite, e Hacker News.

    4. Diversifica il tuo skillset. Un buon sviluppatore di software di solito è abile in più di una lingua. Mentre la maggior parte di ciò che imparerai sarà sul lavoro, usa un po' del tuo tempo libero per espandere le tue conoscenze e imparare le basi di un altro linguaggio o due. Questo renderà la transizione a nuovi progetti molto più facile e vi renderà un candidato al lavoro molto più desiderabile.

    5. Non preoccupatevi della paga. Non tutti i lavori di sviluppo software entry-level sono a sei cifre. Infatti, nessuno di loro lo farà. La cosa buona dello sviluppo del software, comunque, è che il mercato del lavoro è incredibilmente forte. Se ti sembra di non guadagnare abbastanza dove ti trovi, è relativamente facile passare a una nuova posizione in una nuova azienda (se hai le capacità). Tratta i tuoi primi lavori come esperienza necessaria invece di concentrarti sul tuo piano di pensionamento.

    Fonte: Come sviluppare software