Vad gör man med programmeringsspråk? Användningsområden?

Tråden skapades och har fått 25 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Luleå
  • 2014-11-24 08:18

Jag har en fråga om problemlösning. Programmeringsspråk kan man lära sig över internet. Men företagen vill inte bara ha en anställd som kan ett programmeringsspråk, utan någon som kan applicera programmeringsspråket till företagets problem, eller arbetsuppgifter.
Jag undrar om ni kan tipsa mig på någon sajt eller flera sajter hur man använder programmeringsspråken. Exakt vad gör man med java, och varför använder man C# här och Obective C där? Ni hajar. Jag kan tänka mig att någon tänker hackathon, men jag är mer intresserad av verkliga problem, som man kan applicera i verkligheten, i dagens samhälle kanske?

Tacksam för inspirerande svar

Senast redigerat 2014-11-24 10:39
Ursprungligen av KOL:

Jag har en fråga om problemlösning. Programmeringsspråk kan man lära sig över internet. Men företagen vill inte bara ha en anställd som kan ett programmeringsspråk, utan någon som kan applicera programmeringsspråket till företagets problem, eller arbetsuppgifter.

Helt rätt. Att kunna programmera handlar inte enbart att kunna syntaxen för ett visst programmeringsspråk, utan det handlar mer om att kunna bena ut ett problem och realisera en lösning på problemet med hjälp av kod.
Ska man sedan hårddra det hela så finns det även olika roller inom ett utvecklingsteam såsom arkitekter, programmerare och testare. Arkitekten ansvarar för att hålla ihop hela lösningen och specar vad som ska utvecklas (men inte nödvändigtvis hur) medans programmeraren skriver kod som uppfyller arkitektens spec och testaren validerar att så är fallet. I alla dessa roller är det helt klart en stor fördel om man kan programmera, men det är inte nödvändigt att arkitekten och testaren kan just det programmeringsspråket som används.

Ursprungligen av KOL:

Exakt vad gör man med java, och varför använder man C# här och Obective C där?

Vilket programmeringsspråk man väljer för olika saker beror mycket på omkringliggande orsaker, där en sak som har stor påverkan är plattformen man avser att köra på. T.ex. fungerar C# enbart på windowsplattformen medans Objective-C är ett måste för att programmera mot iOS (eller var i alla fall fram tills i somras då Swift gjorde debut).
Java har den fördelen att man kan skriva koden en gång och sedan använda den på en mängd olika plattformar.

Ursprungligen av KOL:

Jag undrar om ni kan tipsa mig på någon sajt eller flera sajter hur man använder programmeringsspråken. Exakt vad gör man med java, och varför använder man C# här och Obective C där? Ni hajar. Jag kan tänka mig att någon tänker hackathon, men jag är mer intresserad av verkliga problem, som man kan applicera i verkligheten, i dagens samhälle kanske?

Tacksam för inspirerande svar

Vad är det du är ute efter egentligen? Har du tänkt byta karriär eller är det bara ett allmänt intresse kring problemlösning? Jag har nog tyvärr ingen jättebra lista på siter som beskriver hur man bedriver programvaruutveckling. Jag började med detta en bunt år innan internet slog igenom, men google är ju en vän i sådana här tillfällen...

Dessutom gäller det att man kan jobba enligt en eller flera projektmetodiker, men även här finns en uppsjö att välja mellan.

  • Medlem
  • Luleå
  • 2014-11-24 14:40

Tack HåkanE. Jo, det är absolut så att det finns tankar på att byta karriär. Programmering har jag hållit på med i ca 10 år, men bara för webb. På senare tid har jag intresserat mig för olika programmeringsspråk och vad man kan göra med dem. Som jag skrev i förra inlägget så är ju programmeringsspråket en grej, men att använda det till något, ja det är något helt annat. Tack för beskrivningen av arkitekt, programmerare och testare.

  • Skribent
  • Sollentuna
  • 2014-11-24 15:16
Ursprungligen av KOL:

