Permalänk
Medlem

Programmeringsspråk mm.

Hej Sweclockers!

Jag har precis börjat Gymnasiet (2mån in) och går teknik-linjen. Jag undrar vilket programmeringsspråk skulle vara ett bra första språk att lära sig? C# Säger mina polare är bra men jag har ingen aning själv. Behöver lite vägledning då teknikläraren är sjuk hela veckan . Jag vill lära mig antingen webbdesign eller enstaka appar (till windows).

Permalänk
Medlem
Permalänk
Medlem
Skrivet av ronnylov:

Jag har börjat och programmera med Python och Javascript på http://www.codeacademy.com...Är det värt att fortsätta på codeacademy? Tror du att man lär sig bra där? : )

Permalänk
Medlem

C# är väldigt enklet att komma in i och du får väldigt mycket hjälp visual studios. C# går även använda på webben dock inte i appar.

Permalänk
Avstängd
Skrivet av Craxx:

C# är väldigt enklet att komma in i och du får väldigt mycket hjälp visual studios. C# går även använda på webben dock inte i appar.

Om man verkligen vill kan man använda C# för de tre största plattformarna (iOS, Android och WP)

Visa signatur
Permalänk
Medlem
Skrivet av Craxx:

C# är väldigt enklet att komma in i och du får väldigt mycket hjälp visual studios. C# går även använda på webben dock inte i appar.

C# går att använda utan problem till appar i WIndows 8/8.1 och Windows Phone.
Ska väl gå med lite trixande äve till Android och iOS.

Permalänk
Medlem

Ingen kan säga vilket språk som är bäst för dig, för allt beror på vad du planerar att använda det till, hur mycket tålamod du har osv...

Om du är måttligt intresserad av programmering och har måttligt tålamod, så skulle jag absolut hålla med om att C# är det bästa språket. Du får C++ och Java i princip gratis då de är så lika varandra. Med de tre språken kan du sedan programmera mer eller mindre allt från drivrutiner till webbappar.

Jag personligen ser gärna resultat snabbt, och kan ha lite kort tålamod, så för mig var det bästa språket att börja med VB.NET. Då fick man resultat snabbt och man förstod vad man gjorde, allt var inte bara Copy-Paste från internet. Bra för att lära sig alla grunder till OOP programmering, och programmering överlag. Dessutom så är VB.NET lika kraftfullt som C#, så man förlorar ju inte prestanda där heller då båda använder sig av .NET library.

Sen från C# eller VB.NET, så gå över till WPF så snabbt du förstår grunderna. WPF är otroligt mycket mer kraftfullt när det kommer till visuella och media saker, men kan vara svårt att få grepp om, om man har stängt in sig i sin lilla låda med C# eller VB för tidigt.

Visa signatur

That which does not kill me makes me stronger. That which does kill me I'll deal with when I respawn.

Permalänk

Nu skulle ju TS specifikt bygga appar till Windows så en kombination av C#, HTML5 och JavaScript är kalas. Dessutom kan du lätt få jobb inom dessa teknologier senare i livet.

Permalänk
Medlem

Personligen började jag med två C++ kurser i 3an på natur bra grund att börja med imo

Freddie

Visa signatur

Chassi: Antec 902 - CPU: Intel i5 6800k + Corsair Hydro H100 - GPU: Gigabyte GTX 1070 - PSU: Fractal Design Tesla 650w80+ - Moderkort: Asus Prime- RAM: 16 GB 1600 Corsair vengance LP - OS: Windows 10 Pro - SSDs: Intel 330 120gb, Intel 335 240gb HDD: WB Blue 1tb, Hitachi 500gb QNIX QX2710 2560x1440
Laptop: Acer E1-571, i7-3632QM Windows 10

Permalänk
Medlem
Skrivet av skurtbert:

Nu skulle ju TS specifikt bygga appar till Windows så en kombination av C#, HTML5 och JavaScript är kalas. Dessutom kan du lätt få jobb inom dessa teknologier senare i livet.

Låter bra!

Jag bryr mig mest om att språket inte är uråldrigt och att det går att använda flera år framåt. Vissa påstår att Python är uråldrigt, t.ex.

Och jag har inga vidare kunskaper om detta ämne JUST NU.

Permalänk
Medlem

Detta är en vanlig fråga och många komemr med tipps utifrån språk de själva kan/tycker om osv. En sak som dock ofta glöms bort är att det viktiga när man börjar lära sig programmering är att lära sig just programmering, inte ett specifikt språk. Vill man lära sig procedurell programmering, funktionell prorgammering, objekt orienterat programmering etc?
Där bör man börja sina funderingar. Sedan välja ett språk som stödjer den paradigm man önskar lära sig. Vet man inte vad de olika paradigmerna är bör man läsa lite kort om det FÖRST. Sedan göra ett val. Att hoppa på C# eller något utan att veta i princip någonting kommer med stor sannolikhet bara betyda att man kommer få lära om sig hur man faktiskt skall göra ju mer man lär sig. Och istället på att initialkt ha fokus på att lära sig tankesättet så fokuserar man på att lära sig en given syntax.

Men lär man sig sättet att tänka så är språket mindre viktigt. Man kan rellativt snabbt sätta sig med ett nytt språk och förstå hur det hänger ihop för man har en gedigen grund att stå på.

Ett tipps kan vara att börja utveckla procedurellt, förenklat tänkt är ditt program då en lista med instruktioner som datorn skall utföra. Sedan kan man gå vidare till tex objekt orienterat (och har då mycket med sig från det procedurella redan) och sedan viadre och titta på funktinell programmering och få en massa nya insikter.

Ruby eller liknande på CodeAcademy fungerar fint som någon form av introduktion, men glöm som sagt inte bort att skaffa dig basen. Utan den så byggs allt annat på en bräcklig grund. Det kan självklart hålla länge ändå, men när felsökning leder en ner till cpu register eller liknande och det enda man egentligen kan är C# syntax så är man rätt lost om man inte förstår helheten.

Jag förstår att detta kan låta som mycket och överväldigande. Men det fina i kråksången är att ju stabilare grund du har och ju mer fundamentala saker du förstår desto snabbare kommer du lära dig allt det andra. Så man är snart ifatt och förbi de vars lågnivåkunnande representeras av C#.

Lycka till, och ha skoj!

Visa signatur

Huvudriggen är en Gigabyte Aorus Xtreme | 128gb DDR5 6000 | Ryzen 7950X | 3080Ti
Utöver det är det för många datorer, boxar och servar för att lista :P

Permalänk
Medlem
Skrivet av Miniturtlex:

Låter bra!

Jag bryr mig mest om att språket inte är uråldrigt och att det går att använda flera år framåt. Vissa påstår att Python är uråldrigt, t.ex.

Och jag har inga vidare kunskaper om detta ämne JUST NU.

C++ som fortfarande är ett av världen mest använda språk har över 30 år på nacken och en ny standard kom får knappt ett år sedan. Så att ett språk är gammalt behöver inte vara negativt. Nya språk har istället en tendens att poppa upp, och sedan försvinna då ingen utvecklar det vidare etc. Då är det surt och ha lagt all sin tid på att lära sig just det språket.

Visa signatur

Huvudriggen är en Gigabyte Aorus Xtreme | 128gb DDR5 6000 | Ryzen 7950X | 3080Ti
Utöver det är det för många datorer, boxar och servar för att lista :P

Permalänk
Medlem

Är det uråldrigt (och alltså har överlevt lång tid) kanske det har större chans att finnas kvar i någorlunda stabil form flera år framåt än något nytt som hela tiden ändras? Python är dock inte särskilt gammalt (uppfanns i slutet av 1980-talet). C# är så pass nytt så det kanske bara blir en tillfällig parentes i historien, vem vet? Själv tror jag inte Windows har någon lysande framtid på sikt så jag är skeptisk till att låsa in sig på den plattformen. Visst mono finns så man kan använda C# till andra plattformar men det används knappt i praktiken.

Lärde mig själv en del C# när jag körde Windows men det känns halvt bortkastat för egen del eftersom jag sedan bytte till Linux och slängde ut Windows. På Linux är Python mer användbart än C# (trots att mono finns). Just nu är jag mer intresserad av programmering i C (alltså inte C#) eftersom jag gillar pyssla med mikroprocessorer och sådant. C har väl funnits i 40 år men används fortfarande flitigt och kommer säkerligen finnas många år framöver. Har fortfarande nytta av det jag lärde mig om C när jag gick på högskolan i slutet av 1980-talet. Men C# och C har en del gemensamt så kan man det ena är det inte jättesvårt att lära sig det andra. Största skillnaden är att med C# får man lära sig objektorienterad programmering. Men detta finns även i Python och är alltså inget unikt för C#. Även java (som är ganska likt C#) är objektorienterat.

