Diventare uno sviluppatore di software è un piano di carriera redditizio. Queste sono persone con abilità richieste e preziose. Ma cosa fanno esattamente?? Dal momento che probabilmente non sarai in grado di batterli sul loro stesso territorio, è meglio che ti unisca a loro. Sei sufficientemente preparato tecnicamente e capisci il cliente a sufficienza per essere in grado di realizzare un buon prodotto?? Con un po` di brainstorming - e ovviamente leggendo il resto di questo articolo - ci riuscirai sicuramente!
Passi
Parte 1 di 3: Imparare i trucchi del mestiere

1. Determina che tipo di sviluppo software ti interessa. Ci sono due campi in questo campo: Sviluppo di applicazioni e Sistema di sviluppo. Lo sviluppo delle applicazioni si concentra sulla creazione di programmi che soddisfano una particolare esigenza dei clienti. Questo varia da app per telefoni cellulari e videogiochi a software di contabilità aziendale. Lo sviluppo dei sistemi si concentra sulla creazione e la manutenzione dei sistemi operativi utilizzando lo sviluppo del ciclo di vita. Lo sviluppo del sistema ha spesso a che fare anche con i processi di rete e la sicurezza dei dati.

2. Impara un linguaggio di programmazione. Chiunque può avere un`idea, ma uno sviluppatore è in grado di trasformare queste idee in qualcosa di concreto. Anche se vuoi lavorare solo sugli aspetti di progettazione del software, dovresti comunque avere una certa familiarità con la codifica ed essere in grado di creare semplici prototipi. C`è un`enorme quantità di linguaggi di programmazione che puoi insegnare a te stesso. Alcuni dei linguaggi più utili e importanti sono i seguenti:
C – C è una delle lingue più antiche che sono ancora usati oggi e sono alla base della maggior parte delle altre lingue in questo elenco. C viene utilizzato per creare programmi di basso livello ed è vicino all`hardware del computer.C++ – Questa è la versione orientata agli oggetti di C e il linguaggio di programmazione più popolare al mondo. Programmi come Chrome, Firefox, Photoshop e molti altri sono tutti programmati in C++. È anche un linguaggio molto popolare per la creazione di videogiochi. Gli sviluppatori C++ sono sempre molto richiesti.Java – Questa è un`evoluzione del C++ ed è ampiamente utilizzato per il suo alto grado di portabilità. Quasi tutti i sistemi possono eseguire una Java Virtual Machine e quindi anche un software Java. È ampiamente utilizzato per videogiochi e software aziendali ed è visto da molti come un linguaggio essenziale.C# – C# è un linguaggio di programmazione per l`ambiente Windows e fa parte di .NET framework di Microsoft. È molto simile a Java e C++ e se conosci Java puoi passare facilmente a C#. Questa lingua è destinata in particolare agli sviluppatori di software Windows o Windows Phone.Objective-C – Questo è l`ennesimo cugino di C e progettato specificamente per i sistemi Apple. È immensamente popolare per creare app per iPhone e iPad. È un`ottima lingua da imparare come libero professionista.Pitone – Questa è una lingua molto facile da imparare, una delle più facili. Python può essere utilizzato anche per lo sviluppo web.PHP – Questo non è lo sviluppo di software al suo interno, ma PHP è essenziale se vuoi fare di più con lo sviluppo web. C`è sempre molto lavoro per i programmatori PHP, ma questo non è redditizio come lo sviluppo di software.3. Risorse che possono aiutarti a imparare una lingua. La maggior parte delle librerie e delle biblioteche ha intere sezioni dedicate ai linguaggi di programmazione e, naturalmente, puoi anche trovare materiale tramite Amazon e altri e-tailer. Un libro ben scritto sulla programmazione sarà probabilmente la migliore risorsa che puoi avere e può essere utilizzato come riferimento rapido mentre lavori ai progetti.
Oltre ai libri hai anche internet, un tesoro infinito di manuali e guide. Cerca materiale sulla lingua di tua scelta su siti come CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools.
4. Vedi se riesci a prendere lezioni da qualche parte. Non hai bisogno di un`istruzione superiore completa per essere in grado di ottenere qualcosa nello sviluppo di software, ma non può far male seguire alcuni corsi attraverso un`università popolare o un centro di formazione. Ciò offre il vantaggio di una guida personale e sei sfidato a risolvere problemi che potresti non affrontare facilmente da solo.
Le lezioni costano denaro, quindi assicurati di scegliere la qualità in modo da imparare ciò che vuoi sapere.Mentre molti sviluppatori sono stati in grado di entrare nel settore solo in base alle loro capacità, puoi distinguerti dalla massa essendo in grado di dimostrare una laurea in informatica. Tale grado ti fornirà una base di conoscenze più ampia e l`accesso a materie aggiuntive come matematica e logica.5. Lavora su progetti per hobby. Prima di cercare di ottenere un lavoro come programmatore, è consigliabile avviare alcuni progetti per conto tuo. Sfida te stesso a risolvere i problemi usando un linguaggio di programmazione a tua scelta. Questo non solo aiuterà a sviluppare le tue capacità di programmazione, ma starà benissimo sul tuo curriculum.
Esempio: invece di utilizzare il programma di calendario del tuo sistema operativo per organizzare il tuo lavoro, prova a crearne uno tuo!Se sei interessato allo sviluppo di videogiochi, lavora su giochi semplici che non si basano troppo sulla grafica o sui movimenti complessi. Invece, concentrati sulla creazione di un gioco divertente e unico. Una raccolta di piccoli giochi che hai realizzato da te starà benissimo nel tuo portafoglio.CONSIGLIO DELL`ESPERTO
Gene Linetsky, MS
Il fondatore e direttore tecnico di startup Gene Linetsky è un fondatore di startup e sviluppatore di software nella Bay Area di San Francisco. Ha lavorato nel settore tecnologico per oltre 30 anni ed è direttore tecnico di Poynt, un`azienda tecnologica che crea sistemi di transazione intelligenti per le aziende.
Gene Linetsky, MS
Fondatore di startup e direttore tecnico
Fare esperienza pratica è il modo migliore per imparare. Gene Linetsky, ingegnere del software e fondatore di start-up: "Come ingegnere del software, essere in grado di programmare non è l`abilità più importante. Riguarda tutte le altre cose necessarie per trasformare effettivamente il tuo codice in un prodotto che le persone effettivamente usano. Quando lo fai, i tuoi clienti di solito ti daranno un feedback e ti indicheranno cosa non funziona. Il ciclo di tracciamento del proprio lavoro è il vero processo di apprendimento di un ingegnere del software."
6. Fare domande. Internet è un ottimo modo per connettersi con altri sviluppatori. Se rimani bloccato in un progetto, chiedi aiuto su siti come StackOverflow. Assicurati che la tua domanda sia posta in modo intelligente e che tu possa indicare che hai già provato diverse soluzioni.
7. Allenati ogni giorno. Lavora ai tuoi progetti hobby ogni giorno, anche se è solo per un`ora. Questo aiuta a rimanere freschi e ad apprendere costantemente nuove tecniche. Molti sviluppatori hanno imparato con successo una lingua assicurandosi di lavorarci ogni giorno.
Dedica un certo tempo ogni giorno per lavorare sulla programmazione o fissa una scadenza in cui vuoi che sia finita. Cerca di lavorare sui tuoi progetti ogni giorno lavorativo in modo da poterti rilassare nel fine settimana.
Parte 2 di 3: Sviluppo di un programma

1.
brainstorming. Un buon programma eseguirà compiti che renderanno la vita dell`utente un po` più facile. Prendi il software attualmente disponibile per quell`attività come esempio e vedi se puoi migliorarlo. Un programma di successo è qualcosa da cui le persone beneficiano molto.
- Guarda quali attività quotidiane esegui con il tuo computer. C`è un modo per automatizzare alcune di queste attività attraverso un programma?
- Annota ogni idea. Anche se all`epoca suona un po` sciocco o strano, a volte può innescare qualcosa di utile o addirittura geniale.
- Studia altri programmi. Che funzione hanno? Come puoi renderli migliori? Cosa manca al software? Rispondendo a queste domande puoi trovare idee per svilupparti ulteriormente.

2. Crea un documento di progettazione. Questo documento fornisce una breve panoramica di tutte le funzionalità e di ciò che si desidera ottenere con il progetto. Facendo riferimento a questo documento durante il processo di sviluppo, puoi tenere d`occhio se sei nei tempi previsti e rimanere più concentrato.
3. Crea un prototipo. Questo è un semplice programma in cui si integrano tutte le funzionalità che si desidera ottenere. Un prototipo è un programma rapido e qualcosa su cui puoi costruire finché non trovi un progetto che funzioni. Ad esempio, se vuoi creare un calendario, il tuo prototipo sarà composto da un semplice calendario (con le date corrette!) e un modo per inserire gli appuntamenti.
Questo prototipo cambierà più volte durante il ciclo di sviluppo mentre escogiti nuovi modi per risolvere problemi o ottieni nuove idee da portare con te.Il prototipo non deve avere un bell`aspetto. In effetti, il design grafico dovrebbe essere l`ultima cosa che hai in mente. Per citare di nuovo l`esempio del calendario, il tuo prototipo sarà principalmente testo.4. Continua a testare costantemente. I bug sono la rovina di ogni sviluppatore. Errori nel codice e utilizzi imprevisti possono causare ogni tipo di problema nel prodotto finale. Mentre continui il tuo lavoro sul progetto, dovrai continuare a testare. Fai tutto il possibile per far sì che il tuo programma si arresti in modo anomalo e causi errori, quindi risolvi quegli errori. Consenti ad amici e familiari di testare il tuo programma e indica dove va storto. Qualsiasi feedback che possa aiutarti a migliorare il processo di sviluppo è il benvenuto.
Prova in anticipo date strane se il tuo programma ha bisogno di date come input. Date davvero vecchie o date lontane nel futuro possono far sì che il programma produca risultati strani.Immettere variabili errate. Ad esempio, se hai creato un modulo chiedendo l`età dell`utente, inserisci una parola al suo interno e guarda cosa succede.Se il tuo programma ha un`interfaccia grafica, fai clic su tutto ciò che è libero. Cosa succede se vai alla schermata precedente o fai clic sui pulsanti nell`ordine sbagliato?5. Lucida i tuoi progetti. Anche se va bene fare una bozza di un progetto per la prototipazione e lo sviluppo, se vuoi che altri lo utilizzino, dovrai dedicare un po` di tempo alla fine. Ciò significa assicurarsi che i menu siano strutturati in modo logico, che l`interfaccia utente (UI) sia chiara e facile da usare, che non ci siano più bug evidenti o fastidiosi e che appaia liscia.
Il design e la funzionalità dell`interfaccia utente possono essere estremamente difficili e complessi. È un campo completamente separato. In ogni caso, assicurati che i tuoi progetti personali siano facili da usare e abbiano un bell`aspetto. Un`interfaccia utente professionale potrebbe non essere possibile senza un budget ragionevole e un team.Hai i soldi, ci sono molti grafici freelance che potrebbero progettare un`interfaccia utente per te. Se hai un progetto solido che speri possa essere un successo, trova un buon designer dell`interfaccia utente e rendilo parte della tua squadra.6. Pubblica i tuoi progetti su GitHub. GitHub è una community open source in cui puoi condividere codice con altri. Ciò ti consente di ottenere maggiori informazioni sul tuo codice e consentire ad altri di beneficiare delle soluzioni che hai escogitato. GitHub è un`ottima risorsa da cui imparare e un`ottima idea con cui riempire il tuo portfolio.
7. La distribuzione del tuo software. Quando il tuo prodotto è pronto, puoi scegliere di distribuirlo o meno. Esistono diversi modi per farlo, a seconda del tipo di software che hai creato.
Uno dei modi più comuni per piccoli team o sviluppatori indipendenti di sviluppare il proprio software è attraverso un sito Web personale. Assicurati che tutte le funzionalità siano ben documentate e includano screenshot e tutorial. Se vendi il software, assicurati di disporre di un buon sistema di pagamento digitale e di un server da cui è possibile scaricare il software.Se il tuo software è sviluppato per un dispositivo o sistema operativo specifico, sono disponibili più negozi digitali che puoi utilizzare. Ad esempio, se crei software per dispositivi Android, puoi vendere app tramite Google Play Store, Amazon App Store o il tuo sito web.Parte 3 di 3: Trovare un lavoro

