Att bli mjukvaruutvecklare är en lukrativ karriärplan. Det här är människor med efterfrågade, värdefulla färdigheter. Men vad exakt gör de?? Eftersom du förmodligen inte kommer att kunna slå dem på deras egen gräsmatta, bör du gå med dem. Är du tillräckligt tekniskt förankrad och förstår du kunden tillräckligt för att kunna göra en bra produkt?? Med lite brainstorming – och givetvis genom att läsa resten av denna artikel – kommer du säkert att lyckas!
Steg
Del 1 av 3: Lär dig branschens knep

1. Bestäm vilken typ av mjukvaruutveckling som intresserar dig. Det finns två läger inom detta område: Applikationsutveckling och Systemutveckling. Applikationsutveckling fokuserar på att skapa program som uppfyller ett särskilt behov hos kunder. Detta sträcker sig från mobilappar och videospel till företagsredovisningsprogram. Systemutveckling fokuserar på att skapa och underhålla operativsystem med hjälp av livscykelutveckling. Systemutveckling har också ofta att göra med nätverksprocesser och datasäkerhet.
2. Lär dig ett programmeringsspråk. Vem som helst kan komma på en idé, men en utvecklare kan omvandla dessa idéer till något konkret. Även om du bara vill arbeta med designaspekterna av mjukvara, bör du fortfarande vara lite bekant med kodning och kunna skapa enkla prototyper. Det finns en enorm mängd programmeringsspråk som du kan lära dig själv. Några av de mer användbara och viktiga språken är följande:
C – C är ett av de äldre språken som fortfarande används idag och är roten till de flesta andra språk i den här listan. C används för att skapa lågnivåprogram och ligger nära datorns hårdvara.C++ – Detta är den objektorienterade versionen av C och det mest populära programmeringsspråket i världen. Program som Chrome, Firefox, Photoshop och många andra är alla programmerade i C++. Det är också ett mycket populärt språk för att skapa videospel. C++-utvecklare är alltid efterfrågade.Java – Detta är en utveckling av C++ och används ofta på grund av dess höga grad av portabilitet. Nästan alla system kan köra en Java Virtual Machine och därmed även Java-mjukvara. Det används ofta för videospel och affärsprogram, och ses av många som ett viktigt språk.C# – C# är ett programmeringsspråk för Windows-miljön och en del av .NET framework från Microsoft. Det är väldigt likt Java och C++, och kan du Java kan du enkelt byta till C#. Detta språk är speciellt avsett för utvecklare av Windows-programvara eller Windows Phone-programvara.Objective-C – Detta är ännu en kusin till C och designad speciellt för Apple-system. Det är oerhört populärt för att göra iPhone- och iPad-appar. Det är ett fantastiskt språk att lära sig som frilansare.Pytonorm – Det här är ett väldigt lätt språk att lära sig, ett av de enklaste. Python kan också användas för webbutveckling.PHP – Detta är inte mjukvaruutveckling i grunden, men PHP är viktigt om du vill göra mer med webbutveckling. Det finns alltid mycket arbeten för PHP-programmerare, men detta är inte lika lukrativt som mjukvaruutveckling.3. Resurser som kan hjälpa dig att lära dig ett språk. De flesta bokhandlar och bibliotek har hela sektioner ägnade åt programmeringsspråk, och självklart kan du även hitta material via Amazon och andra e-handlare. En välskriven bok om programmering kommer förmodligen att vara den bästa resursen du kan ha, och kan användas som en snabbreferens när du arbetar med projekt.
Förutom böcker har du också internet, en oändlig skattkammare av manualer och guider. Sök efter material om det språk du väljer på sajter som CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools.
4. Se om du kan få lektioner någonstans. Du behöver ingen genomgången, högre utbildning för att kunna åstadkomma något inom mjukvaruutveckling, men det kan inte skada att gå några kurser genom ett folkhögskola eller utbildningscenter. Detta ger fördelen med personlig vägledning, och du utmanas att lösa problem som du kanske inte lätt kan ta itu med på egen hand.
Lektioner kostar pengar, så se till att välja kvalitet så att du lär dig det du vill veta.Medan många utvecklare har kunnat komma in i branschen enbart baserat på sina kunskaper, kan du skilja dig från mängden genom att kunna visa en kandidatexamen i datavetenskap. En sådan examen kommer att ge dig en bredare kunskapsbas och tillgång till ytterligare ämnen som matematik och logik.5. Arbeta med hobbyprojekt. Innan du försöker få ett jobb som programmerare är det klokt att starta några egna projekt. Utmana dig själv att lösa problem med ett valfritt programmeringsspråk. Detta kommer inte bara att hjälpa till att utveckla dina programmeringsfärdigheter, det kommer att se bra ut på ditt CV.
Exempel: Istället för att använda ditt operativsystems kalenderprogram för att organisera ditt arbete, försök att göra ditt eget!Om du är intresserad av att utveckla videospel, arbeta med enkla spel som inte förlitar sig för mycket på grafik eller komplexa rörelser. Fokusera istället på att göra ett roligt och unikt spel. En samling små spel som du har gjort själv kommer att se bra ut i din portfölj.EXPERTTIPS
Gene Linetsky, MS
Startup grundare och teknisk direktör Gene Linetsky är en startup grundare och mjukvaruutvecklare i San Francisco Bay Area. Han har arbetat i teknikbranschen i över 30 år och är teknisk direktör på Poynt, ett teknikföretag som skapar smarta transaktionssystem för företag.
Gene Linetsky, MS
Grundare av startups och teknisk chef
Att få praktisk erfarenhet är det bästa sättet att lära sig. Gene Linetsky, mjukvaruingenjör och grundare av nystartade företag: "Som mjukvaruingenjör är att kunna programmera inte den viktigaste färdigheten. Det handlar om alla andra saker som behövs för att faktiskt förvandla din kod till en produkt som folk faktiskt använder. När du gör det kommer dina kunder vanligtvis att ge dig feedback och påpeka vad som inte fungerar. Cykeln att spåra ditt eget arbete är den verkliga inlärningsprocessen för en mjukvaruingenjör."
6. Fråga frågor. Internet är ett bra sätt att få kontakt med andra utvecklare. Om du fastnar i ett projekt, be om hjälp på sajter som StackOverflow. Se till att din fråga ställs intelligent och att du kan indikera att du redan har provat flera lösningar.
7. Öva varje dag. Arbeta med dina hobbyprojekt varje dag, även om det bara är en timme. Detta hjälper till att hålla sig fräsch och ständigt lära sig nya tekniker. Många utvecklare har framgångsrikt lärt sig ett språk genom att se till att de arbetar med det varje dag.
Avsätt en viss tid varje dag för att arbeta med kodning, eller sätt dig själv en deadline som du vill vara klar med det. Försök att arbeta med dina projekt varje arbetsdag så att du kan koppla av på helgen.
Del 2 av 3: Utveckla ett program

1.
spåna. Ett bra program kommer att utföra uppgifter som gör användarens liv lite lättare. Ta den programvara som för närvarande är tillgänglig för den uppgiften som ett exempel och se om du kan förbättra den. Ett framgångsrikt program är något som människor har mycket nytta av.
- Se vilka dagliga uppgifter du utför med din dator. Finns det något sätt du kan automatisera några av dessa uppgifter genom ett program?
- Skriv ner varje idé. Även om det låter lite dumt eller konstigt just då, kan det ibland utlösa något användbart eller till och med briljant.
- Studera andra program. Vilken funktion har de? Hur kan du göra dem bättre? Vad saknas i programvaran? Genom att svara på dessa frågor kan du komma på idéer för att vidareutveckla dig själv.

2. Skapa ett designdokument. Detta dokument ger en kort översikt över alla funktioner och vad du vill uppnå med projektet. Genom att hänvisa till detta dokument under utvecklingsprocessen kan du hålla ett öga på om du håller schemat och hålla dig mer fokuserad.
3. Skapa en prototyp. Detta är ett enkelt program där du bygger in all funktionalitet du vill uppnå. En prototyp är ett snabbt program och något man kan bygga vidare på tills man hittar en design som fungerar. Om du till exempel vill skapa en kalender kommer din prototyp att bestå av en enkel kalender (med rätt datum!) och ett sätt att lägga in möten i den.
Denna prototyp kommer att förändras flera gånger under utvecklingscykeln när du kommer på nya sätt att lösa problem eller får nya idéer att ta med dig.Prototypen behöver inte se vacker ut. Faktum är att grafisk design borde vara det sista du tänker på. För att citera kalenderexemplet igen, din prototyp kommer till största delen att bestå av text.4. Fortsätt att testa hela tiden. Buggar är alla utvecklares förbannelse. Fel i koden och oförutsedd användning kan orsaka alla typer av problem i slutprodukten. När du fortsätter ditt arbete med projektet måste du fortsätta att testa. Gör allt du kan för att få ditt program att krascha och orsaka fel, och fixa sedan dessa fel. Låt vänner och familj testa ditt program och ange var det går fel. All feedback som kan hjälpa dig att förbättra utvecklingsprocessen är välkomna.
Prova konstiga datum i förväg om ditt program behöver datum som input. Riktigt gamla datum eller datum långt fram i tiden kan göra att programmet ger konstiga resultat.Ange fel variabler. Om du till exempel skapade ett formulär där du frågar efter användarens ålder, skriv in ett ord i det och se vad som händer.Om ditt program har ett grafiskt gränssnitt, klicka på allt som är löst. Vad händer om du går till föregående skärm eller klickar på knapparna i fel ordning?5. Polera dina projekt. Även om det är bra att göra ett grovt utkast till ett projekt för prototyper och utveckling, om du vill att andra ska använda det, måste du lägga lite tid på att avsluta. Det innebär att se till att menyerna är logiskt uppbyggda, att användargränssnittet (UI) är tydligt och lätt att använda, att det inte finns några fler märkbara eller irriterande buggar och att det ser smart ut.
UI design och funktionalitet kan vara extremt svår och komplex. Det är ett helt separat område. Se i alla fall till att dina personliga projekt är lätta att använda och ser bra ut. Ett professionellt gränssnitt kanske inte är möjligt utan en rimlig budget och ett team.Har du pengarna finns det gott om frilansande grafiska designers som kan designa ett användargränssnitt åt dig. Om du har ett gediget projekt som du hoppas ska bli en hit, hitta en bra UI-designer och gör honom/henne till en del av ditt team.6. Lägg upp dina projekt på GitHub. GitHub är en öppen källkodsgemenskap där du kan dela kod med andra. Detta gör att du kan få mer insikt i din egen kod och låta andra dra nytta av de lösningar du har kommit fram till. GitHub är en fantastisk resurs att lära av och en bra idé att fylla din portfölj med.
7. Distributionen av din programvara. När din produkt är klar kan du välja att distribuera den eller inte. Det finns flera sätt att göra detta, beroende på vilken typ av programvara du har skapat.
Ett av de vanligaste sätten för små team eller oberoende utvecklare att utveckla sin programvara är genom en personlig webbplats. Se till att alla funktioner är väldokumenterade och inkluderar skärmdumpar och handledning. Om du säljer programvaran, se till att du har ett bra digitalt betalningssystem på plats och en server från vilken programvaran kan laddas ner.Om din programvara är utvecklad för en specifik enhet eller operativsystem finns det flera digitala butiker du kan använda. Om du till exempel gör programvara för Android-enheter kan du sälja appar via Google Play Store, Amazon App Store eller din egen webbplats.Del 3 av 3: Få ett jobb

1.
Hitta jobb som frilansare. Även om dessa inte lönar sig lika bra som ett vanligt jobb, kan du verkligen arbeta med att fylla på din portfölj genom att göra frilansjobb. Kolla sajter som Elance och ODesk för att hitta arbete. Även om det kan vara svårt att få ett första uppdrag, blir det mycket lättare när det väl är klart.
- Hacker News är en fantastisk resurs för att hitta frilansjobb. Titta på avsnittet "Fråga".
- Även om det kan vara frestande att satsa lågt för att få ett uppdrag, är det oklokt att erbjuda dina kunskaper för billigt. Inte bara kommer du då att arbeta för mindre än du är värd, du kommer också att irritera andra inom ditt område, vilket inte är bra för ditt nätverk.
- Ibland kan ett bra beställningsarbete leda till en tillsvidareanställning. Sätt alltid din bästa fot framåt!

2.
Nätverk så mycket som möjligt. Gå till så många konventioner och hacka-a-thons som möjligt. Du kommer inte bara att få se mer kod och problem att lösa, du kommer också att träffa andra människor som arbetar i den här branschen. Trots vad du kan säga om programmerare (att arbeta ensam i en mörk källare), är majoriteten av heltidsutvecklarna en del av ett team och nätverkande är lika viktigt för dem som inom alla andra områden.
3. Sök tillsvidareanställningar. När du har genomfört ett antal frilansuppdrag kan du börja skicka ditt CV och portfolio till större organisationer som söker ett fast jobb. Förutom Monster och Indeed finns det flera utvecklarfokuserade jobbsajter inklusive GitHub Jobs, StackOverflow Job Board, AngelList, CrunchBoard, Hirelite och Hacker News.
4. Lär dig flera färdigheter. En bra mjukvaruutvecklare är vanligtvis skicklig i flera programmeringsspråk. Även om du kommer att lära dig mycket genom att gå till jobbet är det bra att använda lite av din tid till studier och behärska grunderna i ytterligare 1 eller 2 programmeringsspråk. Detta kommer att göra övergången till nya projekt mycket lättare och kommer att göra dig till en bättre kandidat för vissa tjänster.
5. Oroa dig inte för mycket om belöningen. Inte varje nybörjarprogramvaruutvecklare kommer att betala dig i sexsiffriga belopp. Faktum är att inget av dessa jobb kommer att ge dig det. De goda nyheterna om mjukvaruutveckling är dock att det sätter dig i en mycket stark position på arbetsmarknaden. Om du känner att du inte tjänar tillräckligt där du är nu är det lätt att byta jobb om du har rätt kompetens. Behandla dina första jobb/uppdrag som nödvändig erfarenhet istället för att fokusera på din pensionsplan.