Rent allmänt så kan det nog kvitta vilket språk man börjar med. Huvudsaken är att man får lära sig hur man tänker programmeringsmässigt. Förstår man grundprinciperna kan man lätt lära sig använda andra programmeringsspråk om man vill det. Själv tycker jag det känns bra att börja med något hårdvarunära som C så att man får förståelse för hur en dator fungerar, men den allmänna rekommendationen brukar vara att man ska gå från andra hållet, något högnivåspråk först och sedan lära sig hur det fungerar på hårdvaran. Det är väl en smaksak.

Permalänk
Medlem
Skrivet av siggen:

Ingen kan säga vilket språk som är bäst för dig, för allt beror på vad du planerar att använda det till, hur mycket tålamod du har osv...

Om du är måttligt intresserad av programmering och har måttligt tålamod, så skulle jag absolut hålla med om att C# är det bästa språket. Du får C++ och Java i princip gratis då de är så lika varandra.

Att syntaxen i sig kan vara lik betyder inte att språken inte har stora fundamentala skillnader. Det är detta jag menar när jag talar om att ha grunden. Har man inte det är det jättelätt att titta på koden och tycka den är lik. Men hur den egentligen exekveras och vad som egentligen sker och vad det kostar i resurser skiljer sig radikalt.

Om det första man möäter är C# och man sedan ställs inför C++ så kan man tycka syntaxen är lik men C++ verkar stenålder då jag måste komma ihåg att frigöra minne osv och helt missa att det finns massor med situationer då denna kontroll är extremt bra och helt nödvändig. Att ha den insikten och kunna dra sådana slutsattser bör vara något man lär sig och som sitter i ryggraden.

Därför repeterar jag. Lär dig konsten bakom utvecklingen inte syntaxen i ett givet språk.
Sedan kommer det alltid att finnas saker att lära om fundamenten då de ändras och skiljer sig om du sitter på Windows eller Linux, OSX eller BSD om du kodar C++, C#, Delphi etc.

Sedan beror det självklart på vad man vill göra., Vill man vara en Code Monkey, dvs någon som blir tillsagd vad hans kall koda och som skriver justd en koden, då kan man komma långt ändå. Men om man vill kunna designa och skapa komplexa systemlösningar så är det otroligt viktigt att ha detta med sig.
Det kan ofta ske att man kommer på stora delar av ett komplext system innan deffinitiva utvecklingsspråk eller miljöer är satta. Då spelar ens kunskaper om syntax ingen avgörande roll. Utan då är det de grundläggande kunskaperna om utveckling, system och generella lösningar etc som är det viktiga. Detta ger en också friheten att välja språk utifrån hur ens optimala lösning ser ut. Istället för att tvingas anspassa sin lösning till det språk man råkar kunna.

Visa signatur

Huvudriggen är en Gigabyte Aorus Xtreme | 128gb DDR5 6000 | Ryzen 7950X | 3080Ti
Utöver det är det för många datorer, boxar och servar för att lista :P

Permalänk
Medlem
Skrivet av inquam:

Att syntaxen i sig kan vara lik betyder inte att språken inte har stora fundamentala skillnader. Det är detta jag menar när jag talar om att ha grunden. Har man inte det är det jättelätt att titta på koden och tycka den är lik. Men hur den egentligen exekveras och vad som egentligen sker och vad det kostar i resurser skiljer sig radikalt.

Om det första man möäter är C# och man sedan ställs inför C++ så kan man tycka syntaxen är lik men C++ verkar stenålder då jag måste komma ihåg att frigöra minne osv och helt missa att det finns massor med situationer då denna kontroll är extremt bra och helt nödvändig. Att ha den insikten och kunna dra sådana slutsattser bör vara något man lär sig och som sitter i ryggraden.

Därför repeterar jag. Lär dig konsten bakom utvecklingen inte syntaxen i ett givet språk.
Sedan kommer det alltid att finnas saker att lära om fundamenten då de ändras och skiljer sig om du sitter på Windows eller Linux, OSX eller BSD om du kodar C++, C#, Delphi etc.

