Permalänk

Lära sig programmering

Kan basic programmering. Fick A i både programmering 1 och 2 på gymnasiet.
Vad är den bästa sidan för att lära sig mer / bli bättre?

Permalänk
Permalänk
Medlem

Det finns hur mycket som helst där ute, tillåmed på Youtube. Det gäller bara att du hittar något du vill göra och pluggar in det som krävs för att lösa det.

C#
Python
C++
...

Alla språk har sina för och nackdelar, mycket kan man bära med sig till andra språk.

Vill du göra spel och isåfall till vad?
Kanske någon mobilapp med UI och internetanslutning?

Permalänk
Medlem

Bra idé men jävligt dåligt exekverad. Testade java och första uppgiften skulle man endast lägga till ett semikolon. Detta skulle föreställa ett "test"???

Efter det, kommer det upp något där det inte ens förklaras ordentligt vad man ska göra.

Och sidan krashar hela tiden. Och är löjligt seg. Bra att en sida om programmering inte ens kan programmeras funktionellt

Visa signatur

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed placerat orci vitae condimentum tempor. Nulla facilisi. Interdum et malesuada fames ac ante ipsum primis in faucibus. In at sapien id felis tempor tincidunt. Cras accumsan enim elit, ut laoreet neque dapibus ac.

Permalänk

Prova freecodecamp

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Elektroman:

Bra idé men jävligt dåligt exekverad. Testade java och första uppgiften skulle man endast lägga till ett semikolon. Detta skulle föreställa ett "test"???

Efter det, kommer det upp något där det inte ens förklaras ordentligt vad man ska göra.

Och sidan krashar hela tiden. Och är löjligt seg. Bra att en sida om programmering inte ens kan programmeras funktionellt

testa codingame annars, har för mig att den sidan var helt ok.
Men egna projekt är troligtvis det bästa. Bestäm dig för något och lös problemen när de kommer.

Permalänk
Medlem

När jag började programmera var det för att jag inte hittade program som gjorde det jag ville. Att skriva kod som gör något man själv vill är en otroligt stark drivkraft, mycket bättre än att upprepa läroexempel.

Börja med något lätt, en av de mest användbara och relativt lätta programmen jag har skrivit själv är en IRC-bot. Ska du göra något som snackar nätverk är ett bra ställe att börja oftast med en relevant RFC, i mitt fall med IRC var det RFC 1459. Att ha alla detaljer om hur protokollet ska fungera är en guldgruva jämfört med att sitta och analysera trafik i Wireshark.

Ditt första "stora" program kommer antagligen att vara full med spaghettikod, missbruk av globala variabler, hårdkodning, etc. Felen som du gjorde i skolans programmeringskurser är relativt enkla i jämförelse och när du skriver ett program på egen hand finns det ingen som rättar felen åt dig innan du får uppleva konsekvenserna av dem.

Visa signatur

Mjölnir: Ryzen 9 3900X | X570-I | Ballistix Sport 32GB | Powercolor RX 5500XT 4GB ITX | Kolink Sattelite
Server: Ryzen 5 1400 | X470-F | Ballistix Sport 24GB | ASUS HD 7790 2GB | Sapphire RX 470 8GB ME | NZXT Switch 810

Permalänk
Medlem

Förvånansvärt svår fråga, trots att jag är självlärd professionell programmerare... 🤷‍♂️

Tror det hela faller mycket på hur man själv lär sig bäst. Personligen så lär jag mig jäkligt bra av att sitta och läsa artiklar, white-papers etc, finner däremot inte video tutorials så givande medans andra får ut mer av det. Alla lär sig bäst på olika sätt, inte utan skäl pedagogik är ett så stort forskningsområde. Praktiskt arbete, i en ospecificerad grad, är däremot väldigt användbart då man stöter på olika problem.

Hur vill du lära dig? Lättare att ge råd om jag vet det.
Vill du bredda dig eller fördjupa dig? För programmeringskunskap är inte en linjär kunskap utan det är flera kunskapsdomäner med viss överlappning.

Visa signatur

Citera eller @philipborg om du vill att jag ska läsa dina svar.

Permalänk
Medlem

Bara sitta och plugga hjälper en del, och visst pluggande är nödvändigt, men man kommer bara så långt den vägen.
Övning ger färdighet, och det gäller även för programmering.

Hitta på något programmeringsprojekt som du skulle vilja göra, och sätt igång.
När du kommer till något ställe där du behöver veta mer om något för att komma vidare, då är det dags att söka upp information om hur man gör den saken och läsa på. Efter hand kommer du att lära dig mer och mer samtidigt som projektet (förhoppningsvis) kommer att närma sig ett slut.

Första gången du gör så här kommer slutresultatet antagligen inte bli så bra. Det är helt normalt. Fundera över vad du borde gjort annorlunda och ta med dig lärdomarna när du ger dig i kast med nästa projekt.

Så småningom bör du även komplettera med någon mer formell utbildning. Dels för att man kan lära sig mycket den vägen, men framför allt för att kunna få konstruktiv kritik från någon utomstående.

Permalänk
Medlem

Alla lär sig olika.
Jag har väldigt svårt för att bara läsa en bok rakt upp och ner och sen börja koda, svårt att applicera det man läst om då. Samma sak med att fastna i tutorial träsket, man sitter och gör en tutorial och skapar något men sen när man är klar så kan man ändå inte göra något eget.

För mig fungerar det bäst med "lär dig det du behöver när du behöver det".
Det vill säga, sitt och skapa egna projekt och labba runt. Kör du fast så googla och lär dig det du behöver då för att ta dig vidare. Lär dig av det du gör och förbättra till nästa projekt. Att lära sig felsöka och använda google är också en viktig nyckel i att bli en självgående utvecklare. Var nyfiken och leta information online, jämför olika källor och plocka ut det du anser är det bästa från alla.

I början kan man däremot behöva följa tutorials och skriva av koden, för att sedan försöka återskapa projekten och läsa andras kod för att förstå vad som händer.
Börja smått, försök skapa ett projekt som känns rimligt. Gör detta i t.ex. en typ av console applikation, återskapa sedan denna som en desktop- eller webbapplikation.

Sen är mitt tips att välja en stack du vill arbeta med och fördjupa dig inom en sak, du får ut så mycket mer av det då. Många i början hoppar mellan allting samtidigt och det blir så mycket svårare att plocka upp information då.

Vill du lära dig exempelvis webbutveckling, så välj en stack och fördjupa dig inom det. När du väl har lärt dig det fundamentala så är den typen av utveckling relativt lika inom alla språk, mest syntax som skiljer sig.

Permalänk
Medlem
Skrivet av zaibuf:

När du väl har lärt dig det fundamentala så är den typen av utveckling relativt lika inom alla språk, mest syntax som skiljer sig.

Jag vill inte tag bort från ditt uttalande, för i mångas vardag stämmer, men det är bara om man sitter med samma domän och språkfamilj. Att exempelvis hoppa mellan C#, Java & Kotlin är busenkelt, men det är för att de är i samma familj av imperativa objektorienterade programmeringsspråk med starka influenser från C & C++ (och givetvis massor annat). Försöker du däremot porta den koden genom att bara ändra syntax till ett deklerativt språk som SQL så blir koden rätt hemsk med tvärkass prestanda (Orsaken bakom gissningsvis 9/10 SQL cursors). Samma problematik om du ändrar applikationsdomän. Ganska stor skillnad mellan att skriva HPC applikationer eller R och HTML+CSS+JS kombon.

Självklart finns det massor kunskap som är överförbara även i de fallen. Imperativa objektorienterade programmeringsspråk är även kraftigt dominerande på arbetsmarknaden och de flesta sitter inom ett fåtal lösningsdomäner med just den språkfamiljen. Undantaget i det är SQL som du hittar någonstans i de flesta projekt, men det är sällan komplex SQL där man faktiskt får utforska språket och ORM's tar marknaden med fart. Så ja, ofta stämmer det, men vill bara understryka att det finns mer saker att utforska och jag är en programmeringsnörd som gillar prata om programmering...

Visa signatur

Citera eller @philipborg om du vill att jag ska läsa dina svar.

Permalänk
Medlem
Skrivet av philipborg:

Jag vill inte tag bort från ditt uttalande, för i mångas vardag stämmer, men det är bara om man sitter med samma domän och språkfamilj. Att exempelvis hoppa mellan C#, Java & Kotlin är busenkelt, men det är för att de är i samma familj av imperativa objektorienterade programmeringsspråk med starka influenser från C & C++ (och givetvis massor annat). Försöker du däremot porta den koden genom att bara ändra syntax till ett deklerativt språk som SQL så blir koden rätt hemsk med tvärkass prestanda (Orsaken bakom gissningsvis 9/10 SQL cursors). Samma problematik om du ändrar applikationsdomän. Ganska stor skillnad mellan att skriva HPC applikationer eller R och HTML+CSS+JS kombon.

Självklart finns det massor kunskap som är överförbara även i de fallen. Imperativa objektorienterade programmeringsspråk är även kraftigt dominerande på arbetsmarknaden och de flesta sitter inom ett fåtal lösningsdomäner med just den språkfamiljen. Undantaget i det är SQL som du hittar någonstans i de flesta projekt, men det är sällan komplex SQL där man faktiskt får utforska språket och ORM's tar marknaden med fart. Så ja, ofta stämmer det, men vill bara understryka att det finns mer saker att utforska och jag är en programmeringsnörd som gillar prata om programmering...

Var nog otydlig, menade inom webb. Om du skriver backend i exempelvis C#, Java eller nodeJS så kan man applicera samma koncept även om syntax skiljer.

Givetvis är SQL olikt andra programmeringsspråk, men grunderna där får du automatiskt med dig om du ska utveckla då databaser går hand i hand med systemen.

I långa loppet är det dock mycket logiskt tänkande och har du fördjupat dig i ett språk så tar det inte lika lång tid att lära sig ett nytt, då de generella koncepten inom programmering är lika.

Skickades från m.sweclockers.com

Permalänk
Datavetare
Skrivet av zaibuf:

Var nog otydlig, menade inom webb. Om du skriver backend i exempelvis C#, Java eller nodeJS så kan man applicera samma koncept även om syntax skiljer.

Håller helt med om att det är primärt en syntaxskillnad mellan språk som C# och Java. Däremot är en hyfsat stor del av JS dåliga rykte en konsekvens av att många just hanterar det språket som C#/Java, då blir det rätt mycket kattskit. Ser man i stället JS för vad det är, en LISP med C-lik syntax och istället jobbar idiomatiskt från den ståndpunkten så är det ett långt trevligare språk helt plötsligt!

Redan när man ställer Java/C# mot Kotlin är det ju mer än enbart syntax som skiljer. Då Kotlin är helt kompatibelt med Java går det ändå rätt bra att initialt hantera det som Java med en bättre syntax, men idiomatisk Kotlin har långt mer inslag från funktionell programmering än Java/C#.

Både C#/Java designades för att vara väldigt tillgängliga för de som redan kunde C++. Men likheten i syntax kan här tyvärr göra att riktigt bra C#/Java programmerare skulle producera rätt kass C++ kod.

C++ skapare, Bjarne Stroustrup, har flera gånger påpekat att "C++ behöver ingen skräpsamlare då C++ program normalt sett producerar väldigt lite skräp". Detta uttalande är långt mer än ett försök att vara lustig. I C++ (och än mer i Rust) jobbar man primärt med data "by-value" (allokera data på stacken) medan C#/Java nästan uteslutande jobbar med data "by-reference" (allokera data på heap:en).

Tar man steget till ett språk som Go (och till mindre del JS i form av Node.JS) är ju sättet man lämpligen designar skalbara system rätt fundamentalt annorlunda än hur man angriper det i t.ex. Java/C#. Just i detta fall är likheterna mellan Java/C# och C++/Rust väldigt stora, den optimala grundarkitekturen är densamma, men väldigt olik miljöer som Go/Erlang (dessa två är väldigt lika på denna punkt) samt NodeJS.

Gillar ett språk som kallas R väldigt mycket. Det går att skriva traditionell skalär kod, likt hur man ska programmera C#/Java/C++/Rust/Go. Men det är bortkastat att använda R i det läget, man missar styrkorna och poängen med språket. D.v.s. här är ännu ett exempel på där det är långt mer än en skillnad i syntax. I R måste man hela tiden tänka "data-parallellt", d.v.s. i stället för att loopa över varje element vänder man ut-och-in på processen: man applicerar funktioner på alla data-element logiskt sett samtidigt. Går ändå att köra "if-satser", fast processen blir lite annorlunda då det alltid måste finnas ett resultat för både "true" och "false" fallet.

