Vart ska man börja för att lära sig?

Permalänk
Medlem

Vart ska man börja för att lära sig?

Tja!

Jag och en kollega har ett problem i våran bransch där det saknas ett program/System för att underlätta arbetet om dagarna som vi tror kan avhjälpas med ett datorsystem. Problemet är att ingen av oss kan detta med att utveckla program, hur kod funkar osv.

Vi vill att det ska vara ett webbaserat program och även en app(Android och IOS).
Ska kunna lägga in dokument i olika format, skicka automatisk påminnelser till Mail, notis i telefon(app), kunna läsa av QR koder med kamera i telefon, intrigerad kalender osv.

Nu till frågan, vart ska man börja för att lära sig att utveckla ett sådan typ av program? Finns det kvälls kurser eller kurser på distans? Vilka rekommenderar ni i så fall?
Båda jobbar heltid så en fullfjädrad utbildning finns det inte möjlighet till.

Förstår att detta inte är något som kommer vara klart om 1 eller 2 år om ens det. Men skulle vara kul att avsätta några kvällar i veckan till att börja med för att se om detta är något för oss/mig att ge sig in på.

Permalänk

Hade jag varit i just eran sits hade jag valt mellan en no code crossplattform lösning som Flutterflow, man kan troligtvis hoppa rakt in i appen och börja bygga. Kommer dock krävas en hel del youtube tutorials och googlande sen kanske inte koden kommer vara "optimal" men ni kommer få ut en webapp relativt fort.

Andra idén kommer ta lite längre tid men det är att följa en roadmap som denna React roadmap . Ni kan bygga funktionaliteten i javascript under tiden ni gör roadmapen och sen när ni kommer till react kan ni implementera det visuella, sen till mobilspecifika grejer kommer ni kunna utnyttja react native.

Permalänk
Medlem
Permalänk

React Native låter som det som skulle passa dig bäst. Finns massvis med material på nätet, men som andra sagt tidigare i tråden så kan FreecodeCamp & Odinproject avara något, speciellt ifall du behöver grunderna i HTML CSS och JS

Permalänk
Medlem

Ser väldigt bra ut, men lite väl frontend-heavy för deras behov?

Den apputveckling och webbutveckling jag gjort har varit väldigt olika.

Permalänk

Tycker du skall titta på Ai. Verkar som ni har en relativt tydlig ide. bara genom att ställa frågorna. får vi dessa svar.

Att lära sig utveckla ett webbaserat program och en mobilapp kan vara en utmanande men givande resa. Här är några steg för att komma igång, samt resurser där du kan hitta utbildning som passar era behov:

1. Grundläggande programmeringsförståelse
Börja med att lära dig grunderna i programmering. Språk som JavaScript är centralt för webbutveckling.

2. Frontend och Backend Utveckling
Frontend (det användarna ser) kan du lära dig genom att fokusera på HTML, CSS, och frameworks som React.js eller Angular.
Backend (server och databas) kräver kunskap i serverprogrammering och databashantering. Node.js (med Express.js) är populär för JavaScript-utvecklare.

3. Mobilutveckling
För att utveckla appar som fungerar på både Android och iOS, är cross-platform verktyg som React Native eller Flutter bra alternativ.

4. Kursutbud och självlärande resurser
Onlinekursplattformar som Coursera, Udacity och Pluralsight erbjuder många kurser i både webb- och mobilutveckling.
Codecademy och freeCodeCamp är två bra resurser för kostnadsfri inlärning från grunden.
YouTube har en mängd tutorials, där kanaler som Traversy Media och Academind är särskilt hjälpsamma.

5. Praktisk tillämpning
Börja smått med enkla projekt för att bygga upp din förståelse och skicklighet. Tillämpa det du lär dig genom att bygga små, hanterbara projekt som gradvis blir mer komplexa.

6. Gå med i gemenskaper
Engagera dig i utvecklargemenskaper online, som Stack Overflow, GitHub, eller Reddit’s /r/learnprogramming för att få stöd och feedback.

Tidsåtagande
Eftersom ni båda arbetar heltid, kan ni planera att avsätta 1-2 kvällar i veckan. Det är realistiskt att ni kan se tydlig framsteg över flera månader till ett år.

Avslutande tips
Var tålmodig och konsekvent med ditt lärande. Programmering kräver tid och praktik, men är mycket belönande när du ser dina program och appar komma till liv.

Permalänk
Medlem

Skulle rekommendera att ni tittar på Python Flask och Bootstrap om ni vill utveckla en webb-app

Permalänk
Medlem

Starta ett projekt med ett fast mål och försök komma fram till det som är målet. När ni stöter på problem så försöker ni lösa dem.
Inga kurser, böcker eller videos kommer att lära er så mycket som när ni försöker lösa era egna problem för att ta er framåt.
Dessutom kommer ni att lära er det ni verkligen har nytta av, inte vad någon annan tror att ni behöver.

Visa signatur

R&D Elektronikingenjör

Permalänk
Skrivet av MarkSix:

Skulle rekommendera att ni tittar på Python Flask och Bootstrap om ni vill utveckla en webb-app

Python är bra till mycket så jag skulle också gå den vägen

Permalänk
Medlem

En app funkar generellt såhär:
En app = frontend
Logik, lagring av data centralt, användare osv = backend.

Udemy.com är ett bra ställe där man kan köpa "youtube-kurser" som är väldigt genomgående, sök på React Native för att bygga frontenden och så får du säkerligen lite eller något tips via kursen på backend.

Alt. om du inte vill lära dig allt själv osv - hör med ditt lokala universitet om de finns studenter som har sommarkurser eller projekt kurser där de vill bygga något verkligt

( och bara för att folk skriver specifika språk och ramverk så måste jag skriva SPRING BOOT! )

Visa signatur

i5-8600k, 64GB 3200Mhz, Asus 3080Ti, Samsung 960 PRO 512GB, 2x Predator 27" IPS 1440p G-Sync 144Hz
- Citera gärna för svar! -

Permalänk
Medlem
Skrivet av jojomondag:

3. Mobilutveckling
För att utveckla appar som fungerar på både Android och iOS, är cross-platform verktyg som React Native eller Flutter bra alternativ.

Jag är inte utvecklare så det finns risk att jag tänker fel. Det kan väl vara värt att nämna att man istället för att bygga en app kan bygga ett webgränsnitt.

Visa signatur

thank you, come again

Permalänk
Medlem

Notera att om man bygger en "webbapp" kan den köras i mobiler med hjälp av webview, så ingen separat utveckling av mobilapp lär behövas.
Att börja lista olika tekniker är ganska lönlöst, men det låter som att en sk SPA (single page application) är det ni behöver.
Svaret på frågan om var man ska börja: research, research och mer research. Lär man sig rätt jargong (yrkesspråk) så kan man lättare söka sig fram till rätt svar.

Permalänk
Medlem
Skrivet av huxflux:

Jag är inte utvecklare så det finns risk att jag tänker fel. Det kan väl vara värt att nämna att man istället för att bygga en app kan bygga ett webgränsnitt.

Du har faktiskt en väldigt bra poäng, en mobilanpassad hemsida funkar ju ofta

Visa signatur

i5-8600k, 64GB 3200Mhz, Asus 3080Ti, Samsung 960 PRO 512GB, 2x Predator 27" IPS 1440p G-Sync 144Hz
- Citera gärna för svar! -

Permalänk
Medlem
Skrivet av Mordin:

Du har faktiskt en väldigt bra poäng, en mobilanpassad hemsida funkar ju ofta

Ja det handlar väl primärt om att få access till kalender och kunna visa notifikationer. På ett tidigare projekt jag jobbade med så hade vi en native-wrapper runt en webapp, just för att kunna komma åt saker som kamera, gps, notifikationer etc. Det var dock snart 10 år sedan så mycket har säkert hänt (apple var ju inte helt förtjusta om att man bara wrappade en webapp vet jag).

Men oavsett: börja med en webapp, lägg så mycket av logiken så möjligt server-side så har ni igen det sedan om ni vill köra en mobilapp. Ni kommer att lära er otroligt mycket om domänen genom att skriva webappen (som ni ju ändå behöver) detta ni har till godo när ni ska skriva er mobilapp.

Lycka till

Visa signatur

Att förespråka Mac på Swec är som att förespråka hybridbilar på en raggarträff i Mora.

Permalänk

bra svar!

Skrivet av huxflux:

Jag är inte utvecklare så det finns risk att jag tänker fel. Det kan väl vara värt att nämna att man istället för att bygga en app kan bygga ett webgränsnitt.

Vi vill att det ska vara ett webbaserat program och även en app(Android och IOS).

Jag tror de fortfarande befinner sig i idee fasen de har nog själva inte riktigt bestämt sig för vad de behöver/vill ha

Det ena behöver inte utesluta det andra. När man bygger med react är språket relativt likt för native som för webben.

Permalänk
Medlem
Skrivet av MarkSix:

Skulle rekommendera att ni tittar på Python Flask och Bootstrap om ni vill utveckla en webb-app

2012 ringde 🤣

Permalänk

Kan rekommendera den här sajten https://www.w3schools.com/

Där finns allt från grunderna i html till mobilanpassade webappar som pratar med en databas.

Permalänk

Varning. Programmering är beroendeframkallande, för många börja lite lugnt med en Hello World kodsnutt på en fest. Sedan är de fast i kodandet.

Nå TS projekt är lite väl stort att börja med, bättre att satsa på något enklare som ett VBA script i excel. Sedan kan man lära sig på programmering på hur många sätt som helst idag. Problemet är tid och det är då bra att man får lite tid tillbaka, vilket man kan få med excellösningen som jag nämnde.

För vanlig programmering rekommenderar jag en programmeringsbok som man följer. För helt nybörjare så är denna bok säkert bra, men så dyr: https://www.adlibris.com/se/bok/programmering-1-c-upplaga-2-9... Motsvarande bok finns dock gratis att låna på stadsbiblioteken.

Permalänk
Medlem
Skrivet av dlq84:

2012 ringde 🤣

Vad är det för fel på Flask? Det är super simpelt. Det är flexibelt och skalbart. Det är snabbt.

Vad anser du är bättre? Vad är 2024?

Visa signatur

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3

Permalänk
Medlem

Alla kurser du behöver finns gratis på nätet, t ex youtube.

Skulle rekommendera att undvika göra en ios/android app om möjligt och hålla det helt webbaserat. Få upp en app på app store är ju lika kul som en tarmsköljning.

Börjar gör ni med penna och papper och specar ner det ni vill göra. Sen bryter ni ut saker i små hanterbara uppgifter och sist prioriterar dem.

Sen var medvetna om att utveckling tar tid, även för erfarna programmerare. Det är några hundra timmar för en erfaren att göra en sådan här app.

Tekniker och ramverk kan man drunkna i lätt och det ändras hela tiden. Rekommenderar någon av de större så det finns mycket exempel att titta på.

Använd chatgpt 4 som sökmotor istället för att "googla' på saker så spar du många timmar.

Lycka till.

Permalänk
Medlem
Skrivet av dlq84:

2012 ringde 🤣

Ok trevligt att jag kunde roa dig! För att snabbt komma igång så tycker jag att Flask är ett bra alternativ att börja med.

Permalänk
Medlem

Jensen (Nvidia) sa nyligen...
Lär er inte att koda...

Det yrket å professionen är förlorad, precis som dem som stickade tröjor för inte så länge sedan...

Visa signatur

42? Seven and a half million years and all you can come up with is 42?!
► FD Define R2 | Win10Pro | i7-3770K | Hyper212+ SP120PWM | P8P67 PRO | CML8GX3M2A1600C9 | 1080 Ti | AX750 | Asus VG27WQ | Eizo S2100 | HP Z24n |► OnePlus 6 |

Permalänk
Medlem

Flutter är bra om man vill skapa mobilappar som inte är webgränssnitt.

Permalänk
Skrivet av xfade:

Jensen (Nvidia) sa nyligen...
Lär er inte att koda...

Det yrket å professionen är förlorad, precis som dem som stickade tröjor för inte så länge sedan...

Bättre exempel är den som utbildar sig till kock när det finns färdigmat att köpa..

Programmering kommer allt fler behöva kunna, ingen meningslös kunskap att lära sig. Arbetsmarknaden är sedan komplex, det är mer en fråga för de som tänker bli programmerare.

Det jag har emot vissa är att de ser det så himla enkelt att bli programmera. Jag syftar inte alls på TS. Men man ser trådar rätt som det är där någon har ett heltidsjobb och tänker lägga väldigt lite tid på sin fritid på att bli anställd som en systemutvecklare.
Jag själv ser detta lite som någon har ett heltidsjobb och sedan vill lägga väldigt lite fritid på att bli anställd som ett fotbollsproffs. Ja det går, men det är tufft när alla andra sliter som galningar sedan de var småbarn för att uppnå samma mål.

Permalänk
Medlem

betala för ai och be den koda 😂

Permalänk
Medlem

Jag gick grund kurs på högskola, men då specifikt för Android Studio. Är ganska mycket att ta in på ett halvår, men hade själv redan 1.5 års vana av programmering så gick ganska lätt för mig och verkar ha gått bra för andra som tog kursen också med mindre vana.

Helt på distans och kostar inget. Är ju oftast hyfsat strukturerat dessa kurser jämfört med random YouTuber där kvaliten kan skilja stort. Finns ju även kurser om skapa hemsidor också.

Visa signatur

Min spel rigg:FD Define R4|VX 550W|i5 2500K|Corsair LP 4GBX2|Mammabräda P67 Extreme4|GTX 670 windforce|23tum u2312hm
Min gamla/HTPC:AMD 6000+|Ram 2GbX2|Radeon HD5770| XFX 450/nu XFX 550
Mitt bygge: ByggloggFri frakt INET:Fraktfritt sweclockers vid köp över 500kr

#Gilla inlägg som är bra & Använd citera/@"namn" vid snabbt svar

Permalänk
Medlem

Kika om exempelvis www.retool.com skulle funka för att få fram en prototyp.

Om ni vill koda och få så mycket som möjligt gjort med så lite resurser som möjligt finns det bara ett alternativ: Ruby on Rails.

Permalänk
Medlem

Jag kör igenom denna just nu. Vet ej om den lämpar sig för ditt användningssyfte men tycker kursen i sig är väldigt bra.

https://java-programming.mooc.fi/

De har även en kurs för python

https://programming-24.mooc.fi/

Visa signatur

Ryzen 7 5700X3D | Sapphire Radeon RX 6900 XT SE | ASUS TUF GAMING X570-PLUS | Corsair Vengeance LPX 2x8 3600 mhz | Fractal Design Meshify C | Corsair Force Series MP510 960 GB | Corsair RM750x v2 | Gigabyte 27" M27Q 2560x1440 170 HZ | Acer Predator 32" XZ321QU 2560x1440 144 Hz

Permalänk
Medlem

Viktigaste i min bok är att lära sig bryta ner stora problem till små problem, lära sig läsa kod och förstå sammanhanget

Tror inte det är alls lika viktigt att tänka på eller bry sig om specifik miljö eller verktyg, dessa skiljer för många olika typer av problem

Skriver man för en hemsida så använder man inte ofta C, ofta finns det en grund man vill förbättra och behöver väldigt sällan börja om helt från början, då kan man använda de tekniker som redan är påbörjade och bygga ut dem

Permalänk
Medlem

Ert projekt är väldigt stort för totala nybörjare. Som du sett i tråden redan finns det lika många svar som det finns utvecklare. Så fort det kommer till webb är det en djungel och det dyker upp nya "lösningar" varje vecka. Jag vill därför ge er några konkreta små projekt att börja med så ni får en grundförståelse. Ni kan såklart slänga er på femtioelva färdiglösningar och ramverk, men risken är att ni blir överväldigade och inte får något gjort öht. Dessa steg är till för att kickstarta er förståelse, efter det kan ni dyka ner i hur ni faktiskt ska bygga er app. Många av förslagen nedanför är mer backend än frontend.

Fokusera inte så mycket på val av programmeringsspråk eller specifika lösningar. Om någon skriker till er att "ni ska använda x för det är senaste och bästa!" så gör dessa er en björntjänst. Som nybörjare måste ni lära er fundamentala kunskaper. Många specifika lösningar lär er inte grundkunskaper, det lär er hur ni använder den specifika lösningen. React är ett exempel på en specifik lösning där ni lär er mer om hur React fungerar än hur webbutveckling i grunden fungerar. Det riskerar låsa in er i tankesättet "hur får jag React att göra X" istället för att använda React när det passar.