Tack HåkanE. Jo, det är absolut så att det finns tankar på att byta karriär. Programmering har jag hållit på med i ca 10 år, men bara för webb. På senare tid har jag intresserat mig för olika programmeringsspråk och vad man kan göra med dem. Som jag skrev i förra inlägget så är ju programmeringsspråket en grej, men att använda det till något, ja det är något helt annat. Tack för beskrivningen av arkitekt, programmerare och testare.

I teorin kan man göra i princip vad som helst med vilket programmeringsspråk som helst. Undantaget är väl om man ska skriva ett operativsystem från grunden, vilket kräver ett lågnivåspråk som assembly eller C.

Med det sagt är, som du kanske har listat ut, olika språk lämpade för olika användningsområden. Om du vill ha ett enkelt litet program som t.ex. utför enkla uppgifter på textfiler så kanske Python är lämpligast, även om du kan göra det i Java eller C. Om du vill göra ett mer komplext program med GUI och trådning så är C++ mer lämpligt än Python. Vill du kunna köra det på flera operativsystem med så lite merarbete som möjligt kanske du väljer Java.

I slutändan handlar det om att bekanta sig med de miljöer programmet ska köras i, och de frameworks och systemanrop som kan tänkas behövas. Behöver du kommunicera över nätverk? Kolla hur du använder sockets i ditt valda språk. Behöver du rita GUI-fönster? Kolla upp Swing för Java eller QT för C++ t.ex.
Börja med att bryta upp problemet/uppgiften i mindre bitar och lös varje bit för sig. Börja med den bit som har minst beroenden av andra bitar och som låter dig bygga vidare på de andra. Det är bara övning som gäller, och tyvärr är det svårt att ge "verkliga" exempel att träna på. Sätt upp ett mål där du ska bygga en applikation som gör... vad som helst egentligen. Ta nåt enkelt att börja med. Fokusera på funktion och inte på form (om man kodar strukturerat och modulärt går det alltid att fixa utseendet sist). Ett kommandoradsverktyg utan GUI kan vara lämpligt att börja med. Bryt som sagt upp problemet och googla dig fram till lösningar på enskilda delar.

Enda sättet att lära sig programmera är att programmera. Och ha kul.

Ursprungligen av Vassius:

I teorin kan man göra i princip vad som helst med vilket programmeringsspråk som helst. Undantaget är väl om man ska skriva ett operativsystem från grunden, vilket kräver ett lågnivåspråk som assembly eller C.
...
Enda sättet att lära sig programmera är att programmera.

Nog för att C är i en klass för sig men inte är det som assembler

Så enkelt som i sista kommentaren är det dessvärre inte. Givetvis så kan man inte lära sig utan att utföra uppgifterna men det räcker inte med att bara programmera för att lära programmera bra.

När det gäller ursprungsfrågan så skulle jag trots allt börja med en kurs på Luleå Tekniska Universitet. Det finns bra distanskurser som du kan gå. Fördelen med distanskurser är att alla föreläsningar ges via nätet så du behöver inte passa någon föreläsningstid och kan anpassa det hela till vad som passar dig tidmässigt.

De har kurser i Java som kanske inte vore fel att börja med. Det är inte språket som är det viktiga - det är att lära sig metodiken och arbetssättet.

  • Medlem
  • Luleå
  • 2014-11-24 15:42

Du har så rätt BlackSmp.

Och tack där Vassius!

  • Medlem
  • Luleå
  • 2014-11-24 15:42

Vilka kurser rekommenderar du, BalckSmp?

  • Skribent
  • Sollentuna
  • 2014-11-24 16:03
Ursprungligen av BlackSmp:

Så enkelt som i sista kommentaren är det dessvärre inte. Givetvis så kan man inte lära sig utan att utföra uppgifterna men det räcker inte med att bara programmera för att lära programmera bra.

Nä, jag menade inte att det räcker med att bara programmera, bara att det är en förutsättning för att lära sig.

Som med bilkörning; det spelar ingen roll hur mycket man läser på i förväg. Första gången man sätter sig bakom ratten kommer man lik förbannat att ha svårt att hitta dragläget. Och det tar tid att lära sig hålla koll på allt i trafiken. Men enda sättet att lära sig det är att sitta bakom ratten och nöta. Hur mycket teoretiska kunskaper man än har.

  • Medlem
  • Luleå
  • 2014-11-24 20:24

