Sugen på att lära mig programmering, vart börjar jag?

Permalänk
Medlem

Sugen på att lära mig programmering, vart börjar jag?

Tjena på er allesammans! Precis som rubriken lyder är jag sugen på att lära mig börja programmera lite grann, har just nu ett heltidsjobb i en telekombutik, jag stormtrivs men känner lite ibland ifall de är det här jag verkligen vill göra resten av livet ni vet haha! Har blivit väldigt nyfiken på programmering och skapande och har lite funderingar som jag hoppas ni experter här kan ge mig lite svar och råd på!

Pendlar varje dag till jobbet ca 1.05 med buss och har tillgång till laptop så har ju tid till övers! Men funderingarna jag har är

Har ni alla gått någon sorts utbildning inom ämnet? Har sökt runt lite där jag bor och finns ingen sådan här typ av utbildning någonstans i närheten utav mig och känns inte så aktuellt att flytta..
Vart börjar man? Är det något språk som är framtidssäkert än andra som man bör lära sig? Finns ju så många språk att lära sig känns lite som utav en djungel...
Skulle man kunna sätta sig in i det igenom rent av köpa sig en utbildningsbok och sen diverse tutorials här och där?
Kan man helt enkelt bli självlärd inom sånt här eller är det något som man bör gå en utbildning i?

Som sagt ingenting jag tänker att nästa år ska jag jobba inom det här men skulle vara väldigt kul att lära sig och eventuellt komma någon vart med det!

Tar gladeligen emot alla former utav tips & tricks ifrån er!

Mvh Rasmus

Permalänk
Avstängd

Jag har själv aldrig satsat tillräckligt hårt men testat att börja gå Mr 1Buyings webkurs på youtube. Länken är till hans C++ men han kör även Java och Python. De har ett par år på nacken men jag har ingen aning om hur mycket som förändras i grunderna av programmering.
Som ett första tips iallafall.
https://youtu.be/eHcsGLiORVg

Visa signatur

Chassi: Fractal Design Define R3 Black, Mobo: ASUS Z170 Pro Gaming, CPU: Intel i7 6700K, kylning CM Hyper 212 EVO, RAM: 32 GB Hyper X 3000 mhz, GPU: Nvidia MSI 1080 Gaming X, PSU: XFX Core Edition Pro 750W, Mus: Logitech G700, Tgb: Corsair Raptor K30, OS: Win10

Permalänk
Medlem
Skrivet av Stefflo:

Jag har själv aldrig satsat tillräckligt hårt men testat att börja gå Mr 1Buyings webkurs på youtube. Länken är till hans C++ men han kör även Java och Python. De har ett par år på nacken men jag har ingen aning om hur mycket som förändras i grunderna av programmering.
Som ett första tips iallafall.
https://youtu.be/eHcsGLiORVg

Tack för input! Ska definitivt spana in!

Permalänk
Avstängd
Skrivet av oflytbara:

Tack för input! Ska definitivt spana in!

Jag ser en stor fördel med att det är på svenska. Finns annars säkert massor som är bättre men då på engelska.

Visa signatur

Chassi: Fractal Design Define R3 Black, Mobo: ASUS Z170 Pro Gaming, CPU: Intel i7 6700K, kylning CM Hyper 212 EVO, RAM: 32 GB Hyper X 3000 mhz, GPU: Nvidia MSI 1080 Gaming X, PSU: XFX Core Edition Pro 750W, Mus: Logitech G700, Tgb: Corsair Raptor K30, OS: Win10

Permalänk
Medlem

Enligt min erfarenhet så kan det vara förnuftigt att först lära sig ett dynamiskt högnivåspråk i första hand. Då slipper du tänka onödiga detaljer som du ännu inte förstår utan kan koncentrera dig på att lära dig grundläggande programmeringskoncept och få saker gjorda.

Python och Ruby är bra exempel på språk med dessa egenskaper. Go är ett modernt exempel som jag inte har erfarenhet av men som hyllas väldigt mycket i dagsläget.

Huruvida språket du lär dig programmera med ska vara framtidssäkert är inte så viktigt egentligen då om du får en karriär inom programmering så kommer du antagligen lära dig många, många språk.

Permalänk
Medlem

