Permalänk
Medlem

FAQ - Att börja programmera!

Denna FAQ är för er som inte riktigt vet vart ni ska börja för att programmera och kanske har funderingar. Vi ska försöka utveckla denna FAQ så den täcker det mesta för att kunna börja programmera.

Vi börjar med en lista över några programmeringsspråken.

1. Visual Basic
Vi börjar med Visual Basic, ett språk som använder syntax som är simplare att förstå då det är mer engelska än konstiga tecken etc.
Visual Basic har funnits enda sedan Windows 3.x tiden, Visual Basic har nu gått in i .(dot)NET världen, så som dom flesta andra språken följt med in i. Visual Basic används enbart till Windows platformar, inte linux, unix etc.
Visual Basic är mer för att enbart skapa vanliga program som paint program, textredigeringsprogram, chatprogram osv. Kan också göra spel i detta språk. Men spelen som utvecklas med Visual Basic brukar ofta bli sega och dra mer minne etc.

2. C/C++
C/C++ är nog det mest använda programmeringsspråket på denna jord. Nästan alla existerande platformar klarar av att kompilera C/C++ kod.
Med C/C++ kan du utveckla program som kan göra det mesta med datorer, de flesta operativsystemen är uppbyggda med C eller C++. Programexempel som du kan göra är spel (DirectX, OpenGL, SDL osv), applikationer (textbehandlingsprogram, ritprogram, operativsystem, osv). C/C++ har nästan inga begränsningar för att göra det du vill göra med datorn, men det finns alltid undantag

3. Assembly
Använder processorns instruktionsuppsättning, t.ex. LDA, STA, JSR, PUSH etc.
Störst användning av assembler språket är idag troligtvis vid programmering av mikroprocessorer då främst 8bitars sådana.

Eftersom man arbetar direkt med processorns register, stack m.m och olika processor familjer som 68xx, x86, risc, så skiljer sig instruktionerna mycket åt. Vilket betyder att assembler kod för en processor familj inte går att assemblera (kompilera) på en annan.

4. Java
Java är ett verktyg som en hel del förknippar med JavaScript.
Så är det inte, JavaScript är inte Java. Kom ihåg det!
Java är ett språk som är mer populärt än C/C++, men används nog inte lika mycket.
Själv tycker jag att det är slött, men det är för att jag inte kan så mycket om det, har sett otroliga spelmotorer, program, webbapplikationer etc som inte alls är slöa.
Detta är nog ett språk som dom flesta skulle rekommendera er att börja med om ni inte vet vilket språk ni vill börja med.
Men jag tycker ni ska kolla på alla språk och sedan välja själva vilket ni tycker passar er bäst.

5. C# (csharp)
Del av .NET konceptet utvecklat av gossarna på Microsoft. Är en som jag ser det blandning mellan java, c++ och vb.
Vid kompilering så sparas programmet i ett mellanformat (IL-Intermediate Language), som sedan, likt java, använder sig av en tolk vid körning.
Ett projekt för att köra .net program på linux, mac os x m.m finns på www.mono-project.com.

6. Python:
Python rekomenderas av många som ett nybörjarspråk då det har en enkel syntax och ofta ger en bättre bild av programmering och abstraktion än andra språk. Python-kod ligger ofta väldigt nära psuedo-kod. Python är ett kortfattat språk utan extra tecken. Till exempel används inte ; för radslut eller {} för att ange flöde. Indentering, altså tab eller mellanslag i början av raden används för att ange programflöde. En fördel med det är att alla python-program är ordentligt indenterade, altså lättare att läsa, annars skulle de inte gå att köra.

Vad behövs för att kunna programmera då?

Jo, följande:
- Datorvana
- Ett IDE (utvecklingsmiljö, är att rekommendera då ett IDE underlättar för det mesta utvecklingen)
- En kompilator.
- Litteratur (En bok inom språket du ska börja lära dig, kanske guider på nätet etc).

---=== Frågor och Svar ===---

Q: Jag vill börja med Visual Basic, vilket IDE rekommenderar du?
A: Då du vill börja med Visual Basic så finns det bara ett IDE du ska ha, och det heter just Visual Basic.

Q: Jag vill börja med C/C++, vilket IDE rekommenderar du?
A: Här har vi en fråga som kan ha hur många svar som hellst, men jag ska säga några.

WINDOWS: Dev-C++, Microsoft Visual C++, Eclipse.
LINUX/*NIX: Jed, KDevelope finns många fler

Q: Jag vill börja med Assembly, vilket IDE rekommenderar du?
A: Beror lika mycket på som ovan, drar några svar.

WINDOWS: RadASM
LINUX/*NIX: Jed, etc

Q: Jag vill börja med Java, vilket IDE rekommenderar du?
A: Finns diverse olika här, t.ex

WINDOWS: Eclipse

Q: Jag har valt språk, vilket kompilator ska jag ha?
A: Här får man välja helt efter smak, men jag listar några.

Visual Basic: Medföljer, behövs inte laddas ner något extra.

C/C++: Medföljer Dev-C++ och Microsoft Visual C++. Men det är inte samma, till Dev-C++ följer en kompilator med som är en klon av Linux/*nix kompilator, GCC.

ASM: NASM (finns till både Windows och Linux/*nix.

Q: Vart en hel del tjat om kompilator här ovan, vad är det?
A: En kompilator är ett program som omvandlar din kod till maskinkod, maskinkoden är nödvändig för att dator ska kunna köra programmet.

Q: Har du inga Webbadresser till vart jag kan ladda ner alla program som behövs?
A: Adresser kommer så snart som möjligt.

Q: Jag har inga pengar att köpa böcker etc, vad ska jag göra?
A: Google är din bästa vän då, finns hur mycket gratis fakta/tutorials ute där, leta bara

Q: När kan jag göra mina spel och operativsystem etc?
A: Att utveckla spel kan ta lång tid, även dom som kan programmering kan ta lång tid på sig att få det klart.
Så ha tålamod med programmeringen.

Kod exempel
(eller så kallade, 'Hello World' applikationer.)

1. Visual Basic

Här gör vi ett exempel där vi kommer bara poppa upp tio(10) st meddelanderutor som det står "Hello World!" i.

Private Sub Form_Load() ' Deklarera i som en Integer Dim i As Integer ' Gå igenom en loop, dvs samma process kommer att upprepas tills villkoret inte gäller längre. For i = 0 to 9 MsgBox "Hello World!", 32, "Hejsan Världen!" ' Vid varje villkor så visar vi en ruta som visar "Hello World!", visar en Ikon, och har en titel ' på rutan som är 'Hejsan Världen!'. Next i End Sub

2. C/C++

Här kommer vi att göra två exempel för att visa lite skillnad på C och C++.

2.1 C

#include <stdio.h> int main() { printf("Hello World!"); return 0; }

2.2 C++

#include <iostream> int main() { cout << "Hello World!" << endl; return 0; }

3. Assembly
Här följer ett Hello World exempel till en PC(x86 processor typ)

title Hello World Program (hello.asm) ; This program displays "Hello, World!" dosseg .model small .stack 100h .data hello_message db 'Hello, World!',0dh,0ah,'$' .code main proc mov ax,@data mov ds,ax mov ah,9 mov dx,offset hello_message int 21h mov ax,4C00h int 21h main endp end main

4. Java

Skapa en fil som har namnet: HelloWorld.java public class HelloWorld { public static void main(String[] arg) { System.out.println("Hello World!"); } }

5. Python

print "Hello World"

Mer information tillkommer...

Tack till:
Haricots
totoo
MagnusL
zoomster
kismo
TheGoodOne
bun_buddy
Srekel
F-Ray
Sebastianj

Visa signatur

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Permalänk
Avstängd

Enligt TCP-index är Java mer populärt än C/C++.
Om det däremot betyder att det är det mest använda kan dock diskuteras.

http://www.tiobe.com/tpci.htm

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Haricots
Enligt TCP-index är Java mer populärt än C/C++.
Om det däremot betyder att det är det mest använda kan dock diskuteras.

http://www.tiobe.com/tpci.htm

Ahaa, ska ändra

EDIT: *ändrat*

Visa signatur

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Permalänk
Medlem

var för trött för att läsa allt, läste bara C/C++avdelningen... Jag störde mig en del på språket även om innehållet var bra...

Citat:

2. C/C++
Nu kan vi ta och prata lite om C och C++.
C/C++ är nog det mest använda språket(programmering) på denna jord. Alla(finns nog undantag) men dom flesta platformar klarar av att kompilera C/C++ kod.
Med C/C++ kan du programmera program som kan göra det mesta med datorer, dom flesta operativsystemen är uppbyggda med C eller C++. Program exempel som du kan göra är Spel (DirectX, OpenGL, SDL osv), Program (Skrivprogram, Ritprogram, Operativsystem, osv). C/C++ har nästan inga begränsningar för att göra det du vill göra med datorn, men det finns alltid undantag

Jag skulle hellre skriva nåt i stil med följande:

Citat:

2. C/C++
C/C++ är nog det mest använda programmeringsspråket på denna jord. Nästan alla existerande platformar klarar av att kompilera C/C++ kod.
Med C/C++ kan du programmera program som kan göra det mesta med datorer, de flesta operativsystemen är uppbyggda med C eller C++. Programexempel som du kan göra är spel (DirectX, OpenGL, SDL osv), applikationer (textbehandlingsprogram, ritprogram, operativsystem, osv). C/C++ har nästan inga begränsningar för att göra det du vill göra med datorn, men det finns alltid undantag

typ... Nu designade jag ju inte direkt om din text, utan mer "rättade" enligt min mening (samt ur ren svenska-språket-synpunkt).

Permalänk
Medlem

totoo: så, det blev lite mer lättläsligare nu, tack!

Visa signatur

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Permalänk
Medlem

"programmera program" är inte heller en vacker ordföljd.... Utveckla / konstruera program är finare... mja...

Permalänk
Medlem

Din beskrivning av assembler är inte allt för bra ..

Assembler är egentligen inte _ett_ språk, utan är ju en direkt översättning av en hårdvaruplattforms maskinkod till en mer lättläst form. Instruktionerna är ju annorlunda beroende på vilken processor det handlar om, t.ex. så skiljer sig x86 asm och 68k asm ganska mycket.

Personligen så tyckte jag den var lite jobbig att läsa, får nog skriva om den lite och förbättra meningstrukturen, känns inte som en seriös FAQ när man läser den, speciellt inte med alla dina egna åsikter inbakade.

Visa signatur

Intel Core i7-3770K | NVIDIA Geforce GTX 980 | 16 GB DDR3 | DELL P2415Q | DELL U2711 | DELL U2410

Permalänk
Medlem

Bra början till en förhoppnings större FAQ

Assembler.
Använder processorns instruktionsuppsättning, t.ex. LDA, STA, JSR, PUSH etc.
Störst användning av assembler språket är idag troligtvis vid programmering av mikroprocessorer då främst 8bitars sådana.

Eftersom man arbetar direkt med processorns register, stack m.m och olika processor familjer som 68xx, x86, risc, så skiljer sig instruktionerna mycket åt. Vilket betyder att assembler kod för en processor familj inte går att assemblera (kompilera) på en annan.

C# (csharp)
Del av .NET konceptet utvecklat av gossarna på Microsoft. Är en som jag ser det blandning mellan java, c++ och vb.
Vid kompilering så sparas programmet i ett mellanformat (IL-Intermediate Language), som sedan, likt java, använder sig av en tolk vid körning.
Ett projekt för att köra .net program på linux, mac os x m.m finns på www.mono-project.com.

Permalänk
Medlem

Kan någon berätta lite om Assembler?
Vad är det för prgramvara man behöver för att koda i det?
Notepad? Eller krävs det något program?
Hur är språket uppbyggt?

Måsvingar etc eller är det mer som Lingo (MAcromedia Director) där ifsatser ser ut ungefär som : IF variabel=roligt THEN gototheFrame(1);

Äsh jag minns inte riktigt men endå...
Var man man tanka (ifall det e gratis) programvara osv?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av kismo
Kan någon berätta lite om Assembler?
Vad är det för prgramvara man behöver för att koda i det?
Notepad? Eller krävs det något program?
Hur är språket uppbyggt?

Måsvingar etc eller är det mer som Lingo (MAcromedia Director) där ifsatser ser ut ungefär som : IF variabel=roligt THEN gototheFrame(1);

Äsh jag minns inte riktigt men endå...
Var man man tanka (ifall det e gratis) programvara osv?

asm nog rätt mycker mer avancerat än vad du tror då ifsatser inte ens existerar utan tillbehör...
Men googla lite på assembler så ska du nog hitta en del...

Här googlade jag fram ett litet exempel... Det som börjar på ; är ju kommentarer dåååråå

http://www.avr-asm-tutorial.net/avr_en/source/TEST2.asm

Men som magnus säger, hur det fungerar är helt olika beroende på vad man har för hårdvara.

Permalänk

Re: FAQ - Att börja programmera!

Citat:

Ursprungligen inskrivet av AJL
Q: Jag vill börja med C/C++, vilket IDE rekommenderar du?
A: Här har vi en fråga som kan ha hur många svar som hellst, men jag ska säga några.

WINDOWS: Dev-C++, Microsoft Visual C++.
LINUX/*NIX: Jed, nano, pico, finns många fler

nano, pico är inga IDE. De är bara editors. Bättre svar är tex KDevelop, Eclipse

Citat:

Ursprungligen inskrivet av AJL
Q: Jag vill börja med Java, vilket IDE rekommenderar du?
A: Här vet jag inte många, men det finns många på Google, eller om nån annan vill lägga till här?

Google Tips: "Java IDE"
[/B]

Eclipse

Permalänk

Varför inte ha med "Hello world" kod till språken ovanför, så att de kan beskriva hur språken ser ut? En kodsnutt säger mer än tusen ord.

kismo: Kolla på detta Hello world (x86) exempel istället, utan en massa onödig kommentare.
http://www2.latech.edu/~acm/helloworld/asm.html

Ang assambly, så brukar man skriva på svenska i svensk text (assembler).

Frågan: Q: När kan jag göra mina spel och operativsystem etc?
Var svaret lite väl optimistisk, då de flesta som har kodat i några år inte kan göra något större spel/OS. Fast du kanske syftade på mer heltid i några år?

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

Hello World i Python:

print "Hello World"

Python bör för övrigt skrivas nånting om..

Visa signatur

Min hemsida: http://www.srekel.net
Pocket Task Force: http://ptf.srekel.net
Kaka e gott! http://kaka.srekel.net

Permalänk
Medlem

Så, nu är FAQ'n uppdaterad.
Kommentarer är välkommna.

Visa signatur

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Permalänk
Medlem

Hello world i Java

HelloWorld.java:

public class HelloWorld { public static void main(String[] arg) { System.out.println("Hello World!"); } }

Edit: Eclipse finns även till OS X och linux. Ett bra IDE till windows är JCreator
Edit2: "Java är ett verktyg som en hel del förknippar med JavaScript." verktyg låter fel. Kalla det språk

Visa signatur

"I reject your reality and substitute my own." /Adam Savage

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Srekel
Hello World i Python:

print "Hello World"

och Ruby:

print "Hello World"

och PHP, Perl:

print "Hello World";

Hello World ser i många fall väldigt lika ut. Faktum är att i Ruby så går det utmärkt att lägga till ett semikolon på slutet, och därmed så är det exakt likadant som PHP och Perl.

Så, i en del fall så är det kanske intressant att se Hello World, i de flesta så är det inte det.

Permalänk

Ta språken i bokstavsordning istället. Sen kan man ju länka till språkens wikipedia-sida också för den som vill ha mer information. Helst skulle man ju ha faq:n som en wiki, men det får väl gå så här.

Det är itne så bra att göra så breda code-objekt använd php istället, eller ännu hellre, se till att koden inte blir så bred.

Jag skulle inte kalla C# för en mix av Java, C++ och VB. Snarare som Microsofts svar på Java med viss inspiration från C++, det är så likt Java att man ofta kan kompilera ett Java-program som C# med bara några små ändringar. Var det liknar Visual Basic vet jag ärligt talat inte.

Python:
Python rekomenderas av många som ett nybörjarspråk då det har en enkel syntax och ofta ger en bättre bild av programmering och abstraktion än andra språk. Python-kod ligger ofta väldigt nära psuedo-kod. Python är ett kortfattat språk utan extra tecken. Till exempel används inte ; för radslut eller {} för att ange flöde. Indentering, altså tab eller mellanslag i början av raden används för att ange programflöde. En fördel med det är att alla python-program är ordentligt indenterade, altså lättare att läsa, annars skulle de inte gå att köra.

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem

Det måste ju gå att klippa den där VB-kommentaren så man slipper scrolla i sidled?

Visa signatur

Brass knuckles and a 2x4

Permalänk

Re: FAQ - Att börja programmera!

Citat:

Ursprungligen inskrivet av AJL
Q: Jag vill börja med Java, vilket IDE rekommenderar du?
A: Finns diverse olika här, t.ex

WINDOWS: Eclipse

Eclipse finns för många platformar.

Citat:

http://www.eclipse.org/downloads/index.php

Windows
Linux (x86/GTK 2)
Linux (x86_64/GTK 2)
Linux (PPC/GTK 2)
Linux (ia64/GTK 2)
Linux (x86/Motif)
Solaris 8 (SPARC/GTK 2)
Solaris 8 (SPARC/Motif)
AIX (PPC/Motif)
HP-UX (HP9000/Motif)
Mac OSX (Mac/Carbon)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KTottE
Hello World ser i många fall väldigt lika ut. Faktum är att i Ruby så går det utmärkt att lägga till ett semikolon på slutet, och därmed så är det exakt likadant som PHP och Perl.

I fallet hello world, ja. efter det börjar saker och ting skilja sig lite. fortfarande relativt likt python ändå, dock, även om det kanske ärvt mer från smalltalk än c.

för övrigt borde det ju stå nåt om ruby i den här faq:en.

Visa signatur

The power of GNU compiles you!
"Often statistics are used as a drunken man uses lampposts -- for support rather than illumination."

Permalänk

Webprogrammering:
PHP:
PHP är det överlägset populäraste språket bland hobby-kodare och folk med begränsad budget. Det finns några anledningar till det:

  • Det är gratis och kan köras på en såkallad LAMP-server(Linux, Apache, MySql, PHP) som bugger på 100% fri mjukvara.

  • I princip varenda webbhotell har stöd för PHP, från de allra billigaste till de allra stabilaste.

  • Det är lätt att lära sig för nybörjare. Det är speciellt enkelt om man kommer från en HTML-bakgrund.

  • Dokumentationen (php.net) är en av de bästa som finns för programmeringsspråk. Där står allt man behöver veta, inklusive exempel och ett kommentarsystem där användare kan ge sina egna tips.

Det är dock inte lika populärt bland folk med större programmeringserfarenhet i mer flexibla språk(som Perl, Python eller Ruby) då det har lite speciella egenheter för sig och kan vara svårt att bygga dynamiska system på. Kodgeneratorer kan hjälpa en hel del.

Ruby on Rails
RoR är ett relativt nytt ramverk för webbutveckling, det bygger på moderna koncept som MVC[1] och OO. RoR har också bra stöd för utvekling av AJAX-applikationer[2]. RoR bygger, som antyds av namnet, på programmeringsspråket Ruby. Ruby liknar i sin dynamik och flexibilitet Python men har lite mer "syntax-socker"(syntactic sugar)[3] åt Perl-hållet så det kan vara lite svårt att hänga med i vad som händer som nybörjare.

[1] Model View Controller (Modell Vy Kontroll) handlar om att indela sin mjukvara i flera löst sammankopplade delar. Modellen är delen som hanterar data, i modellen så har man t.ex. objekt för användare, poster etc. man har dock ingen kod som hanterar hur datan ska presenteras för användaren. Det är vyns ansvar. I vyn så anger man hur datan ska presenteras, I RoR's fall så innebär det i princip en mall för hur html-koden ska genereras. Men man kan ochså tänka sig att skapa ett grafiskt gränssnitt eller ett konsolprogram som separata vyer. Kontrollen är rätt så kopplad till vyn, kontrollen hanterar inskrivande av data och att välja ut korrekt data för vyn att presentera.

[2] AJAX är en ny hipp term för att låta Javascript hantera uppdateringar av delar av hemsidor dynamiskt. På det viset kan man dynamiskt uppdatera t.ex. sök-resultat utan att behöva ladda om sidan. Gmail och Google Maps är två bra exempel på användning av Ajax.

[3] Syntaktiskt Socker: I Python behöver man t.ex. ange tillgång till instansvariabler inom objektet med self.variabel i Ruby kan man skriva @variabel

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Hedersmedlem

Det heter std::cout och std::endl såvidare du inte kör using namespace std;.

Ändra.

EDIT: Sedan är det rekommenderat att använda echo i PHP istället för print, men men.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Skulle föredra

?> Hello, world! <?php

då det är snabbast

Visa signatur

"'We're pro-life.' Eww, you look it! You look like you're filled with life."
UNIX man pages online, GNU/Linux-schemaprogram för LiU

Permalänk
Hedersmedlem

Piltvenom: Snabbast med lite kod, ja. Men inte med mycket kod, då blir det segare att hoppa ut och in. Dessutom är det där HTML, inte PHP.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.