Har svårt att lära mig programmera - ger upp

Permalänk
Medlem

Har svårt att lära mig programmera - ger upp

-

Permalänk
Medlem

Tror det absolut viktigaste är att man lär sig från grunden, förstår hur saker och ting fungerar innan man försöker lära sig rabbla upp syntaxer.

Läs på om vad Objektorienterad programmering är, förstå vad det innebär, förstå fördelar och nackdelar.

Börja från grunden helt enkelt..

Visa signatur

ASUS Z170-K | ASUS Strix 960 OC 4GB | Crucial Ballistix Sport LT 16GB 2400MHz | Core i5-6600K @4,2Ghz| Corsair 650W | Fractal Design Define S | BenQ XL2411 144hz | Intel 600p M.2 256gb

Permalänk
Avstängd
Skrivet av FullMoon:

Jag har aldrig varit bra på matematik. Kan det ha något med saken o göra? Hur pass relaterat är matematik till programmering?

Väldigt mycket.

Visa signatur

///M4

Permalänk
Medlem
Skrivet av FullMoon:

Hur startade ni med er programmering? Hur gick ni tillväga?
Tror ni att man kan "födas" till programmerare... dvs att man har det extra lätt för att lära sig kodning? (vet att det låter lite flummigt)
Jag har aldrig varit bra på matematik. Kan det ha något med saken o göra? Hur pass relaterat är matematik till programmering?

Själv började jag precis programmera och rekommenderar thenewboston på youtube. Hursomhelst, nu har jag inte kommit så långt i min programmering där jag har användning av min matematik, men det är mest den logiska förmågan att förstå saker som är bra att ha! Öva så ska du se att det släpper tillslut. Annars kanske du kanske kan repetera lite matematik om du vill?

Visa signatur

OS: MacOS/ Windows 10 Pro 64-bit MB: ASUS-Z97-A CPU: i7 4790k
NÄTAGG: EVGA SUPERNOVA G2
RAM: 32768 MiB GPU: 1070 FTW Chassi: Fractal Design R4
MBP 13" i5 | 256GB | 16GB RAM | MID 2014

Permalänk
Medlem

En typ av abstraktions-tänk lik den som ger uppkomst till matematisk förmåga är onekligen viktig i programmering. Man måste ha förmåga att förstå och absorbera information som egentligen inte har någon verklighetsbaserad jämförbar logik (till viss del). Det kan vara lite som om du skulle plugga in en matematisk ekvation eller kämpa dig igenom matte d via ett par omprov; visst, du kan säkert en hel del av det du precis gjort -- men din förmåga att lära dig liknande saker har bara ökat en bråkdel jämfört med någon som har högre naturlig förmåga. Av samma anledning som gör att vi alla inte kan bli matematiker eller fysiker, så kan inte alla bli programmerare -- i alla fall inte på professionell nivå.

Jag sitter för övrigt i samma situation som dig, jag tycker det är roligt med programmering och har "on and off" hållit på med det i flera år. Men en "rätt lagd" 13-åring skulle kunna programmera cirklar runt mig efter enstaka månaders inlärning. Men det betyder inte att det är hopplöst; så länge du har resonabla mål och förstår dina begränsningar. Jag har sedan länge vant mig med idén att jag programmerar för mig själv, för att jag tycker det är intressant på något vis. Vissa läser korsord, jag försöker lära mig nya programmeringsspråk eller tekniker. Men jag kommer aldrig kunna jobba som programmerare.

Att lära sig programmera genom att köra en C++ kurs på högskolan skulle aldrig fungerat för mig när jag var nybörjare. Jag läste lite programmering på gymnasial nivå och fick mestadels goda betyg medan jag såg polare som jag lätt kan erkänna är klipskare än mig hade det riktigt kämpigt ibland.. Jag klarade mina betyg för att jag hade hållit på i flera ÅR med diverse programmering, och det blev plötsligt mycket svårare vid C-kurserna.

Har du testat att webbdesign? Då får du utlopp genom att skapa mjukvara utan den extrema form av programmering som C++ är. Men sedan kan du vid framtid komplimentera med "riktiga" programmeringsspråk som Ruby, Python eller PHP. Det kan låta svårt att behöva kombinera flera språk (HTML, CSS, JavaScript & PHP -- det låter som ett 3-års program på universitet), men det är väldigt lätt att själv bestämma inlärningshastigheten, plus att man kan lära sig språken i någon slags turordning, man behöver verkligen inte börja läsa allt samtidigt. Att som webbdesigner lära sig PHP är relativt enkelt då man verkligen kan börja extremt smått och sedan avancera allt eftersom man själv lär sig, gå inte för snabbt fram. Man behöver definitivt inte vara matematiker för att vara webbdesigner, inte ens om du komplimenterar med programmering på server-sidan.

Blev lite väl mycket text och jag skäms lite när jag 'över-svarar' så här, men har väl tänkt på sånt här en hel del genom åren och det var väl läge att ventilera tankarna. Det är även värt att notera att ingenting jag skrivit nödvändigtvis stämmer på dig, det är fullt möjligt att du är 'bättre' än du ger dig beröm för, men att du har kört för hårt och för snabbt. Den här 'förmågan' vi pratar om, resulterar inte i att man 'kan' eller 'inte kan', det resulterar i hur lång tid det tar att lära sig nya saker. Tutorials kan ha en förmåga att få det att verka som att om man gör övningarna steg 1 (Vem var Alan Turing?) till steg 10 (pointers, heap allocation, closures, concurrency) så ska man förstått allt på några timmar. Så är det för ingen, varje steg behöver ges tid smälta.