Jag började med C-programmering 1996 men hade jag börjat idag hade jag utan tvekan börjat med C#. Det har jag personligen haft mest nytta av i arbetslivet. Som tidigare konsult hos flertalet kunder inom bank/finans/försäkring i Sverige upptäckte jag snabbt att C# används i stor utsträckning. Polisen var ett stort undantag som körde mycket Java. Svenska företag känns över lag mycket Microsoft-orienterade. Kan tänka mig att det ser lite annorlunda ut i andra Europeiska länder.

Inom webbutveckling började jag med ASP Classic men gick snabbt över till PHP. I dagsläget jobbar jag med 20% PHP och 80% .Net (C#).

Visa signatur

Windows 11 Pro | Intel i7 8700 | ASUS Prime Z370-P | Corsair 16GB 3000MHz | ASUS GTX 1080 | Fractal Design Define S | Corsair RM750x | Hyper 212 EVO

Permalänk

Jag tycker du först ska bestämma dig för vad du är intresserad av att åstadkomma.

Vill du hålla på med web-grejer så är JavaScript en bra ingång där du kan använda samma språk till både front- och back-end. C++ är bra för prestandakrävande saker som t.ex. spel. Python är ett bra all-round script-språk som används mycket inom det akademiska och lite varstans.

Oavsett vad du väljer så blir det bra

Permalänk
99:e percentilen

Jag tycker att du ska gå för ett starkt typat, funktionellt högnivåspråk. Behöver inte vara purely functional, även om sådana språk har fördelen att de i princip garanterar bra kod; ett imperativt och funktionellt språk som till exempel TypeScript kan vara ett bra alternativ (även om just det språket absolut har sina quirks). Annars är Elm ett rent funktionellt språk med väldigt snälla och hjälpsamma felmeddelanden.

felaktig formulering
Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Tycker du borde satsa på C++ eller Java som första språk, båda är relativt enkla att komma in i och kul att lära sig! Denna sidan lärde jag mig jättemycket av när jag lärde mig: http://www.cplusplus.com

Visa signatur

CPU: Core i5 4690K | GPU: MSI GeForce GTX 970 Gaming | Mammabräda: Asus Maximus VII Ranger | Minnen: Corsair Vengeance 8 gb (2x4) 1600 Mhz | Kylare: Be Quiet! Pure Rock Slim | PSU: Evga SuperNova G2 750W | Chassi: NZXT H440 Red/Black

Permalänk
Medlem
Skrivet av Alling:

Jag tycker att du ska gå för ett starkt typat, funktionellt högnivåspråk. Behöver inte vara purely functional, även om sådana språk har fördelen att de i princip garanterar bra kod; ett imperativt och funktionellt språk som till exempel TypeScript kan vara ett bra alternativ även om det absolut har sina quirks. Annars är Elm ett rent funktionellt språk med väldigt snälla och hjälpsamma felmeddelanden.

Varför skulle man börja med ett funktionellt språk?

--

Jag skulle föreslå Python som introduktionsspråk, vilket är ett språk som det lätt går att komma igång med. Dessutom finns det många onlinekurser som använder Python som språk.

Permalänk
Medlem

Onlinekurs i Python som verkar rimlig:
https://www.coursera.org/specializations/python

Permalänk
Medlem

Tack för all input allihopa! Ska skumma igenom senare vad som skrivs då jag är på jobbet just nu...
Ha en trevlig helg hörrni!

Permalänk
99:e percentilen
Skrivet av kanskedet:

Varför skulle man börja med ett funktionellt språk?

För att funktioner är extremt viktiga för en programmerare som vill skriva bra kod. Framförallt är det synd att skriva i ett språk där uttryck som map f xs eller xs.map(f) inte finns eller är klumpiga att konstruera.

Citat:

Jag skulle föreslå Python som introduktionsspråk, vilket är ett språk som det lätt går att komma igång med. Dessutom finns det många onlinekurser som använder Python som språk.

Python är funktionellt. Läste du hela mitt inlägg innan du citerade det, eller bara första meningen?

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Personligen om jag fick revertera 15 år och börja från scratch, skulle jag börja med javascript.

Ja, det är ett scriptspråk och inte ett fulländat programmeringsspråk. Men med den näst intill omedelbara output du kan få och det näst intill oexistenta kravet på SDK (Sublime räcker) är det en väldigt bra grundsten bara för att komma in i världen av variabler, funktioner och allmän syntax.

Efter man greppat det tänket och känner sig bekväm med hur programmering fungerar logiskt sett, kan man sedan hoppa vidare till mer kompletta språk med djupare syntax och libraries.

Visa signatur

Jag ansvarar för vad jag skriver, inte för vad du förstår.
Förlåt, jag hörde inte vad du tänkte säga.

Permalänk
Medlem

Din första lärdom är att lära dig söka på nätet. Här på Sweclockers kommer denna typen av tråd upp flera gånger i månaden. På resten av nätet varenda dag.

Permalänk
Medlem
Skrivet av oflytbara:

Tjena på er allesammans! Precis som rubriken lyder är jag sugen på att lära mig börja programmera lite grann, har just nu ett heltidsjobb i en telekombutik, jag stormtrivs men känner lite ibland ifall de är det här jag verkligen vill göra resten av livet ni vet haha! Har blivit väldigt nyfiken på programmering och skapande och har lite funderingar som jag hoppas ni experter här kan ge mig lite svar och råd på!

Pendlar varje dag till jobbet ca 1.05 med buss och har tillgång till laptop så har ju tid till övers! Men funderingarna jag har är

Har ni alla gått någon sorts utbildning inom ämnet? Har sökt runt lite där jag bor och finns ingen sådan här typ av utbildning någonstans i närheten utav mig och känns inte så aktuellt att flytta..
Vart börjar man? Är det något språk som är framtidssäkert än andra som man bör lära sig? Finns ju så många språk att lära sig känns lite som utav en djungel...
Skulle man kunna sätta sig in i det igenom rent av köpa sig en utbildningsbok och sen diverse tutorials här och där?
Kan man helt enkelt bli självlärd inom sånt här eller är det något som man bör gå en utbildning i?

Som sagt ingenting jag tänker att nästa år ska jag jobba inom det här men skulle vara väldigt kul att lära sig och eventuellt komma någon vart med det!

Tar gladeligen emot alla former utav tips & tricks ifrån er!

Mvh Rasmus

Gillar du att pilla med hårdvara, styra o mäta saker så ta en titt på Arduino. Programmeringsmiljön där är C++ med fördefinierade klasser för att anpassa mot Arduino-hårdvaran.

Är väldigt lätt att komma igång med då det är riktat mot personer som inte kan programmera, samtidigt inget som hindrar att göra mer avancerade saker då den även har full C++.

Permalänk
Medlem
Skrivet av oflytbara:

Har ni alla gått någon sorts utbildning inom ämnet?

Jag jobbar som spelutvecklare sen många år tillbaka och är 90% självlärd men har en master. Även om du vill gå en utbildning är det en bra idé att börja lite smått på egen hand. Det gör det lättare att ta till sig en utbildning.

Skrivet av oflytbara:

Vart börjar man?

Python eller C#. Python är ett enklare språk. Fördelen med C# är att visual studio är gratis och har väldigt bra debugger. En debugger är guld när man inte förstår varför ens kod inte fungerar. Kan du C# är steget till andra imperativa språk (java, c, c++, javascript, python) rätt litet.

Ett generellt tips för att hålla uppe motivationen är att bestämma sig för ett projekt så att du har ett mål. Gärna något som du själv känner att du saknar.

Permalänk
Medlem

Vill du lära dig är distanskurser hos våra svenska universitet och högskolor något jag tycker är värt att ge tid. Du får en lärarledd kurs där du själv till stor del kan välja hastighet.
Jag själv har gått två kurser med java på Luleå universitet och går nu ytterligare en på Örebro.
Kostar inget förruton eventuellt material och är helt på distans.

Skickades från m.sweclockers.com

Visa signatur

Man made the electrolyte to make us see the horrors in the dark.

Permalänk
Medlem

Sök på Stanford programming methodology, föreläsningar av hög kvalite som är kanon

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Medlem
Skrivet av Alling:

För att funktioner är extremt viktiga för en programmerare som vill skriva bra kod. Framförallt är det synd att skriva i ett språk där uttryck som map f xs eller xs.map(f) inte finns eller är klumpiga att konstruera.

Python är funktionellt. Läste du hela mitt inlägg innan du citerade det, eller bara första meningen?

Fast i början tror jag det är viktigare att lära sig imperativ programmering istället för högre ordningens funktioner, dessutom har de flesta av dagens språk högre ordningens funktioner. Sedan skulle inte jag säga att Python är funktionellt. När man pratar om funktionella språk brukar man mena att de har högre ordningens funktioner och är pure. Annars är ju alla objektorienterade språk funktionella eftersom ett objekt är en samling funktioner.

Permalänk
99:e percentilen
Skrivet av kanskedet:

Fast i början tror jag det är viktigare att lära sig imperativ programmering istället för högre ordningens funktioner, dessutom har de flesta av dagens språk högre ordningens funktioner.

Det kan jag förstå att du tror/tycker, men jag tycker att funktionellt tänk är extremt viktigt (även utan högre ordningens funktioner). Är så trött på att alla som börjar med programmering lär sig/blir lärda att skriva dålig, överdrivet imperativ kod. Simpla (ej högre ordningens) funktioner bör vara det första man lär sig efter Hello World.

Citat:

Sedan skulle inte jag säga att Python är funktionellt. När man pratar om funktionella språk brukar man mena att de har högre ordningens funktioner och är pure. Annars är ju alla objektorienterade språk funktionella eftersom ett objekt är en samling funktioner.

Man kan mena purely functional språk som du säger, beroende på kontext. Men funktionella språk behöver inte vara pure. Python har ju fullt stöd för högre ordningens funktioner och har funktioner som första klassens medborgare, och är därmed funktionellt (dock förstås ej purely functional). Detsamma gäller till exempel JavaScript. (Java verkar försöka kvalificera, men tycker det krävs en rejäl portion god vilja för att gå med på det.)

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem
Skrivet av Alling:

Det kan jag förstå att du tror/tycker, men jag tycker att funktionellt tänk är extremt viktigt (även utan högre ordningens funktioner). Är så trött på att alla som börjar med programmering lär sig/blir lärda att skriva dålig, överdrivet imperativ kod. Simpla (ej högre ordningens) funktioner bör vara det första man lär sig efter Hello World.

Man kan mena purely functional språk som du säger, beroende på kontext. Men funktionella språk behöver inte vara pure. Python har ju fullt stöd för högre ordningens funktioner och har funktioner som första klassens medborgare, och är därmed funktionellt (dock förstås ej purely functional). Detsamma gäller till exempel JavaScript. (Java verkar försöka kvalificera, men tycker det krävs en rejäl portion god vilja för att gå med på det.)

1) Jag delar din syn att man ska lära sig använda högre ordningens funktioner, men inte från början.

2) Jag menar att ett objekt är en samling av funktioner (och det är så man modellerar det formellt). Således om man tar emot ett objekt eller ger tillbaka ett objekt från en funktion, så är den funktionen en högre ordningens funktion. Därför är det inte så konstigt att lambda-uttryck mappas till objekt av anonyma klasser i Java.

Edit, så här skriver Wikipedia:
"In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. It is a declarative programming paradigm, which means programming is done with expressions[1] or declarations[2] instead of statements. In functional code, the output value of a function depends only on the arguments that are passed to the function, so calling a function f twice with the same value for an argument x produces the same result f(x) each time; this is in contrast to procedures depending on a local or global state, which may produce different results at different times when called with the same arguments but a different program state. Eliminating side effects, i.e., changes in state that do not depend on the function inputs, can make it much easier to understand and predict the behavior of a program, which is one of the key motivations for the development of functional programming."

Permalänk
Datavetare
Skrivet av oflytbara:

Vart börjar man? Är det något språk som är framtidssäkert än andra som man bör lära sig? Finns ju så många språk att lära sig känns lite som utav en djungel...

Frågan "vilket språk är bäst för att lära sig programmera?" är väldigt mycket som att ställa frågan "vilket bilmärke är bäst att lära sig köra bil i?".

Du vill inte lära dig språk X, du vill lära dig programmera.