1.
Trova lavoro come libero professionista. Anche se questi non pagano bene come un lavoro normale, puoi sicuramente lavorare per riempire il tuo portafoglio facendo lavori da freelance. Controlla siti come Elance e ODesk per trovare lavoro. Anche se può essere difficile ottenere un primo incarico, diventa molto più facile una volta terminato.
- Hacker News è un`ottima risorsa per trovare lavori da freelance. Guarda la sezione "Chiedi".
- Anche se può essere allettante scommettere basso per ottenere un incarico, non è saggio offrire le tue abilità a un prezzo troppo basso. Non solo lavorerai per meno di quanto vali, ma infastidirai anche gli altri nel tuo campo, il che non va bene per la tua rete.
- A volte un buon lavoro su commissione può portare a un appuntamento permanente. Metti sempre il tuo piede migliore in avanti!

2.
Rete il più possibile. Vai a quante più convention e hack-a-thon possibili. Non solo vedrai più codice e problemi da risolvere, ma incontrerai anche altre persone che lavorano in questo settore. Nonostante quello che potresti dire sui programmatori (che lavorano da soli in un seminterrato buio), la maggior parte degli sviluppatori a tempo pieno fa parte di un team e il networking è importante per loro come lo è in qualsiasi altro campo.
3. Candidati per posizioni a tempo indeterminato. Dopo aver completato una serie di incarichi da freelance, puoi iniziare a inviare il tuo CV e il tuo portfolio a organizzazioni più grandi in cerca di un lavoro a tempo indeterminato. Oltre a Monster e Indeed, ci sono diversi siti di lavoro incentrati sugli sviluppatori tra cui GitHub Jobs, StackOverflow Job Board, AngelList, CrunchBoard, Hirelite e Hacker News.
4. Impara più abilità. Un buon sviluppatore di software di solito è esperto in più linguaggi di programmazione. Anche se imparerai molto andando al lavoro, è bene usare un po` del tuo tempo per studiare e padroneggiare le basi di 1 o 2 linguaggi di programmazione in più. Ciò renderà molto più semplice il passaggio a nuovi progetti e ti renderà un candidato migliore per determinate posizioni.
5. Non preoccuparti troppo della ricompensa. Non tutte le posizioni di sviluppatore di software entry-level ti pagheranno con importi a 6 cifre. In effetti, nessuno di questi lavori ti darà questo. La buona notizia dello sviluppo software, tuttavia, è che ti mette in una posizione molto forte nel mercato del lavoro. Se ritieni di non guadagnare abbastanza dove sei ora, è facile cambiare lavoro se hai le competenze giuste. Tratta i tuoi primi lavori/incarichi come un`esperienza necessaria invece di concentrarti sul tuo piano pensionistico.
Articoli sull'argomento "Sviluppo di software"