Lära sig programmera - vilket språk?

Permalänk
Medlem

Lära sig programmera - vilket språk?

Hej! Jag och en vän ska som projektarbete göra ett program som samarbetar med volymkontroll samt en musikspelare, vad vi undrar är vilket språk vi ska lära oss för detta ändamål. Vi går naturvetenskap och är båda lättlärda. Vi har ingen tidigare erfarenhet av programmering men känner folk som kan hjälpa oss ifall det skulle vara något FÖR avancerat. Så min fråga är vilket språk ska vi använda och vad är bästa sättet att lära sig det?
Python, C++ eller Huskell har vi tänkt på, men är fortfarande osäkra.

Mvh Sparkzor

Visa signatur

Intel I5 7600k, 16GB 2400mhz , 2x Sapphire Nitro 390, 1,25 tb HDD, 250gb SanDisk Ultra SSD, 950w nätagg.

Permalänk
Datavetare

Haskell är definitivt ett intressant språk att studera om man vill lära sig programmera, men Haskell tillsammans med I/O är rätt mastigt om man inte kan programmera tidigare då det finns en del gotchas. Haskell separerar saker i "rena" funktioner som inte får utföra eller anropa något som har en sidoeffekt, I/O är per definition en sidoeffekt. Ni kommer då få lära er hur Haskell kapslar in "orena" saker i ett koncept man kallar "monad" och mer specifikt I/O-monad för just saker som skriva till skärmen eller er volymkontroll.

Att lära sig C++ är inte något man gör i en handvändning då det är ett STORT och därför relativt komplicerat språk. C++ delar denna egenskap med andra språk som C# och Scala.

Java, språket, är betydligt enklare än C#, men precis som C#/.Net så har Java ett enormt standardbibliotek som man bör lära sig att navigera rätt obehindrat om man tänker arbeta med språket. Så även Java tar en del tid att bemästra.

Skulle nog rekommendera Python för detta projekt. Även Python har ett relativt omfattande standardbibliotek och med åren har man hunnit stoppa en hel del finesser i själva språket, lite väl mycket kanske.

Vill du verkligen lära dig ett helt språk så är Lisp en av de enklaste språken som existerar sett till hur mycket text som krävs för att beskriva alla grundläggande finesser i språket. Ett problem med Lisp var tidigare brist på bibliotek, men idag finns en Lisp-dialekt som heter Clojure som enkelt kan använda alla de bibliotek som finns tillgängliga för Java (vilket är MÅNGA).

Ett annat språk är gamla herdeliga C, som språk betydligt mycket enklare än C++, men varje C-programmerar bör kunna sin pekar-aritmetik och många tycker det är knepigt att greppa. Finns i princip inget modernt OS som inte är skrivet i C och därför kan man räkna med att en C-kompilator alltid kommer att existera till det system man kommer i kontakt med.

Men för ert projekt är ändå mitt förslag Python då det är ett väldigt trevligt språk som man ganska lätt lär sig grunderna i.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Java eller Python är ganska simpla. Python är helt klart det lättaste. Vet inte hur jobbigt det blir med erat arbete.

Kör ni java blir det lite lättare om det ska vara grafiskt. Finns Netbeans som kan skapa GUis utan behöva skriva koden för att själv. Vet inte hur det är med python.

Bra video tutorials : http://thenewboston.org/tutorials.php

Permalänk
Medlem
Skrivet av Yoshman:

Haskell är definitivt ett intressant språk att studera om man vill lära sig programmera, men Haskell tillsammans med I/O är rätt mastigt om man inte kan programmera tidigare då det finns en del gotchas. Haskell separerar saker i "rena" funktioner som inte får utföra eller anropa något som har en sidoeffekt, I/O är per definition en sidoeffekt. Ni kommer då få lära er hur Haskell kapslar in "orena" saker i ett koncept man kallar "monad" och mer specifikt I/O-monad för just saker som skriva till skärmen eller er volymkontroll.

Att lära sig C++ är inte något man gör i en handvändning då det är ett STORT och därför relativt komplicerat språk. C++ delar denna egenskap med andra språk som C# och Scala.

Java, språket, är betydligt enklare än C#, men precis som C#/.Net så har Java ett enormt standardbibliotek som man bör lära sig att navigera rätt obehindrat om man tänker arbeta med språket. Så även Java tar en del tid att bemästra.