Vad som är bäst för dig beror på en rad faktorer. Ska du lära dig på egen hand så försök hitta ett vardagsproblem som är rimligt att lösa med lite programmering.

@SAFA förslog Arduino, tycker det är ett utmärkt förslag av en rad anledningar.

Om man väljer en Arduino UNO har man en plattform som är så pass enkelt att den går att lära sig fullt ut på rätt kort tid. Det är också den plattform som man alltid kan förutsätta finns med från start i de olika Arduino-miljöer som finns.

Arduino-miljön använder sig av C++. I praktiken används en extremt liten delmängd av C++ i majoriteten av de flesta projekt, men det är ju perfekt för nybörjaren!

I första steget bör man förstå grundläggande saker som villkor ("if-satser"), loopar ("for- och while-satser"), uppdelning av programmet i funktioner samt hur man håller redan på ett tillstånd (variabler). För väldigt många Arduino-projekt räcker dessa saker helt och fullt!

Till och med diskussionen kring funktionell vs objektorienterad programmering går att utforska i denna miljö när/om man känner för det (dock inget krav). Detta då Arduino-miljön idag använder sig av C++ kompilatorer som stödjer C++11 (tyvärr stöds inte C++14/17). I C++11 är funktioner första ordningens objekt.

Skulle ändå vänta med sådana koncept. Framförallt då det som är fördelen med funktionell programmering, som "referential transparency" är den direkta motsatsen till objekt orienterad programmering där hela grundkonceptet går ut på att knyta en uppsättning funktioner (klass metoder) till ett tillstånd (objektet, d.v.s. instans av en klass).

