Skrivet av Lasagno:
Har gått igen grunderna i Python, då Python ska ha låg tröskel - har ej tittat på OOP än. Vilket var enkelt att förstå. Grynderna sitter dock inte när det ska sys ihop, har helt klart lagt ner för få antal timmar. Några tips? Antar att nästa steg blir att titta på OOP.
Nu kan jag bara tala utifrån egna personliga upplevelser som distansstudent andra året inom Webbutvecklingsprogrammet. Min upplevelse har varit att först kämpar du med att bara få programmen att vilja köras (skriva rätt/giltig syntax). Bara det i början kan kännas omständligt
Sedan kämpar du med att få rätt "banala" saker att bara fungera som korrekt deklarerade variabler, do+while/while/for-loopar med break, switch+case+break, if/else if/else-satser, try+catch+finally-block, funktionsanrop, funktioner som returnerar funktioner (mild currysoppa!), använda klasser och deras objektinstanser (vare sig du kör full OOP eller blandning av det och funktionell), async+await (och övrig asynkron programmering), med mera.
Trots detta så känner du ändå att du inte riktigt har "kodat ihop något av värde" först. Men nu när du hyfsat kan göra av allt ovan så är det faktiskt dags med programmering på riktigt vilket jag upplever är att skriva många kodrader som tillsammans skapar/gör något av "faktiskt värde" - t.ex. en "Att göra"-app vilket i grunden "bara" är en kombination av det mesta i ovanstående paragraf.
Det jag upplever är just att bryta ned stora problem (t.ex. "Att göra"-appen) till mindre problem eller steg (t.e.x: fråga efter inmatning, validera inmatning, slå ifrån vid invalid inmatning, lägga till i lista vid ok inmatning, rendera om eller utöka listan efter lyckad tilläggning) är vad som tar längst tid.
Ett varningens ord om "kurser" och "tutorials" på YouTube: de kan ge det falska intrycket - genom "lack of struggle" (ingen debugging, inga buggar trots växande kodbas, inga googlingar efter småsaker, etc), - att i programmering ska du automatiskt veta varje kodrad såväl som hur den kommer att hänga ihop med alla övriga 100(0)(0)+ kodrader som om du alltid i förväg måste veta exakt alla steg framför dig vilket jag personligen upplever som orealistiskt.
I exempelvis i en av mina första distanskurser vilket var "Introduktion till programmering i JavaScript" så skulle vi i Projektrapporten skriva vår Planering om hur vi skulle lösa problemet vilket är motsägelsefullt eftersom hur ska vi veta alla steg för att lösa något större problem i ett programmeringsspråk där vi håller på att introduceras till/lära oss grunderna i? Snarare blev det att prova koda något, sedan felsöka/googla, prova koda igen, sedan kanske refaktorisera/optimera något, och till sist efter en hel del "struggling" så blev det till sist av! Men absolut INTE hur diverse "tutorials" på YT får det att framstå som.
Med mer programmeringserfarenhet så har jag upplevt att jag kan se fler steg framför mig för att lösa ett särskilt delproblem samtidigt som det ändå bara en del av lösningen till ett större problem. Men att sätta pressen på sig att du måste kunna veta hela lösningen innan du ens börjat skriva första kodraden så kommer du att göra det svårare för dig själv att bara komma igång.
I början kmr grunderna vara utmanande ("struggling") samtidigt som det känns som om du "skriver skräp" eftersom du bara gör banala saker som att genomföra beräkningar, kontrollera och loopa igenom deklarerade variabler, anropa funktioner som lyckas returnera något. Men kämpa på: när du lyckats nyttja alla smådelar till något större som en "Att göra"-app exempelvis så kmr du känna att grunderna har varit värd all "struggle".
Att först lära sig grunderna innan du hoppar på abstraktioner (t.ex. funktionsbibliotek och/eller ramverk) tycker jag är sunt förnuft. Den som först lär sig ReactJS innan åtminstone grundläggande JS (vilket React ändå är byggt i?!) bäddar ju för "kodparalysering" så fort personen måste göra något JS-relaterat i ReactJS som inte lärdes ut i den där 8+ timmars ReactJS-videon...
Så _kämpa_ på med grunderna samtidigt som du försöker bygga ihop något av "värde" som t.ex. en "Att göra"-app eller något annat som kombinerar grunderna på ett sätt där helheten plötsligt upplevs som större än dess beståndsdelar!
Detta är mina nuvarande personliga upplevelser (och åsikter) av programmering och dessa kan självfallet komma att ändras i takt med att jag själv erhåller ytterligare programmeringserfarenheter i mitt eget kodäventyr!
Mvh,
WKL.