[Q] Lära sig fler programmeringsspråk

Permalänk
Medlem

[Q] Lära sig fler programmeringsspråk

Jo nu har jag gått lös igen!

Tankar

Jag har just nu relativt bra kunskaper inom programmeringsspråket C# (3 års gymnasie utbildning + hemma projekt varje dag i princip). Men jag känner att jag från alla håll får för mig att C# inte är det allra bästa när det kommer till vissa saker jag skulle vilja lära mig att göra.

Jag har haft en koll på Visual Basic av anledningen att jag vill lära mig göra ett eget anti-virus eller åtminstone ett program som klarar av att kolla efter signaturer i filer och sedan jämföra dom med en databas (för att kolla om den är skadlig eller vanlig fil). Samt C++ för ryktes vägar säger att det ska vara bra att kunna.

Mina kunskaper sträcker sig segt från XHTML samt HTML, Flash, C#, SQL och väldigt lite VB.

Fråga:

Är det någon idé att lära sig Visual Basic alt. C++? Eller ska man hålla sig till det man redan kan?
Kan man ha nytta av det i framtiden?

Obs: har gått 3 års IT utbildning på gymnasiet med planer på fortsatt utbildning på universitet.

//Ursäktar på förhand om detta blev en dubbelpost mot en annan tråd.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem

Självklart ska du lära dej åtminstone C, C++, C# samt Java, VB vet jag inte om det är värt, men har du tid så.
Går du någon linje som datavetenskap på universitet kommer du säkerligen få lära dig ett antal programmeringsspråk, en del kanske är valbara men de brukar finnas där. Vad jag vet så är det ytters få programmerare som endast kan ett språk, det är väldigt fint att kunna andra, man blir mer kompletterad som programmerare, får också ideer från andra språk etc.

Det du har lärt dig på dina tre gymnasieår brukar normalt täckas på första veckan/veckorna på universitet, takten brukar vara ganska hög, speciellt om man är nybörjare.

Permalänk
Medlem

Det är alltid värt att lära sig nya språk, ett nytt språk varje år så man lär sig nya koncept och nya sätt att tänka. Jag brukar rekommendera att man lär sig åtmindstånde ett lågnivåspråk (t.ex. C) och ev. lite assembler så man kan se vad processorn egentligen utför. Det kan också vara anledning för dig att lära dig lite mer dynamiska högnivå-språk, Python/Ruby eller varför inte Scheme. Det ger en lite annan typ av programmering som också är viktig att kunna. Det beror lite på vart du vill i din programmering.

Languages shape the way we think, or don't. - Naggum

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.

Permalänk
Medlem

Jag har läst en del programmering på universitet. Det har varit mycket olika språk vilket är bra för det ger en bra grund samt valmöjligheter.

Vilket språk du ska satsa på beror på vad du vill göra. Men är det lågnivå som mikrokontroller så är C givet, det är bra att ha koll på i annat fall också för förståelsen av annat. Assembler är väldigt bra att ha jobbat lite med mest bara för att ha sett det inte för att det är praktiskt...

Sen för att jobba mot lite högre nivå på datorer och liknande är java och C++ bra för att jobba objektorienterat. Använder du dessa språk se till att lära dig det objektorienterade tänket för annars kommer det inte bli bra...

Python kan också vara något att kolla på, känner flera som kör det för alla små simpla script då det är riktigt snabbt att komma igång med. Sen har dom fina funktioner för att plotta grafer och allt möjligt.

Lycka till

Permalänk
Medlem

Du skulle dra nytta av att kunna flera olika paradigmer. C# är imperativt och object-orienterad, det är även C++ så du skulle inte lära dig så mycket nytt. Testa F# istället, det är funktionellt och då måste du lösa problemen på ett annat sätt. Funktionell programmering har framtiden framför sig.

Permalänk
Medlem

Skulle väl inte rekommendera C++ direkt, ett språk som tar alldeles för lång tid att bli duktig för att kunna göra något vettigt med. Kan du C# så är det inte direkt stort steg att gå till Java(även om Java är väldigt bra att kunna i jobb-syfte) heller. Skulle väl rekommendera nåt språk som skiljer sig mycket så du får tänka i andra banor. T.ex. C eller varför inte F#, Python, Scala eller som någon nämnde, Assembler vet inte om du har så jättestor nytta av ASM men jag tyckte iaf att det var väldigt kul att arbete med det. Dock bör man väl kanske ha lite hårdvara till med diodrar, knappar, 7-segment och LCD, så man kan hitta på lite allt möjligt finurligt!
Det är väl "bra" att försöka lära sig nåt nytt språk typ varje år, man behöver ju inte bli någon mästare, men att man iaf testar på andra språk. Helst ska det gärna skilja sig från det man redan kan!:P