Är inte heller någon vurmare för funktionella språk. De löser vissa problem, men de skapar minst lika många nya. Man trodde t.ex. att funktionella språk skulle ta rejäl fart nu när den enklaste CPU har flera kärnor, men det området är ett lysande exempel på något där man löste några enstaka problem men där många riktigt svåra problem blev långt värre än i traditionella språk som C++, Java och C#.

Fördelen med att välja någon mainstream språk som första språk är att det finns mer information kring specifika problem du kan tänkas stöta på. Finns normalt bättre hjälpmedel i form av utvecklingsmiljöer.

Personligen tycker jag ESP8266 eller ESP32 är en roligare plattform för Arduino då WiFi ingår och man har rätt mycket mer RAM och mer CPU-kraft. Men är tyvärr lite svårare att komma igång med jämfört med Arduino UNO, framförallt om man startar med Arduino IDE (men är fullt möjligt).

Själv använder jag Visual Studio Code + Plattform I/O. Hyfsat lätt att komma igång då Platform I/O finns som färdigt tillägg till Visual Studio Code, så installationen är riktigt enkel. Med Platform I/O är det egentligen lika enkelt att köra med vilken krets som helst som har stöd, d.v.s. Arduino UNO eller ESP8266 (NodeMCU) kvittar. Är nog ändå inte fullt lika enkelt för en nybörjare som Arduino IDE.

Skrivet av oflytbara:

Skulle man kunna sätta sig in i det igenom rent av köpa sig en utbildningsbok och sen diverse tutorials här och där?
Kan man helt enkelt bli självlärd inom sånt här eller är det något som man bör gå en utbildning i?

Finns väldigt många som är självlärda programmerare, skadar absolut inte att ha en akademisk bakgrund men inte något krav. Har själv en civ.ing i kemiteknik, men spenderat hela mitt arbetsliv inom IT-branschen (hade programmerat rätt mycket innan och läste i.o.f.s. en del parallellt på datateknik).

Kan programmera i ett tjugotal språk (på en nivå så jag skulle kunna konsulta utan att på något sätt skämmas). Men i praktiken har jag använt C/C++ till 90 % i min karriär. Utöver C/C++ är det Python, Java och JavaScript som används professionellt. Kan C# rätt bra, men har så här långt aldrig haft ett jobb där det används (men det är populärt och det är specifikt anledning varför jag lärt mig språket privat).

Skulle jag bara lära mig ett enda språk idag skulle det nog vara JavaScript. Det är "assembler of the Web" och kommer bara bli viktigare framöver. Efter det skulle jag säga C++, hela IT-världen är byggd på C och C++. OS-kärnorna är utvecklade i C och nästan all infrastruktur (och nästan alla PC-spel och applikationer) är skrivna i C++ till största del.

Visa signatur

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