Även om du går vidare till enbart design så tycker jag inte du ska helt ge upp på programmering, speciellt om intresset finns kvar. Jag tror det håller en skärpt att utmana sig själv lite då och då -- kanske till och med skjuter upp demensen med ett par år.

Permalänk

Jag skulle nog säga att jag är som dig. Väldigt intresserad av teknik och datorer. Dock kanske bättre på matte. Så på frågan om matte är starkt knuten till ens förmåga att programmera svarar jag ja och nej.

Kan du räkna från 1 till 100? Antagligen.
Vet de vad som händer om adderar, subtraherar, dividerar eller multiplicerar två tal? Antagligen.
Då skulle jag vilja påstå att du har den kunskap inom matematik som krävs för att kunna utföra grundläggande programmering.

Hur började programmera?
Började med att skriva lite program på min underbara miniräknare TI-83. Genom att komma på något som jag ville ha gjort. Räkna ut medelvärden eller vad som helst som jag kunde komma på på den tiden. Efter det så kom jag in på JavaScript och fattade absolut ingenting (och jag menar verkligen ingenting). Så jag försökte göra dynamiska hemsidor (DHTML) så där fick jag min första smak på programmering. Sedan försökte jag mig på PHP och databashantering med MySQL det gick ungefär lika bra som DHTML. Efter mycket hjälp från olika vänliga själar på nätet som försökte förklara för mig hur saker och ting gick till men jag förstod inte ens orden de använde sig av så deras förklaringar gav mig inte så mycket.

Så sedan under på universitet så läste vi en kurs i objektorienterad programmering (I Java).. jag skulle inte vilja påstå att jag förstod vad jag höll på med men jag var inte heller helt lost. Så det gick lite bättre.

Sen gjorde jag mitt exjobb och då var det bara programmering i C och C++ som gällde. Jag hade väldigt lite koll på något av språken. Så fort man skulle göra något så fick man lära sig från grunden. Pekare, minnesallokering, typer....jag brukar kalla det jag åstadkom där för "Brutal C". D.v.s. går det igenom kompilering så fungerar det. När jag tänker tillbaka på det jag gjorde där så skäms jag så dåligt var det. Och när jag pratar med mina kollegor som jag gjorde exjobbet med så känner de på samma sätt.

Sedan kom jag ut i arbetslivet och fick jobb som programmerare (fast jag egentligen var utbildad till något annat). Och då hade jag en inlärnings period på ca 6 månader och en väldigt bra mentor som jag kunde gå till och fråga saker hela tiden. Så samtidigt som jag jobbade så satt jag hemma och läste och gjorde uppgifter i "C++ direkt" av Jan Skansholm. Jag gjorde enhetstester till programvaran för att skolas in och förstå hur den fungerar. Bara som tillägg så kan jag säga att när folk började prata om singletons, stack allokering, heap allokering, cache lines, memory alignment, big endian, little endian, NBO e.t.c. så var jag helt lost. Då var det bara att gå hem på kammaren och börja google och börja läsa på och försöka förstå. Till slut när man gjort det i ett par år så har man tydligen lärt sig en del.

Men det går inte en dag på jobbet då jag inte behöver google saker och hamnar på "stack overflow".

Permalänk
Medlem

-

Permalänk
Hedersmedlem
Skrivet av FullMoon:

Jo sådana "basic" saker kan jag ju. Läste upp till "Matematik C" i gymnasiet. Dock ogillar jag matte. Har nog med intresse att göra också.

Kopplingen mellan matte och programmering är i mina ögon stark, men inte helt uppenbar. Jag syftar då snarare på "matematik" ur ett bredare perspektiv än den bit som ingår i exempelvis grundskolans/gymnasiets läroplaner. Det blir rätt svävande att prata om då det inte är helt lätt att definiera vare sig vad som menas med att vara "bra på" något, eller för den delen enkla generella betydelser av varken "matematik" eller "programmering", men man kan ju alltid försöka.

Matematikundervisningen i skolan är egentligen den enda utbildningen som ges i abstrakt logik under "ordinarie" skolår. För att kunna lösa problem inom matematiken så måste man kunna bryta isär dem, modellera dem och applicera delkunskaper som man har sedan tidigare. Det är i stor grad samma sak programmering handlar om. Du ser ett problem som du vill lösa, du bryter isär det i "variabler", "villkor", "funktioner", "klasser", "moduler", etc., och du pusslar ihop detta till en lösning. Just att kunna få en bild av problemet, och hur man ska ta sig från början till slutet, är fundamentalt för att kunna komma någonstans. Kan man inte bryta isär problem på detta sätt så kommer man ha stora svårigheter att kunna "tänka utanför läroplanen" och skapa lösningar på egna problem, vilket ju egentligen är vad som gör programmering användbart. Tiden man initialt tillbringar med att lära sig enkla villkorssatser, definiera variabler, funktioner, osv, är till för att man ska känna till sina verktyg, så att man mentalt kan se en lösningsgång.

Mycket handlar om erfarenhet. En person som ser en andragradsekvation för första gången stöter på problem, men när personen löst 10 sådana ekvationer så kommer lösningen nästa gång ett liknande problem dyka upp te sig självklar. Man behöver öva.

Det som i min bild hindrar de som inte fastnar i ämnen som matematik, programmering, fysik, kemi, etc., är att "tålamodet" inför den typen av problem tryter för tidigt. Det är långa perioder av motgångar innan något "sitter", och hjärnan gillar att säga "gör något annat i stället" när det är motigt ("spela i stället detta mobilspel där du får positiv förstärkning i form av pling och färger varje gång du gör något överhuvudtaget!" ). När man gått genom processen många gånger så är det lättare att övertyga hjärnan om att "ja, det är jobbigt nu, men vi vet ju att det släpper med tiden!", och därmed lättare att motivera sig att lära sig mer för att hantera mer komplexa problem.

Det är dock en kulle att ta sig över innan det börjar rulla på. Samma sak gäller ju inom skilda ämnen som exempelvis teckning: innan man kommit över en gräns då man faktiskt märker att man kan få ner det man visualiserar internt på pappret så är det motigt. Olika personer har dock olika lätt att motivera sig inför olika ämnen, och kanske hade man någon som hjälpte en med just ett visst ämne som liten vilket gjorde det lite lättare att ta till sig. Kanske var det en viss lärare, kanske var det någon i familjen eller liknande.

Vad gäller personliga förutsättningar, så visst, inom exempelvis matematiken så finns personer som Gauss, Euler, Ramanujan, etc., som man utan större kontrovers kan säga hade speciella gåvor, och då kan man anta att det även finns extremer åt andra hållet, men för "oss vanliga" så tror jag att det nästan uteslutande handlar om vilja och mängdträning. Även om du säger att du har "svårt för matte" och dylikt så är jag övertygad om att du både kan lära dig och få intuition för programmering med motivation och tid.

En annan aspekt är ju att man helt enkelt inte ser någon anledning, och därför inte vill lägga ner någon tid, och det måste man ju inte känna; alla gör ständiga avvägningar gällande på vad man ska lägga sin tid.

Jag minns att denna frågeställning dykt upp tidigare i olika former på forumet; så här skrev jag en annan gång i en längre diskussion.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk

Ville bara lägga till lite ytterligare personliga reflektioner. När jag lärde mig programmera så gjorde jag det på ungefär samma sätt som ett barn lär sig ett språk. Jag kopierade. Jag härmade andra och försökte göra lite ändringar tills jag fick det beteende jag eftersökte. Ibland gjorde man saker på helt fel sätt och fick konstiga resultat. Ibland gick det bra.

Som inom det mesta här i livet så är det så att skall du bli bra på något så gäller det att träna.

Permalänk
Medlem

Kanske det är svårare att lära sig att programmera för den som har inte lika lätt att lära sig programmering som andra av en enkel anledning. På min tid, när jag skulle lära mig att programmera var det BASIC-språket som gällde, vilket är väldigt lätt att lära sig men anses omodernt idag. Nuförtiden är det C++, Java osv som gäller som är svårare att lära sig för nybörjare, vilket gör att många kanske tröttnar innan de ens kommer igång ordentligt.

Hur som helt är är det bäst att börja med små programsnuttar som gör väldigt enkla saker för att sedan gå vidare och som andra skrev, lär av andras kod.

Visa signatur

CPU: 9900K
GPU: RTX 4070
RAM: 32GB

Permalänk
Medlem
Skrivet av FullMoon:

Jag har sedan jag var liten varit intresserad av datorer; och då menar jag framförallt på mjukvarufronten; dvs programvaror, operativsystem men även olika onlinetjänster; molnet osv.

Har alltid varit fascinerad av att man kan SKAPA saker med hjälp av kod/programmeringsspråk.
Jag har flera gånger försökt mig på programmering; Java, c, c++, Python.
Tog hjälp av Youtube (kollat flera olika tutorials), Codecadamy och har även läst en högskolekurs på 7,5 Hp (c++ programmering).

Kursen fick jag underkänt på tyvärr, men det stoppade inte mig för att lära mig. Började kolla lite tutorials online, använde mig olika böcker osv.
Fastnar alltid på delarna "funktioner" "arrays" och "operatorer".

Tyvärr, efter flera försök så ger jag nu upp. Jag har ett genuint intresse för programmering; och all respekt till de som kan koda. Lite synd att det inte funkar för mig, då jag verkligen tycker det är spännande.

Har några funderingar dock;
Hur startade ni med er programmering? Hur gick ni tillväga?
Tror ni att man kan "födas" till programmerare... dvs att man har det extra lätt för att lära sig kodning? (vet att det låter lite flummigt)
Jag har aldrig varit bra på matematik. Kan det ha något med saken o göra? Hur pass relaterat är matematik till programmering?

Eftersom jag alltid varit intresserad av att "skapa" något digitalt/mjukvarumässigt så planerar jag att gå vidare till design; photoshop, illustrator, indesign osv. Det är mer "straight forward" känns det som. Alternativt att jag börjar utforska mer på serversidan av Windows och lära mig mer om operativsystem.

Även om inte programmering funkar så finns det alltid andra vägar i den digitala världen. Programmering verkar inte funka för alla.

Själv startade jag med C++, vilket senare eskalerade mot JAVA och Matlab(suck). Ja, jag tror att vissa är bättre på det än andra (föds med det). Sedan så är det ju som med allt annat att man kan träna sig till det. Min gamla fotbollstränare sa att i barnfotboll är det 80% talang 20% träning, i ungdomsfotboll är det 50%talang och 50%träning och i vuxenfotboll är det 20% talang och 80% träning. Tror han hade en poäng.

Sedan så har programmering mycket likheter med matte. Rent genrellt så brukar de som gillar matte vara bra på logik, vilket som är grunden i mycket av vår programmering. Du borde nog fundera på vart dina styrkor ligger. Kanske Blender är något för dig... Då det helt klart ger dig en möjlighet att vara kreativ i den digitala världen. http://www.blender.org/

Visa signatur

”Det är en myt att det inte finns arbete att söka i svåra tider. Det finns alltid lediga platser. […] En viktig orsak till att ungdomar inte får jobb är att de inte söker jobb.” ~ Fredrik Reinfeldt , 2010

Permalänk
Medlem

Hur pass relaterat är matematik till programmering?
Ja och nej :), det beror helt på vad för typer av projekt du skall göra... det du kommer ställas mest på prov inom matte är hur bra logiskt tänkande du har och hur du delar upp problem i småbitar som du sedan fixar 1 i taget.

t.ex att du gör ett spel där du hoppar och märker att du flyger upp i konstant hastighet och sedan ner i konstant hastighet, sedan när du jämför det med verkligheten så ser du att hastigheten avtar/ökar ju längre du är i luften, vad orsakar då detta och hur kan man fixa det så det ser bättre ut.

det är ungefär såhär matten kommer att se ut när du programmerar (självklart så blir det annorlunda beroende på hur komplexa projekt du gör). Det som gäller är att veta att om du hittar ett fel i det du har gjort och ser om du kan fixa det på något annat sätt så att det blir som förväntat.

Visa signatur

"Resistance is futile."

- Georg Ohm

Permalänk
Medlem

-

Permalänk
Medlem
Skrivet av FullMoon:

Hmm, detta har jag inte ens tänkt på. Kanske borde ändra mitt sätt att lära mig. Istället för att följa yt-videos så kanske jag borde analysera kod. Börja med något enkelt för att senare gå vidare till något svårare. Vet du var man kan ladda ner kodexempel? Gärna på nybörjarnivå. Helst c++.

Rekommenderar detta mycket mycket mer över youtube... känns otroligt ineffektivt med youtube, snabbare och enklare att läsa själv. Exempel är det bästa du kan använda.

Finns lite överallt. Fundera ut något som du vill göra som känns lite enkelt och googla sen på "how to program xxxx in c++" så ska du se att det kommer upp exempel.

Jag tror även att du kanske börjat lite i fel ända med c++ , det är betydligt mer besvärligt än andra språk (i min mening). Jag gjorde samma misstag en gång i tiden och kom väl inte så mycket längre än "hello world". Sen så hade jag lite programmering i gymnasiet (visual basic och java) och fick skriva en hel del word/excel macron på mitt sommarjobb. Sen kurser på universitet. Ska inte påstå att jag är otroligt bra på att programmera men hyffsat ok i alla fall.

Hur som helst så kanske det är jobbigt att byta språk men det kan vara värt det. Det beror på hur mycket c++ du redan kan. Java är ganska bra att lära sig, bra bas men inte överdrivet komplicerat. Och används överallt.

Sen så kan jag tipsa om att det är riktigt skoj att ha en microkontroller (eller en rasp-pi) och koppla in lite relän och styra den "riktiga" världen genom programmering.

Permalänk
Medlem

Som kontrast här (och för att lägga ytterligare en poäng i matematik-programmerings-parallellen) kan jag säga att jag alltid haft skitlätt för matte (läser nu sista året på Teknisk Fysik inriktning beräkningsteknik), och programmering har alltid kommit helt naturligt för mig. Jag brukar ofta komma med tankar när jag programmerar i stil med "borde det inte vara så att...", och de stämmer allt som oftast.

Det går säkert att lära sig programmering utan att förstå matematik, men det känns som att det skulle vara ett enormt handikapp.

Visa signatur

Case: Fractal Design Arc MoBo: Asus SaberTooth P67 B3 CPU: Intel Core i5 2500k @4.5 GHz Cooler: Noctua NH-D14 GFX: Asus Geforce GTX 690 RAM: 16 GB Corsair Vengeance 1600 MHz SSD: Intel 320 series 160GB HDD: WD Caviar Green 2 TB PSU: Corsair TXV2 650W Monitor: LG IPS231P Accessories: Steelseries Sensei ¤ MS Sidewinder X4 ¤ Steelseries Siberia V2

Permalänk
Medlem
Skrivet av FullMoon:

Jag har sedan jag var liten varit intresserad av datorer; och då menar jag framförallt på mjukvarufronten; dvs programvaror, operativsystem men även olika onlinetjänster; molnet osv.

Har alltid varit fascinerad av att man kan SKAPA saker med hjälp av kod/programmeringsspråk.
Jag har flera gånger försökt mig på programmering; Java, c, c++, Python.
Tog hjälp av Youtube (kollat flera olika tutorials), Codecadamy och har även läst en högskolekurs på 7,5 Hp (c++ programmering).

