Programming and Higher Mathematics

Started by
58 comments, last by dr3w 5 years, 6 months ago
2 hours ago, NikiTo said:

you don't need to be good at math in order to program

As said our lector: - "Good programer it for first a excelent  mathematist. And for  main it so lazzy mathematist, so able to organize computations by way that make illusion that computer transforms required for specific cases formulas automaticaly, instead to code it equations manually". Also if we translate a term "software" to Russian and then literally translate it back to English it will have  "Mathematical supply of elecronical computational machines".

 

45 minutes ago, JoeJ said:

If math is so heavily used and so important in a company, they will have a mathematician aside from the programmers

But qualified programmer == mathematician. At least here. Programmer qualifictiond can be obtained together with Applicative Mathematic and CS degree only. Say more on 90-th when i study in technical university, our university has a branch of Higher Mathematic that has not been included to any faculty becouse trainers from branch make lectures for students of all faculties, but studens from Applicative Mathematic branch, that has a own lectors and assistants, becouse branch of Higher Mathematic have no trainers that has been able to make lectures to specific for programmers branches of mathematic and ever to give a calculus and linear algebra on required to programmers level. And i told not about a discrete mathematic or theory of graphs. Its branches of mathematics we has for self-education as semester-wide home work. I told about much importent branches like a numerical methods, computational geometry, theory of games, mathematical theory of descigins, semiotics, theory of algorithmical complexity and so on wtihout wich any programming is nonsence.  Nowaday Applicative Mathematic branch enlarged to IT faculty and Higher Mathematic branch included to it faculty.

#define if(a) if((a) && rand()%100)

Advertisement
16 minutes ago, Fulcrum.013 said:

 

55 minutes ago, JoeJ said:

If math is so heavily used and so important in a company, they will have a mathematician aside from the programmers

But qualified programmer == mathematician.

Offtopic: Fulcrum, you take a quoted quote and make it appear as if i said that. But i did not - i've quoted NikiTo, and like you i totally disagree with this. I share your opinion instead.

Now i'm confused, thinking you disagree with me and argue, although we both say the same things. Please let me mention this because i've noticed you do this quite often. You can avoid this kind of confusion by making the text selction more carefully.

I have a friend of mine. We two were the first in our midschool. I can testify he is awesome on algebra. I had to work my ass out to have a B+ in algebra. He studied in an university Computer Sciences. First day he got back to our town from the capital, with his fresh diploma, he called me to set up his router..... I can testify he is super good at algebra, and I know they are taught lot of math in Computer Sciences. He never worked as a programmer. We never found a common language when talking about solving problems. He has no demos, he does not program in the free time. He worked always serving clients in a bank. I personally believe they taught him in that university how to be a teacher in computers, not a programmer.

One of the university i were in, was in the good part of europe. The name of the study was something like: Engineer in IT. People were hired the first year. Second school i studied in, was a world widely know and used software company. People studying there were finding jobs in programming the second month. (those people who had a previous experience in editing a resume and defend on an interview).

I admit, i struggle with algebra when i have to do algebra in programming. But i work my ass out to understand the problem. I google- "fast area of triangle c++|c#|js" and i doubt you can come up with better formulas than those. Those are pretty worked out formulas, and i don't think there is too much to be invented over them. I think i would not be able to program for statistics or advanced financial applications. But anyway i don't like those fields. And anyways, i could read about it and understand statistics and accomplish the task. In 3D math, few formulas are enough to program very cool stuff.

I had the worst struggle in my life with floating point precision problems. But i solved the glitches.

I still opine that algorithm != algebra.
Algorithm is your mommy telling you to first clean the garage WHILE you do the laundry, IF it is raining, hang out the washing inside the garage having the car outside, IF ELSE there is NOT much sun, hang the clothes outside, ELSE hang the clothes outside AND take the car in the cleaned garage. LOOP WHILE you live with your mommy.
This was an algorithm with no math at all. Of course you can calculate the weight of the washed clothes and the radius of turn during parking the car inside the garage, or you can calculate the light coming from the occluded by the daylight stars.....

...who on earth needs math to solve the task given by mommy?!?!?!

29 minutes ago, NikiTo said:

I still opine that algorithm != algebra.

I give an example: Bod and Alice should develop a computer vision algorithm capable to track camera position and orientation while doing unknown motion.

Bob is very good at coding, knows 20 languages, knows all the tricks for best performance, but math is not his expertise. He makes an algorithm to find markers, standing out by different colors or shape in the image. He spends lots of work, and after 3 months he has something that works most of the time.

Alice does not know much about hardware details, but she's skilled at math. Her algorithm uses a Fast Fourier Transform library, she applies it to the image and the rest is easy: If all phases change the same amount, camera rotates that angle, if high frequency waves move less, camera translates, etc. She needs only 5 days to have robust results, and her algorithm is also faster.

Finally they exchange code. Alice says 'hey, neat little trick to save some cycles, i'll remember that', but Bob just says 'Huu?!? What the hell is this? No idea how this works at all'.

 

So, sorry if i'm wrong, i know nothing about CV, but just assume FFT is well suited for the problem. In this case Bob has no chance to compete. Because he never learned how it works, he has no idea of its applications. He does not even know what he misses.

@JoeJ I am not algebra-blind. I just struggle a lot with it. I often do a research about what is already done in order to not lose time reinventing the wheel. If i decide that FFT is worthy i am able to learn it, understand it and implement it myself without libraries.

Many(if not most of) problems people solve in a very complex way are actually very simple. I will mention ASM not as an language, but as an ideology. Any of those fancy math libraries are reduced down to simple operations and can be solved with 20years old computers lacking most of modern instruction set. I am inherently(from ASM) very good at breaking down problems. Alice could use her library, but for the computational time her library copies data around, my app will have solved the movement of the camera already.

Most of the time studying PDFs about fancy algorithms, i am like: "why would they do that?!?! I can make it simpler!!"

The simplest example is people using 4x4 matrices to translate 2D shapes around.....WHY?!?! just supply new x/y!!! When i talk to hardcore mathematicians, they seem to me like locked in their dimension. Lacking imagination, having very few points of view.

In Shadow of Tomb Raider, Tomb Raider is still getting stuck in bounding boxes. WHY?! I am sure mathematicians did the algorithms, not googlers. Ultimately, the quality of the final product matters the most. If i had a company and a mathematician with 4 diplomas fails at solving a problem but a newcoming googler solves it and it works, i will give that newcomer a bonus, not to the mathematician. Specifically, in 3D i value more a coder with artistic skills than a mathematician.

I am not banning math. I am just saying you dont need to be good at math in order to program good stuff. Best option would be Alice to work with me, because we can complement each other. Is Alice hot?
 

1 hour ago, NikiTo said:

I think i would not be able to program for statistics or advanced financial applications.

Really it much easier tasks than graphis programming,phisic simulations and so on. I has worked as Lead Engeneer-Programmer on accounting departament 3 years while studing. Lead mean that i has to project  and implemented myself  factory wide accounting systems  for datacentre of factory with 40k+ employes. After get a diploma i has been promoted to Intern Engineer-Programmer of  FA departament. And it really has been a promotion (salary 2 times higher.) and field much harder to understand while software critically responsible instead of accounting software.

1 hour ago, NikiTo said:

fast area of triangle c++|c#|js" and i doubt you can come up with better formulas than those

.If you have to google it you can not uderstand intuitive a 3D space navigation. Becouse formula utilizes

1 hour ago, NikiTo said:

I had the worst struggle in my life with floating point precision problems. But i solved the glitches.

a core features of cross production. Again - just try to google formula of find distance between 4D space lines. It absolute required to find a candidates for closest by time continuos collision and by the way determine how many frames you may not worry about collisions at all. So how many lines of code for such complexive algos such as 3D continuos collision detection and then rolling back of interpenetrated body its formula can save? And how much machine time it can free for other tasks like a realistic rendering?

1 hour ago, NikiTo said:

Algorithm is your mommy telling you to first clean the garage

for example algorithm for solving a quadric equation:

calculate d=b*b-4ac

if d >= 0 calculate real roots by formula (-b +/- d^0.5)/(2*a)

else no real roots exists. Ans its aalgo has been found on ancient ages.

Really computer hardaware support conditional evaluation (aka branching) and jumps (aka gotos) just becouse it required to calculate any possible function that can be described by algebra. It is core of CS concepts and computers at all. Say more CS has began as a researches that has a target to design implement a universal machine that capable to perform any algebraic function that calculable in finite number of machine steps. 

1 hour ago, NikiTo said:

who on earth needs math to solve the task given by mommy

My mommy and ded is a machinery building technology engineers. So on my high school years thay often ask me to help with computing of his tasks. Say more my first project that has go to production usage on factory i made to help my mommy with his work.

1 hour ago, NikiTo said:

I had the worst struggle in my life with floating point precision problems. But i solved the glitches.

And i never have it problems. Becouse formulas that i am googling related to metodolgy of calculations of stability conditions. really it not a bad idea to look a formulas on reference books, just becouse it impossible to remember it all and take to long time to invent it from scratch for each usage. But for first you have to know what formula to looking for and for main you have to be able to understand it formulas and how to use it proper. It why higher math so importent for prorammers, much more importent than for other engineering fields. 

#define if(a) if((a) && rand()%100)

I think we may have another language difficulty here that we should really clear up. Yes, algorithms are technically "mathematics" in the sense that they are ultimately a formalized process, but they don't seem (at first glance) to be quite like what many North Americans think of as "math."

The colloquial meaning of "math" in North America refers to a specific subset of mathematics that is taught up to high school and in a way that emphasizes doing lots of manual calculations on paper, often without a whole lot of explanation of the theory behind the calculations. I find when someone over here says that they "aren't good at math", usually what they really mean is, "I am not good at solving equations written with some Greek letters, by hand, in a classroom setting." Arguably, the colloquial meaning of "math" in English is now closer to "manual computation" than what mathematicians mean by "math!" In my experience, actual programming (in the sense of formalizing a process) doesn't involve a lot of the kind of thing we do in high school, which is why many programmers say that you don't have to be good at "math" (note quotation marks) in order to be a programmer. 

Those of us who have our undergrads in a field like computer science know that mathematics is a lot more expansive than that (remember, I said earlier in the thread that CS is really a branch of math), but to those of us who grew up in a North American school system, a lot of CS math doesn't really feel like the "math" we did in high school. There is much more focus on proofs, understanding the concepts, and formalizing your thinking rather than memorizing equations and types of problems you can apply them to.

28 minutes ago, Fulcrum.013 said:

If you have to google it you can not uderstand intuitive a 3D space navigation.

When i publish my next demo, i will challenge you to get half near to its quality. It is pointless to argue.
You don't think in a way a computer thinks.
(My collisions are working greatly)
 

5 minutes ago, Oberon_Command said:

I find when someone over here says that they "aren't good at math", usually what they really mean is, "I am not good at solving equations written with some Greek letters, by hand, in a classroom setting."

Sorry, i hit enter here....

I wanted to say that in some very advanced and official technical papers, i have read like: "for those who can not read mathematical equations, here is the SAME algorithm in C".

sorry i hit ctrl something...

17 minutes ago, NikiTo said:

I wanted to say that in some very advanced and official technical papers, i have read like: "for those who can not read mathematical equations, here is the SAME algorithm in C".

This is a good point. It's perfectly possible to be decent at actual mathematics, but not particularly familiar with the notation that mathematicians use to express it. I had a lot of trouble when I was in my first couple of years of university that way. I could understand the concepts just fine, but I sometimes I felt as though I was drowning in the notation my instructors were using. I have been programming since I was 9 years old (before I even started learning algebra), so I "think in code" rather than in notation. As soon as I saw the same concepts implemented in a programming language I knew, I often suddenly "got" it.

In a school environment, one could easily mistake a trouble with notation for a trouble with mathematics.

This topic is closed to new replies.

Advertisement