Hej,
Jag har precis börjat en masterutbildning inom datateknik och har svårt att bestämma vilken specialisering jag ska välja. De två alternativen jag överväger är “programmering och mjukvaruutvecklingsmetoder” samt “AI och maskininlärning”.
Från början var planen att välja programmering och mjukvara, men samtidigt läsa några AI-kurser för att få grundläggande kunskaper. Efter första veckan har jag dock börjat tveka, eftersom nästan alla i min klass verkar välja AI. När jag berättar att jag funderar på programmering och mjukvara möts jag ofta av förvåning, vilket gjort mig stressad på om jag missar något viktigt. Här är mina tankar kring varför jag från början lutade åt programmering/mjukvara, jag tar gärna emot synpunkter från er som har mer erfarenhet än mig:
Jobbmöjligheter:
Jag har inte mycket arbetslivserfarenhet inom IT (inget förutom praktik) och vet att marknaden är tuff just nu. Även om efterfrågan på AI-kompetens verkar öka och efterfrågan på juniora programmerare verkar minska, tror jag att det fortfarande finns många fler ingångsjobb för en nyexaminerad utvecklare med breda kunskaper (t.ex. inom webbutveckling) än för en nyexaminerad AI-specialist. Min känsla är därför att det kan vara lättare att få jobb om jag väljer programmering och mjukvara, men jag kan förstås ha fel.
Karriär och lön:
AI och ML verkar ge bättre karriärmöjligheter och högre löner på sikt. Samtidigt tror jag att t.ex. en webbutvecklare har goda möjligheter att nischa sig vidare inom områden som databaser, säkerhet, DevOps eller arkitektur. Jag har dock hört att det i praktiken är väldigt svårt att ”växa in” i en specialisering inom arbetslivet om man arbetar med webb- och mobilapplikationsutveckling. Det vore värdefullt att höra era erfarenheter om detta. Jag har också en känsla av att det är lättare att starta eget som konsult inom generell programmering än inom AI, men även här har jag inget konkret belägg.
Intresse:
Båda specialiseringarna känns intressanta. Om jag väljer programmering och mjukvara hoppas jag bara att arbetet blir varierande och utvecklande över tid, i så fall tror jag att jag skulle trivas bra.
Hej,
Dessa är programmering- och mjukvarukurserna, man behöver minst läsa 6 inom sin specialisering och kan välja 5 andra kurser från valfri specialisering. Programming and Software Methods
Advanced Programming in C++
Distributed Systems
Web Programming
Methods and Tools for Large Distributed Projects
Concurrent Programming and Operating Systems
Software Engineering
Software Testing
Logic Programming
Software Design and Construction
Programming Project with Open Source Code
Advanced Web Programming
Software Verification
Software Architectures
Programming of Parallel Computers – Methods and Tools
Jag jobbar inom it-säkerhet och om jag ser till trender och vad för folk som är eftertraktade nu så är det absolut folk med AI kunskap och som kan programmera så hur du än gör så kommer du nog ligga bra till
Men du skall absolut välja ett område som du brinner för mest så kan du alltid komplettera senare
Min erfarenhet är att det inte är alltför lätt att byta inriktning. Den specialisering man valt tenderar att definiera det första ingångsjobbet man får, sen blir det lätt att det rullar på i samma hjulspår. Spåren blir djupare och djupare och det blir svårt att byta bana efter några år eftersom den mesta erfarenheten man har bygger på vad man gjort tidigare och det är där man har sin spets när man sen söker nya tjänster.
Förhoppningsvis gillar man den bana man kanske av mer eller mindre slump (eller okunskap) råkat hamna i men gör man inte det, som t.ex. i mitt fall, så kan det gå att fortsätta till en viss gräns, tills man inte tycker det är kul alls längre, och kanske börjar fundera på helt nya yrken.
Jag läste själv datateknik på 80- och 90-talet, läste en inriktning som hette programvaruutveckling och programvaruproduktion. Inriktningen var rätt nischad mot realtidssystem, inbyggda system etc. och det var i de hjulspåren jag hamnade.
Efter att ha jobbat många år med utveckling av programvara i industrins produkter (flyg, fordon, kommunikationsutrustn. mm.) kände jag att jag skulle vilja hålla på mer med utveckling av affärssystem, webbapplikationer etc. men det var svårt att hitta någon som ville satsa på en när man hade erfarenhet från helt andra typer av applikationer och system.
Allt hänger på vad du själv vill och gillar. Av ovan program (båda) finns det kurser som är bättre än vissa andra (dvs som är viktigare att ha med sig), utifrån vilket val man gör (lite som @Handlarn är inne på).
Det är skillnad att jobba med webbutveckling, hålla på med infrastruktur eller pyssla med lågnivåprogrammering eller för den delen aspirera på design/arkitekturroller framåt i din karriär.
Vill nog påstå att det idag finns ett överflöd av nyexade med AI-inriktning (som inte kommer få jobba med detta på ett bra tag), men även ett överflöd av DevOps- samt webbinriktade utbildningar eller de som har den inriktningen i sitt CV.
Jag var tvungen att kolla vad detta var. Inte lätt att hänga med i alla “nya” termer inom datateknik.
Vad innebär termen DevOps?
Vad innebär termen DevOps? Jag har hört den i samband med datateknik.
Termen DevOps är en sammanslagning av orden Development (utveckling) och Operations (drift), och syftar på en kultur, metodik och uppsättning verktyg som förenar mjukvaruutveckling och IT-drift.
Vad innebär DevOps i praktiken?
DevOps handlar om att:
Automatisera och effektivisera processer från kodskrivning till produktion.
Förbättra samarbetet mellan utvecklare (dev) och driftteam (ops).
Snabbare leverera mjukvara med hög kvalitet och stabilitet.
Kontinuerlig integration (CI) och kontinuerlig leverans (CD) – att snabbt och ofta kunna integrera och leverera kodförändringar.
Exempel på vad DevOps inkluderar:
Versionshantering (t.ex. Git)
Automatiserade tester
Byggsystem och CI/CD-pipelines (t.ex. Jenkins, GitLab CI, GitHub Actions)
Containerisering och orkestrering (t.ex. Docker, Kubernetes)
Övervakning och loggning (t.ex. Prometheus, Grafana, ELK-stack)
Varför är det viktigt?
Traditionellt arbetade utvecklare och driftteam separat, vilket ofta ledde till:
Kommunikationsproblem
Långsamma leveranscykler
Fler fel i produktionen
DevOps försöker bryta ner dessa silos och skapa ett mer agilt och responsivt IT-flöde.
Vill du ha exempel på hur DevOps ser ut i ett verkligt projekt?
Jag har själv mest erfarenhet av inbyggda system, men har inte hört termen tidigare, trots att många av de områden som verkar ingå under DevOps även varit i fokus inom de organisationer jag arbetat i, ända sen 90-talet. Är detta en term som bara används i vissa branscher?
Ja, du har helt rätt – och din observation är väldigt insiktsfull.
DevOps som term vs. praktiken bakom
Det du beskriver är vanligt: många av principerna bakom DevOps har funnits länge, särskilt inom mer tekniskt avancerade och metodmedvetna områden som inbyggda system, telekom och militär teknik, ofta under andra namn eller utan någon särskild etikett alls.
Termen DevOps började vinna bred spridning runt slutet av 2000-talet, framför allt i samband med:
Internets framväxt som plattform (SaaS, molntjänster)
Behovet av snabbare releasecykler
Agil utveckling och lean-influerade arbetsmodeller
Ökad automatisering i infrastrukturhantering (“Infrastructure as Code”)
Branschskillnader
DevOps är i första hand förknippat med:
Webbutveckling / molntjänster
SaaS-företag
Startups och techbolag med snabba iterationer
IT-tung verksamhet där mjukvara distribueras ofta och direkt till användare
Däremot har det traditionellt varit mindre synligt i:
Inbyggda system (där distribution är mer komplex och produktcykler längre)
Industriell automation
Flyg, försvar, fordon, medicinteknik, etc., där certifiering och säkerhet ofta är överordnat snabb leverans
Så varför hörs termen mer i vissa kretsar?
Språk och modeord: DevOps är delvis ett buzzword – det blev populärt genom konferenser, bloggar och open-source-communityn.
Kommersiell användning: Många verktygsleverantörer (t.ex. Atlassian, Microsoft, GitLab) marknadsför sina produkter som “DevOps-verktyg”.
Skillnader i kultur: Inbyggda systemvärlden har historiskt varit mer ingenjörsstyrd, medan webb- och appvärlden är mer produktstyrd och agil.
Summering
Du har troligen jobbat enligt DevOps-principer innan termen ens fanns – bara under andra namn: t.ex. kontinuerlig integration, automatiserad testning, releasehantering, etc.
Vill du, kan vi titta på hur DevOps-idéer konkret kan eller inte kan tillämpas i just inbyggda systemmiljöer.
Min personliga erfarenhet är att AI-kurser med mestadels teori blir väldigt abstrakta och inte speciellt givande. Däremot kan kurser som har mycket labbande vara väldigt givande.
När man tittar över kurslistan känns det som många små, smala teorikurser. Det är ju bra att man har den teoretiska grunden förstås, men AI är nog värre än många andra ämnen att ta sig från teori till praktik. Det är min känsla i alla fall.
Du ska ju på något sätt omsätta alla matematik till kod i slutändan.
Min egna erfarenhet är att det bästa är att välja det man tycker är roligast. Då är det lättare att bli riktigt bra på det, vilket i sin tur gör det lättare att hitta jobb.
Som någon annan påpekat upplever även jag att när man vill ha någon som kan AI så vill man helst också att de kan programmera.
…och visst är det lätt att fastna i ett ekorrhjul och tiden går snabbt som någon sa. Men det går att ändra sig och byta spår, folk gör det hela tiden!
Ingen vet hur framtiden ser ut, men förhoppningsvis har du en känsla själv av vad som tilltalar just dig mest!
Mobilappar är definitivt en egen nisch men “webb” är oerhört brett. Jag jobbar på ett SaaS-bolag med en egen produkt som vi säljer. Jag har gjort saker i hela stacken från frontend till att några gånger tom samlat in nätverkspaket för att felsöka något särskilt klurigt. Dock skiljer sig mina kunskaper drastiskt inom olika områden. Jag kan bara enklare frontend och jag är bara hyfsat duktig inom vissa områden (Java/MySQL/Kubernetes kanske just nu).
Jag hade alltså aktat mig för mobilappar, om du inte av någon anledning starkt brinner för det, eftersom det generellt verkar vara mer isolerat än annan webbutveckling. Annars är möjligheterna stora att specialisera sig inom vissa områden. Jag har t ex fått erbjudande om att gå med i ett mer specialiserat team på samma företag, men jag trivs bättre just nu med att jobba bredare.
Något som kan vara lurigt med dessa “full stack” roller är dock att man inte riktigt vet hur arbetet kommer att bli när man blir anställd. Särskilt inte som nyexaminerad och nyanställd. Du kanske är intresserad av databaser, men företaget har inga intressanta problem inom databaser, och all komplexitet/utmaning/(karriär)utveckling kanske finns inom en avancerad frontend. Därför är det viktigt att ställa frågor om detta innan man börjar, om det inte framgår tydligt av annonsen.
Fråga till alla: finns det en vettig arbetsmarknad för teoretiska AI-kunskaper i Sverige? Dom som jobbar med AI på mitt företag verkar mest anropa externa API:er och där verkar kunskaper om AI sekundära i förhållande till traditionell utveckling. Men vi är inget AI-företag liksom, vi försöker bara addera AI-funktionalitet till en redan existerande produkt.
Eftersom det låter som du i praktiken kan välja nästan exakt samma kurser oavsett vilken inriktning du går blir huvudfrågan om du i andras ögon förenklat vill ses som “den som kan AI and Machine Learning” eller “den som kan Programming and Software Methods”.
att lösa ett affärsproblem med en algoritm? Tex identifiera målgrupper med KMEANS, finansiell eller logistik prognos med Catboost etc
Etablera en skalbar infrastruktur och arkitektur som modellerna kan köras och livcykelhanteras i ? Definiera compute för modellitveckling och träning. Sätta strategier för versionering o branchning (feature branch), deploy av modellen till test och prodsystem. Hur säkerställs regelefterlevnad ? Behöver vi pseudonymisera persondata? Hur får vi modellutvecklarna att testa för säkerhet i sina modeller? Hur får vi information om att vilka av våra 10000 modeller behöver tränas om ( left shifting, dev sec ml ops, observability) behövs en strategi för att följa kapacitet och kostnadsuttag för modellutveckling för att sätta budget? Hur distribuerar vi modellens resultat för att integrera i versamhetsprocesser och få ut effekten ? Behövs integrationslösningar för SFTP, api, köer eller BI rapporter? Hur ska en tjänstebaserad arkitektur och integrations kontrakten se ut?
app/mobil utveckling i figma etc (kan inget om detta)
Läs det du tycker är kul! ai/ml kommer att genomsyra de flesta affärsprocesser och it system framgent men vill du kunna utveckla modellen eller räcker det med att kunna integrera en färdig modell i en befintlig eller ny arkitektur ?
Personer som är mer intresserade av optimering av infrastruktur, Processer, testautomation behöver kanske inte djup kunskap om ai/ml utan det räcker med några kurser på udemy. Är behovet av ML engineering framgent större än behovet av Data Scientists ?
Kursen om ML/ai verkar rätt nischad på att utveckla själva modellerna. Är det det du vill ?
Den andra verkar bredare och mer återanvändbar, är du mer intresserad av generell utveckling och arkitektur ?
Kan du fixa en praktikplats på ett företag så du får känsla för vad som faktiskt behöver göras på en arbetsplats och vad av det som du tycker är kul?
Frågan är, är du intresserad av att utveckla och förvalta mjukvara? Brinner du för att koda och lösa problem? Är du törstig att lära dig hur man bygger robusta lösningar med olika tekniker?
Jag har jobbat i backend i 10 år och jag älskade det redan när jag pluggade på universitet. Dock har jag jobbat och slitit som en jävla djur och nått den nivån jag är på idag. Finns inga fasttrack. Mitt driv är intresset och att det är roligt.
Har intervjuat så många värdelösa utvecklare som bara är ute efter att tjäna pengar. Noll ambition och lite intresse. De gör det minsta bara för lönen. De kan inte heller djupet, exempelvis hur en processor eller trådar funkar.
Om du är en person som lägger din själ i det du gör och jobbar hårt, så kommer du att lyckas. Då behöver du inte AI, det lär du dig on the job.
Vi anställer bara generalister, inga specialister.
Jag har en masterutbildning inom ai/ml och jobbat ett antal år inom området, och tror mig ha rätt bra koll på den svenska arbetsmarknaden relaterat till det.
Faktisk ren, tung ai/ml, titel ofta Machine Learning Engineer, är en rätt liten nisch och det utbildas långt fler än det finns jobb för. Det som dock exploderat senaste 1-2 åren är rollen AI-engineer, som handlar om att integrera LLMer i annan mjukvara, inte att utveckla LLMerna i sig. Där är arbetsmarknaden väldigt ljus ljust nu. Grundkompetensen som behövs här är generell systemutveckling, ofta web, och inte hur algoritmerna fungerar i sig.