Sedan beror det självklart på vad man vill göra., Vill man vara en Code Monkey, dvs någon som blir tillsagd vad hans kall koda och som skriver justd en koden, då kan man komma långt ändå. Men om man vill kunna designa och skapa komplexa systemlösningar så är det otroligt viktigt att ha detta med sig.
Det kan ofta ske att man kommer på stora delar av ett komplext system innan deffinitiva utvecklingsspråk eller miljöer är satta. Då spelar ens kunskaper om syntax ingen avgörande roll. Utan då är det de grundläggande kunskaperna om utveckling, system och generella lösningar etc som är det viktiga. Detta ger en också friheten att välja språk utifrån hur ens optimala lösning ser ut. Istället för att tvingas anspassa sin lösning till det språk man råkar kunna.

Det är sant, men ändå inte. C++, Java och C# är lika varandra i just syntaxen, men det finns inget mer tidskrävande än att hålla på och leta upp hur man skall skriva olika metoder och syntax hela tiden när man programmerar. Det är tyvärr också så att många jag känner som gjort så som du säger, lära sig hur språket exkaverar innan de lär sig att faktiskt skriva det, tröttnat på att lära sig olika språk då mer eller mindre alla språk exkaverar olika. Det tar lång tid att lära sig, och man skall nog ha ett väldigt stort intresse av att lära sig programmering på mer än hobbynivå då om det skall fungera. Dock så har du rätt på den punkten att det kan vara bra att veta hur datorn fungerar mer "plåt-nära". Jag körde först VB som sagt, men började använde ASSAMBLER samtidigt då jag programmerar PIC processorer. Så jag fick ju grunden där... Men ASSAMBLER är inget jag rekomenderar som förstaspråk, såvida man inte skall skriva kernel eller liknande. Fy fagerlund vad man fick skrivkramp!

PS: C är ett språk som jag aldrig skulle ha valt att lära mig igen om jag skulle tappa minnet. Skulle lagt den tiden på att jaga flickor istället. C++ har allt och lite till som C har (i princip), och så mycket mer. Finns ingen anledning att lära sig C någe mera om man frågar mig, då det är ett föråldrat språk. Alla funktioner finns i smartare lösningar. Totalt bortkastad tid.

Visa signatur

That which does not kill me makes me stronger. That which does kill me I'll deal with when I respawn.

Permalänk
Medlem
Skrivet av siggen:

Det är sant, men ändå inte. C++, Java och C# är lika varandra i just syntaxen, men det finns inget mer tidskrävande än att hålla på och leta upp hur man skall skriva olika metoder och syntax hela tiden när man programmerar. Det är tyvärr också så att många jag känner som gjort så som du säger, lära sig hur språket exkaverar innan de lär sig att faktiskt skriva det, tröttnat på att lära sig olika språk då mer eller mindre alla språk exkaverar olika. Det tar lång tid att lära sig, och man skall nog ha ett väldigt stort intresse av att lära sig programmering på mer än hobbynivå då om det skall fungera. Dock så har du rätt på den punkten att det kan vara bra att veta hur datorn fungerar mer "plåt-nära". Jag körde först VB som sagt, men började använde ASSAMBLER samtidigt då jag programmerar PIC processorer. Så jag fick ju grunden där... Men ASSAMBLER är inget jag rekomenderar som förstaspråk, såvida man inte skall skriva kernel eller liknande. Fy fagerlund vad man fick skrivkramp!

PS: C är ett språk som jag aldrig skulle ha valt att lära mig igen om jag skulle tappa minnet. Skulle lagt den tiden på att jaga flickor istället. C++ har allt och lite till som C har (i princip), och så mycket mer. Finns ingen anledning att lära sig C någe mera om man frågar mig, då det är ett föråldrat språk. Alla funktioner finns i smartare lösningar. Totalt bortkastad tid.

Så det var därför du hellre programmerade PIC-processorn med assembler istället för C?
C är fortfarande väldigt gångbart, särskilt om man kör mikroprocessorer.

Permalänk
Medlem
Skrivet av ronnylov:

Så det var därför du hellre programmerade PIC-processorn med assembler istället för C?
C är fortfarande väldigt gångbart, särskilt om man kör mikroprocessorer.

C lärde jag mig först långt senare. Hittade ett bra forum för ASSAMBLER och PIC, så det va de jag körde på.
Visst är C bra för mikroprocessorer, men det finns kompilatorer för VB också ^^.
Dessutom är jag glad att jag lärde mig assambler, för i det kan man programmera allt som kan bli programmerat. Nästan så att
brödrosten blev trimmad!