Japp, och det var där min fråga startade. Finns det någon sajt som ger frågor eller problem som man ska lösa? Arbetsgivarna som behöver programmerare och de arbetslösa, som kan vara mycket teknik och programmeringsintresserade, borde kunna ta ett kliv närmare varandra om de ser ett och samma problem som de kan ha en dialog om.
Det kanske till och med kan lösa arbetsgivarnas problem och de kanske anställer problemlösaren(programmeraren).

Ursprungligen av KOL:

Vilka kurser rekommenderar du, BalckSmp?

Ursprungligen av KOL:

Japp, och det var där min fråga startade. Finns det någon sajt som ger frågor eller problem som man ska lösa? Arbetsgivarna som behöver programmerare och de arbetslösa, som kan vara mycket teknik och programmeringsintresserade, borde kunna ta ett kliv närmare varandra om de ser ett och samma problem som de kan ha en dialog om.
Det kanske till och med kan lösa arbetsgivarnas problem och de kanske anställer problemlösaren(programmeraren).

Om du har tänkt att byta karriär så beror det väldigt mycket på vad du har för bakgrundskunskaper. Du måste vara medveten om att du kommer att konkurrera med folk som har högskole/universitetsutbildning så du kommer inte långt med någon enstaka kurs eller liknande.

Om du som självlärd ska ha en chans mot dessa så krävs det att du är väldigt duktigt och kan bevisa detta.

Personligen så hade jag två års heltidsstudier på Luleå Tekniska Högskola när jag började min karriär och på min arbetsplats så jobbar företrädesvis folk med samma utbildning eller ännu högre.

Titta igenom lite platsannonser, så får du bra uppfattning på hur arbetsuppgifter och olika programmeringsspråk kan höra ihop i praktiken

Ursprungligen av HåkanE:

Vilket programmeringsspråk man väljer för olika saker beror mycket på omkringliggande orsaker, där en sak som har stor påverkan är plattformen man avser att köra på. T.ex. fungerar C# enbart på windowsplattformen medans Objective-C är ett måste för att programmera mot iOS (eller var i alla fall fram tills i somras då Swift gjorde debut).

Det går alldeles utmärkt att använda C# på annat än Windows med Mono sedan mer än tio år tillbaka. Bl. a. har Xamarin en populär lösning för att använda det på både iOS och Android. Man behöver inte begränsa sig till Objective-C och Swift, eller Java på Android.

  • Medlem
  • Luleå
  • 2014-11-25 20:26

Jag har kollat platsannonserna, Rickard. Det är där jag hittar det som är aktuellt på arbetsmarknaden just nu. Idag lyssnade jag på en kille som var från IT-branschen. Han sa att man måste våga välja vad man ska jobba med och sedan rikta in sig på det.
Håller ni med?

Ursprungligen av KOL:

Jag har kollat platsannonserna, Rickard. Det är där jag hittar det som är aktuellt på arbetsmarknaden just nu. Idag lyssnade jag på en kille som var från IT-branschen. Han sa att man måste våga välja vad man ska jobba med och sedan rikta in sig på det.
Håller ni med?

Jovisst, det är ju vettigt att ha en inriktning då IT är ju ett ganska brett yrkesområde i sig, men om det är just programmering du har spetsat in dig på så anser jag att det räcker som inriktning än så länge. Du kommer ju att få möjlighet / vara tvungen att specialisera dig när du väl fått en anställning.

Ursprungligen av Marcus K:

Det går alldeles utmärkt att använda C# på annat än Windows med Mono sedan mer än tio år tillbaka. Bl. a. har Xamarin en populär lösning för att använda det på både iOS och Android. Man behöver inte begränsa sig till Objective-C och Swift, eller Java på Android.

Japp, det är riktigt men jag rekommenderar inte TS att gå den vägen det första man gör som programmerare. Personligen ser jag inte poängen med att inte använda det programmeringsspråk som API:et är avsett för.

Det finns några olika aspekter på val av språk:

- Prestanda. Skall ditt program gå fort/vara energisnålt eller skall dina användare vänta medan datorn gör ingenting för att du inte orkar kompilera? (Kompilerande språk är mycket snabbare än interpreterande.)
- Finesser. Har språket några finesser som är speciellt användbara för ditt problem? Är det lämpligt för ditt problem?
- Produktivitet. Arbetar du effektivt med språket? Gillar du att jobba i det?
- Är det lätt att felsöka? Är språket designat för att avslöja fel snabbt eller släppa igenom vad som helst?
- Är det dokumenterat? Om det inte är samma språk som du har dokumentation för (för det API du främst skall jobba mot), är det lätt att konvertera mellan dem?

Men är detta en generell diskussion om fördelen med olika programmeringsspråk eller en fråga om vilket språk som är bäst att lära sig först om man vill ha störst chans att få ett jobb?

Min erfarenhet är att du som enskild programmerare har väldigt liten påverkan på vilket språk som väljs i olika projekt utan får helt enkelt anpassa dig till det som gäller på det företaget och den produkt som företaget jobbar med.

Ursprungligen av BlackSmp:

Men är detta en generell diskussion om fördelen med olika programmeringsspråk eller en fråga om vilket språk som är bäst att lära sig först om man vill ha störst chans att få ett jobb?

Min erfarenhet är att du som enskild programmerare har väldigt liten påverkan på vilket språk som väljs i olika projekt utan får helt enkelt anpassa dig till det som gäller på det företaget och den produkt som företaget jobbar med.

Det är helt riktigt. På ett företag sätts du på att jobba i företagets produkt. Oftast betyder det att du inte kan välja så mycket. Oftast, inte alltid. Företaget är trots allt inriktat på produkten och inte verktygen för att skapa den, så visst kan man påverka, men knappast som nykomling.

För egna projekt är det en helt annan sak. Då är det prestanda, produktivitet och personlig trivsel som gäller.

Men dessa två är inte nödvändigtvis i konflikt. Om man är nyfiken och lär sig flera språk, flera plattformar, och provar olika lösningar i de där egna projekten, då blir det lättare att anpassa sig efter företagets val.

Ursprungligen av Ingemar Ragnemalm:

Det är helt riktigt. På ett företag sätts du på att jobba i företagets produkt. Oftast betyder det att du inte kan välja så mycket. Oftast, inte alltid. Företaget är trots allt inriktat på produkten och inte verktygen för att skapa den, så visst kan man påverka, men knappast som nykomling.

För egna projekt är det en helt annan sak. Då är det prestanda, produktivitet och personlig trivsel som gäller.

Men dessa två är inte nödvändigtvis i konflikt. Om man är nyfiken och lär sig flera språk, flera plattformar, och provar olika lösningar i de där egna projekten, då blir det lättare att anpassa sig efter företagets val.

Givetvis, min reflektion var mest för att jag uppfattade det som att TS var ute efter att skaffa sig ett nytt jobb och undrade vad han borde lära sig för att komma in på "marknaden"

Ursprungligen av BlackSmp:

Givetvis, min reflektion var mest för att jag uppfattade det som att TS var ute efter att skaffa sig ett nytt jobb och undrade vad han borde lära sig för att komma in på "marknaden"

Jo, och då tycker jag att bredd är en bra idé. Anpassningsbarhet.

Annars kan, som nämnts ovan, de flesta språk användas till de flesta problem (med mer eller mindre bra resultat). I alla fall de som jag skulle anse värda att kunna.

  • Medlem
  • International user
  • 2014-11-27 11:42
Ursprungligen av BlackSmp:

Om du har tänkt att byta karriär så beror det väldigt mycket på vad du har för bakgrundskunskaper. Du måste vara medveten om att du kommer att konkurrera med folk som har högskole/universitetsutbildning så du kommer inte långt med någon enstaka kurs eller liknande.

Om du som självlärd ska ha en chans mot dessa så krävs det att du är väldigt duktigt och kan bevisa detta.

Personligen så hade jag två års heltidsstudier på Luleå Tekniska Högskola när jag började min karriär och på min arbetsplats så jobbar företrädesvis folk med samma utbildning eller ännu högre.