Lite off-topic kan jag rekommendera boken "The Pragmatic Programmer"^^

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk

Om du vill bli en programmerare som kan röra dig mellan så många delar av datorvetenskap som möjligt så tycker jag du ska kunna så många som möjligt av språken i första grafen på den här sidan, http://langpop.com/, alltså åtminstone C, Java, C++, PHP, Javascript, Python, C#, ...

Ju fler du kan desto fler olika paradigmer och mönster kan du använda för att tackla olika programmeringsproblem. Jag tycker också assembler är meningsfullt att kunna även om du nästan helt säkert inte kommer att jobba med det, bara för att det är den lägsta nivån och det som alla andra programmeringsspråk kompileras ner till.

Jag tycker också du ska lära dig om algoritmer och datastrukturer, t.ex. från den här boken http://mitpress.mit.edu/algorithms/, för de går igen i de flesta språken. Vissa språk har förvisso algoritmer och datastrukturer som inte används i andra språk, t.ex. datastrukturer för rent funktionella språk, men om du lär dig de i Introductions to Algorithms-boken så har du kommit en bra bit på vägen.

Om du är seriöst intresserad av att lära dig fler språk så rekommenderar jag boken Seven Languages in Seven Weeks. Den ges för övrigt ut av samma förlag som ger ut The Pragmatic Programmer som Gnejs nämnde (jag instämmer i den rekommendationen.)

Permalänk
Medlem

Okej, låter ju inte så dumt :3 att kunna C är väl inte så dumt antar jag men ska väl pröva F# först och främst då samt Python. Sen kommer jag väl pröva mig vidare, skulle gärna vilja prova på att göra app'ar för Android telefoner också.

Gillar era åsikter kring ämnet och att man inte får massa nedlåtande kommentarer bara. Tycker C# börjar bli tråkigt nu när man kan så mycket i det och jag vill få mer kunskap

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem
Skrivet av freddyfresh:

Okej, låter ju inte så dumt :3 att kunna C är väl inte så dumt antar jag men ska väl pröva F# först och främst då samt Python. Sen kommer jag väl pröva mig vidare, skulle gärna vilja prova på att göra app'ar för Android telefoner också.

Gillar era åsikter kring ämnet och att man inte får massa nedlåtande kommentarer bara. Tycker C# börjar bli tråkigt nu när man kan så mycket i det och jag vill få mer kunskap

Varför just F#?
Har inte så mycket relaterat till dom andra språken...

Permalänk
Medlem

Vi snackar in i framtiden nu, jag sitter och försöker lära mig en aning om C just nu.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem
Skrivet av Dalton Sleeper:

Varför just F#?
Har inte så mycket relaterat till dom andra språken...

Det är ju det som är poängen. Med F# så lär man sig nåt nytt eftersom C#, C++, C, PHP, Java, Python och JavaScript alla är imperativa och är ganska lika. Däremot är F# funktionellt och man får lösa alla problem på ett funktionellt sätt.

Dessutom blir man bättre på C# om man kan F#. Mer och mer funktionella konstruktioner läggs till i C#.

Permalänk
Medlem
Skrivet av erciz:

Det är ju det som är poängen. Med F# så lär man sig nåt nytt eftersom C#, C++, C, PHP, Java, Python och JavaScript alla är imperativa och är ganska lika. Däremot är F# funktionellt och man får lösa alla problem på ett funktionellt sätt.

Dessutom blir man bättre på C# om man kan F#. Mer och mer funktionella konstruktioner läggs till i C#.


Jag gick endast på 2-3 föreläsningar i F#, sedan slopade jag den och hoppade på ytterligare en C#
Men men, får nog ta och harva igenom åtminstone en F# kurs någon gång i framtiden...

Permalänk
Medlem

Jag är rätt tveksam till att rent funktionella språk kommer ta över. Däremot kan jag garantera att imperativa språk kommer fortsätta ta inspiration från dom. Python har ju en hel del av det tänket (list comprehension tex), men även c# är på god väg. Jag har programmerat i nästan 20 år (började tidigt ) och har använt en hel del språk. Just nu är det nästan bara c/c++ eftersom det är svårt att få något annat språk att köra både på ps3, 360 och pc

Jag tycker du ska titta på språk som används idag, men som passar bra för olika problem för att förstå olika språks för- och nackdelar. Om du kan C# är java rätt ointressant (när jag började på mitt första jobb kunde jag bara java men började skriva c#-kod från första dagen utan större problem). Jag röstar för python och c. Dock tar det ett tag innan man lär sig förstå hur man utnyttjar språket till max. Det är väldigt lätt att skriva c# fast med python-syntax, och då tappar man helt poängen. Det bästa är nästan att titta och bygga vidare på en existerande kodbas som någon som verkligen kan språket har skrivit.

Sen tycker jag egentligen att språk är rätt ointressant. Det är som att skriva böcker, det svåra där är inte att hantera språket utan att få till en bra bok. Sen behöver man självklart ha ett hum om olika språk för att välja rätt språk för ett visst problem.

Permalänk
Medlem

C# är otroligt lätt i jämförelse med C/C++. Allting är redan färdigt så gott som och man får hur mycket hjälp som helst. Koden är simpel att skriva. Något med mer utmaning men däremot inte omöjligt att lära sig skulle vara kul :3

Det du säger som avslutning @grovlimpa är helt korrekt.

Ska försöka göra en i F# nu :3 (16:50)

- Slängde i mig mat
- Börja kolla
- Byggde
- Klar (18:37)

Här är mina miniräknare i C++ och i F# (easy share nedladdning)

Någon som har lust att ge tips på vad man kan förbättra? D: Känns som om jag gör fel överallt -.-"

I största allmänhet anser jag F# svårare än C++, samtidigt som F# är roligare än C++ för det är mycket större omväxling och det är skönt med en variation och en utmaning för en gångs skull Däremot var båda språken ganska svåra :/ ska grubbla vidare nu iaf ^^

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem

F# är funktionellt medans både C# och C++ är imperativt och Objektorienterade. Därför känns det svårare med F# eftersom man måste tänka lite annorlunda. Men det blir oftast kortare kod, även om vissa problem kan vara svåra att lösa funktionellt.

Planerar du att läsa på universitet så kommer du ha nytta av F# eftersom det är vanligt med en del funktionell programmering på universitet. En annan fördel med F# är att du kan kombinera det med C# i dina projekt.

Ett annat alternativ är Scala som är både Objektorienterat och funktionellt på samma gång. Scala kör man vanligen på Java Virtual Machine. Jag håller själv på att använda Scala i ett webbproject nu, känns rätt smidigt.

Permalänk
Medlem

Jag skulle nog inte bara rekommendera att lära sig fler än ett språk, men även bli duktig inom något ramverk. http://www.devtopics.com/most-popular-programming-languages/

Python -> Django
C#/C++ -> .Net
Java
Tycker du om webb kan jag rekommendera GWT, googles ramverk för webbprogrammering, riktigt trevligt!

Ska du läsa vidare kommer du troligtvis få bekanta dig med språk som LISP eller Scheme, samt ADA, beroende på vart du kommer plugga, men du behöver ingen speciell förkunskap för att klara de kurserna!

Permalänk

Skulle ni hålla med om att "behovet" i ganska stor utsträckning styr vilket språk man använder?

Som exempel, om man vill programmera för en Android-mobil så använder man Java, för iPhone blir det Objective-C. Om man vill programmera GUI-tunga program i Windows så är C# ett bra val. För webbsidor så är PHP eller ASP.NET (C#) populära. Vill man skriva kod på en webbsida som kör i webbläsaren så blir det Javascript.

Olika språk har olika användningsområden. Har man däremot lärt sig använda många olika programmeringsspråk så kommer det bli lättare att plocka upp ytterligare ett, och man kommer att kunna överföra mycket kunskap från ett språk till ett annat.

Så om någon frågar vilket språk de ska använda så blir motfrågan "vad vill du göra med språket?"

Permalänk
Medlem

PHP och HTML har jag lagom koll på (kan skapa ett loginskript iaf) och en hemsida med låg förståelse över hur programmeringen går till. C# har jag som sagt var ganska goda kunskaper i, ASP.NET hade jag planer på men har inte jobbat mer på det.

Scheme, Objective-C, ADA är några språk jag aldrig hört talas om.

Bra fråga.. vad vill jag lära mig.. Jag vill kunna göra lite blandat, om inte annat vill jag ha förståelse för språket (grundläggande kunskaper).
Javascript har jag kollat väldigt snabbt på men inte väckt större intresse hos mig.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem

Den stora frågan är egentligen bara vart du vill komma med din programmering. Vad är du intresserad av att göra? Det finns anledning att lära sig både stora välkända språk, och lite mer obskyra/annorlunda.

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.

Permalänk
Medlem

Först och främst börja det som intresse men jag gillar att kunna överhuvudtaget. Sen vet jag inte om det blir en karriär eller om det blir mer en hobby. I största allmänhet: kunskapen om språket vill jag förstå och kunna använda för att bygga applikationer.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40