Det skrivet: håller med det som sägs i tråden att det finns massor med grundläggande byggstenar som är gemensamt för alla programspråk. Olika byggstenar är dock olika viktiga i olika språk, man bör sätta sig in rätt snabbt i vad som är "typiskt" för just det språk man nu väljer att jobba med.

Ett par webbplatser som jag själv gillar att använda till att sätta mig in i nya programspråk (vilket inte är samma sak som att lära sig programmera från scratch, men finns vissa parallella moment) är

Båda dessa har fördelen att man får reda på om man lyckats löst problemet korrekt samt problemet är typiskt väl begränsade och bortsett från de första fallen är det inte triviala program.

Det som saknas är just att man inte alls får någon feedback om hur det optimala sättet att lösa problem i just det språk man sitter med borde se ut.

Och som nämnts i tråden, alla lär sig olika. Jag tillhör de som vill starta med att rakt upp och ned läsa en bok eller motsvarande, det utan att egentligen skriva en enda rad kod. Poängen är att skaffa en känsla för hur språket är tänkt att användas, det innan jag börjar grumla det med mina egna erfarenheter från experiment.

Som andra steg måste det till "hands-on" övningar. Endera har man ett lämpligt projekt att starta med, eller så är just de två webbplatsenerna som listades ovan trevliga och konkreta första övningar!

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

Pluralsight kanske.

Skickades från m.sweclockers.com

Permalänk
Medlem

Det absolut bästa sättet att lära sig programmera är att lösa problem. Exempelvis i matte (matrisräkning, kedjebråk, beräkna PI eller e mm). Men börja enkelt som att generera lottorader. Sedan lösa Suduko. Språket ointressant, men C funkar överallt. Tyvärr är det lätt att göra tabbar där med pekare som pekar åt hvete.

Permalänk
Medlem

Jag, som inte kan programmera mer än snäppet över Hello World i C++, har en del synpunkter från ett nybörjarperspektiv. Framför allt i och med att jag jobbar ihop med programmerare/utvecklare och ser vad de gör.

Det jag tycker är relativt lätt är att skriva de arbetande/räknande delarna av koden. Jag har gjort egna, enkla plugin till X-Plane för ett antal år sen, och jag har skrivit småprogram för att räkna ut lite saker. Men gemensamt för alla dessa är att de inte behöver "kringkod", utan bara behövde förutbestämda bibliotek inlänkade och sen var det bara att kompilera (i fallet med plugin) eller köra direkt i utvecklingsverktyget (det var textinput och textoutput enbart).

Det jag tycker är oerhört svårt och komplicerat är allt runt omkring! Man ska konfigurera, sätta upp utvecklingsmiljöer, och sen ska man göra saker som "pull requests", "commits", och annat som är väldigt svårt att tränga in i som nybörjare. För att inte tala om hur komplicerat det blir om man vill skriva nåt annat än textbaserade program. Ska man göra ett program som kan köras separat och öppnas i ett fönster i t ex Windows, då är det flera storleksordningar mer komplext än att bara skriva nåt textbaserat. Men inget nybörjarmaterial jag hittat går in på annat än själva kärnan i språket, som jag upplever är det enkla i sammanhanget. Man lär sig programmera, men kan nästan inte göra nåt med det, eftersom man bara lärt sig att göra textbaserade program. En hopplös situation!

Visa signatur

Moderkort: Gigabyte X570 Aorus Master | CPU: AMD Ryzen R9 5900X | CPU-kylare: Noctua NH-D15 chromax.black | RAM: Corsair Vengeance LPX 64 GB (4x16) DDR4-3600 CL18 | GPU: Gigabyte RTX 4080 Eagle OC | SSD: 2 x Samsung 970 EVO Plus 1 TB NVMe + Kingston A400 480 GB + Samsung QVO860 1 TB | PSU: EVGA SuperNOVA G2 1000 W Gold | Chassi: Lian Li O11 Dynamic XL | Skärm: BenQ PD3200U @ 3840x2160 + ASUS ROG Strix XG32VQ @ 2560x1440 | Tangentbord: Corsair K68 RGB Cherry MX Red | Mus: Logitech MX Master 2S

Permalänk
Datavetare
Skrivet av cyklonen:

Jag, som inte kan programmera mer än snäppet över Hello World i C++, har en del synpunkter från ett nybörjarperspektiv. Framför allt i och med att jag jobbar ihop med programmerare/utvecklare och ser vad de gör.

Det jag tycker är relativt lätt är att skriva de arbetande/räknande delarna av koden. Jag har gjort egna, enkla plugin till X-Plane för ett antal år sen, och jag har skrivit småprogram för att räkna ut lite saker. Men gemensamt för alla dessa är att de inte behöver "kringkod", utan bara behövde förutbestämda bibliotek inlänkade och sen var det bara att kompilera (i fallet med plugin) eller köra direkt i utvecklingsverktyget (det var textinput och textoutput enbart).

Det jag tycker är oerhört svårt och komplicerat är allt runt omkring! Man ska konfigurera, sätta upp utvecklingsmiljöer, och sen ska man göra saker som "pull requests", "commits", och annat som är väldigt svårt att tränga in i som nybörjare. För att inte tala om hur komplicerat det blir om man vill skriva nåt annat än textbaserade program. Ska man göra ett program som kan köras separat och öppnas i ett fönster i t ex Windows, då är det flera storleksordningar mer komplext än att bara skriva nåt textbaserat. Men inget nybörjarmaterial jag hittat går in på annat än själva kärnan i språket, som jag upplever är det enkla i sammanhanget. Man lär sig programmera, men kan nästan inte göra nåt med det, eftersom man bara lärt sig att göra textbaserade program. En hopplös situation!

Idag har det aldrig varit enklare att skriva program som har en grafisk UI: webbläsarens!
Knackar man kod för webben kodar man för världens största "virtuella OS" och även "hello world" kommer ha ett grafisk UI

Som extra bonus är JS, enligt rätt många mätningar, just nu värdens mest använda programspråk.

Du har absolut en poäng kring saker "runt omkring". Vet inte hur skolor/universitet resonerar kring detta idag, men just för att hålla fokus på det relevanta (faktiskt lära sig programmera, inte lära sig en IDE som gör massa "magiska" saker man inte förstår) fick jag min första kontakt med Emacs på KTH (nog för att Emacs kan bli en IDE, men där användes den bara som en textredigerare med syntax-highlight för programspråket vi för tillfället jobba med).

Tycker ändå man kan testa Visual Studio Code idag. Den miljön kan med fördel användas som en modern text-redigerare med syntax-highlight och om man vill, intellisense stöd (förslag på vilken funktion/metod man är på väg att skriva samt information om dess argument och returvärde).

Skulle avråda från Visual Studio, Eclipse och liknande som nybörjare. Där blir det väl mycket "magi" kring just de områden du nämner. Om man nu bryr sig om att lära sig dessa, rätt säker på att många som jobbar med t.ex. C# har rätt nära noll koll på hur man designar byggsystem och sådant som Visual Studio effektivt gömmer.

Visual Studio och Visual Studio Code må ha förvillande lika namn, men de är två helt separata produkter. VS Code är på väldigt stark uppgång, det långt utanför C# och Windows (VS Code stödjer Linux, MacOS och Windows samt har plugin för i princip alla språk som används idag).

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
Skrivet av Yoshman:

Idag har det aldrig varit enklare att skriva program som har en grafisk UI: webbläsarens!
Knackar man kod för webben kodar man för världens största "virtuella OS" och även "hello world" kommer ha ett grafisk UI

Som extra bonus är JS, enligt rätt många mätningar, just nu värdens mest använda programspråk.

Du har absolut en poäng kring saker "runt omkring". Vet inte hur skolor/universitet resonerar kring detta idag, men just för att hålla fokus på det relevanta (faktiskt lära sig programmera, inte lära sig en IDE som gör massa "magiska" saker man inte förstår) fick jag min första kontakt med Emacs på KTH (nog för att Emacs kan bli en IDE, men där användes den bara som en textredigerare med syntax-highlight för programspråket vi för tillfället jobba med).

Tycker ändå man kan testa Visual Studio Code idag. Den miljön kan med fördel användas som en modern text-redigerare med syntax-highlight och om man vill, intellisense stöd (förslag på vilken funktion/metod man är på väg att skriva samt information om dess argument och returvärde).

Med grafiskt användargränssnitt menar jag ett fönster i Windows med knappar, datavisningsfält och datainmatningsfält, osv. Att skriva kod som (dynamiskt???) genererar HTML för att simulera ett grafiskt gränssnitt är nåt annat...

Jag gillar att leka med blender, och har ett 2080 Ti, så när jag såg att Nvidia Optix-funktionaliteten nu finns, ville jag testa. Pga rättigheter måste man tyvärr själv fixa mjukvaran genom att först bli developer-reggad hos Nvidia, tanka ner nödvändiga komponenter, tanka ner saker från blender-projektet, sätta upp en utvecklarmiljö för blender och till sist kompilera hela rasket. Jag fixade allt det första, och tankade ner Visual Studio (40-ish GB!), men sen tog det stopp. Mina kunskaper räckte inte för att få till det hela.
Så det är verkligen inte enkelt om man inte redan kan en massa.

Visa signatur

Moderkort: Gigabyte X570 Aorus Master | CPU: AMD Ryzen R9 5900X | CPU-kylare: Noctua NH-D15 chromax.black | RAM: Corsair Vengeance LPX 64 GB (4x16) DDR4-3600 CL18 | GPU: Gigabyte RTX 4080 Eagle OC | SSD: 2 x Samsung 970 EVO Plus 1 TB NVMe + Kingston A400 480 GB + Samsung QVO860 1 TB | PSU: EVGA SuperNOVA G2 1000 W Gold | Chassi: Lian Li O11 Dynamic XL | Skärm: BenQ PD3200U @ 3840x2160 + ASUS ROG Strix XG32VQ @ 2560x1440 | Tangentbord: Corsair K68 RGB Cherry MX Red | Mus: Logitech MX Master 2S

Permalänk
Medlem
Skrivet av cyklonen:

Jag, som inte kan programmera mer än snäppet över Hello World i C++, har en del synpunkter från ett nybörjarperspektiv. Framför allt i och med att jag jobbar ihop med programmerare/utvecklare och ser vad de gör.

Det jag tycker är relativt lätt är att skriva de arbetande/räknande delarna av koden. Jag har gjort egna, enkla plugin till X-Plane för ett antal år sen, och jag har skrivit småprogram för att räkna ut lite saker. Men gemensamt för alla dessa är att de inte behöver "kringkod", utan bara behövde förutbestämda bibliotek inlänkade och sen var det bara att kompilera (i fallet med plugin) eller köra direkt i utvecklingsverktyget (det var textinput och textoutput enbart).

Det jag tycker är oerhört svårt och komplicerat är allt runt omkring! Man ska konfigurera, sätta upp utvecklingsmiljöer, och sen ska man göra saker som "pull requests", "commits", och annat som är väldigt svårt att tränga in i som nybörjare. För att inte tala om hur komplicerat det blir om man vill skriva nåt annat än textbaserade program. Ska man göra ett program som kan köras separat och öppnas i ett fönster i t ex Windows, då är det flera storleksordningar mer komplext än att bara skriva nåt textbaserat. Men inget nybörjarmaterial jag hittat går in på annat än själva kärnan i språket, som jag upplever är det enkla i sammanhanget. Man lär sig programmera, men kan nästan inte göra nåt med det, eftersom man bara lärt sig att göra textbaserade program. En hopplös situation!

GIT handlar enbart om versionshantering av koden och används främst då man arbetar i projekt där flera utvecklare delar samma kodbas. Detta är också för att man ska kunna sitta och leverera en version i produktion medan man arbetar på en bransch för features som man sedan pushar upp till produktion i form av mindre versioner.
Det är väldigt enkelt att komma igång med och du bör kunna dra igenom någon snabbkurs på Youtube för att förstå hur det används och till vad man använder det.

Konfigurera upp utvecklingsmiljöer etc. får man ju lära sig allt eftersom, seniora utvecklare kommer att göra detta i nya projekt men det är ju bra om du är med och ser hur de gör för att förstå varför man gör det. Ett exempel är att i utvecklingsmiljö om man vill testa en mailfunktion, så vill man skicka ut mailet till din egen server, inte till dina 25 000 kunder.

Man brukar alltid börja med textbaserade program för att just fokusera på att koda och inte på allt krimskrams som sker runtomkring.
Därför är det vanligt att man i början skriver Console applikationer och arbetar med text.
Steget efter detta är att välja en inriktning, idag är webbutveckling störst och lär bli det en bra tid framöver då det är enkelt att göra applikationer som fungerar på alla OS.

Lär du dig allt grundläggande i t.ex. C# så är det inte så svårt att lära sig ASP.NET för att sätta upp en server och sedan är det bara att utöka dina kunskaper successivt. Det är ju fortfarande kod i C#, bara att det appliceras nya termer. Sedan går detta hand i hand med att lära sig det grundläggande om SQL och databaser.

Efter att du lärt dig grunderna i ett programmeringsspråk för backend brukar det vara bra att lära sig HTML, grundläggande CSS och JavaScript för att på så vis börja skapa webbapplikationer.

Permalänk
Medlem
Skrivet av zaibuf:

Man brukar alltid börja med textbaserade program för att just fokusera på att koda och inte på allt krimskrams som sker runtomkring.
Därför är det vanligt att man i början skriver Console applikationer och arbetar med text.
Steget efter detta är att välja en inriktning, idag är webbutveckling störst och lär bli det en bra tid framöver då det är enkelt att göra applikationer som fungerar på alla OS.

Nej man börjar med textbaserade program för att det är så lärarna började förr när det grafiska var väldigt krångligt att komma igång med.
Dessvärre är detta inte tillräckligt engagerade för studenter idag och många klassrum har gått över till att börja med webbprogrammering.

Dels för att tröskeln är lite lägre; men även för att ungdomar har sett nyttan lite mer. Nu kan de komma igång snabbt att göra egna hemsidor och på sikt även använda sig av samma kod på frontend sidan som på backend-sidan via NodeJS.

--

Till OP: Ignorera alla som bråkar om språk hit och dit. Börja med det du tycker verkar mest intressant.

Om det så är Webbutveckling, mobilutveckling, serverapplikationer eller för inbyggda system.

Viktigaste är att du engagerar dig och tycker det är roligt. Blir rätt tradigt att trycka tutorials i veckor om du inte finner det intressant.

Själv jobbar jag som konsult och hoppar mellan allt från Rust, NodeJS, Python osv.

Visst jag har mina preferenser som jag är mest bekväm med. Men i slutändan handlar det om "the right tool for the job"

Om nu någon argumenterar för att GO t.ex. skulle vara bättre än NodeJS; men om vi har 15 på företaget som alla suttit med NodeJS dagligen senaste två åren. Är det då värt att göra ett projekt i GO? Nej knappast; de flesta projekt anpassar man efter redan existerande kompetens på företaget.

Jag skulle ALDRIG anställa någon som vägrar jobba i ett annat språk än dennes preferenser för stunden.

Chansen är ändå stor att du kommer få pilla i ett språk eller ett ramverk du inte suttit med tidigare och då är det bara att bita ihop och köra på. Ingen idé att bli irriterad över språk X och Y och det är sådant som man lär sig med tiden.

Yrket är en ständig utveckling och tröttnar man på att lära sig och fastnar i ett och samma språk i flera år för att man "inte orkar lära sig något nytt" då kan man lika gärna kasta in handduken och jobba som projektledare i stället. För då är ju frågan om man faktiskt tycker det fortfarande är kul med programmeringen eller inte.

Permalänk
Medlem
Skrivet av cyklonen:

Det jag tycker är oerhört svårt och komplicerat är allt runt omkring! Man ska konfigurera, sätta upp utvecklingsmiljöer, och sen ska man göra saker som "pull requests", "commits", och annat som är väldigt svårt att tränga in i som nybörjare. För att inte tala om hur komplicerat det blir om man vill skriva nåt annat än textbaserade program. Ska man göra ett program som kan köras separat och öppnas i ett fönster i t ex Windows, då är det flera storleksordningar mer komplext än att bara skriva nåt textbaserat. Men inget nybörjarmaterial jag hittat går in på annat än själva kärnan i språket, som jag upplever är det enkla i sammanhanget. Man lär sig programmera, men kan nästan inte göra nåt med det, eftersom man bara lärt sig att göra textbaserade program. En hopplös situation!

Nybörjarmaterial för "programmering" skall inte gå in på något av det där - då blir det för mycket och för komplicerat för en nybörjare.

Det finns naturligtvis nybörjarmaterial för hur man t.ex. programmerar grafiskt gränssnitt i Windows - men det är avsett för folk som redan kan programmera och redan kan relevanta programmeringsspråk, inte för nybörjare i programmering.
Samma med att sätta upp lite mer avancerade utvecklingsmiljöer - det är för folk som faktiskt behöver de där mer avancerade funktionerna, inte för nybörjare.
Likadant med mängder av andra OS, bibliotek, ramverk, och utvecklingsverktyg av olika slag. Många av de är mycket större och mer komplicerade än själva programmeringsspråken, och tar mer tid att lära sig.

Programmeringsspråk är, som du noterar, enkelt att lära sig. Lära sig programmera är svårt. Lära sig allt runtomkring är inte direkt svårt, men tar en massa tid eftersom det finns så mycket av det.

Permalänk
Medlem
Skrivet av JeanC:

Nej man börjar med textbaserade program för att det är så lärarna började förr när det grafiska var väldigt krångligt att komma igång med.
Dessvärre är detta inte tillräckligt engagerade för studenter idag och många klassrum har gått över till att börja med webbprogrammering.

Dels för att tröskeln är lite lägre; men även för att ungdomar har sett nyttan lite mer. Nu kan de komma igång snabbt att göra egna hemsidor och på sikt även använda sig av samma kod på frontend sidan som på backend-sidan via NodeJS.

Håller inte helt med där. Ska du in i C# så rekommenderar jag att börja med Console för att lära dig grunderna och förstå objektorientering. Att direkt hoppa in i ASP.NET med MVC pattern utan att man vet ens vad en class är så blir det väldigt komplext väldigt snabbt. Det är viktigare att fokusera på det fundementala i språket och hur programmering fungerar, ska du in i ASP.NET behöver du ha kunskaper om HTML och routing också, blir för mycket på en gång för en nybörjare.

Men att efter några månader med Console och WinForms applikationer övergå till ASP.NET var väldigt smidigt. Så vi gjorde på Yrkeshögskolan. Console > SQL > Frontend > ASP.NET

Permalänk
Medlem
Skrivet av zaibuf:

Håller inte helt med där. Ska du in i C# så rekommenderar jag att börja med Console för att lära dig grunderna och förstå objektorientering. Att direkt hoppa in i ASP.NET med MVC pattern utan att man vet ens vad en class är så blir det väldigt komplext väldigt snabbt. Det är viktigare att fokusera på det fundementala i språket och hur programmering fungerar, ska du in i ASP.NET behöver du ha kunskaper om HTML och routing också, blir för mycket på en gång för en nybörjare.

Men att efter några månader med Console och WinForms applikationer övergå till ASP.NET var väldigt smidigt. Så vi gjorde på Yrkeshögskolan. Console > SQL > Frontend > ASP.NET

Fast då gick du en utbildning och hade gjort ett aktivt val där du får rätta dig efter utbildningens upplägg. Nu handlar det om att han ska motivera sig själv på fritiden också.

Varför tror du så många som bara suttit med console (från gymnasiet) ofta säger att de inte kan ett skvatt från den tiden? För att de ej var tillräckligt tillfredsställande.

Permalänk
Medlem

Jag ogillar starkt konsollapplikationer och lukten av foo och bar. Jag tycker man ska ta ett simpelt program och sen modifiera det, ommedelbar belöning kontra kompileringsfel.

En webbapplikation av modellen Todo eller dylikt är en utmärkt start. Det svåra med programmering är ju inte syntax och minneshantering, det är ju att komma över tröskeln vad en typad variabel är för någonting.

Skickades från m.sweclockers.com

Permalänk
Medlem

Jag har precis köpt en kurs från udemy. Den handlar om hur man gör appar för Android och iOS med Flutter och Dart. Är lite kluven än så länge, känns som det mesta kan man ändå hitta på andra ställen på internet. Men det som är bra är att man har ett upplägg att följa och en lärare som visar på video hur man kan göra. Nackdelen är att det tar så lång tid att kolla alla videor. Kanske lär man sig fortare genom att göra än att titta på? Men det hjälper mig att komma igång åtminstone.

Men det viktigaste är att ha motivation. Jag har något som jag vill skapa och behöver lära mig saker för att nå dit. Blir mycket roligare om man kan bygga ihop något eget. Men man behöver ju förstå hur verktygen fungerar innan man kan börja bygga.