mboost-dp1
Datamatiker?
- Forside
- ⟨
- Forum
- ⟨
- Tagwall
#50 Relateret, ja. Men jeg vil påstå at 95% af alle udvikler jobs ikke kræver de store matematik egenskaber. Jeg kender ikke matematikken bag databaser, men jeg kan sagtens lave et helt fornuftigt database layout, der er normaliseret. Jeg har brugt matrixer i flere år uden at vide hvad "Matrix.Dot()" og alle de andre metoder betød. Og dotter man matricer i sin kode, så er man allerede ude i de 5% af udviklere. (med udgangspunkt i egentlige udviklerjobs, ikke hvad der foregår på universitetet).
mhm.mazing (52) skrev:Og dotter man matricer i sin kode, så er man allerede ude i de 5% af udviklere
Det bruges ret meget til spiludvikling. Men nu er dotprodukt af matricer også Matematik B, altså gymnasiel niveau.
Det er også det niveau der kræves for at blive optaget som Datamatiker (og hvilken som helst anden IT-relateret uddannelse i verden).
Men så synes jeg at det er mere relevant at programmøren kan finde ud af at lave operator overload på hans klasse, så at man bare kan gange to matricer med hinanden, frem for at skulle bruge metoder til formålet.
Og det er der , efter min erfaring, faktisk færre som kan, end der kan gange matricer (med en formelsamling til hjælp)
#55-56
I er nu super søde begge 2, men hvis jeg lige må få lov at citere..
Hvorfor prøver i at introducere arbejde i diskussionen? Indtil nu har vi snakket generelt (dvs. ikke kun arbejdsrelateret), og hvis man vil være generelt god til at programmere betyder det jo også at man skal have forståelse for de matematiske aspekter. Du kan være nok så god til at lave små fine applikationer i C#, men hvis det bliver krævet af dig at udvikle noget med effektivitet som første prioritet, så kan du skifte din wc-rulle ud med dine små lorte applikationer.
I er nu super søde begge 2, men hvis jeg lige må få lov at citere..
mazing (49) skrev:Derudover er programmering og matematik ikke det samme - Hvis man er god til matematik er man ikke automatisk god til programmering, og omvendt.
Hvorfor prøver i at introducere arbejde i diskussionen? Indtil nu har vi snakket generelt (dvs. ikke kun arbejdsrelateret), og hvis man vil være generelt god til at programmere betyder det jo også at man skal have forståelse for de matematiske aspekter. Du kan være nok så god til at lave små fine applikationer i C#, men hvis det bliver krævet af dig at udvikle noget med effektivitet som første prioritet, så kan du skifte din wc-rulle ud med dine små lorte applikationer.
dx skrev originalt om arbejde, så det var lidt i det spor jeg fortsatte. Jeg nægter ikke at matematik og programmering har en stærk _teoretisk_ sammenhæng, men jeg mener at de to er langt mere adskilt i praksis. Vi kan kalde det "basal matematisk logik" og så vil jeg gerne være enig med dig i at det er påkrævet.
Der findes en ganske udmærket tråd i live på det her forum kaldet noget i stil med "Vise ord fra Bjarne Stroustrup", hvor vi kaster med mudder over diskussionen med algoritmik, og lad os så give manden hans tråd tilbage, og tage mudderkastningen i den anden tråd :)
#67 I det mindste passer vi vores uddannelse i stedet for at lege Jakob Nielsen på newz.dk :)
EDIT:
Nu man er i gang...
http://i55.tinypic.com/11ijn6h.png
EDIT:
Nu man er i gang...
http://i55.tinypic.com/11ijn6h.png
#72
Der må jeg desværre skuffe dig. Men det undre mig ikke at sådan en folk hjernedøde teoretikere som ikke fatter at lave en skid praktisk, og sikkert heller ikke kan kode, begynder på latterlige personangreb, fordi de er uenige.
Så hvis i vil opføre jer som en folk idioter, så skal i være velkomne.
Der må jeg desværre skuffe dig. Men det undre mig ikke at sådan en folk hjernedøde teoretikere som ikke fatter at lave en skid praktisk, og sikkert heller ikke kan kode, begynder på latterlige personangreb, fordi de er uenige.
Så hvis i vil opføre jer som en folk idioter, så skal i være velkomne.
Windcape (73) skrev:#72
Der må jeg desværre skuffe dig. Men det undre mig ikke at sådan en folk hjernedøde teoretikere som ikke fatter at lave en skid praktisk, og sikkert heller ikke kan kode, begynder på latterlige personangreb, fordi de er uenige.
Så hvis i vil opføre jer som en folk idioter, så skal i være velkomne.
Heldigvis har du slet ikke været sådan i aften :)
#78 Nej det er kun dx der ikke kan kode.. Han er jo en hjernedød idiot som du selv så fint kan sige det. Jeg er derimod super intelligent og kan kode i alverdens sprog og frameworks. Ps, jeg opfandt interwebz. Men hvad nytter det at fortælle dig det, du siger jo bare "NEJ!".
off-topic:
jeg har siddet og kigget lidt på at lave en patch til et program. Den måde den indlæser et XML-dokument er langt fra optimal, så jeg ville lige forbedre på det. Men før jeg ville gøre det, ville jeg lige forstå hvad koden helt præcis gjorde så jeg ikke skulle genopdage den dybe tallerken.
Der var en funktion, xml_nextNode(), som jeg simpelthen ikke kunne finde ud af hvad gjorde helt præcis. Okay, den har noget med den næste node, kan man godt regne ud. Men jeg havde forestillet mig at den bare tjekkede om der var endnu en node, men det passede ikke sammen med at det var det eneste kald på node'n.
Efter at have greppet i et stykke tid fandt jeg så endelig det sted den var defineret (et sted som jeg allerede havde kigget ~2-3 gange). Det var en makro!
Den var defineret noget ala det her:
((node->next != NULL) && (node = node->next))
Altså en assignment skjult bag et ellers boolsk udtryk.
Edit: Jeg tænkte jeg lige ville forklare hvad det var der ikke var optimalt:
Hver node i XML-dokumentet skulle laves om til en eller anden struct og puttes i et array (som skal bruges igennem hele programmet).
Den måde det blev gjort på var at der blev læst en node ad gangen og så oprettet et nyt objekt. Hvis der ikke var mere plads i array'et, realloc'ede den arrayet til størrelsen+k, hvor k er en konstant (32, IIRC). Det bad jeg dem så om at ændre, så de ændrede det til størrelse*2 hver gang, hvilket gør indsættelse amortiseret O(1), hvilket er fint nok.
Da der skal laves en masse indsættelser i starten når man læser dokumentet, og ikke så meget senere, kunne man lige så godt tælle antallet af elementer i starten, allokere den mængde og så indsætte dem.
jeg har siddet og kigget lidt på at lave en patch til et program. Den måde den indlæser et XML-dokument er langt fra optimal, så jeg ville lige forbedre på det. Men før jeg ville gøre det, ville jeg lige forstå hvad koden helt præcis gjorde så jeg ikke skulle genopdage den dybe tallerken.
Der var en funktion, xml_nextNode(), som jeg simpelthen ikke kunne finde ud af hvad gjorde helt præcis. Okay, den har noget med den næste node, kan man godt regne ud. Men jeg havde forestillet mig at den bare tjekkede om der var endnu en node, men det passede ikke sammen med at det var det eneste kald på node'n.
Efter at have greppet i et stykke tid fandt jeg så endelig det sted den var defineret (et sted som jeg allerede havde kigget ~2-3 gange). Det var en makro!
Den var defineret noget ala det her:
((node->next != NULL) && (node = node->next))
Altså en assignment skjult bag et ellers boolsk udtryk.
Edit: Jeg tænkte jeg lige ville forklare hvad det var der ikke var optimalt:
Hver node i XML-dokumentet skulle laves om til en eller anden struct og puttes i et array (som skal bruges igennem hele programmet).
Den måde det blev gjort på var at der blev læst en node ad gangen og så oprettet et nyt objekt. Hvis der ikke var mere plads i array'et, realloc'ede den arrayet til størrelsen+k, hvor k er en konstant (32, IIRC). Det bad jeg dem så om at ændre, så de ændrede det til størrelse*2 hver gang, hvilket gør indsættelse amortiseret O(1), hvilket er fint nok.
Da der skal laves en masse indsættelser i starten når man læser dokumentet, og ikke så meget senere, kunne man lige så godt tælle antallet af elementer i starten, allokere den mængde og så indsætte dem.
#85
Macroer er handy til at forkorte expressions, men når man putter assignments ind, for eksempel, bliver det meget hurtigt uigennemskueligt.
(Jeg lavede lige en update...)
1. Det er ansi c.
2. Jeg bruger vim (Jeg kunne ikke huske hvordan man skal bruge ctags).
Macroer er handy til at forkorte expressions, men når man putter assignments ind, for eksempel, bliver det meget hurtigt uigennemskueligt.
(Jeg lavede lige en update...)
1. Det er ansi c.
2. Jeg bruger vim (Jeg kunne ikke huske hvordan man skal bruge ctags).
#87
http://en.wikipedia.org/wiki/Object_(computer_scie...
tl;dr:
Et objekt er bare noget der ligger i hukommelsen. Objekter behøver ikke at have noget at gøre med OOP.
node->next er et shorthand for (*node).next
Dvs. der er et eller andet struct foo som kunne være defineret således:
struct foo {
...
foo *next;
}; eller hvordan syntaxen nu er (jeg plejer ikke at skrive særligt mange structs, og når jeg gør bruger jeg typedef på samme tid).
http://en.wikipedia.org/wiki/Object_(computer_scie...
tl;dr:
Et objekt er bare noget der ligger i hukommelsen. Objekter behøver ikke at have noget at gøre med OOP.
node->next er et shorthand for (*node).next
Dvs. der er et eller andet struct foo som kunne være defineret således:
struct foo {
...
foo *next;
}; eller hvordan syntaxen nu er (jeg plejer ikke at skrive særligt mange structs, og når jeg gør bruger jeg typedef på samme tid).
mazing (49) skrev:Hvis man er god til matematik er man ikke automatisk god til programmering, og omvendt. Der er selvfølgelig et overlap, men det er af hvad jeg har oplevet ikke noget at skrive hjem om.
Det skal du ikke være så sikker på.
Andre naturvidenskabelige uddannelser (ren matematik, statistik, fysik, astronomi, kemi etc.) producerer masser af gode programmører. Det kan rimeligt godt dokumenteres.
Den anden vej er meget sværere. Men sådan anekdotalt er der mange som mener at evnen til at være præcis er meget vigtig for programmering og den evne bør også hjælpe med matematik.
moveax1ret (55) skrev:kan du nævne 3 gange du i dit arbejde som udvikler har haft brug for big-o ?
Det har han vel haft brug for hver gang han har skullet arbejde med et antal af noget enten i memory (collection) eller på disk (database tabel).
Ikke for notationen som sådan, men for den analyse der kommer med.
mazing (52) skrev:Jeg har brugt matrixer i flere år uden at vide hvad "Matrix.Dot()" og alle de andre metoder betød. Og dotter man matricer i sin kode,
Windcape (53) skrev:Men nu er dotprodukt af matricer også Matematik B, altså gymnasiel niveau.
Hmm.
Er dot produkt ikke en vektor operator og ikke en matrix operator?
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.