En liten disclaimer. Ni säger att ni ska göra en webbapp med en mobilapp. Det betyder att ni gör en webbtjänst först och främst, er mobilapp är endast ett gränssnitt för att nyttja tjänsten. Mina förslag nedan utgår därför därifrån.

Hemsida med HTML/PHP/Javascript
Fixa en hemsida på valfri webhost som låter er komma åt FTP och lägga upp en hemsida. Förslagsvis cPanel med PHP och MySQL databas. Dessa är gamla som gatan och oerhört lätta att komma igång med. Fokusera endast på att få upp hemsidan i PHP i detta steg, skit i databasen. Designa inte en flashig sida, spotta bara ut lite enkel HTML som en länk eller något. Kolla gärna på htaccess bara för att känna till den. Det kan även vara bra att läsa på lite om Apache Server som sköter webbhostningen.

Detta ger er enklare förståelse i hostning.

Lär er "dev tools" i webbläsaren
Här föreslår jag Chrome-baserad webbläsare. Om ni trycker F12 får ni upp debugverktyg för den aktiva hemsidan. Ni kan göra allt från att inspektera HTML/CSS-layout, till ett se vilka JavaScript som laddas in, vilka anrop som görs, och lite annat smått och gott. Denna är grundläggande för att bevaka vad som händer på klientsidan. Ni kan ju testa köra lite JavaScript direkt i console.

Detta ger er en första introduktion till debugverktyg för webb.

Lär er GET och POST-anrop till en URL
Gör en enkel sida som hanterar GET och POST-anrop. Dessa är grundläggande för "API requests", som är ett fint ord för att be om information från en länk som spottar tillbaka data som inte nödvändigtvis är en hemsida. httpbin.org är en exempel-sida för att testa olika anrop. Om du öppnar t.ex. httpbin.org/ip så ser du att du får bara text tillbaka i ett format som kallas för JSON. Försök att göra en PHP-sida som kan hantera POST och spotta ut olika resultat beroende på vad du skickar till den. Det finns olika verktyg för att generera anrop, t.ex. RestMan Chrome Plugin i webbläsaren. Ni kan också använda cURL direkt i terminalen/cmd/console. Hitta gärna olika hemsidor med APIer och testa göra anrop och se vad ni får.

Detta ger er förståelse i hur ni kommunicerar med en webbserver via web API-anrop. API-design är mycket mer invecklat än så här men ni måste börja någonstans.

Lär er JSON, YAML eller XML
Dessa är text-standarder för att skicka data. JSON är vanligast och enklast att förstå, "you can't go wrong with it". Skicka och ta emot data till er sida med POST med JSON och försök göra något mer avancerat med det. Ni kan se dessa format som sätt att skicka standardiserad data mellan er app/klient och servern. Det är er uppgift att bearbeta datan och presentera det för användaren i ett senare skede.

Här lär ni er serialisering av data i läsbart textformat. Detta är obligatoriskt för all webbutveckling.

Kolla på base64 encoding
Detta är ett sätt att konvertera valfri data till en textsträng och tillbaka. I Javascript, spara en bild eller <canvas> som base64 med toDataURL och skicka den strängen till din PHP-sida. Försök sedan få tillbaka den som textsträng och återskapa till bild. base64 förekommer ibland för "data blobs" och sparas i databaser. Ni behöver mest känna till att det finns när ni väl börjar använda existerande lösningar.

Detta ger er förståelse i att det ni ser i applikationer ibland måste bearbetas och sparas i annat format i bakgrunden osynligt för användaren.

Spara saker i databasen
Om ni har en host med MySQL så har ni troligtvis phpMyAdmin. Här kan ni sätta upp hur er databas ser ut. En databas används för att spara undan "persistent information". Användarinformation, uppladdade bilder, inlägg, o.s.v. Skicka upp text eller bilder med POST-anrop till en PHP-url och spara informationen i databasen. Använd en annan PHP-sida för att kolla på det uppladdade innehåller.

