Avatar billede fastpoint Nybegynder
20. oktober 2004 - 22:22 Der er 24 kommentarer og
2 løsninger

Om dig?

Er bare lidt nysgerrig om folk herinde.. hvis nogen ikke har noget imod at fortælle hvordan de lærte at programmere, hvor lang tid det tog dem før de var blevet rimelige fornuftige til det og hvad de startede med at programmere med. Til sidst hvad de kan anbefale af sprog og hvordan man skal gribe det an hvis man vil blive god til det.

Studere datamatiker så bliver lidt tvunget til at følge deres planer men er da nysgerrig for hvad i mener.
Avatar billede arne_v Ekspert
20. oktober 2004 - 22:24 #1
Med hensyn til valg af sprog så prøv og læs http://www.eksperten.dk/artikler/251
Avatar billede avlund Nybegynder
20. oktober 2004 - 22:26 #2
Øhm.. AMOS til Amiga, Turbo Pascal og QBasic tror jeg. Det var dog først da jeg lærte Java, VBScript og PHP at det rigtig tog fart. Siden lærte jeg Perl, Prolog og C#.

Anbefalinger kommer helt an på dit behov. Hvis du vil lave web i det små hedder det nok PHP, lidt større så ASP.NET og J2EE. Stand-alone programmer ville jeg vælge C++ eller Delphi til.

Java er forholdsvist nemt at lære og er et rigtigt godt udgangspunkt. Så hvis jeg skulle starte et sted i dag, så ville jeg vælge det sprog, fordi det er objektorienteret, logisk opbygget, elegant og brugbart.
Avatar billede arne_v Ekspert
20. oktober 2004 - 22:26 #3
Jeg lærte at programmere Fortran i 1983.

Og gik igang med CDC Cyber assembler (COMPASS) i 1986.

Og så gik det slag i slag: VAX Assembler (Macro-32), Pascal, C, C++, VBA,
Java, C#, VB.NET !
Avatar billede fastpoint Nybegynder
20. oktober 2004 - 22:36 #4
jeg også lige et spørgsmål til faktisk.. de forskellige sprog er gode til hver sine formål.. men... jeg har fx på nuværende tidspunkt svært ved at se hvordan man fx laver et winzip program.. er det lavet i c++ eller et andet højt sprog sammen med assembly til det avancerede? eller kan man lave stortset alt i c++?
Avatar billede arne_v Ekspert
20. oktober 2004 - 22:38 #5
WinZip er formentligt ren C++. Allerhøjest med en lille stump assembler eller to.
Avatar billede fastpoint Nybegynder
20. oktober 2004 - 22:41 #6
hardware programmering /chip programmering... er det også assembly eller kan man stortset det samme med højtteknologiske sprog i dag?
Avatar billede arne_v Ekspert
20. oktober 2004 - 22:44 #7
Jeg tror stadigvæk at drivere og lignende ofte skrives i assembler, men
ellers er der ikke meget tilbage på standard platforme. Jeg tror at der hvor
assembler trives bedst er på specielle embedded systemer.
Avatar billede fastpoint Nybegynder
20. oktober 2004 - 22:48 #8
okay så lige et sidste spørgsmål.. er assembler så svært at lære når man først har fået helt styr på java og et sprog mere fx.. altså når man er blevet god til at programmere? eller vil du mene man ikke behøver kunne assembler den dag i dag
Avatar billede avlund Nybegynder
20. oktober 2004 - 22:50 #9
Jeg har ingen umiddelbare planer om at lære assembler, men nu går jeg heller ikke alt for meget op i algoritmik. Som Arne skriver bruger man sandsynligvis stort set kun sproget de steder, hvor man laver små programstumper hvor hastigheden er alfa og omega. Det er jo et helvede at skrive større ting i det.
Avatar billede arne_v Ekspert
20. oktober 2004 - 22:51 #10
Assembler er stadigt svært at lære selvom man kan Java, C# etc.. Det er en
helt anden tankegang.

Det giver en god indsigt i og forståelse for hvordan en computer egentligt fungerer
at læse assembler. Så det er en god ballast at have. Men de færreste (formentligt
under 1%) kommer til at bruge det direkte.
Avatar billede fastpoint Nybegynder
20. oktober 2004 - 22:52 #11
så det er kun pga. hastigheden? så det er altså muligt at lave det i fx c++ eller java? men man gør det ikke pga hastigheden?
Avatar billede fastpoint Nybegynder
20. oktober 2004 - 22:53 #12
tænker mest på java... min lærer ved ikke hvad man kan lave med det..
Avatar billede arne_v Ekspert
20. oktober 2004 - 22:53 #13
små embedded systemer:
  maximere hastighed
  minimere memory