Skolan är ingen garanti för bra programerare, eller vilken bransh du än tittar på. Jag lutar mot att självlärda ofta är bättre lämpade, eftersom de har haft ett äkta intresse för att lära sig.

Sen finns det ju iofs en massa som tror sig kunna saker de inte kan, men så är det oberoende om de har papper eller inte.

Senast redigerat 2014-11-27 12:01
Ursprungligen av juanito:

Skolan är ingen garanti för bra programerare, eller vilken bransh du än tittar på. Jag lutar mot att självlärda ofta är bättre lämpade, eftersom de har haft ett äkta intresse för att lära sig.

Sen finns det ju iofs en massa som tror sig kunna saker de inte kan, men så är det oberoende om de har papper eller inte.

Så är det alltid men nog tror jag att personer som har tillbringat 3-4 år på universitetsnivå med heltidsstudier har ett äkta intresse för att lära sig...

Man ska inte förakta självlärda personer men man ska inte heller förakta de som investerar i en utbildning.

Ursprungligen av BlackSmp:

Så är det alltid men nog tror jag att personer som har tillbringat 3-4 år på universitetsnivå med heltidsstudier har ett äkta intresse för att lära sig...

Man ska inte förakta självlärda personer men man ska inte heller förakta de som investerar i en utbildning.

Kan egentligen bara hålla med men även tillägga att något av det viktigaste man själv lärde sig under högskolestudierna var förmågan att ta in stora mängder information och lära sig nya saker. Antalet diffekvationer jag räknat på sedan högskoletiden är minst sagt begränsade... men de nya områden jag lärt mig är desto fler.

Utbildningar kan förmedla vissa fackkunskaper, samt metodikkunskaper.

Fackkunskaperna ska man inte överdriva, man lär sig inte så jäkla mycket hårda kunskaper som man tror på en utbildning. Däremot kan metodikkunskaperna vara väl så värdefulla.

För egen del är jag självlärd, vilket har fördelen att alla uppgifter jag någonsin satts att lösa är direkt hämtade från verkligheten, vilket tränar en i problemlösningsförmåga och prioriteringar. Det gör att jag har en väldigt eklektisk ansats, kan glatt blanda ett flertal språk etc. om jag tycker det gagnar lösningen. Däremot så märker jag en skillnad mot de som studerat programmering att det finns en annan systematik, nomenklatura, teoretisk överbyggnad osv.

Att säga att den ena typen av erfarenhet är bättre och den andra sämre är lite myopiskt, snarare handlar det om man kommer in det från olika håll och med tiden jämnas skillnaderna ut.

Ursprungligen av Richard Rönnbäck:

Utbildningar kan förmedla vissa fackkunskaper, samt metodikkunskaper.

Fackkunskaperna ska man inte överdriva, man lär sig inte så jäkla mycket hårda kunskaper som man tror på en utbildning. Däremot kan metodikkunskaperna vara väl så värdefulla.

För egen del är jag självlärd, vilket har fördelen att alla uppgifter jag någonsin satts att lösa är direkt hämtade från verkligheten, vilket tränar en i problemlösningsförmåga och prioriteringar. Det gör att jag har en väldigt eklektisk ansats, kan glatt blanda ett flertal språk etc. om jag tycker det gagnar lösningen. Däremot så märker jag en skillnad mot de som studerat programmering att det finns en annan systematik, nomenklatura, teoretisk överbyggnad osv.

Att säga att den ena typen av erfarenhet är bättre och den andra sämre är lite myopiskt, snarare handlar det om man kommer in det från olika håll och med tiden jämnas skillnaderna ut.

Jag skulle snarare säga att med tiden så märks det vilka som är duktiga/produktiva oavsett vilken utbildning de har (eller inte har).

Ursprungligen av BlackSmp:

Jag skulle snarare säga att med tiden så märks det vilka som är duktiga/produktiva oavsett vilken utbildning de har (eller inte har).

Det är möjligt, men det står ju inte i motsats till det jag sa, båda beskrivningarna kan vara sanna eller osanna helt oberoende av varandra

1
Bevaka tråden