Skulle nog rekommendera Python för detta projekt. Även Python har ett relativt omfattande standardbibliotek och med åren har man hunnit stoppa en hel del finesser i själva språket, lite väl mycket kanske.

Vill du verkligen lära dig ett helt språk så är Lisp en av de enklaste språken som existerar sett till hur mycket text som krävs för att beskriva alla grundläggande finesser i språket. Ett problem med Lisp var tidigare brist på bibliotek, men idag finns en Lisp-dialekt som heter Clojure som enkelt kan använda alla de bibliotek som finns tillgängliga för Java (vilket är MÅNGA).

Ett annat språk är gamla herdeliga C, som språk betydligt mycket enklare än C++, men varje C-programmerar bör kunna sin pekar-aritmetik och många tycker det är knepigt att greppa. Finns i princip inget modernt OS som inte är skrivet i C och därför kan man räkna med att en C-kompilator alltid kommer att existera till det system man kommer i kontakt med.

Men för ert projekt är ändå mitt förslag Python då det är ett väldigt trevligt språk som man ganska lätt lär sig grunderna i.

Okej, då blir det nog Python! Lär väl finnas rätt så många böcker på biblioteket också?

Visa signatur

Intel I5 7600k, 16GB 2400mhz , 2x Sapphire Nitro 390, 1,25 tb HDD, 250gb SanDisk Ultra SSD, 950w nätagg.

Permalänk
Medlem
Skrivet av mylife:

Java eller Python är ganska simpla. Python är helt klart det lättaste. Vet inte hur jobbigt det blir med erat arbete.

Kör ni java blir det lite lättare om det ska vara grafiskt. Finns Netbeans som kan skapa GUis utan behöva skriva koden för att själv. Vet inte hur det är med python.

Bra video tutorials : http://thenewboston.org/tutorials.php

Okej, tack!
Det lutar dock åt Python. Ska höra mig för lite mer hos vänner och se om det blir några fler svar här på forumet.

Visa signatur

Intel I5 7600k, 16GB 2400mhz , 2x Sapphire Nitro 390, 1,25 tb HDD, 250gb SanDisk Ultra SSD, 950w nätagg.

Permalänk
Medlem

Jag antar att det är Windows ni ska utveckla för? Eller har ni krav på att det ska vara multiplatform? Och isåfall vilka plattormar?

Även grunderna i programmering tar ett tag att lära sig men med lite intresse så kan det säkert vara avklarat på någon vecka. När man väl lärt sig grundstenarna så kan man egentligen hoppa på med eller mindre vilket språk som. Jag skulle gissa på att många börjar med C/C++ just för att de fokuserar just på grunderna i programmering(inte så mycket GUI programmering) och ger en ganska bra förståelse på vad som händer under skalet.

Men givetvis finns det en fördel att använda ett "anpassat språk". Jag började själv med C/C++ men efter som MFC(GUI programmering med C++) var ganska avancerat(för nybörjare) så blev Visual Basic ett bra steg på vägen.

Jag har sen tidigare(par år sen) kört en del Java och erfarenhet är att de håller bra takt med .net (C#, VB.NET mf.l) men frameworket kändes väldigt utspritt. Inte sällan fick man ta in tredje parts lösningar även för simpla saker och att hitta hjälp runt dessa var oftast ganska svårt. Självklart kan man ta in 3de parts moduler i .NET med men min känsla var att .NET har ett mer samlat framework och det känns lättare att få hjälp. Man säger att Java är platform oberoende men min erfarenhet är att det inte alls är så enkelt, det krävs ganska mycket jobb för att hålla sig helt platforms oberoende.

Så mitt tipps är C# eller möjligen VB.NET. Visual Studio 2012 Express som är en extremt fint utvecklings platform finns för studenter och är helt gratis.

Vill man sedan ta ytterligare ett steg ut på webben ex för att göra någon site så är inte ASP.NET(MVC) långtifrån (använder ocksåe C#/VB.NET).

Ett bra vis att lära sig är

  1. Införskaffa steg för steg programmerings bok för nybörjare inom rätt språk

  2. Följ boken ett par avsnitt och skriv de program som står där

  3. När du nått en bit så att du känner dig redo att göra något eget, sätt målet aningen högre än din kunskap så att du lär dig något (använd boken och Internet för hjälp och ta inte vatten över huvudet)

  4. Kom på ett nytt litet program/spel som triggar dig ytterligare att lära mer.

  5. Tillslut har du nått en nivå så att du kan utföra de program du haft som mål från början och sammtidigt förstå vad det är du gör

Visa signatur

CPU : AMD Ryzen 5 5600X Moderkort : ASUS ROG Strix B550-F GAMING Grafikkort :EVGA GeForce GTX 1080 Ti FTW3 iCX Gaming HDMI 3xDP 11GBMinne : Corsair 16GB Chassi :Fractal Design Define 7 Compact Nätdel : Corsair RM750x Skärm #1 : Asus VG349Q Ultrawide Skärm #2 : Acer X34 Ultrawide

Permalänk
Hedersmedlem

Vänta lite här nu. Vad menar du med volymkontroll? Någon fysisk kontroll som du ska koppla någon IR-sensor till datorn?
Och är det bestämt vilken musikspelare det ska vara?

För oavsett språk så kan du stöta på problem. Är det hårdvara så måste du lyckas kommunicera med den enheten. Och musikspelaren bör vara programmerad så den kan styras av andra program.

Ge oss lite mer info! Känns som många i tråden bara sprang iväg med tanken om ytterligare en tråd om nybörjare på programmering utan att tänka på vad målet var.

Men jag håller med, python kan vara bra. Haskell är inte lämpligt här.

Skrivet av Sparkzor:

Okej, då blir det nog Python! Lär väl finnas rätt så många böcker på biblioteket också?

Troligen inte och finns det någon är den troligen gammal.
Java, C++, C# och visual basic har nog biblioteken mycket av. Gärna rätt gamla böcker som inte behandlar nyare versioner.
Finns det i projektarbetet möjlighet att få något material inköpt? Dvs en bra bok.

Skrivet av SnowJim:

[...]
Så mitt tipps är C# eller möjligen VB.NET. Visual Studio 2012 Express som är en extremt fint utvecklings platform finns för studenter och är helt gratis.
[...]

Är inte alla expressvarianter gratis för alla (varför nämner du studenter)? Men inte kommersiell verksamhet.

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Medlem

Jag går civilingenjörsprogrammet i datavetenskap på Umeå Universitet och innan jag började här kunde jag inget om programmering.
Och det första vi började med var programmering i C, jag tyckte att det var en bra start. visserligen lite krångligt med det gav en bra grund.
Sen har vi kört lite java (vilket var ett riktigt lyft efter C) och nu är vi tillbaka på C igen Är inne på andra året nu och tyckte att det var en bra start

Permalänk
Hedersmedlem
Skrivet av Aqualize:

Men inte kommersiell verksamhet.

Finns det verkligen en sådan begränsning?
http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thr...

Permalänk
Medlem
Skrivet av Aqualize:

Är inte alla expressvarianter gratis för alla (varför nämner du studenter)? Men inte kommersiell verksamhet.

Jo det är gratis för alla vad jag vet och det räcker förvånansvärt långt. Jag har dock för mig att det först var tänkt för studenter men att det sedan öppnades upp efter som det inte gick att reglera på något vis.

Tanken med versionen är huvudsakligen att lära sig programmet men det är fullt möjligt att man får sälja output från Express.

Visa signatur

CPU : AMD Ryzen 5 5600X Moderkort : ASUS ROG Strix B550-F GAMING Grafikkort :EVGA GeForce GTX 1080 Ti FTW3 iCX Gaming HDMI 3xDP 11GBMinne : Corsair 16GB Chassi :Fractal Design Define 7 Compact Nätdel : Corsair RM750x Skärm #1 : Asus VG349Q Ultrawide Skärm #2 : Acer X34 Ultrawide

Permalänk
Hedersmedlem
Skrivet av Elgot:

Det kanske har ändrats. Har för mig det var så när version 2005 kom. Tror jag haft express installerat någon gång men annars har jag ändå haft tillgång till fulla Visual Studio (MSDN:AA) så länge Express funnits.

Nog om det, väljer trådskaparen att köra något språk som det finns en lämplig Expressmiljö för så är det bara tuta och köra.

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG