Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  49 12183
Trigonoceps occipita
vidarlo's Avatar
Donor
Her listar eg opp nokre råd eg meiner er nyttige når ein skal programmere.

Sjølv er eg UNIX-bruker, og dette innlegget er nok delvis farga av det, men dei fleste råda burde fungere uansett kva språk du skriv i.

Følgjande punkt er viktige:
  • Papir og blyant. Før du tar til å kode du vite kva du skal skrive.
  • Kunnskap om språket du skal skrive.
  • API
  • Dokumentasjon som høyrer til språket, eks. php.net for php.
  • Feilmeldinger.
  • Tid til å fikle

Papir og blyant...
Mange som skal byrje med programmering finn dette underlig, sidan det å kunne programmere er å mestre datamaskiner på øverste nivå, langt over snittet av befolkinga. Likavel vil eg påstå at dette er nøkkelen til eit vellukka program!

Du må kunne formulere det du skal skrive på morsmålet ditt (norsk?) før du har sjans til å skrive det i eit såpass formalisert språk som dei fleste programmeringsspråk er. Skriv normal norsk, og forklar kva du vil gjere.

Kunnskap om språket
Samme kva språk du vel å skrive i, er det viktig at du kan grunntinga i språket, slik som løkker (if-, elseif-, when-, dowhile-, for-løkker etc etc.), så du ikkje brukar tid på slikt. Om du ikkje kan det, har dei aller fleste språk relativt gode tutorials som du finn med google (Søkeord: <navn på språket> tutorial, eks C++ tutorial).

API...
Om du skal skrive noko som gjer litt meir enn Hello World må du til med API - Application Programming Interface. API er som namnet seier et grensesnitt til eit anna program, som gjer at ein slepp å finne opp hjulet på nytt kvar gong. Ein del språk, slik som PHP har mange API innebygd, slik at ein slepp tenkje på det (Døme: php nyttar t.d libcurl for ein del http-funksjonar), medan andre treng ein deklarasjon over kva API ein vil bruke, og kor kompilatoren kan finne dei APIa. Avhengig av kva språk ein skriv i er ulike API tilgjengelege, men nemneverdige API er Internet Explorer sitt, som kan nyttast til HTML-rendering og slikt.

Det å lære seg å nytte API handlar stortsett om å ikkje finne opp hjulet på nytt, men bruke det andre har skrive. API har den fordelen at dei er somregel lettare å nytte enn å implementere ting på nytt sjølv, men til gjengjeld skjer det endringar i API som kan føre til omskrivingar i koden din.

...og dokumentasjon
Før eller seinare treff du på eit API du aldri har sett eller hørt om før. Det har kanskje ein ukjent funksjon, som tek imot tre ukjende parametrar. Då gjeld det å ha dokumentasjonen for APIet og språket ein skriv i klart. Det meste av dette ligg på nett, iallefall for dei APIa som er mest nytta. Igjen er google ein sikker treffar!

Dokumentasjon om språket
Du bør også ha litt dokumentasjon om språket, slik at du kan finne kva som skjer med ulike funksjonar som er innebygd i språket. Det er bortkasta tid å spørje her på forumet kva sprintf(); gjer til dømes, det svarer google på betre. Så om du finn ein funksjon du får lyst til å bruke; google it! Om du leitar etter ein funksjon finst den antakeleg. Google it! Og som nemnt bør du ha brukbar kunnskap om språket, slik at du enkelt og raskt kan lage løkker, arrays og anna Nyttig(TM)

Feilmeldinger
Så du har fått ei feilmelding? Det får vel alle, sjølv proffane. Mange språk gir faktisk ganske nyttige feilmeldinger, som det er lurt å lese. Om du har lese feilmeldinga, og ikkje ser kva feilen er, løner det seg ofte å printe 10 linjer kode før og 10 linjer kode etter feilmeldinga, og lese gjennom den steg for steg og sjå kva den faktisk skal gjere, og kva koden du har skrive gjer. Her kjem igjen papir-versjonen, på norsk, av programmet til nytte. Om du er lat søkjer du etter feilmeldingsteksten på google, og håper at du ikkje er den første som har fått den. Når du har gjort dette (ikkje nødvendigvis i denne rekkefølga; googling er ofte det første eg gjer) så kan du kontakte diverse forum rundt om, bruke IRC o.l for å finne ut av det.

Tid til å fikle
Programmet er ferdig, og fungerer slik som papirkopien din skulle fungere. Då er du nesten i havn. Du bør ta deg tid til å fikle, prøve kva som skjer om ein brukar tastar inn feil data dersom programmet tek imot input, finne ut kor ting verkar forvirrande, og slikt. Finpussen med andre ord. Om du skal bruke programmet sjølv er ikkje det viktigast.

Andre viktige punkt
All kode bør dokumenterast. Å ta fram ukommentert kode er vondt, sidan det er raskare å skrive kommentarar i koden enn å prøve å finne ut kva den if-løkka gjer, når du tek framigjen koden om 5 år.

Ellers meiner eg at folk bør halde seg langt unna Basic, av den enkle grunn at det øydelegg all sans for koding. Ein får rett nok resultat relativt raskt, men til gjengjeld lærer det folk dårlege vanar, som dei har lite att for seinare. Å kunne VB er ikkje å kunne programmere, og det er ikkje så mykje verre å skrive i andre språk, t.d Java, C# (som er eit bra språk etter det eg har høyrt), PHP, Python (min personlege favoritt, sjølv om eg berre såvidt pirkar i overflata).
Limited edition
Moff's Avatar
Respekt for papir og blyant!
Det er sant som du sier, det er viktig med planlegging.
Mang en gang skjer det at du gjør en feil i starten av programmeringen, og må sitte
i timevis å rette opp. (Hvordan jeg vet det? )

Jeg kunne trives hvis du utdypte API-seksjonen litt mere...
Sånn helt n00b-nivå. Jeg er litt lost akkurat der
Takk for gode råd!
Når det gjelder å lære seg språket er det jo viktig å huske på at man lærer lettest dersom man har et virkelig prosjekt å jobbe med. Det du ikke kan av vanlige grep lærer du deg fort når du "blir tvunget" til å ta det i bruk :-) Uansett lønner det seg nok å kunne litt basics, men det trenger ikke kreve all verdens av tid før man setter i gang med småprosjekter, i hvert fall ikke om man går for språk som PHP og Python og slikt. Forøvrig må jeg innrømme at også jeg er litt svak for Python - det senker lista ganske greit for det å "kunne programmere", og gjør programmering mer anvendelig i dagliglivet(i hvert fall dersom man er Lunix-nerd 8-) ).

Moff:
Et API er et sett med koder og kommandoer som lar deg gjøre et eller annet. Når du begynner å skrive på et nytt C++-program har du i utgangspunktet tilgang til basic C++-kommandoer. Du kan inkludere nye biblioteker, som gir deg tilgang på flere kommandoer. Du slipper f.eks. å lage en helt ny funksjon som kan telle sekunder, du inkluderer bare et bibliotek med denne funksjonen ferdigskrevet. Dette er basicstuff, la oss ta et eksempel på et skikkelig API: SDL. SDL(http://www.libsdl.org/index.php) gjør det lettere å lage f.eks. spill, og gir deg tilgang til lyd og bilde. Det er et stort bibliotek med ferdigdefinerte funksjoner for å kunne sette oppløsning, tegne bitmaps på skjermen og spille av lyder(osv,osv). SDL er portet til mange plattformer, dvs at du(stort sett) kan bruke samme koden under Windows, GNU/Linux eller f.eks. BeOS? På lavt nivå opptrer selvsagt disse plattformene forskjellig på disse punktene, men SDL ligger som et lag oppå og utfører de samme prosessene selv om du er på en annen plattform enn tidligere. I tillegg er SDL portet til en rekke forskjellige språk; i tillegg til C/C++ har du støtte for f.eks. Python, PHP, Perl, Java og Ruby. Det som altså er verdt å merke seg er at slike API'er ikke er en del av verken C++ eller Python. Du må legge inn SDL-bibliotekene før du kan ta dem i bruk, for de følger ikke med.
Bli ikke forvirret over alt dette med multiplattform osv, det er ikke det som er cluet med API'er. Tenk deg at et firma slipper et nytt og hipt mobil-OS. Programmørene kan bruke C, men det er få som gidder å kaste seg over dette nye OS'et dersom de er nødt til å gjøre alt fra bunnen av. Firmaet skriver et API, slik at hver enkelt ikke trenger å definere spesifikt hva som skal skje helt nede på lavnivå hver gang man ønsker å skrive en streng ut på skjermen.

Øøøøh, dette ble langt og rart, håper noen får noe ut av det, og at jeg ikke forvirret for mye.
Sist endret av comicz; 3. mai 2006 kl. 12:40.
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
Sitat av comicz
Når det gjelder å lære seg språket er det jo viktig å huske på at man lærer lettest dersom man har et virkelig prosjekt å jobbe med. Det du ikke kan av vanlige grep lærer du deg fort når du "blir tvunget" til å ta det i bruk :-) Uansett lønner det seg nok å kunne litt basics, men det trenger ikke kreve all verdens av tid før man setter i gang med småprosjekter
Vis hele sitatet...
Jepp, men ein bør ha såpass kontroll på ting at ein relativt kjapt kan skrive ei løkke for å t.d printe et array. Det gjer ting enklare... Utover det er eg einig med deg.

Og til API: Eg linka til wikipedia om det, som har masse info om slikt. Anbefaler absolutt å lese det, siden det er relevant og god informasjon.
Sitat av slashdot
Jepp, men ein bør ha såpass kontroll på ting at ein relativt kjapt kan skrive ei løkke for å t.d printe et array. Det gjer ting enklare... Utover det er eg einig med deg.

Og til API: Eg linka til wikipedia om det, som har masse info om slikt. Anbefaler absolutt å lese det, siden det er relevant og god informasjon.
Vis hele sitatet...
Ja, det er klart. Man gjør det vanskelig for seg selv dersom man ikke har noe kjennskap til basics som løkker og slikt, men man trenger ikke være utlært - kjenner man konseptene og har vært litt borti det skjønner man det snart.
Alle som bedriver programmering i det hele tatt - fra VB gjennom PHP til C - bør lese The Art of Unix Programming: http://www.catb.org/~esr/writings/taoup/html/

Veldig mange tips og "regler" som lar deg unngå mange av de viktigste fallgruvene - spesielt hvis man leser den som "fersking". Jeg vil påstå man skriver renere og penere kode etter å ha lest denne.
improbable
Gusto's Avatar
DonorAdministrator
API og dokumentasjon (som f.eks artikler/guider) er utvilsomt noe av det viktigste man kan ta for seg når det gjelder programmering. For for eksempel PRADO, et opensource-prosjekt jeg er delaktig i, bruker vi vår skreddersydde versjon av phpDocumentor for en skikkelig oversiktlig API. Selv om PRADO inneholder et ganske komplekst hirearki har jeg allerede hørt fra mange at det er den kjekkeste APIen de har vært bortom.

For å skrive videre på penn og papir-seksjonen til slashdot vil jeg si at man ikke bare bør skrive (selv om det også er ekstremt viktig), men også tegne UML-diagrammer. Benytter du deg av konseptuelle datamodeller og klassediagrammer kan du komme deg langt på vei i planleggingsfasen. Et veldig viktig stikkord for min del under utvikling er interfaces, interfaces og interfaces. Og docblock. Jeg skal forklare. Hvis man nå har kommet så langt i planleggingsfasen at man har klassediagrammer og generelle sekvensdiagrammer for hele systemet, er det på tide å begynne å programmere. Ettersom du allerede har bestemt deg for hvilke klasser og metoder du skal utvikle (til nå i prosjektet, skal love deg at du kommer til å utvide kravene dine etterhvert som tiden går!), bør du med en gang skrive alle interfacene sammen med docblock, altså dokumentasjon for hver klasse og hver metode og dets parametere. Dette er gull verdt fordi det lar deg se i din egen API for systemet mens du utvikler for full oversikt. Hva kan være bedre enn det?

Videre er det viktig å velge seg én fast kodestil. Bruk én navnekonvensjon på alle klasser, metoder og variabler. Bruker du f.eks camelCase skal en variabel alltid hete fooBar, ikke foobar eller foo_bar. Her er det såklart helt opp til deg selv, men ta gjerne et søk på nettet for å få en oversikt over de kodestandardene mange opensource-prosjekter benytter seg av. Kanskje du kan velge ut elementer for en stil som passer deg, eller benytte deg av et regelsett som andre allerede har definert.
ओम नमो नारायण
Dodecha's Avatar
DonorCrew
Kjempebra skreve slashdot.

Backer opp det med papir og blyant. Det er helt umulig å holde styr på vektorer, matriser o.l. uten å ha raske klare notater å se på.
Limited edition
Moff's Avatar
Takker for den API-utdypingen!
(Den var forresten ikke forvirrende)
Det er jo eksepsjonelt genialt!
Sitat av comicz
Når det gjelder å lære seg språket er det jo viktig å huske på at man lærer lettest dersom man har et virkelig prosjekt å jobbe med. Det du ikke kan av vanlige grep lærer du deg fort når du "blir tvunget" til å ta det i bruk :-) Uansett lønner det seg nok å kunne litt basics, men det trenger ikke kreve all verdens av tid før man setter i gang med småprosjekter, i hvert fall ikke om man går for språk som PHP og Python og slikt. Forøvrig må jeg innrømme at også jeg er litt svak for Python - det senker lista ganske greit for det å "kunne programmere", og gjør programmering mer anvendelig i dagliglivet(i hvert fall dersom man er Lunix-nerd 8-) ).

Moff:
Et API er et sett med koder og kommandoer som lar deg gjøre et eller annet. Når du begynner å skrive på et nytt C++-program har du i utgangspunktet tilgang til basic C++-kommandoer. Du kan inkludere nye biblioteker, som gir deg tilgang på flere kommandoer. Du slipper f.eks. å lage en helt ny funksjon som kan telle sekunder, du inkluderer bare et bibliotek med denne funksjonen ferdigskrevet. Dette er basicstuff, la oss ta et eksempel på et skikkelig API: SDL. SDL(http://www.libsdl.org/index.php) gjør det lettere å lage f.eks. spill, og gir deg tilgang til lyd og bilde. Det er et stort bibliotek med ferdigdefinerte funksjoner for å kunne sette oppløsning, tegne bitmaps på skjermen og spille av lyder(osv,osv). SDL er portet til mange plattformer, dvs at du(stort sett) kan bruke samme koden under Windows, GNU/Linux eller f.eks. BeOS? På lavt nivå opptrer selvsagt disse plattformene forskjellig på disse punktene, men SDL ligger som et lag oppå og utfører de samme prosessene selv om du er på en annen plattform enn tidligere. I tillegg er SDL portet til en rekke forskjellige språk; i tillegg til C/C++ har du støtte for f.eks. Python, PHP, Perl, Java og Ruby. Det som altså er verdt å merke seg er at slike API'er ikke er en del av verken C++ eller Python. Du må legge inn SDL-bibliotekene før du kan ta dem i bruk, for de følger ikke med.
Bli ikke forvirret over alt dette med multiplattform osv, det er ikke det som er cluet med API'er. Tenk deg at et firma slipper et nytt og hipt mobil-OS. Programmørene kan bruke C, men det er få som gidder å kaste seg over dette nye OS'et dersom de er nødt til å gjøre alt fra bunnen av. Firmaet skriver et API, slik at hver enkelt ikke trenger å definere spesifikt hva som skal skje helt nede på lavnivå hver gang man ønsker å skrive en streng ut på skjermen.

Øøøøh, dette ble langt og rart, håper noen får noe ut av det, og at jeg ikke forvirret for mye.
Vis hele sitatet...
Dvs. at det en slags utvidning av språket, slik at det får flere komandoer og funksjoner?
Eller er jeg på blåbærtur?
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
på sett og vis ja - tenk på det som ekstra funksjoner i språket.
Jeg trodde API bare var sånn vanlig vindu.
Men, siden jeg trodde det, så regner jeg med at for å få sånn windows vindu, så kan jeg bruke et (en/et) API, som inneholder den koden?

Edit: Forresten, hva er forskjellen på et API og et DLL?
Sist endret av boblehest; 15. mai 2006 kl. 21:28.
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
Vindua du ser er windows sitt API ja, for grafikkframvising - så det er eit API du nyttar.

DLL er ein måte å inkludere kode på uten å måtte kompilere det inn i programmet - såkalla dynamisk linka bibliotek, som blir lasta når det er bruk for det.
Ok, men hva er da API?
Du må jo ikke kode det inn i programmet?

Argh.. jeg prøvde meg en gang på Visual Studio 2003, forstod INGENTING.
Kan jeg compile masse kode sammen til en .dll med det?

Edit: Brukte en god stund for å finne .exe filen for programmet, det følger med så VANVITTIG mye.
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
Les litt meir om programmering før du hiv deg på API du... og les kva som står på wikipedia. Ein ting kan eg love deg, og det er at med mindre du er villig til å pløye gjennom side på side med dokumentasjon, blir du aldri flink til å kode...
Som sagt har jeg en bok på over 1000 sider, jeg er stolt over meg selv hvis jeg gidder å lese halve.
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
Så les kva som står der, og ikkje spør oss da!
Neutral Good
Mith's Avatar
EDIT: Når jeg tenker meg om passer det kanskje ikke inn i en så generell tråd som dette, lager ny tråd om det.
Sist endret av Mith; 16. mai 2006 kl. 11:48.
Sitat av slashdot
Så les kva som står der, og ikkje spør oss da!
Vis hele sitatet...
Finner ANSI og append() function, API skulle vært mellom de...
Hvilket den ikke er.
Sist endret av boblehest; 16. mai 2006 kl. 17:43.
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
API er ikkje en funksjon. Og du _FINN_ API på wikipedia. Har sjølv funne det. Så en.wikipedia.org/wiki/API burde vere bra utgangspunkt.
▼ ... noen måneder senere ... ▼
Ikke vær så grinete, slahdot. Du har da vært (er?) nybegynner før du også. Litt hjelp i startfasen skader ikke.

API er en samling av funksjoner/klasser/whotever. Dette er ferdigskrevet kode som du "fletter inn i" koden din. Når man for eksempel skal drive med socketprogrammering (nettverksprogrammering), finner man et socket API som har implementert funksjoner for å sende og motta informasjon over nettverk. Derreter kaller du de funksjonene du måtte ønske, for å oppnå det resultatet du vil ha. På denne måten er APIer et applikasjons programmerings interface til andre litt mer "low-level" operasjoner.

Uansett, om du ikke forstår det nå, så drit i det -- du vil forstå det før eller senere uansett. Det som er viktigst i startfasen er å fokusere på selve språket.
Got it.
Takk.

Ser bare ikke forskjellen på det og en .dll.
(Etter det jeg vet (tror) kan du bruke funksjoner og klasser fra en .dll også.)
En .dll er kompilert. Den brukes av programmet når det kjører.
Og et API blir kompilert..
▼ ... noen måneder senere ... ▼
Var på bibloteket idag:-) fikk med meg visual basic 4 for dummies og html 4 for dummies:-)
De er begge meget gamle og er til windows 95 haha, meeen jeg lærer jo basic sellom:-p
Ikke bruk VB boka. VB.NET som nå har kommet har totalt endret struktur, så jeg vil heller anbefalle deg å finne oppdaterte "kurs" på nettet.
Ok, takker. Noen som har noen forslag på eventuelle "kurs" som er mulige?
Er bare 12 (13 immorra :-p) ¨å ikke nevn noen kurs sånna man må gå på ossv.
Vill meget hjerne lære meg programering over nettet. enten det er visual basic eller c++
Er det normalt at en 13årig gutt går på bibloteket og låner hauger med bøker om allt mulig data relaterte bøker ? hehe

-Axel
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
Sitat av pÅsan
Ok, takker. Noen som har noen forslag på eventuelle "kurs" som er mulige?
Er bare 12 (13 immorra :-p) ¨å ikke nevn noen kurs sånna man må gå på ossv.
Vill meget hjerne lære meg programering over nettet. enten det er visual basic eller c++
Er det normalt at en 13årig gutt går på bibloteket og låner hauger med bøker om allt mulig data relaterte bøker ? hehe

-Axel
Vis hele sitatet...
Les og lær. Dersom du er 12, har du erfaringsmessig ikkje heilt stødig nok engelsk, og ikkje heilt stødig nok tankegang ofte til programmering.

Å gå på biblioteket å låne bøker er verken normalt eller unormalt. I.e, med mindre det er ei lovpålagd aldersgrense (som med film) så har dei bak skranken lite å sei på kva du lånar, og kan ikkje tenke meg dei bryr seg sålenge du leverer tilbake.

php.net sin manual har jo en enkel tutorial, som er et godt utgangspunkt. Ellers anbefalast O'Reilly sine bøker varmt.
Som jeg har sagt før og vil si igjen, å begynne rett på c++ er ofte litt for vanskelig/komplisert.
Å lære visual basic vil jeg ikke anbefale rett og slett fordi visual basic SUGER.
Hvis du vil lære å programmere helt basic stuff så er python veldig greit å begynne med, da lærer du deg grunnleggende ting uten at du er nødt til å bekymre deg for å kompilere osv.
Sitat av pÅsan
Ok, takker. Noen som har noen forslag på eventuelle "kurs" som er mulige?
Er bare 12 (13 immorra :-p) ¨å ikke nevn noen kurs sånna man må gå på ossv.
Vill meget hjerne lære meg programering over nettet. enten det er visual basic eller c++
Er det normalt at en 13årig gutt går på bibloteket og låner hauger med bøker om allt mulig data relaterte bøker ? hehe

-Axel
Vis hele sitatet...
Synes det høres meget normalt å bra ute jeg.
Er nok litt enklere å finne en norsk bok så man slipper å slite med engelsk i tillegg til å forstå programmeringa.

Jeg husker jeg hadde en fin bok som het noe sånn som "Lær Basic med dino" når jeg var sånn 11-12. Noen andre som har vært borti den boka?

Lykke til med programmeringa di Axel, må starte tidlig for å bli god.
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
Sitat av Gollum
Synes det høres meget normalt å bra ute jeg.
Er nok litt enklere å finne en norsk bok så man slipper å slite med engelsk i tillegg til å forstå programmeringa.
Vis hele sitatet...
Problemer er at programmeringa *ER* på engelsk. Språka bygger på engelsk, og det ser uendeleg mykje klarare ut om ein kan engelsk.

Men klart, skader ikkje å begynne med eit språk.
Men selv om man ikke er så stødig i engelsk lærer man seg jo å kjenne igjen ord. Som <head>et ellerannet<head/> er hodet på en nettside. man trenger ikke vite hva ordet head er for å vite hva det gjør.

men såklart man må ha mer språk kunnskap når programmeringen blir mer avansert. men for basics går det sikkert bra. kan vel på en måte sammenliknes med at en 10 åring som ikke kan et ord engelsk kan bli god i engelske spill dersom han spiller det nok.
Sikkerhetsklarert
Sitat av Gollum
Synes det høres meget normalt å bra ute jeg.
Er nok litt enklere å finne en norsk bok så man slipper å slite med engelsk i tillegg til å forstå programmeringa.

Jeg husker jeg hadde en fin bok som het noe sånn som "Lær Basic med dino" når jeg var sånn 11-12. Noen andre som har vært borti den boka?

Lykke til med programmeringa di Axel, må starte tidlig for å bli god.
Vis hele sitatet...
Åh det er jo GullBoka med stor G da!!
Den lærte jeg mye av.. Er skrevet så enkelt at folk i barneskolen kan forstå det.

Husker jeg skrev min egen "konverterings kalkulator" i Qbasic på ungdomskolen ved hjelp av den der.
Kunne kalkulere om de fleste metriske verdier over til amerikanske og motsatt.

Fikk til og med pc speaker til å spille en "sirene" når bruker tastet inn feil input osv..
har busrstag idag jippi 13år:-)

fikk 6 i engelsk så jeg kan en del:-) Kan snakke med en engelsk mann da hehe.
Og når begynte dere så smått med programering? Hvor gammel var du da du først fikk interesse for programering ossv.

-Axel
Sist endret av pÅsan; 22. november 2006 kl. 15:35.
Nå er det i utgangspunktet ikke kun engelsk som er problemet med å lære seg programmering i tidlig alder, men også å kunne vri hodet sitt rundt det logiske som man kan støte på. Men hey, jeg hadde allerde programmert i et par år da jeg var like gammel som deg. Kjør på, forhåpentligvis oppnår du resultater dersom du fortsetter. Men ikke forvent deg enkle svar på alle mulige rare ting du kommer til å lure på.
takk takk for svar:-) Er vell bare og sette igang og begyne da, hehe
Husker jeg begynte når jeg var ca. 12-13 år, men jeg ga opp pga. dårlige lærebøker og dumt valg av språk (Java). Det jeg anbefaler er å lære seg noe enkelt som f.eks. QBasic, ihvertfall til en slik grad at du er komfortabel med variabler, if-setninger, looper o.l.
Når du har forstått det grunnleggende har du mye bedre forutsetninger for å gå videre til et mer "seriøst" språk som f.eks. C++.
Ellers kan det fort bli litt mye på en gang, var ihvertfall slik jeg opplevde det.

http://www.qbasic.com/ <- herfra kan du laste ned QBasic interpreter (v1.1 burde holde i massevis)
http://www.win-xp.no/index.php?name=...wtopic&t=23368 <- En norsk QBasic tutorial
Å lære qbasic var noe jeg også gjorde for leenge siden, men å anbefale noen å lære det i _dag_ er vel ikke så veldig smart. Det er rett og slett utdatert.
Som jeg sa tidligere, en grei erstatning er python.
Rer som rune420 sier smart å lære det grunnleggende først, og til det er python rett og slett utmerket.
Sist endret av TheGEEK; 23. november 2006 kl. 04:18.
tusen, tusen takk for all hjelp alle sammen:-)
▼ ... mange måneder senere ... ▼
"Å kunne VB er ikkje å kunne programmere..."

Hvilket grunnlag har du for å påstå det?
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
Sitat av powerade
"Å kunne VB er ikkje å kunne programmere..."

Hvilket grunnlag har du for å påstå det?
Vis hele sitatet...
At VB er eit dårlig strukturert språk, med syntax som ikkje ligner på nokon andre språk.

Programmering handler stortsett aldri om å kunne et språk. En kvar idiot kan lære seg syntax for php, perl, C++, you name it, men du skal ha litt tenkeevne for å greie å lære deg logikken i programmering.

Viss du skal begynne med programmering vil eg anbefale C#, python eller andre språk som faktisk er ein tanke oppegåande.
▼ ... mange måneder senere ... ▼
Sitat av vidarlo
At VB er eit dårlig strukturert språk, med syntax som ikkje ligner på nokon andre språk.

Programmering handler stortsett aldri om å kunne et språk. En kvar idiot kan lære seg syntax for php, perl, C++, you name it, men du skal ha litt tenkeevne for å greie å lære deg logikken i programmering.

Viss du skal begynne med programmering vil eg anbefale C#, python eller andre språk som faktisk er ein tanke oppegåande.
Vis hele sitatet...
Du har rett i det. Jeg har drevet med en god del C++ programmering i et høyt nivå...

Kan C++ veldig godt. Uansett. Vi kan sammenligne programmering med kunst.

En kunstner kan lære seg teknikken, men ikke resten; den må bygges på kreativ tenking.

En programmerer må på en annen side bygge programmet ut i fra hva en vil oppnå.

F.eks
##########################
Ligning løser
##########################
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

Skriv inn en ligning du vil løse.
NB! Dette programmet kan bare løse førstegrads ligninger med en ukjent.

ligning: 22 + x = 30

Løsning: x = 8


OK. Jeg vet nå hva jeg vil oppnå. Men, hvordan får jeg til dette?

Jeg personlig lager et flyt skjema hvor prosessen er beskrevet og hvilke algoritmer som brukes underveis.

Problemet i programmering er når man vil lage hele programmet på en gang. Jeg personlig begynner med et hoved program. Deretter implamenter jeg små programmer inn etter hvert.

Selvfølgelig får jeg error som jeg må fikse. Ofte fungerer programmet ikke som det skal og det må jeg fikse. Alle får error, men kansje det er en løk som ikke har fått en error før. vet ikke helt :P
med fruktkjøtt.
Tias's Avatar
Crew
Det du beskriver her, dajas, er et typisk eksempel på top-down design. Du begynner med hovedrammene / skjelettet for programmet ditt, gjerne grensesnittet, og bygger på med detaljene etterhvert.

http://en.wikipedia.org/wiki/Top-down
Jeg kan vel spørre her? Dette var noe jeg skrev en gang i min tid, programmet funker som det skal -- Men jeg er ikke helt kjent i programmerings-verdenen og lurer på om det er Korrekt satt opp?

Ville du gjort det annenledes?

cat.c :

Kode

#include <stdio.h>
int main (int argc, char **argv)
	{
int com;
char *fil,*getit,*pnavn;
char tekst[10];
	fil = argv[1];
	pnavn = argv[0];
	com = fopen(fil, "r");

	if (argc < 2)
		{
			printf("%s: Du må angi et filnavn.\n",pnavn);
			return 1;
		}

	if (!com)
	{
		printf("%s: Filnavnet %s eksisterer ikke.\n",pnavn, fil);
		return 1;
	}
	do
	{
		getit = fgets(tekst,10,com);
		if (getit)
		{
			printf("%s",tekst);
		}
	}
	while (getit);
	fclose(com);
	return 0;
	printf("\n");
	}
Syntax:

Kode

bash# gcc -o cat cat.c
bash# chmod +x cat && ./cat cat.c
Sitat av RandomiZed
Jeg kan vel spørre her? Dette var noe jeg skrev en gang i min tid, programmet funker som det skal -- Men jeg er ikke helt kjent i programmerings-verdenen og lurer på om det er Korrekt satt opp?

Ville du gjort det annenledes?

cat.c :

Kode

#include <stdio.h>
int main (int argc, char **argv)
	{
int com;
char *fil,*getit,*pnavn;
char tekst[10];
	fil = argv[1];
	pnavn = argv[0];
	com = fopen(fil, "r");

	if (argc < 2)
		{
			printf("%s: Du må angi et filnavn.\n",pnavn);
			return 1;
		}

	if (!com)
	{
		printf("%s: Filnavnet %s eksisterer ikke.\n",pnavn, fil);
		return 1;
	}
	do
	{
		getit = fgets(tekst,10,com);
		if (getit)
		{
			printf("%s",tekst);
		}
	}
	while (getit);
	fclose(com);
	return 0;
	printf("\n");
	}