Detta ger er en enklare förståelse för relationsdatabaser och hur ni sparar/hämtar information. När ni är bekväm med MySQL så kan ni gå ut och söka i djungeln kring databaser som PostgreSQL, Redis, InfluxDB. De har helt olika syften, MySQL räcker ofta långt.

Webhooks och botar
I samma spår som GET och POST kan ni göra ett försök till att bygga en Discord eller Telegram-bot. Dessa är program som sitter och väntar på anrop från andra servrar. Ni kan köra en PHP-sida som pingar en Discord-bot som sedan spottar ut något i en av era chat-kanaler.

Detta ger er en försmak för hur ni kan automatisera flöden genom att studsa mellan olika services. Det kan dessutom spåra ut i väldigt många roliga sidoprojekt.

Åtkomst via SSH
Secure Shell (SSH) är ett standardsätt för att komma åt webbservrar och liknande via terminalen/console. Detta är fundamentalt för utvecklare. Om er nuvarande webhost inte har SSH-åtkomst, för att ni kör en billig PHP-host med cPanel, testa släng upp en droplet på DigitalOcean. Droplet är bara deras marknasföringsnamn för en virtualiserad mini-server som körs på gemensam hårdvara med andra användare.

Om ni råkar sitta på en RaspberryPi så kan ni lära er hur ni sätter upp SSH-åtkomst till den i Linux. Det finns gott om RPI-guider för detta. Då kan ni använda terminalen på en dator och styra er RPI på distans. Samma princip som för webbhosts.

Att jobba med SSH och terminalkommandon är fundamentalt.

Mer automatisering med Node-RED
Släng upp en Node-RED på StackHero eller annan host som är enkel att använda. Node-RED är superenkelt att leka med. Ni drar och släpper noder och kan snabbt göra flöden som "om någon skickar ett meddelande till URL, skicka ett mail, pinga en bot, o.s.v.". Node-RED är egentligen bäst för mindre automatisering som IoT-enheter (typ värmesensorer som loggar data). Det är dock väldigt enkelt och roligt för att testa flöden innan man bygger något större.

Detta bygger vidare på lekstugan så ni kan göra lite roliga saker.

Testa cross-platform dev
När ni ska bygga appar så behöver ni känna till att olika platformar/enheter kräver olika implementationer. (Desktop, Mobile) (MacOS, Windows, iOS, Android) Detta gör att det finns cross-platform-lösningar, lösningar där ni bygger på ett ställe och kan köra på flera platformar. Detta är en djungel. Börja testa något välanvänt som ElectronJS. Om det duger för Discord, Trello och Dropbox så borde det duga för er. Electron låter er bygga appen som en hemsida men ändå komma åt enhetsspecifika funktioner som att ta bild med kameran. Försök få ut appen både till Desktop och Android (eller vad ni nu har). Krångla inte till det! Försök bara göra en funktion, typ en knapp, som syns på enheterna ni bygger för.

Här kommer ni närmare "vanlig" programmering där ni behöver göra anrop via JavaScript till enhetens funktioner.

Testa lokal databas med SQLite
SQLite är den absolut vanligaste "offline-databasen" som nyttjas för program lokalt på din telefon eller dator. Den använder liknande syntax som MySQL. Detta är något som ibland används för att spegla resultat som finns på en webbserver så du inte behöver ladda om en massa data hela tiden. SQLite används för övrigt i massa datorspel för att hålla koll på hela spelvärldens status (har du plockat föremålet, var finns det fiender, har en boss avslutats, o.s.v).

Detta är lite överkurs.

Sen då?
Välkommen till resten av träsket. Databaser som Redis, PostgreSQL, InfluxDB, o.s.v. Frontend som React, VueJS, AngularJS. App dev med Android Studio. Container hosting med Docker och NAS-enheter. Routing med nginx. Det finns så många lösningar att vissa youtubekanaler som Fireship kan existera endast på att sammanfatta lösningar på ett skämstamt sätt och aldrig få slut på ämnen.

Visa signatur

Jag har kvar min gamla avatar som en påminnelse om att även jag har varit ung och dum. Idag är jag, tack och lov, bara dum.