Kursen fick jag underkänt på tyvärr, men det stoppade inte mig för att lära mig. Började kolla lite tutorials online, använde mig olika böcker osv.
Fastnar alltid på delarna "funktioner" "arrays" och "operatorer".

Tyvärr, efter flera försök så ger jag nu upp. Jag har ett genuint intresse för programmering; och all respekt till de som kan koda. Lite synd att det inte funkar för mig, då jag verkligen tycker det är spännande.

Har några funderingar dock;
Hur startade ni med er programmering? Hur gick ni tillväga?
Tror ni att man kan "födas" till programmerare... dvs att man har det extra lätt för att lära sig kodning? (vet att det låter lite flummigt)
Jag har aldrig varit bra på matematik. Kan det ha något med saken o göra? Hur pass relaterat är matematik till programmering?

Eftersom jag alltid varit intresserad av att "skapa" något digitalt/mjukvarumässigt så planerar jag att gå vidare till design; photoshop, illustrator, indesign osv. Det är mer "straight forward" känns det som. Alternativt att jag börjar utforska mer på serversidan av Windows och lära mig mer om operativsystem.

Även om inte programmering funkar så finns det alltid andra vägar i den digitala världen. Programmering verkar inte funka för alla.

Jag har inga formella utbildningar, men tycker att det börjar funka rätt hyfsat med programmeringen. Något jag startade med var Home and Learn som var riktigt bra och informativt. Efter det fortsatte jag med Mr1Buyings youtube-guider. Men som en ovan sa, sitt och analysera koden, prova göra små ändringar i början. Så har jag gjort, och jag har inte ens gått Matte B.

Tycker man något är roligt, ge inte upp hoppet. Själv kommer jag aldrig få jobb i denna yrkeskrets, men tycker det är skitkul så jag kör på fritiden helt enkelt.

Visa signatur

ASUS X99 Deluxe II | Intel i7 6850K 3.6 GHz | 2 x GTX 1080 Strix | 4 x Corsair 8 GB DDR4 3000 MHz CL15 Vengeance | Samsung 850 Evo 500 GB | OCZ Vertex 4 128 GB | Western Digital 2 TB

Permalänk

Enda sättet att bli bra på att programmera är (precis som för allt annat) att lägga många timmar på det.

Börja med nåt smått, som att bygga en miniräknare, eller en frågesport eller liknande och iterera dig fram till ett mer avancerat program. Börja inte med att bygga en massa GUI och sånt trams, lär dig grunderna i programmering först. Använd en utvecklingsmiljö där du enkelt kam kompilera och köra koden så du kan se hur resultatet växer fram. Och hoppa inte runt bland en massa olika språk, det kan du göra sen när du förstått grunderna ordentligt.

Permalänk
Medlem

Min personliga reflektion är att sluta försöka lära dig programmering i ett objektorienterat språk.
Lär dig ett strukturerat språk först och när du förstår det hyfsat så ger du dig på objekt orienterad språk.

Permalänk
Skrivet av FullMoon:

Hmm, detta har jag inte ens tänkt på. Kanske borde ändra mitt sätt att lära mig. Istället för att följa yt-videos så kanske jag borde analysera kod. Börja med något enkelt för att senare gå vidare till något svårare. Vet du var man kan ladda ner kodexempel? Gärna på nybörjarnivå. Helst c++.

Som van C++-programmerare måste jag föreslå att du väljer att annat språk. C och C++ ger dig allt för stora möjligheter att skjuta dig i foten och som nybörjare gör man det ofta, hårt, länge, och igen och igen. Inte heller får du några vettiga felmeddelanden utan programmet bara kraschar.

Python är ganska populärt som förstaspråk och används flitigt i online-kurser (MOOCs). Om din engelska är ok skulle du till exempel kunna ta denna kurs.

Permalänk
Inaktiv

Jag skulle föreslå start med ett annat språk. C# om du hemskt gärna vill stanna nära C++, men kolla in Java, Python eller kanske Ruby innan, för många är det lättare att lära sig då

Du kanske skall gå någon slags grundläggade introduktionskurs till språket samt någon kurs i datavetenskap så du lär dig hur datorer och kod fungerar tillsammans?

Permalänk
Medlem
Citat:

Fastnar alltid på delarna "funktioner" "arrays" och "operatorer".

Det där händer faktiskt rätt ofta och det tycks mig som det ofta beror på att kurslitteraturen inte är pedagogisk nog. Den förutsätter att du kan en del, eller att du tycker det låter helt rimligt att ett exempel kan se ut så här (från Ruby docs):

foo = 0 bar = 0 1.times do foo = 1 foo := 2 bar = foo+1 end puts foo, bar

VADÅ FOO?

Om jag ska ge en snabbis på traven. Detta är inte 100% korrekt, men mer än tillräckligt för att få igång dig:

Function
En funktion är en bit kod som fungerar som en maskin - Den utför ett jobb åt dig. Jobbet den utför är maskinens funktion. Den fungerar (funktionerar) så.

function SkrivTextPåSkärmen() { print "Hello world"; }

Nu har vi skapat funktionen "SkrivTextPåSkärmen", nu finns den maskinen i vårt program, så att vi sen kan använda den.

Array (Variabler)
Ofta i ett program vill man spara undan information som man använder senare. Till exempel all den här texten jag nu skriver till dig i textrutan, den måste sparas undan någonstans, sen köras i "PostaPosten" functionen så att texten jag skrivit åker ner till en databas så att du kan läsa den sen.

All den här texten sparas i en variabel - en sorts låda vi sparar undan grejer i.

En dator är kinkig och kan inte ha en ikeapåse som man kan lägga vad som helst i, den har en särskild låda för olika saker.

Vanliga mycket enkla låder kan innehålla t.ex bara siffror (int eller integer), en annan mer avancerad låda kan innehålla bokstäver (string).

Sen finns det ännu mer avancerade lådor, lådor som har små fack i sig. En vanlig sådan är en Array.

En array är som en lista med olika enkla lådor, såsom en lista med int (siffror) eller string (bokstäver). Om jag sen har min Array-låda kan jag säga att jag vill titta i fack nummer 3 i Array-lådan:

Array-låda[3]

Om man hade skrivit ut allt som jag sparat i min Array-låda skulle det sett ut ungefär så här:

[0] = "Hej"
[1] = "Kul med låda"
[2] = "Fack nummer 3 faktiskt, för datorn räknar från 0. Dumt"
[3] = "Inte alls tredje lådan! Lurad"

Operatorer
Operatorer är vad olika specialtecken kallas, till exempel + (plus), - (minus), * (gånger) etc etc.

Det finns även logiska operatorer som && (AND, OCH) och || (OR, ELLER)

Enkelt program

function NoShitSherlock() { if( ( 1+1 == 2) || ( 1 - 1 == 0) ) { // skriv ut på skärmen att solen går upp i öster } }

Om vi läser det lilla programmet ovan på svenska står det så här:

functionen (maskinen) som har namnet NoShitSherlock
Ska göra så här:
Om
(1 plus 1 är lika med 2)
ELLER
(1 minus 1 är lika med 0)
skriv dumheter på skärmen
slut på funktionen

Logiska operatorer använda:
ELLER

Aritmetiska operatorer använda
PLUS, MINUS, LIKA MED

Osäker om jag var mer pedagogisk än litteraturen du läst, men ändå

Jag lärde mig de grunderna i språket BASIC och sen lärde jag mig de andra språken genom att ta ett färdigt program och sen ändra och justera i det. Tyckte det var mycket roliga och därför bättre sätt att lära sig på.

Permalänk
Skrivet av FullMoon:

Hmm, detta har jag inte ens tänkt på. Kanske borde ändra mitt sätt att lära mig. Istället för att följa yt-videos så kanske jag borde analysera kod. Börja med något enkelt för att senare gå vidare till något svårare. Vet du var man kan ladda ner kodexempel? Gärna på nybörjarnivå. Helst c++.

På rak hand nej. Kanske ta en bok och försöka med övningsuppgifter där eller hitta någon sida på nätet med nybörjaruppgifter som kan börja försöka lösa.

Permalänk
Skrivet av phz:

Kopplingen mellan matte och programmering är i mina ögon stark, men inte helt uppenbar. Jag syftar då snarare på "matematik" ur ett bredare perspektiv än den bit som ingår i exempelvis grundskolans/gymnasiets läroplaner. Det blir rätt svävande att prata om då det inte är helt lätt att definiera vare sig vad som menas med att vara "bra på" något, eller för den delen enkla generella betydelser av varken "matematik" eller "programmering", men man kan ju alltid försöka.

Matematikundervisningen i skolan är egentligen den enda utbildningen som ges i abstrakt logik under "ordinarie" skolår. För att kunna lösa problem inom matematiken så måste man kunna bryta isär dem, modellera dem och applicera delkunskaper som man har sedan tidigare. Det är i stor grad samma sak programmering handlar om. Du ser ett problem som du vill lösa, du bryter isär det i "variabler", "villkor", "funktioner", "klasser", "moduler", etc., och du pusslar ihop detta till en lösning. Just att kunna få en bild av problemet, och hur man ska ta sig från början till slutet, är fundamentalt för att kunna komma någonstans. Kan man inte bryta isär problem på detta sätt så kommer man ha stora svårigheter att kunna "tänka utanför läroplanen" och skapa lösningar på egna problem, vilket ju egentligen är vad som gör programmering användbart. Tiden man initialt tillbringar med att lära sig enkla villkorssatser, definiera variabler, funktioner, osv, är till för att man ska känna till sina verktyg, så att man mentalt kan se en lösningsgång.

Mycket handlar om erfarenhet. En person som ser en andragradsekvation för första gången stöter på problem, men när personen löst 10 sådana ekvationer så kommer lösningen nästa gång ett liknande problem dyka upp te sig självklar. Man behöver öva.

Det som i min bild hindrar de som inte fastnar i ämnen som matematik, programmering, fysik, kemi, etc., är att "tålamodet" inför den typen av problem tryter för tidigt. Det är långa perioder av motgångar innan något "sitter", och hjärnan gillar att säga "gör något annat i stället" när det är motigt ("spela i stället detta mobilspel där du får positiv förstärkning i form av pling och färger varje gång du gör något överhuvudtaget!" ). När man gått genom processen många gånger så är det lättare att övertyga hjärnan om att "ja, det är jobbigt nu, men vi vet ju att det släpper med tiden!", och därmed lättare att motivera sig att lära sig mer för att hantera mer komplexa problem.

Det är dock en kulle att ta sig över innan det börjar rulla på. Samma sak gäller ju inom skilda ämnen som exempelvis teckning: innan man kommit över en gräns då man faktiskt märker att man kan få ner det man visualiserar internt på pappret så är det motigt. Olika personer har dock olika lätt att motivera sig inför olika ämnen, och kanske hade man någon som hjälpte en med just ett visst ämne som liten vilket gjorde det lite lättare att ta till sig. Kanske var det en viss lärare, kanske var det någon i familjen eller liknande.

Vad gäller personliga förutsättningar, så visst, inom exempelvis matematiken så finns personer som Gauss, Euler, Ramanujan, etc., som man utan större kontrovers kan säga hade speciella gåvor, och då kan man anta att det även finns extremer åt andra hållet, men för "oss vanliga" så tror jag att det nästan uteslutande handlar om vilja och mängdträning. Även om du säger att du har "svårt för matte" och dylikt så är jag övertygad om att du både kan lära dig och få intuition för programmering med motivation och tid.

En annan aspekt är ju att man helt enkelt inte ser någon anledning, och därför inte vill lägga ner någon tid, och det måste man ju inte känna; alla gör ständiga avvägningar gällande på vad man ska lägga sin tid.

Jag minns att denna frågeställning dykt upp tidigare i olika former på forumet; så här skrev jag en annan gång i en längre diskussion.

är kopplingen mellan programmering och språk starkare ?
tänker på främmande språk som Ryska, kinesiska. japanska med nytt alfabet och helt annorlunda grammatik än det språk man är van vid.
vissa suger ju åt sig kunskap som en svamp, medans andra måste nöta in i åratal innan man förstår nånting.

Visa signatur

hej Achmed Länken till bästa tråden #15549644

Permalänk
Medlem
Skrivet av FullMoon:

Jag har aldrig varit bra på matematik. Kan det ha något med saken o göra? Hur pass relaterat är matematik till programmering?

Eftersom jag alltid varit intresserad av att "skapa" något digitalt/mjukvarumässigt så planerar jag att gå vidare till design; photoshop, illustrator, indesign osv. Det är mer "straight forward" känns det som. Alternativt att jag börjar utforska mer på serversidan av Windows och lära mig mer om operativsystem.

Även om inte programmering funkar så finns det alltid andra vägar i den digitala världen. Programmering verkar inte funka för alla.

Jag och min bror började programmera när vi var i yngre tonåren och även om vi bägge tyckte det var roligt, så är det bara en av oss har det som jobb.
Min bror är ett mattegeni, jämfört med mig och är den som hade en "no brainer" med programmeringen.
Själv har jag alltid haft svårt för matte och gav upp med tiden.
Nu jobbar jag som fotograf istället. Skulle dock vilja lära mig att göra hemsidor.. verkar vara roligt.

Visa signatur

Hemma hos mig är det en Microsoft-fri miljö..
Dator 1: iMac 27" 5K - i7 4,2GHz - 32GB 2400MHz CL14 - 512GB SSD - Radeon PRO 580 8GB - 2xDell P2715Q 4K - 4TB Lacie D2 Thunderbolt
HTPC: ASUS X99-M WS - i7 5960X - H100i GTX - 16GB 3000Mhz - Samsung SM951 512GB - ASUS GTX 780 DCU II OC - AX860 Platinum - Corsair 350D - Linux
Bärbar 1: MacBook PRO 15" 2018 / i7 / 512GB SSD NAS: Synology DS918+ 32TB+2x512GB SSD

Permalänk
Medlem
Skrivet av hoski:

Väldigt mycket.

Faktiskt inte. Pratar vi logik så visst, några operationer som plus och minus eller lika. Men där slutar det. Mycker varierar vad man programmerar för något.

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem
Skrivet av FullMoon:

Jag har sedan jag var liten varit intresserad av datorer; och då menar jag framförallt på mjukvarufronten; dvs programvaror, operativsystem men även olika onlinetjänster; molnet osv.

Har alltid varit fascinerad av att man kan SKAPA saker med hjälp av kod/programmeringsspråk.
Jag har flera gånger försökt mig på programmering; Java, c, c++, Python.
Tog hjälp av Youtube (kollat flera olika tutorials), Codecadamy och har även läst en högskolekurs på 7,5 Hp (c++ programmering).

Kursen fick jag underkänt på tyvärr, men det stoppade inte mig för att lära mig. Började kolla lite tutorials online, använde mig olika böcker osv.
Fastnar alltid på delarna "funktioner" "arrays" och "operatorer".

Tyvärr, efter flera försök så ger jag nu upp. Jag har ett genuint intresse för programmering; och all respekt till de som kan koda. Lite synd att det inte funkar för mig, då jag verkligen tycker det är spännande.

Har några funderingar dock;
Hur startade ni med er programmering? Hur gick ni tillväga?
Tror ni att man kan "födas" till programmerare... dvs att man har det extra lätt för att lära sig kodning? (vet att det låter lite flummigt)
Jag har aldrig varit bra på matematik. Kan det ha något med saken o göra? Hur pass relaterat är matematik till programmering?

Eftersom jag alltid varit intresserad av att "skapa" något digitalt/mjukvarumässigt så planerar jag att gå vidare till design; photoshop, illustrator, indesign osv. Det är mer "straight forward" känns det som. Alternativt att jag börjar utforska mer på serversidan av Windows och lära mig mer om operativsystem.

Även om inte programmering funkar så finns det alltid andra vägar i den digitala världen. Programmering verkar inte funka för alla.

Vet inte om det är okej att rekommendera olika sidor utan att åka fast för marknadsföring men jag testar och ser annars får mod deleta mitt svar till TS bara.

http://www.codecademy.com/ har jag använt mig lite av, du börjar från början med HTML och sedan går du sakta men säkert uppåt men du måste klara allt innan för att kunna gå vidare så det är superbra för dig som vill lära dig från grunden (som sedan kommer hjälpa dig i slutet mycket) istället för att sätta sig och försöka lära sig det svåra direkt.

Lycka till!

MVH
jensen.

EDIT: Läste om igen är lite trött och såg redan att du hade kört genom codeacademy men tyvärr de ända bra tipset jag har.

Permalänk
Avstängd
Skrivet av Commander:

Faktiskt inte. Pratar vi logik så visst, några operationer som plus och minus eller lika. Men där slutar det. Mycker varierar vad man programmerar för något.

Hela tänket som används vid programmering är precis samma som vid matematisk problemlösning. Så jo, faktiskt. Spelar ingen som helst roll vad man programmerar för nåt.
Har man lätt för matematik kommer man ha lätt att lära sig programmera.

Det du menar är att man inte nödvändigtvis behöver matematiska kunskaper för att programmera, vilket är nåt helt annat.

Visa signatur

///M4

Permalänk
Medlem
Skrivet av FullMoon:

Tyvärr, efter flera försök så ger jag nu upp..

Läs översta delen av min signatur.;):)

Visa signatur

Deepcool Matrexx 30 & MSI Z87-G43 Gaming!
Intel Inside Core I7 4790K med AMD Radeon R9 290!
Rubbet strömförsörjs av Corsair RM750X!
Hjälp Teamtrees plantera träd på vår jord. https://teamtrees.org/

Permalänk
Medlem

Ta det jag säger med en nypa salt då jag fortfarande blott är student & hobbyist.

Hursomhelst verkar du ju fortfarande intresserad, frågan är, vad vill du åstadkomma egentligen? Det är nog fel att fastna i "nybörjartänket" tror jag, då man bara lär sig i all evighet utan göra något. Alla dessa tutorials som länkas "skapar" ju faktiskt absolut ingenting förutom lite output i konsolen kanske, för du kan liksom gå igenom samtliga C++ turorials som finns i hela världen utan att något händer, ever. Det är liksom lib-filerna du vill ha.

Jag började med QBasic, gick sedan över till VisualBasic, sedan Python, sedan C++. Nästa steg blir väl assembler för x86-64 nu då. Har aldrig använt mig av sånna där interaktiva tutorials eller youtube-videos. Har alltid varit: how to X -> kopiera koden -> läsa varje rad väldigt långsamt tills jag fattar vad det är som händer, och så är det ju fortfarande, är ju helt omöjligt att gissa sig fram till hur någons API fungerar, visserligen så behöver man ju inte läsa koden lika långsamt om man dessutom har bonusen att man kan syntaxen.

Kom ihåg hur länge kod som:

if( produceLogInstance( !initDeviceManager()) | ESCAPE_P) { try{ getRecentEMsg(0, NULL, **devices[0], 0, &ERORR_REPORT) } catch { nullDevicesList(NULL, devices[0], ERRQUERY | D_INIT) } return ERROR_REPORT ? 1 : errlist[*devices[0]]; }

...gäckade mig. Idag är jag klokare och reder ut sånt här väldigt enkelt:

initDeviceManager();

Problemet är att de flesta tutorials går igenom jättebra saker säkert, som man definitivt kommer glömma dagen efter man läst dem. En annan intressant note to take är att exempelvis den där C++ -tutorialen som någon länkade på youtube inte ens har visat hur man öppnar ett windows-fönster efter ca 100 videos, sånt tycker jag du ska akta dig för.

Permalänk
Medlem

Själv tycker jag om böcker, finns en bok på adlibris som heter "c programming absolute beginners guide" det är en pocket bok på ca 450 sidor och kostar bara typ 150kr. Det kanske vore en bra start men kan inte säga om den är bra eller dålig eftersom jag inte äger boken.

När jag läste programmering för ca 10 år sedan så sa min lärare som var typ kung på c programmering att det tog han väldigt lång tid att fatta c++ programmering och att han nästan gav upp, men han fortsatte att nöta och blev kung på c++ tillslut. Så ge inte upp skulle vara mitt råd, och fråga dig själv även om du är intresserad av programmering och att det inte bara är en sak som du försöker övertala dig själv med.

Och jag skulle även säga att om du verkligen vill bli duktig på programmering så måste du även vara duktig på matte, men då pratar vi en väldigt hög nivå där du kanske skriver egna algorithmer eller liknande. Annars som en hobby så kan man alltid lära sig, eller så kan du gå över till någon form av script språk.