standard platforme:
  typisk vil det være for at bruge instruktioner som man ikke kan få C++ til at generere
Avatar billede arne_v Ekspert
20. oktober 2004 - 22:55 #14
Da Java kører i en Virtual Machine kan man i sagens natur ikke lave hardware
nære ting i ren Java.

Så er der kun 99.5% af denne verdens programmer tilbage til Java. :-)
Avatar billede arne_v Ekspert
20. oktober 2004 - 22:55 #15
og et svar
Avatar billede avlund Nybegynder
20. oktober 2004 - 22:56 #16
Altså, jo højere abstraktionsniveau du programmerer på, jo hurtigere kan du producere funktionalitet. Men tilsvarende har du sjældent mulighed for at tweake ned på de allermindste detaljeniveauer og går dermed potentielt glip af specielle funktioner. Derudover er det klart, at hvis du skærer alt overflødigt kode fra, bliver dit program hurtigere.

Nu om dage er computerne dog efterhånden så hurtige, og softwareudviklingsiterationerne så korte, at man fokuserer mere på at kunne lave et program i en fart frem for at vride de ekstra få % hastighed ud af det. Det er derfor f.eks. .NET og J2EE, som slår sig an på produktivitet og udviklingshastighed, er blevet så populære.
Avatar billede fastpoint Nybegynder
20. oktober 2004 - 22:57 #17
hehe... det i orden. Går ud fra c++ vil være mere egnet til  hardware programmering... og igen .. ikke at de interessere mig, men vil bare vide hvor dybt man kan gå ned hvis man ville;)
Avatar billede fastpoint Nybegynder
20. oktober 2004 - 22:58 #18
andre er stadig velkommen til at smide kommentarer... læser dem med glæde;)
Avatar billede avlund Nybegynder
20. oktober 2004 - 22:59 #19
Tak for points, håber du fik noget ud af svarene...
Avatar billede arne_v Ekspert
20. oktober 2004 - 23:00 #20
Bl.a. har de fleste (alle ?) C++ mulighed for:

asm("assembler kode");
Avatar billede fastpoint Nybegynder
20. oktober 2004 - 23:02 #21
Det viste jeg ikke.. og det var da meget smart!
Avatar billede bertelbrander Novice
20. oktober 2004 - 23:04 #22
Man kan lave stort set alt med C++. På mange hardware platforme kan man tilgå hardware registre direkte fra C++ (eller C).

Man har som regel brug for assembler til interrupts og task switch samt (på nogle platforme) specielle instruktioner der udfører specielle ting.

At lave assembler programmer (udover det mest trivielle) der er hurtigere end tilsvarende C++ kræver meget øvelse og kendskab til hardwaren.
Avatar billede Slettet bruger
21. oktober 2004 - 00:34 #23
Sprog, jeg har beskæftiget mig med:

C64:
  Basic
  Comal 80
  Assembler (snuste kun lidt til det.)
Amiga:
  Amos Basic
  Assembler
  C (snuste kun lidt til det.)
PC:
  Lidt makroer i VBA
  Perl
  PHP

Derudover har jeg rodet med shellscripts (.bat-filer) i DOS, Windows, Linux og lidt på VMS. (Forresten: tak for god vejledning til Arne.)

Java har jeg aldrig fået set for alvor på, men jeg vil mene det kunne være et godt sprog at starte med, men det bedste råd vil egentlig være at bare gå igang og lære grundlæggende programmering i hvilket sprog, der nu passer dig bedst. Når man først har fanget det basale, er det for det meste "bare" et spørgsmål om at lære en ny syntaks.

Der er enkelte undtagelser, som f.eks. Lisp, der har en "underlig" syntax og Python, der bruger indrykning i stedet for synlige tegn til at styre løkker, og så naturligvis assembler, men ellers er der forholdsvis stor lighed mellem forskellige sprog.
Avatar billede arne_v Ekspert
21. oktober 2004 - 18:27 #24
sandbox>

Hvornår har jeg hjulpet dig med VMS ?
Avatar billede Slettet bruger
21. oktober 2004 - 22:47 #25
Jeg startede på HHS i 1996, og det var nok mere dine sider på nettet, som hjalp mig.
Avatar billede arne_v Ekspert
22. oktober 2004 - 07:45 #26
ahhh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester