Missa inte! Fyndchans i Månadens Drop

Mattematikens betydelse för programmeringens kvalite.

Permalänk
Medlem

Mattematikens betydelse för programmeringens kvalite.

-

Permalänk
Medlem

Jag kan säga att det gör många saker mycket lättare om du behärskar någorlunda matte
sin, cos kan vara bra att kunna.. Radianer kan vara bra att kunna.. resten vet ja inte riktigt.. har inte kodat tillräckligt länge

Visa signatur

Corsair Obsidian 250D | i5 7600K | Gigabyte Z270N WiFi | Samsung 960 EVO 250GB | Fractal Design Integra M 650W | Corsair Hydro H90 |Kingston 8GB 2133M DDR4 CL14 | Asus GeForce GTX 970 4GB STRIX DC2 OC MAX |

Permalänk
99:e percentilen

Du kan nog ha nytta av linjära och exponentiella funktioner. Tror även att jag kommer ha nytta av en del saker jag lärt mig i Fysik A och B, t ex formler för rörelse och krafter.

Framförallt är det viktigt att kunna teckna och lösa ekvationer. Jag gjorde nyss ett enkelt program som räknar ut sidomåtten på en skärm om man matar in det diagonala måttet (t ex 24 tum) och proportionerna (t ex 16:9 eller 1920x1080). Då var jag tvungen att först skriva en ekvation och sedan lösa ut en variabel ur den.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Jag programmerade också som liten och skrev funktioner för trigonometri och derivator innan jag "lärt" mej matematiken och "visste" vad det var.

Efter att nu ha tagit mej igenom ett civilingenjörsprogram i datateknik anser jag att det egentligen bara ett matematiskt område du måste behärska för att inte bli en usel programmerare, och det är diskret matematik. Numeriska metoder är väl inte nödvändigt att behärska i alla lägen, men en viss insikt i det krävs om du ska arbeta med tillämpningar där det spelar roll om det blir rätt när man räknar (flyttalsprecision, avrundningsfel, felpropagering etc är viktigt vid ekonomiska och mekaniska beräkningar samt konstruktion, t ex). En grundlig bildning i datastrukturer och algoritmer är också absolut nödvändig, fast det faller ju inte inom matematiken...

Inte för att kunna programmera, något av dessa, men för att göra det bra. (Alla kan sjunga, men hur låter det?)

Permalänk

Ska man koda för signalprocessorer så är det nästan nödvändigt att kunna laplace och fourier-transformer. För att optimera databassökningar kan både matriser och annan matematik vara till nytta

Permalänk

Det beror på vad man ska programera.
Det finns vissa saker man måste kunna som faller inom matematiken, även om det bara är grundläggande begrepp som behövs i början:
Logik (and, or, not) och de normala matematiska operatorerna (+, -, *,/ >, <)
Har man förstått detta så kan man skriva ganska mycket av den kod som behövs för strukturen i ett program.
Vad man behöver utöver detta är väldigt mycket beroende på vad man ska göra. Nästan varje område man kommer in på med programmering blir ju mer eller mindre matematik inblandad i, så för att lyckas behöver man (kanske inte från formel utbildning) en förståelse för den matematik som behövs.
Själv skulle jag inte påstå att jag är en programmerare, utan en glad amatör. Däremot tycker jag det är kul med matte

Visa signatur

Jag kan ha fel, men jag tror att jag har rätt.

Permalänk
Medlem

Matematik och datorer går bra ihop.

Grejen med matematik och datorer/programmering av datorer är att de är så perfekt anpassade till varandra. En dator har som huvudsak en enda uppgift, och det är att räkna och lagra resultaten. Därför är det en fördel att veta vilka olika matematiska problem man kan lösa med en dator och vilka som är svårare för en dator att göra. Själva matematiken i sig sköter datorn själv. Man behöver inte kunna gånger tabellen tex, men hur man ställer upp ekvationer är grunden för all programmering, för det är saker som en dator ännu inte kan göra helt själv.

I framtiden, när datorer är smarta nog att ställa upp ekvationer och lösningar för alla möjliga problem som dyker upp helt själva, då kommer det räcka med att programmeraren talar om i korthet vad datorn ska göra och så gör den det.

- Computer!
- Yes, master?
Give me the reason why people age, use all databases and cross reference the data with lifestyle, environment and genes.
- It was very simple Master, the reason people age is because their bodies are built for it. The very reason of evolution is that old dies and new lives.
- Computer, elaborate!
- If people didnt age and die, there would be no evolution. Lifestyle, environment and genes all contribute to this end.
- And now we can modify all three of those, there is no reason to evolve any further?
- Oh no Master, the evolution just increases with manipulation. In regard to the course of nature, evolution is good, therefore modification of these properties are good.
- Arent we forgetting the concept of God? Isnt God an element of evolution, of all life?
- No Master, the concept of God is just a concept, until proven experimentally. Until then, we have to rely on faith when describing this concept.
- Computer, write this program onto a portable memory.

Visa signatur

"Obi-Wan: Luke, you will find that many of the truths we cling to depend greatly on our own point of view."
— Return of the Jedi
So help spread Dogecoin Many world. Such address: D6wTiKAD9hbVcgRgML687jvj2KiqAbiaUR
So good Much deed! ( Currently: Very few DOGEcoins donated ) even few deeds can be good!

Permalänk
Medlem

-

Permalänk
Skrivet av Hullsc:

I framtiden, när datorer är smarta nog att ställa upp ekvationer och lösningar för alla möjliga problem som dyker upp helt själva, då kommer det räcka med att programmeraren talar om i korthet vad datorn ska göra och så gör den det.

Datorer kommer aldrig att tänka själva. Allting en dator gör måste instrueras, i detalj, av en människa. En dator är därför aldrig smartare än programmeraren. Idag skriver få programmerare all kod själv, till skillnad från på 60 och 70-talet. Utvecklingen går hela tiden mot att varje enskild programmerare skriver mindre och mindre kod. Det är lätt att tänka att datorer har blivit mer intelligenta. Vad som egentligen sker är att språken hela tiden blir mer kraftfulla, tack vare några få genialiska programmerare som hela tiden tillför mer funktioner till programmeringsspråken.

Framtiden!

Du kan bli en riktigt duktig programmerare med väldigt lite matematik. Problemet blir att hitta tillämpningar. Spel kräver matematik. Fysik, AI och rendering kräver mycket med matematik. Affärssystem kräver matematik. För att arbeta med programmering kommer alltid matematik att krävas. Om du har svårt med Matematik A tvivlar jag starkt på att du kommer någonstans med din programmering.

Visa signatur

6600K@4,5GHz 1,25V | EVGA 980Ti | Samsung 950 Pro m.2

Permalänk
Medlem

För att kunna gå en spelutbildning där du lär dig att skapa avancerade spel måste du läsa: Matte A,B,C,D och om du ska hålla på med 3D grafik MÅSTE man läsa linjär algebra, finns inga genvägar där inte, 3D är i princip bara linjär algebra (Det är där bland annat matris beräkningar tillkommer).
En anna matte som är viktig att kunna är Diskret Matematik. Finns mycket i Matte Diskret som har med datastrukturer att göra, exempelvis träd strukturer, nod grafer och mycket annat som är mycket viktigt att kunna.

Fysik måste man också läsa.

Om du har problem med matte A så ser det inte så bra ut tyvärr. Du får kämpa på om du vill bli spelprogrammerare.

Visa signatur

OS: Win7 x64, GPU: Geforce Gigabyte GTX580 SOC
CPU: Intel i5 2500k (4.5gHz), MB: Asus P8P65 PRO Rev(3.1),
PSU: XFX 750w (modular), RAM: 2x Crosair Vengence 1600mz 4024mb
Cooling: CoolIT ECO A.L.C CPU COOLER
Chassi: Raven rv03

Permalänk
Medlem

Som andra här säger så beror det mycket på vad du ska programmera.
Det går dock givetvis att lära sig väldigt mycket om, åtminstone grunderna i, programmering utan att kunna någon matte att tala om.

Men ska man syssla med avancerad spelprogrammering seriöst så kan jag bara helt instämma i vad ediz skriver i inlägget ovanför mig.
Dagens grafikmotorer bygger på väldigt mycket matematik, långt mer än vad gymnasiekurserna innehåller.

De flesta någorlunda seriösa tillämpningar torde också kräva iallafall ett minimum i matematik, som matte A-D, men oftast betydligt mer.