Syntax:

Kode

bash# gcc -o cat cat.c
bash# chmod +x cat && ./cat cat.c
Vis hele sitatet...
I første øyekast. Kommentarer i koden Bra dette. Hmm... jo... du må flushe minnet til dette programmet når det er ferdig
Siden du spør, så kan jeg vel alltids slenge ut det jeg umiddelbart reagerer på i denne koden. Først og framst vil tekst kun inneholde 10 byte før du får et overflow, her bør du heller kanskje tenke på å allokere dynamisk minne.

Variablene fil og pnavn assigner du med verdier fra argv-arrayet FØR du sjekker om antall argumenter er korrekte. Hva tror du skjer med applikiasjonet ditt hvis du skulle finne på å gi et feil antall argumenter? Du vil trolig få segfault idet du prøver å aksessere et index i argv som ikke eksisterer.

Videre kan du like gjerne gjøre assignment og sjekk i samme slengen.

Kode

com = fopen( fil, "r" );
if( !com )
kan like greit omskrives til

Kode

if( 0 != (com=fopen( fil, "r")) )
Du kan også benytte deg av feof for å sjekke om du har nådd EOF, kan være greit. I tillegg kanskje bytte ut int com med en FILE peker? NEst siste linje i koden trenger jeg vel knapt engang kommentere?

Det er en hel del måter å gjøre dette på, men jeg vil som sagt bare spytte ut det jeg umiddelbart ser av koden du har skrevet her. Formatering bør du også ta deg selv i nakken på.
fopen() returnerer en FILE*, ikke int.
▼ ... flere år senere ... ▼
Halla!

Skolen har akkurat satt i gang et pilotprosjekt som går ut på å involvere matteopplæring i spill og applikasjoner til alle typer plattformer (PC, Mac, iOS, Android, Linux, osv). De som ønsker kan delta i dette prosjektet og dermed ha en slags blanding av IT og matematikk. Datainteressert som jeg er, ser jeg på dette som en super måte å unngå en flause i karakterboken.

16. November kommer det en representant fra Snowcastle Games, og også en fra Microsoft som skal holde noen foredrag om hvordan prosjektet skal utføres.

Har hatt en del samtaler med mattelæreren min som ønsker at jeg prøver meg på å lage grafiske spill. I og med at jeg ikke har noen spesiell erfaring innenfor templates, photoshop, etc., så tror jeg det blir for komplisert for meg. Et tekstbasert spill tror jeg kan være et godt alternativ. Tenker da en slags variant av Nordic Mafia og lignende, bare med et annet tema. Achievements og ulike nivåer tror jeg kan være ganske kult, og det vil også muligens øke vanskelighetsgraden til et slikt nivå at det kan være karakterfremmende. Om idéen blir en suksess og jeg får publisert småtteriet på en eller annen måte ser det nok ikke helt dumt ut på en CV heller.

På grunnlag av disse tingene har jeg lyst å skaffe meg et lite forsprang på alle de som deltar. Hvordan er det enklest å gå fram for å starte programmering på et basalt nivå? Har tenkt på både Flash, Java, C, Python, og HW som er nevnt her i tråden.

Takker på forhånd for tips!

-Fredrik
Sitat av fisk23 Vis innlegg
Har tenkt på både Flash, Java, C, Python, og HW som er nevnt her i tråden.
Vis hele sitatet...
Flash; Glem det. Ikke tenk på det engang. Bastabom.

Java; For spillprogrammering burde dette språket fungere helt fint for nybegynnere ^^

C\C++: Vill kanskje ikke anbefale C\C++ for en begynner. Men det er et godt språk med god dokumentasjon opp igjennom åra.

Python; Mitt favoritt språk. Lett å lære og lett å utvikle i. Nå får du ikke gjort mye 3D (om det er det du tenker på), men du kan finne gode biblioteker for 2D spill støtte (http://www.pygame.org/news.html)
Jeg støtter det Foxboron sier her.
Flash er bare å glemme, fysj.

Jeg ville gått for Python og biblioteket Pygame. Det er enkelt og komme i gang med, og du kan få gjort ganske mye spennende her.

C++ var et av mine første programmeringsspråk, og jeg hadde ingen problemer å komme i gang med det. Problemet her er at C++ er veeeldig omfattende, og det gjør at du fort kan miste motivasjon om ikke du skjønner det.