Visa signatur

That which does not kill me makes me stronger. That which does kill me I'll deal with when I respawn.

Permalänk
Medlem

Jag skulle faktiskt inte vilja säga att assembler är helt fel att titta på :)... Boken "Programming from the ground up" börjar med just assembler och får en att förstå hur mycket hänger ihop. Efter att ha läst igenom den när jag inte hade något att göra så önskar jag att det var en bok jag hade läst för ca 15-20 år sedan

Det jag tycker det skall handla om måste inte vara exekveringsvägarna i varje enskillt språk, men förståelsen för hur maskineriet och lagarna bakom fungerar. En liknelse med mattematik hade kunnat vara att istället för att lära sig att

1+2=3

så anser jag det bättre att lära sig "från grunden och uppåt" och börja med exempelvis

I II III osv...

sedan att operatorn + tar det på vänster sida och adderar det med det på höger sida

I + II = III IIIII + IIIII = IIIIIIIIII

osv, för att sedan lära sig att för att slippa skiva IIIII så ger vi dem "alias"

= 0 I = 1 II = 2 III = 3 IIII = 4 IIIII = 5 IIIIII = 6 IIIIIII = 7 IIIIIIII = 8 IIIIIIIII = 9

Så att

I + II = III

kan skrivs på formen

1 + 2 = 3

Sedan kan man introducera alla fördelar med vårt nuvarande talsystem där positionen av en av våra definerade alias i ett tal bestämmer dess värde.

1234 = (1 * 1000) + (2 * 100) + (3 * 10) + (4 * 1)

Men har man lärt sig de grundläggande reglerna på en grundläggande nivå istället för att lära oss syntaxen vi kommer använda

III

istället för

3

så kommer man också förstå det man sysslar med på ett helt annat sätt och kommer inte vara begränsad av sin syntax utan kan istället börja skriva något som ser helt annorlunda ut, men som betyder samma sak

I = I II = II III = III IIII = IV IIIII = V IIIIII = VI IIIIIII = VII IIIIIIII = VIII IIIIIIIII = IX

Självklart får man lära sig en ny syntax, men de grundläggande reglerna bakom är de samma. + tar fortfarande det som finns på vänster sida och adderar det med det som finns på höger sida. Och om man har dem som fundament istället för en abstraherad syntax så kommer många saker som verkar klurigt för andra att fröstå att bli mycket enklare.

Visa signatur

Huvudriggen är en Gigabyte Aorus Xtreme | 128gb DDR5 6000 | Ryzen 7950X | 3080Ti
Utöver det är det för många datorer, boxar och servar för att lista :P

Permalänk

Är du intresserad av webb är C# inte fel väg att gå, garanterat framtidssäkert och utvecklas kontinuerligt, efterfrågas flitigt i jobbannonserna.

Visa signatur

Dator: MB: Gigabyte Z390 M GAMING mATX | CPU: Intel Core i9 9900K 3.6 GHz (Haswell) | RAM: Corsair 16GB (KIT) 3200Mhz Vengeance LPX | Grafikkort: ASUS GeForce RTX 3060 12GB PHOENIX V2 (LHR) | Chassi: Fractal Design Mini | PSU: Corsair RM750X 750W v2 | Optisk: ASUS BW-12B1ST Blu-Ray/DVD brännare | CPU-kylare: Noctua NH-U12S | Operativ: Windows 11 | Scanner: Canon Canoscan 9000F
Övrigt: Nintendo Switch, NES Mini, SNES Mini, Nintendo New 3DS, NES, Famicom AV, Famicom Disk System, PS3, PS5, AppleTV 4K, Synology NAS DS923+ (32GB), iPhone 14 Pro 128GB, LG OLED 55C2,

Permalänk
Medlem

Tycker du ska satsa på VB eller C#

Visa signatur

Intel Core i7 7700K 4,2GHz - MSI GeForce GTX 1080 Ti 11GB Gaming X - Corsair LPX 16GB, DDR4 3000Mhz - ASUS PRIME Z270-A - Fractal Design Define R5 - Cooler Master 212 EVO - Corsair AX860 80+ Platinum - A-DATA SSD Premier Pro SP900 128GB, Samsung 960 EVO 250GB - Kingston v400 120 GB - Windows 10 Pro 64-bit
2x Dell U2515H IPS 1440p - ath-m50x & Mod Mic - Asus STX - Oculus Rift + Touch