Men ärligt talat så låter det väldigt märkligt att du skulle ha sådana problem med matten om du lyckats lära dig ett programspråk så bra att du kunnat göra det du beskriver.
På den nivån är det ett mycket begränsat antal räkneregler det gäller att lära sig, betydligt färre än det antal kommandon som finns i den grundläggande syntaxen i ett programspråk. Skulle tro att du antingen hade en fullständigt kass lärare som rörde till saker eller så använde du någon dålig metod för att ta dig an ämnet.

Visa signatur

Namn : Jesper | Ålder : 45 | In-game namn : iller
Yrke : Matematisk modellerare (finansiell matematik), mjukvaruutvecklare för risksystem.
Utbildning : Doktor i matematik + en del mat-stat, numme och IT-relaterat.

Permalänk
Medlem

-

Permalänk
Hedersmedlem

Matematik är logik. Matematiska symboler är hur vi beskriver logik i skrift. Datorer agerar efter logik (som signaturen hos trådskaparen påvisar ). Matematik är oerhört användbart för att tänka rätt när man programmerar, för att lära sig hur man ska dela upp problem på bästa sätt, på ett väldigt övergripande plan. Det är inte bara för att skolorna vill kasta pengar i sjön som matematikkurser ingår i alla högskoleutbildningar värda namnet för programmerare. Det i sig är ett dödande argument för att personer, långt mer kompetenta än oss i denna tråd, är av åsikten att programmerare behöver matte.

Men ja; det beror också på vad man ska programmera. Ska man göra enkla Facebookapplikationer/hemsidor/smartphone-"apps" så finns det vanligen inte så mycket komplexitet, och man kommer undan med suboptimala lösningar. Ska man göra högpresterande beräkningsprogram eller bygga totala system med tunga databasapplikationer så är det enormt tidsbesparande att ha någon på positionen som initialt ser fällor, var optimeringar bör ligga, hur de bör utföras, etc. Programmerartid är dyr, så det är värt mycket att snabbt kunna analysera komplicerade problem; vilket är vad matematiken ämnar att lära ut.

Matematik på gymnasienivå är väldigt grundläggande. Tittar man på de olika utbildningar som finns så ser man, liksom min åsikt, att åtminstone en grundlig genomgång, med mycket teori, av linjär algebra är nödvändig.

Ett avslutande ord är att det inte handlar om att kunna trigonometriska formler utantill, utan det handlar om att lära sig ett logiskt tankesätt, och detta är vad matematiken är allra bäst på. En öppen fråga är om läroplanen och examinationen på gymnasiet, eller ens högskolor och universitet, faktiskt reflekterar detta. Min åsikt är att det är en kostnadsfråga, och det är väldigt lätt (=billigt) att ha en examinationsmodell där man mer testar "deklarativ kunskap" med viss applikation, än att testa verklig förståelse av ämnet. Deklarativ kunskap och förståelse är sammankopplat, men jag anser att det inte är något som hindrar personer från att glida igenom utan att ha fått det sistnämnda, samtidigt som personer kan ha fått det sistnämnda men ändå bli underkända på en mer specifik examination.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

Väl uttryckt, phz !

Precis som du säger så är det ju väldigt mycket mer värt att lära sig matematik på ett sätt som gör att den sedan ingår naturligt i programmerarens "logiska verktygslåda" än att memorera formler.
Att memorera formler är oftast helt meningslöst av flera anledningar. Dels blir det fruktansvärt tråkigt att "lära" sig matte på det sättet, dels finns det inget större värde i att memorera alltför mycket eftersom man kan slå upp allt man behöver och dessutom missar man hela poängen med matematik. Matematik handlar om att analysera samband och inte att stoppa in siffror i mängder av formler.

Dessvärre lärs, som sagts, matematik i gymnasiet ofta ut mer genom att folk ska sitta och acceptera/memorera en massa samband och formler istället för att verkligen förstå varför sambanden gäller och vad poängen är.

Skrivet av Erben:

Min lärare var lektor på universitetet i mattematik och hade svårt att nå ut till klassen utifrån ett pedagogiskt perspektiv på gymnasienivå A kan jag tycka. Det förväntades att vi kunde detta enkla.

Kan tänka mig att det sådant medför vissa problem, speciellt om han var ny som lärare på gymnasienivå.
Det är väldigt lätt att bli hemmablind efter att ha undervisat många år på högskolan och då sedan tycka att allt under högskolenivå är sunt förnuft som alla borde fatta eller så. Har man en sådan inställning blir det naturligtvis svårt att sätta undervisningen på en lämplig nivå.

Visa signatur

Namn : Jesper | Ålder : 45 | In-game namn : iller
Yrke : Matematisk modellerare (finansiell matematik), mjukvaruutvecklare för risksystem.
Utbildning : Doktor i matematik + en del mat-stat, numme och IT-relaterat.

Permalänk
Datavetare
Skrivet av Erben:

Men vad anser ni behövs för mattematik kunskaper för att bli en bra programmerare ?

Har själv alltid haft väldigt lätt för mattematik så skulle väldigt gärna vilja svara: ja man måste vara bra i matte för att vara en bra programmerare.

Men så är det inte. Faktum är att programmering nog lärs ut på fel sätt i de flesta universitet och högskolor idag, man lär ut programmering som om det vore en vetenskap, men programmering är långt mycket mer ett hantverk än vad det är en vetenskap. Och alla inser nog att visst är det viktigt för hantverkare att har viss förståelse för hur de material och verktyg de använder är konstruerade, men det som i slutändan skiljer en riktigt bra hantverkare från en medioker är inte teoretisk kunskap utan erfarenhet och inte minst en magkänsla för vad som fungerar när och i vilket sammanhang.

Mattematik i sig kan vara väldigt användbart för programmerare, men det är användbart när man arbetar inom en problemdomän där en viss typ av mattematik kan lösa programmets huvuduppgift på ett enklare och bättre sätt. Men det skiljer sig inte från andra problem där kunskap om reglerteknik, kemi, medicin eller vad det nu må vara för typ av problemdomän man just nu skapar ett program för.

Tyvärr har många programmerare ganska begränsade kunskaper om de problemdomäner de skapar program för. Och visst är det omöjligt att vara expert på allt, men av egen erfarenhet så vet jag hur mycket bättre program man kan skapa om man både förstår sig på programmering och har bra kunskap om problemdomänen. Har i fall där mina kunskaper i matrisberäkningar (robotstyrning) och reglerteknik varit till stor hjälp då jag kunnat inser att kunden inte specificerat själva problemet på ett optimalt sätt och ett program skrivet efter den specifikationen hade aldrig kunnat bli optimalt.

En kunskap programmerare i allt större utsträckning saknar idag, men som definitivt skulle göra dem till bättre programmerare, är ingående förståelse i hur moderna CPUer och då framförallt moderna multicore CPUer fungerar. Har haft förmånen att få diskutera programmering av parallella system en hel del med Charles E. Leiserson (professor på MIT som bl.a. skapat Cilk+) och han sa att på MIT ingår numera en hel kurs som enbart fokuserar på att lära ut hur moderna CPUers cache-hierarkier fungerar. Utan den kunskapen kan man inte skapa program som på ett effektivt sätt kan utnyttja många CPU-kärnor menar han (och jag kan inget annat än hålla med).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

-

Permalänk
Medlem

Jag har jobbat som enterprise-kodare/arkitekt sedan 1996 och har alltid sett mig som dålig på matte. Har skrivit och designat MÅNGA system som körs aktivt fortfarande. Nu när jag har barn i skolålder, så har jag märkt att jag är duktig på förklara ekvationer, förenklig, faktorering och talmönster - det är liksom grejer som kommit på köpet genom att jag applicerat programmeringslogik på problem.

Så ja, matte & kodande hänger ihop. Skall man bli spel-programmerare så är matte mycket viktigare - då måste man lägga manken till tidigt. Jag köpte en bok om AI-kodning förra året. Den hade praktiska exempel på hur man kan tänka med tydliga enkla former för t.ex. acceleration, gravitation etc etc kände inte att jag hade några problem att följa de exemplen. Finns även en uppsjö med exempel kod/material att hitta på internet!

Lycka till!

mvh Lazze

Permalänk
Medlem

För att svara på frågan måste man definiera vad en "bra programmerare" är för något. Om det innebär att programmeraren löser de problem som krävs för verkliga implementationsscenarier i yrkeslivet, så anser jag att den svenska gymnasieskolans matematik A-D är nödvändig. Utan den plattformen kommer att ta alltför lång tid att sätta sig in i de definitioner som används för att lösa problemet. Om det tar för lång tid finns det bättre programmerare som utifrån sin kunskaper kommer att kunna ge kunden ett bättre pris. Konkurrens är den lättast mätbara relativa faktor vi kan använda för att prata om en relativt "bra programmerare" på marknaden.

Ponera att en programmerare förstår problemet och dess lösning, men inte kan språket. Det är ett måttligt stort hinder; programmeringsspråket är bara ett verktyg, likt hammaren för en hantverkare. Problematiken lyser igenom vid omvänt förhållande; att vara duktig på att skriva kod men inte fullt ut förstå problemet man ska lösa. Hur skicklig hantverkaren än är på att hantera sin hammare, blir det väldigt svårt att kreera bokhyllan med lönnfack som han inte förmår förstå hur den fungerar.

Permalänk
Medlem

-

Permalänk
Medlem

-

Permalänk
Medlem
Skrivet av Tea42BBS:

..
mvh Lazze

Väldigt off-topic, men jag gillade din BBS Tea42! Var en herrans massa år sedan nu.

Visa signatur

Alla män är dödliga. Sokrates var dödlig. Alltså är alla män Sokrates.

Permalänk
Datavetare
Skrivet av xzhaskd:

Att säga att högskolan lär ut programmering på fel sätt är lite väl magstarkt, högskolans roll är inte att producera rena programmerare. Vill man bli en programmerare så köp en bok, läs den och ta en certifiering i Java/.NET så är du de facto en yrkesprogrammerare.

Hela poängen är ju just att få de djupa kunskaper du efterfrågar i slutet av ditt inlägg genom att ha en vetenskaplig/delvis matematisk inriktning, man läser algoritmer, mycket matematik, datorarkitektur, operativsystem, kompilatorkunskap...etc..etc just för att få de djupa kunskaper som gör dig till mycket mer än "bara" en programmerare.

Faktum är väl att man kan säga att den rena programmeringen är sekundärt på dessa utbildningar men det beror lite på din inriktning, systemvetenskap är ju mer programmering, datavetenskap mer vetenskaplig inriktning.

Nu var det ett tag sedan jag gick på KTH, men på den tiden så var deras inställning att de som är civ.ing ska inte befatta sig med programmering i bemärkelsen vara den person som faktiskt skriver koden. De levde i villfarelsen att en högutbildad person som t.ex. en civ.ing ska endast designa systemet och dra upp de stora riktlinjerna. Att låta civ.ing och systemvetare koda var slöseri med resurser hette det då de är för dyra (för hög lön).

Förhoppningsvis har man klivit förbi detta idag, då vi nu har lärt oss den hårda vägen att den s.k. vattenfallsmodellen när några "smarta" och välutbildade personer stod för designen och själva programmerande gav man sedan till några mindre kostsamma kod-apor.

Det är helt omöjligt att skapa lite mer avancerade system på det sättet. I stället måste de som sköter programmering av dessa system vara väldigt erfarna (och därmed väldigt dyra) och det betyder bl.a. att de måste ha gjort en rad misstag genom åren och lärt sig från dessa, inom programmering finns det tyvärr en rad misstag man måste få göra själv för att inse exakt varför det är en dålig idé.

Så om inte högskolans/universitetets roll är att utbilda duktiga programmera, vem ska då göra det? Det är långt mycket mer komplicerat än att bara läsa en bok om t.ex. Java eller C# för att bli en bra programmerare, det är som att säga att det räcker att titta på "äntligen hemma" för att bli en riktigt bra hantverkare. Man blir endast en bra programmerare genom att skriva egen och läsa andras programkod i stora mängder. Och företagen tar inte speciellt mycket ansvar i att utbilda sin personal, man vill ha folk som kan vara produktiva direkt. Personligen har jag haft programmering som hobby sedan 9 års ålder, men för många är programmering bara ett jobb och på något sätt ska även dessa personer lära sig programmera. De som har programmering som hobby är alldeles för få för att täcka det behov Sverige har av programmerare.

Tråden handlar om man måste vara bra i mattematik för att vara en bra programmerare. Och det anser jag att man inte behöver. Mattematik och saker som abstrakta datatyper, algoritmer och liknade har väldigt lite gemensamt. Man kan definitivt vara extremt duktig på teorin kring t.ex. sorteringsalgoritmer och ändå bara ha extremt grundläggande kunskaper i mattematik. Även om man formellt vill bevisa tidskomplexiteten på en algoritm så klarar man sig i majoriteten av fallen även där med mycket grundläggande kunskaper i mattematik. Man behöver egentligen inte kunna speciellt mycket om operativsystem, .Net, eller någon annan specifik teknik heller för att vara en bra programmerare, men man måste vara kunnig inom den problemdomän man jobbar (och om det innefattar .Net så måste man naturligtvis kunna en hel del om just .Net).

Det finns naturligtvis fall där kunskap i mattematik är ett krav, men även då är det p.g.a. att problemdomänen kräver mattematik, inte att själva programmerandet gör det. Ett sådan exempel som tagit upp flera gånger är 3D grafik, där man naturligtvis måste kunna sin linjär-algebra.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Erben:

Jo vist en grund att stå på och sedan välja inriktning. Men grunden tror jag behövs "lekas" fram till en förståelse. Jag tror att jag hanterade grunden visuelt avsevärt bättre, än vad jag kunde formulera den på ett papper och konkretisera vad man egentligen menar. Det fanns bara där.

Det du skriver är det jag menar
Man måste inte (alltid) vara en matematiker för att förstå matematiska uppgifter. Min känsla är att vissa har en förståelse och känsla för hur saker hänger ihop inom ett problem. Vissa har förmågan att formulera problemet och beskriva det på ett matematiskt sätt, andra kan lösa problemet med andra hjälpmedel. De små program jag själv skrivit har oftast varit med mycket trial and error. Tyvärr är jag dålig på att slutföra det jag börjar med och kommer därför inte i hamn med mina program om det inte är riktigt korta saker. Matematiken bakom kan jag oftast lösa, men mitt problem är att jag inte har den magkänsla som behövs för att vara en bra programmerare.
Jag anser att programmering är i mycket att jämföra med att skriva böcker. Du ska hitta ditt ämne, planera vad du ska göra och vad du behöver för att få innehållet så som du vill ha det. Sedan kommer skrivar delen där du måste både följa din plan och vara kreativ om du ser ny lösningar och vägar som du inte sett tidigare. Jag är bra på den första delen, det är under den andra som det oftast faller. Antigen stöter jag på ett problem som jag inte lyckas lösa och det slutar med att jag ger upp eller så drar det ut på tiden och jag tappar intresset. Detta gör mig till en inte bra programmerare.
De som kan lyckas med det som jag misslyckas med och kan förstå hur man ska lösa det huvudsakliga problemet oavsett om det är ett matematisk problem eller att bara förstå vad en kravställare önskar, kommer ha möjligheterna att vara en bra programmerare.

Visa signatur

Jag kan ha fel, men jag tror att jag har rätt.

Permalänk
Medlem

-

Permalänk
Medlem

Bara som en liten anekdot:

När jag läste programmering C på gymnasiet så gjorde jag något ganska avancerat grafiskt som jag inte minns exakt vad det var längre. Det var iaf ett par hundra rader kod, loopar och if satser, för att rita upp allt. Jag var ganska stolt vill jag minnas.

Sedan kom min lärare som även var doktorand i matematik. Han tittade på koden i ett par minuter, kommenterade bort allt och ersatte det med mindre än 10 rader. Givet att dessa innehöll en hel del mattematik som jag då inte förstod alls, men bubblan av stolthet sprack xD

Hade varit intressant att läsa den koden igen nu om jag hade sparat den.

Visa signatur

He who hasn't hacked assembly language as a youth has no heart. He who does so as an adult has no brain.
~John Moore

Permalänk
Skrivet av Anaii:

Bara som en liten anekdot:

När jag läste programmering C på gymnasiet så gjorde jag något ganska avancerat grafiskt som jag inte minns exakt vad det var längre. Det var iaf ett par hundra rader kod, loopar och if satser, för att rita upp allt. Jag var ganska stolt vill jag minnas.

Sedan kom min lärare som även var doktorand i matematik. Han tittade på koden i ett par minuter, kommenterade bort allt och ersatte det med mindre än 10 rader. Givet att dessa innehöll en hel del mattematik som jag då inte förstod alls, men bubblan av stolthet sprack xD

Hade varit intressant att läsa den koden igen nu om jag hade sparat den.

Det har hänt mer än en gång... Suttit i en vecka och hårdknäckt kod, fått till den där funktionen perfekt med högt avancerade if-satser och for-loopar... När man lämnar in arbetet frågar handledaren "Varför gjorde du inte bara så här" och slänger in nån matematisk funktion som får ner din 550-radiga kod till 150 >.<

