De flesta tjänster inom programvaruteknik kräver en kandidatexamen. Majoring i datavetenskap kommer att ge den mest användbara bakgrunden för att designa och fullända programvara. Oftast kommer intervjuare att ställa frågor med fokus på datastrukturer och algoritmer, så den teoretiska bakgrunden som tillhandahålls av traditionella datavetenskapsexamina bäst förbereder dig för detta. Men du kommer sannolikt att behöva tillbringa avsevärd tid utanför klassrummet skriva programvara för att lära sig hur de teoretiska begrepp du lär dig kan tillämpas i praktiken att skriva riktig programvara. Det är möjligt att bli anställd med en medarbetares examen eller till och med med enbart självlärd erfarenhet. Genom att följa denna väg, bör du ha en stark samling av färdiga och funktionella projekt som visar dina färdigheter på en webbplats som Github. Du kan också driva projekt med öppen källkod för att bidra med korrigeringar och nya funktioner om du inte har ett eget koncept. Öppen källkod innebär att koden (källa) för en programvara är offentligt synlig (öppen). Ofta tillåter detta vem som helst att lämna in kod till ett projekt, i väntan på godkännande av projektansvariga. Att hitta ett open source-projekt med en välkomnande community av utvecklare kan avsevärt påskynda dina färdigheter efter att du har etablerat en baslinje skillset. Även om du fortfarande går i grundskolan, kan du ge dig själv ett stort försprång genom att lära dig själv programmering.   Programvaruteknik är inte enbart inriktad på kodning, men du kommer att behöva kunna åtminstone ett par språk, och en djupare förståelse för hur de fungerar. Det finns ingen allmän enighet om vilka språk som är mest användbara, men dessa är alla populära val: Python Ruby JavaScript C# Java C++ Var medveten om att vissa språk är bättre på att lösa vissa problem än andra. Inget språk är bättre än ett annat. Inget språk är objektivt sett lättare än ett annat. De flesta språk skrevs med vissa typer av problem i åtanke och är bättre på att lösa dem medan svagare på att lösa andra. Experimentera och få en känsla för din stil. Till en början är det bara att fokusera på att få det mest grundläggande av program som körs på ett språk. När du har blivit bekväm med en, börja experimentera med en sekund. Det finns ingen anledning att lära sig alla språk. Hitta din nisch och bli grym på det! För ungdomar skapade MIT (Massachusetts Institute of Technology) webbplatsen och programmeringsverktyget, Scratch. Detta verktyg lär programmeringskoncept med visuella köer snarare än skrämmande text. Det är också användbart för vuxna som skulle känna sig bekvämare med att fokusera på visuella element snarare än abstrakta begrepp och text. "Algoritm" betyder helt enkelt en formel eller process för att lösa ett problem. Vanliga exempel är sökväg för att hitta det kortaste avståndet mellan två punkter, söka efter en specifik uppgift i en stor uppsättning data, och sortera för att ordna data i någon ordning. En "datastruktur" är ett visst sätt att organisera data för att göra det lättare att lösa vissa problem. Vanliga exempel är matriser som helt enkelt innehåller dataposter en efter en i någon ordning och hash tabeller som lagrar data med någon "nyckel" i stället för en position i en lista. Fokusera på att utveckla och underhålla dina färdigheter för att göra ditt bästa när du har fått en tjänst som programvaruingenjör.  (Valfritt) Studiematte. Matematik kommer att vara en del av alla datavetenskap huvudämne, och många algoritmer och data strukturer kunskap härrör från matematik. Även om det inte är absolut nödvändigt, kommer att ha en stark bakgrund i matte att ge dig starkare kärnkompetens för att analysera och utforma nya algoritmer. Om du riktar in dig på företag som bedriver spetsforskning och utveckling, kommer matematiken att vara ett måste. Om du vill ha ett mysigt företagsarbete, kan du troligen skumma genom högre nivå matte. Diskret matematik är ett särskilt användbart område för studier, liksom alla matematikkurser som involverar programvara. Utbildningssystemen är ofta föråldrade. Läroböcker revideras långsammare än mjukvaran uppdateras. Läroanstalter tillhandahåller teoretiska begrepp och sätt att tänka som kan vara avgörande för din framgång, och därför inte bör diskonteras. Men vad som kommer att få dig betalt är att kunna tillämpa teorin på real-world programvara. Det är här som komplettering av dina studier kommer in.  Bläddra igenom StackOverflow. StackOverflow är en fråga och svar webbplats för utvecklare. Du kan söka efter tagg för att identifiera den teknik, problemutrymme, eller språk du vill förbättra i. Att se andras svar kommer att ge dig insikt i hur ingenjörer löser problem. Bokmärka smarta lösningar kommer också att hjälpa dig att bygga din problemlösning verktygslåda. Använd övningsplatser för kodning. Webbplatser som CodeWars och CodinGame erbjuder tusentals problem för dig att testa dina färdigheter mot. Hitta en verklig community för att hålla dig inspirerad, utveckla kontakter, och ge dig vägledning om var du kan fokusera ditt lärande. Webbplatser som Meetup kan vara bra platser att hitta mjukvaruingenjörer och lära sig mer om yrket. Om du har svårt att hitta allmänna ingenjörsträffar, försök att fokusera på specifika språk eller tekniker. Kolla in sociala medier också. Det bästa sättet att förbättra dina färdigheter är att använda dem. Oavsett om professionella projekt eller personliga, design och kodning programvara kommer att lära dig en hel del. För många arbetsgivare är konkreta prestationer viktigare än GPA eller teoretiska kunskaper. Om du inte planerar att tjäna pengar på programvaran du bygger, sätt den på nätet! Att tillåta potentiella arbetsgivare att se de projekt du har skapat och den kod som driver dem gör det möjligt för dem att bedöma dina färdigheter. Det är också ett bra sätt att få feedback för att hjälpa till att förbättra dina färdigheter. Många programvaruingenjörer arbetar som praktikanter medan de slutför sina studier. Detta kan vara ett utmärkt sätt att få praktisk utbildning och nätverk med potentiella arbetsgivare. Leta efter praktikmöjligheter genom att lägga ut jobb på webbplatser och nätverk. Programvaruteknik är ett snabbt växande fält. Du har goda möjligheter till omedelbar anställning, även om du kan börja som programmerare och arbeta dig fram till mjukvaruutveckling. Börja söka innan din examen är slut: Högskolor hjälper ofta sina alumner att få en anställning. Prata med professorer, avdelningspersonal och karriäravdelningen om att hitta jobbmöjligheter. En stor andel av arbetstillfällena sker genom nätverksarbete. Använd dina personliga kontakter och träffa människor på fältet genom karriärträffar och konferenser. Kontrollera webbplatser för jobbsökning regelbundet. Skapa en profil och skicka ditt CV till professionella webbplatser och använda dem för nätverkande samt jobbansökningar. Programvaruindustrin förändras alltid. Fortsätt genom att förbättra dina kunskaper och praktiska färdigheter, och du kommer att ha många chanser att forma riktningen för din karriär. Här är några sätt att förbättra dina jobbmöjligheter: Gå med i en professionell organisation för nätverksmöjligheter. Betrakta en magisterexamen om du har långsiktiga planer på området. Även om inte ett krav för de flesta positioner, en Masters avsevärt förbättrar dina chanser att arbeta för en branschledare, i en ledningsposition, eller i inbäddad programvara. En magisterexamen kan också ge dig en betydande löneförhöjning tidigt i din karriär. Certifiering kan vara användbart i vissa delfält och regioner, men kan minska din önskvärdhet i andra. Prata med andra ingenjörer inom ditt kompetensområde innan du anmäler dig till något av dessa program. Ofta föredrar traditionella företagsmiljöer certifikat, men nystartade företag och mycket progressiva företag kan hitta dem som slöseri med tid. Det finns dock alltid undantag. Vissa länder ser också olika på certifikat, så försök att komma i kontakt med mjukvaruingenjörer och förstå hur branschen i ditt område fungerar.
Tjäna en examen i datavetenskap eller ett närliggande område. Börja programmera. Studiedatastrukturer och algoritmer. Komplettera dina studier. Bygga programvara. Sök praktik. Hitta jobbmöjligheter. Tänk på dina karriärmål.