Permalänk
Datavetare

Vill man jobba som konsult och spendera dagarna med att integrera olika komponenter med varandra så är C# ett säkert val, framförallt i Sverige där Microsoft-teknik används väldigt frekvent bland företagen. Lätt att få jobb och helt OK lön, riktigt bra lön om man jobbar i en storstad.

Vill man jobba med att utveckla nya produkter och/eller skriva system för extrema miljöer ska man nog titta på C++ (majoriteten av alla "riktiga" Windows-applikationer skrivs fortfarande i C++) eller C (vid utveckling för inbyggda system används i princip uteslutande C, majoriteten av alla *NIX-program är utvecklade i C).

En del har sagts om C i denna tråd, men vet inte riktigt om det gör språket rättvisa.

  • C är inte en delmängd av C++, finns flera väldigt användbara saker i C som saknas i C++. En gång i tiden var C++ "C with classes" och då var C en delmängd av C++ men det var på 80-talet...

  • C är, trots sina >40år, tillsammans med Java och C++ världens mest använda programmerings-språk. I Sverge har vi tyvärr relativt sätt väldigt liten utveckling av produkter jämfört med storleken på IT-sektorn, så här är marknaden för C-programmerare mindre (men Telecom-bolagen kör oftare C än något annat språk, finns även en hel del mindre företag som jobbar med inbyggda-system).

  • 64-bitars ARM. Om 64-bitars ARM tar fart, och allt pekar väl på att så blir fallet, så kan man ha i bakhuvudet att Aarch64 (instruktionsuppsättning + minneskonsistensmodell) designades specifikt för att så bra som möjligt passa den modell som C11 och C++11 (båda dessa språk fick en ny standard 2011) använder. I.e. ARM har specifikt sagt att man designade CPUn för att passa dessa språk. Tror inte det kommer försämra populariteten. Vad det gäller minneskonsistenmodell (viktigt vid utveckling och optimering av program som kör på flera CPU-kärnor) så "kopierade" C11/C++11 Javas modell rakt av, så även Java gynnas. C# (eller rättare sagt CIL) har en väldigt snarlik minnenskonsistensmodell men den är "kopierad" från x86.

För enstaka appar till Windows fungerar naturligtvis C# bra (men tänker du göra något icke-trivialt kan du funderar varför MS själva fortfarande alltid kör C++...). För webbutveckling är C# ett väldigt bra val, men Java fungerar också (och man slipper inlåsning till OS + får bättre runtime-prestanda även på Win).

Men frågan är om inte JavaScript kommer bli allt mer populärt för webbutveckling då man kan hålla sig till ett språk på både klient och server. Man kan göra riktigt högpresterande saker i JS + node.js. Personligen gillar jag inte dynamiskt typade språk, men MS jobbar ju på TypeScript som ser riktigt intressant ut, output från TypeScript är JavaScript.

Slutklämmen är ändå: vilket språk du väljer är i slutändan sekundärt om målet är att läsa sig programmera. Om dina kompisar kan C# så verkar det ju vara ett bra val så du lätt kan få hjälp!

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

Jag skulle hoppa på någon av C-språken eftersom att de alla är så lika varandra.

C, C#, C++, Objective-C, Java, Javascript, PHP eller Perl.

Men framför allt tycker jag du ska sätta dig in i Objekt Orienterad programmering!
Har du inte koll på det så blir det svårt att hoppa på större projekt!

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk
Medlem

Det viktigaste är att du börjar någonstans och sen om du inte är nöjd med språket då är det bara att byta. Däremot skall du inte ge upp för tidigt då det kan ta en stund att komma in i det.

Permalänk
Avstängd

Håller med dig i mycket v.v men fastnande för denna

(men tänker du göra något icke-trivialt kan du funderar varför MS själva fortfarande alltid kör C++...)

Du kan ju inte vara så inlåst att du tror att man inte kan göra icke trivial system på .NET.
Bara för att ett system inte är ett styrsystem för en månlandare betyder inte det att det inte är avancerat. Att utveckla affärssystem har helt andra problem än de system du är van vid att utveckla, din grundarkitektur måste vara enkel för nya utvecklare att sätta sig in i, du måste minimera risken för buggar, du måste tänka på saker som TDD, BDD, specification by example, deployment, maintainability, versionshantering/migrering av data etc