Med det sagt, så går det som sagt att bara använda logik och lägre matematik, men du får ut mer av programmet om du kan högre matematik.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem
Skrivet av Yoshman:

Men så är det inte. Faktum är att programmering nog lärs ut på fel sätt i de flesta universitet och högskolor idag, man lär ut programmering som om det vore en vetenskap, men programmering är långt mycket mer ett hantverk än vad det är en vetenskap. Och alla inser nog att visst är det viktigt för hantverkare att har viss förståelse för hur de material och verktyg de använder är konstruerade, men det som i slutändan skiljer en riktigt bra hantverkare från en medioker är inte teoretisk kunskap utan erfarenhet och inte minst en magkänsla för vad som fungerar när och i vilket sammanhang.

Skrivet av Yoshman:

Nu var det ett tag sedan jag gick på KTH, men på den tiden så var deras inställning att de som är civ.ing ska inte befatta sig med programmering i bemärkelsen vara den person som faktiskt skriver koden. De levde i villfarelsen att en högutbildad person som t.ex. en civ.ing ska endast designa systemet och dra upp de stora riktlinjerna. Att låta civ.ing och systemvetare koda var slöseri med resurser hette det då de är för dyra (för hög lön).

Förhoppningsvis har man klivit förbi detta idag, då vi nu har lärt oss den hårda vägen att den s.k. vattenfallsmodellen när några "smarta" och välutbildade personer stod för designen och själva programmerande gav man sedan till några mindre kostsamma kod-apor.

Du har i min mening mycket rätt i det du säger, och det känns tyvärr fortfarande som att skolorna sitter lite fast i det tänket.
Problemet är även studenternas förväntningar, delvis baserad på väldigt positiva/optimistiska kurskataloger från skolorna. (Omg!! Gå denna utbildning så får du jobb som chef på nått stekigt multinationellt företag)

Nyexade (eller knappt färdiga) studenter kommer (ofta) ut i tron om att dom ska hamna högst upp i näringskedjan direkt.
När så inte är fallet, hamnar väldigt många på utvecklarsidan, då det i min uppfattning finns mycket jobb där.... Det går många kodare på varje PL/Chef/whatever.

Problemet är som sägs här i tråden, det är lätt att lära sig koda, det är lätt att koda något som fungerar, men det är helvetes svårt att bemästra.
Kombinera det med att många som hamnar in på kodningen (tyvärr) bara ser det som ett nödvändigt ont steg i karriären för att kunna klättra uppåt, så har vi soppan många sitter i idag.
Framförallt eftersom folk då tar sig sjukt vatten över huvudet, jag har träffat sånna som mer eller mindre gått ekonomi/business/design-inriktningar med lite it-kurser, kört en "Java A"-kurs och på nått sätt fått anställning som utvecklare på heltid.

Kasst skriven spaghettikod som ingen vill ta ansvar för är vardagsmat på många många arbetsplatser. Oftast totalt odokumenterad till den värdelösa grad att det inte ens finns en systembeskrivning, så att börja om från början knappt är ett alternativ då ingen kan säga hur systemet som helhet egentligen fungerar (eller snarare förväntas fungera) Därtill är underhållet sjukt eftersatt då ingen orkar/vill ta på sig ägandet och alla ändå planerar att (eller redan har hunnit) dra vidare inom nått år.
Samt att det förstås är mycket roligare att hoppa på nått nytt än att laga nått befintligt. Detta har jag märkt väldigt väl, utvecklare överlag tycker om problemlösning, vilket iofs inte är så konstigt. Problemet blir dock en krock då det ofta är en säg, 30/70 ratio på nyutveckling/underhåll, folk tappar intresse när en "uppgift" redan är "löst" och man sitter fast i någon annans idiotiska(? ) designbeslut och fulkod.

Sen är det tyvärr problem åt andra hållet också. Riktigt duktiga utvecklare som _borde_ vara dom som sitter på projekledar/chefsroller med tanke på sin kunskap och erfarenhet är ofta totalt ointresserade utav ledning, dom vill fortsätta med sitt haxxande.
Detta gör att chefer/projektledare/ledning ofta har extremt dålig koll på den tekniska biten istället...

Jag är knappast top-notch själv, men jag försöker iaf se mina egna begränsningar och göra det bästa av varje situation istället för att egoitiskt köra på 110% för egen vinning.