Håller med dig att statiskt typade språk är att föredra för backends, nackdelen är bara att när man måste lämna det så blir det så otroligt segt (Och vill man göra ett bra API för sina utvecklare att jobba i måste man köra lite dynamiskt även i backend, ett bra exempel är tex CQRS där är det svårt att köra statiskt typat hela vägen).

För UI är det precis tvärt om där är det helt värdelöst att köra statiskt typat, kolla bara på WPF eller ASP.NET MVC, de är fulla av reflection för att komma runt problemet. Om 50% eller mer av feturesettet kräver reflection kanske man bör fundera över om statiskt typat är rätt väg

Angående Typescript, jag gillar det, speciellt nu när generic stöds (Innan dess var det i princip oanvändbart) för tex node.js backends är detta guld, men att använda det I frontend dödar lite tanken med att använda JS. Jag har funderat på att använda Typescript i mitt nya system som jag ska designa nästa år, det är ungefär 20 utvecklare som ska använda mitt API och då är det grymt bra med statiskt typat (Minskar risken för buggar). Tänkte göra det så att UI-apiet jag designar gör jag dynamiskt i vanilla JS och sedan får utvecklarna göra alla vy-modeller (features) i Typescript

Sist men inte minst ett litet exempel varför dynamiska språk är så nice i UI
http://jsfiddle.net/3Ajnj/1/

Fiddlen ovan använder mitt Convention ramverk för KnockoutJS, allt du som utvecklare behöver speca är data-name="save" by convention och tack vare att JS är dynamiskt så resolvar den save funktionen hookar upp det mot clickeventet, den upptäcker även en canSave medlem och använder denna för att låsa knappen om canSave blir false

Visa signatur
Permalänk
Medlem
Skrivet av inquam:

Detta är en vanlig fråga och många komemr med tipps utifrån språk de själva kan/tycker om osv. En sak som dock ofta glöms bort är att det viktiga när man börjar lära sig programmering är att lära sig just programmering, inte ett specifikt språk. Vill man lära sig procedurell programmering, funktionell prorgammering, objekt orienterat programmering etc?
Där bör man börja sina funderingar. Sedan välja ett språk som stödjer den paradigm man önskar lära sig. Vet man inte vad de olika paradigmerna är bör man läsa lite kort om det FÖRST. Sedan göra ett val. Att hoppa på C# eller något utan att veta i princip någonting kommer med stor sannolikhet bara betyda att man kommer få lära om sig hur man faktiskt skall göra ju mer man lär sig. Och istället på att initialkt ha fokus på att lära sig tankesättet så fokuserar man på att lära sig en given syntax.

Men lär man sig sättet att tänka så är språket mindre viktigt. Man kan rellativt snabbt sätta sig med ett nytt språk och förstå hur det hänger ihop för man har en gedigen grund att stå på.

Ett tipps kan vara att börja utveckla procedurellt, förenklat tänkt är ditt program då en lista med instruktioner som datorn skall utföra. Sedan kan man gå vidare till tex objekt orienterat (och har då mycket med sig från det procedurella redan) och sedan viadre och titta på funktinell programmering och få en massa nya insikter.

Ruby eller liknande på CodeAcademy fungerar fint som någon form av introduktion, men glöm som sagt inte bort att skaffa dig basen. Utan den så byggs allt annat på en bräcklig grund. Det kan självklart hålla länge ändå, men när felsökning leder en ner till cpu register eller liknande och det enda man egentligen kan är C# syntax så är man rätt lost om man inte förstår helheten.

Jag förstår att detta kan låta som mycket och överväldigande. Men det fina i kråksången är att ju stabilare grund du har och ju mer fundamentala saker du förstår desto snabbare kommer du lära dig allt det andra. Så man är snart ifatt och förbi de vars lågnivåkunnande representeras av C#.

Lycka till, och ha skoj!

Har faktiskt börjat lite på CodeAcademy för nån vecka sedan (som sagt) men jag tog Javascript som första språk eller vad man nu säger. Tjänar jag mer på att byta till Ruby eller något annat?

Skrivet av inquam:

C++ som fortfarande är ett av världen mest använda språk har över 30 år på nacken och en ny standard kom får knappt ett år sedan. Så att ett språk är gammalt behöver inte vara negativt. Nya språk har istället en tendens att poppa upp, och sedan försvinna då ingen utvecklar det vidare etc. Då är det surt och ha lagt all sin tid på att lära sig just det språket.

Ok =P

Skrivet av ronnylov:

Är det uråldrigt (och alltså har överlevt lång tid) kanske det har större chans att finnas kvar i någorlunda stabil form flera år framåt än något nytt som hela tiden ändras? Python är dock inte särskilt gammalt (uppfanns i slutet av 1980-talet). C# är så pass nytt så det kanske bara blir en tillfällig parentes i historien, vem vet? Själv tror jag inte Windows har någon lysande framtid på sikt så jag är skeptisk till att låsa in sig på den plattformen. Visst mono finns så man kan använda C# till andra plattformar men det används knappt i praktiken.

Lärde mig själv en del C# när jag körde Windows men det känns halvt bortkastat för egen del eftersom jag sedan bytte till Linux och slängde ut Windows. På Linux är Python mer användbart än C# (trots att mono finns). Just nu är jag mer intresserad av programmering i C (alltså inte C#) eftersom jag gillar pyssla med mikroprocessorer och sådant. C har väl funnits i 40 år men används fortfarande flitigt och kommer säkerligen finnas många år framöver. Har fortfarande nytta av det jag lärde mig om C när jag gick på högskolan i slutet av 1980-talet. Men C# och C har en del gemensamt så kan man det ena är det inte jättesvårt att lära sig det andra. Största skillnaden är att med C# får man lära sig objektorienterad programmering. Men detta finns även i Python och är alltså inget unikt för C#. Även java (som är ganska likt C#) är objektorienterat.

Rent allmänt så kan det nog kvitta vilket språk man börjar med. Huvudsaken är att man får lära sig hur man tänker programmeringsmässigt. Förstår man grundprinciperna kan man lätt lära sig använda andra programmeringsspråk om man vill det. Själv tycker jag det känns bra att börja med något hårdvarunära som C så att man får förståelse för hur en dator fungerar, men den allmänna rekommendationen brukar vara att man ska gå från andra hållet, något högnivåspråk först och sedan lära sig hur det fungerar på hårdvaran. Det är väl en smaksak.

Nu är det så att jag äger både en windows dator och en macbook pro (för skolarbete). Funderar på vilken jag ska använda i framtiden men jag tror det lutar åt windows hållet trots allt ändå (eftersom man har använt windows i snart 10 år)
Bra info! =D

Permalänk
Medlem

Tjenare igen!

Jag har nu börjat på Ruby istället för JavaScript och det går bra för mig!

Jag har gjort klart ''beginner'' delen av Ruby på http://www.codeacademy.com och jag älskar språket. Det är väldigt enkelt att förstå sig på och det (verkar) bra att börja med!

Tack för tipset!

Permalänk
Medlem
Skrivet av Miniturtlex:

Hej Sweclockers!

Jag har precis börjat Gymnasiet (2mån in) och går teknik-linjen. Jag undrar vilket programmeringsspråk skulle vara ett bra första språk att lära sig? C# Säger mina polare är bra men jag har ingen aning själv. Behöver lite vägledning då teknikläraren är sjuk hela veckan . Jag vill lära mig antingen webbdesign eller enstaka appar (till windows).

Vänta ett år så får du C++ i skolan (troligen). Vill du lära dej webbdesign är du lite fel ute då snackar vi om HTML och CSS.
Jag läser just nu C++ och HTML med CSS.

Visa signatur

Citera för svar!

Permalänk
Medlem

Python, BASIC eller C säger jag, sen går man över till att lära sig x86 assembler och c++, när man bemästrar C++ så tar man sig an C#, JAVA eller ADA

Permalänk
Medlem
Skrivet av bagfalls:

Python, BASIC eller C säger jag, sen går man över till att lära sig x86 assembler och c++, när man bemästrar C++ så tar man sig an C#, JAVA eller ADA

Låter som att steg 2 kan ta ett tag... När bemästrar man c++ egentligen?

Permalänk
Inaktiv

Skulle nog valt Java.

Android kör det. Många kör androidtelefoner så det skulle ju kanske vara kul att skriva appar? Dessutom kommer program du skriver kunna köra ganska problemfritt på alla plattformar