Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Do you need to understand higher mathmatics for programming?
#11
Quote:
Kevin_theprogrammer Wrote:You should know your basic Elementary School math, and some Junior High math if you want to get into DirectX 3D programming. Of course, you would need to know C/C++ to do that, and then, you may give up or become bored and never finish the project due to the complexity of Window's API, which you can completely bypass by using FreeBASIC, but you would not be able to use DirectX, which requires the use of Windows API, even when ported, which to me, BASIC windows API looked even more complex...

So you use more math in C++/JAVA then in lets say FreeBasic, Python, PHP and MySQL?
No, it just has a more complex syntax, and a step closer to machine code.
[Image: 1403.png]
^ Infrosoft
http://www.thecodeyouneed.us.to/ - A wiki of source code, mostly in PHP and FreeBASIC
http://www.osadvocacy.uk.to/ - Your opinion matters no matter your OS
Reply
#12
If you're looking for a good 3dgfx lib under FreeBASIC, you should look into opengl. I've never used DirectX because I don't know C or C++ well enough, but OpenGL works great with FB.

Also, DirectX will work under FB... it's just a pain in the ass. :lol:
Reply
#13
Quote:I see that in most colleges, Computer Sciences requires a lot of math and I was wondering if that was necessary? Do you need to take Calculus and higher-level math to be a good programmer?

Not necessarily but it definitely does help. It does depend on what you want to do though, computer science and programming are not the same thing. I personally would recommend that anyone who is serious about a career in programming learn at least some boolean logic, linear algebra and set/group theory. If you want to get into computer science, it is defintely worth taking several math courses.

Quote:Computer science concepts aren't rooted in math

I'm currently doing a masters in computer science and I really disagree with that. Many of the core computer science problems are mathmatical problems that predate the existance of computers. Topics such as algorithm complexity, logic, cryptography, searching and sorting are all mathmatical problems. They can be applied to areas in computing, but essentially they are just math. Two of my supervisors don't even have computer science degrees, both of them have PhD's in mathmatics, they later picked up computers as a medium to apply that knowledge.

Quote:Computer Science is much, much more than just "programming." You can be a decent programmer without much knowing a lot of math, but you won't get very far as a computer scientist.

Agreed. Computer science and software engineering are often confused. Software engineers are basically programmers, they need to understand a range of tools and be able to design software to fits requirements and then develop that software. Computer science is more theoritical. Like any other science you come up with theories, setup experiments to test them, analyse the results and come up with conclusions, computers are basically just the tool used for doing the experiments with. Large portions of the work on my masters have been done using pen and paper or a whiteboard, only when I have figured problems out fully do I go away and do the implementation work.
esus saves.... Passes to Moses, shoots, he scores!
Reply
#14
Quote:If you're looking for a good 3dgfx lib under FreeBASIC, you should look into opengl. I've never used DirectX because I don't know C or C++ well enough, but OpenGL works great with FB.

Also, DirectX will work under FB... it's just a pain in the ass. :lol:
I tell you what, it will be a pain in the ass to use DX under FreeBASIC because of the need to use Windows API. I can make sense out of the C code, but it just for some odd reason looks very convoluted in BASIC...
[Image: 1403.png]
^ Infrosoft
http://www.thecodeyouneed.us.to/ - A wiki of source code, mostly in PHP and FreeBASIC
http://www.osadvocacy.uk.to/ - Your opinion matters no matter your OS
Reply
#15
Quote:
stylin Wrote:Computer science concepts aren't rooted in math

I'm currently doing a masters in computer science and I really disagree with that. Many of the core computer science problems are mathmatical problems that predate the existance of computers. Topics such as algorithm complexity, logic, cryptography, searching and sorting are all mathmatical problems. They can be applied to areas in computing, but essentially they are just math. Two of my supervisors don't even have computer science degrees, both of them have PhD's in mathmatics, they later picked up computers as a medium to apply that knowledge.
While I agree that logic is indeed tied to mathematical concepts, I believe the OP was referring to specific subsets, such as algebra, trig, calculus, etc.

Also, many real-world situations require only an understanding of basic logic, and you can get by with a rudimentary (read: common sense) understanding of set theory. For example, many languages have libraries that you can (and should) use to perform extremely complex sorting very simply (C++'s STL, for instance).

I only have a BS in CS, but from what I picked up there, and from working in the companies I was fortunate enough to be a part of, I would say that being able to think logically and abstractly is the most important part about being a good programmer. Not to beat a dead horse, but many people without a strong mathematical background can write spaghetti-code using GOTOs and the like, but being a good programmer involves knowing effective programming techniques as well as general computer science theory.

Granted, understanding math is a good first step in becoming a good programmer, but many of the techniques necessary to excel are language-specific - or, at least, language category-specific (object-orientation, generics, meta-programming, etc.) These techniques transcend math in many ways, and are largely attained from experience actually using them.

Since the OP is asking about being a good programmer - and not just being able to program at all - then no, math does not automatically allow you to be a good programmer. Math will not teach you the most effective way to pass parameters to functions, layout an object hierarchy, or write efficient code. These things come with experience and training (practice). A good programmer may or may not know calculus, but she will be able to minimize dependencies, write robust, but problem-specific (efficient) code, and understand expansive complexity in it's entirety.

She will not be tied to a certain way of doing things, but rather, adapt to any given situation, including client's needs, platform-specific considerations, language choice, etc. Again, math does not teach you any these things - experience does.
stylin:
Reply
#16
aha!!!!!

1 + 1 = 42

Big Grin
y smiley is 24 bit.
[Image: anya2.jpg]

Genso's Junkyard:
http://rel.betterwebber.com/
Reply
#17
NO!!!!

1+1 = 11
EVEN MEN OF STEEL RUST.
[Image: chav.gif]
Reply
#18
Higher maths are the sort of thing that you don't need until you have them.

You can program without them, and you can live without them, but the fact of the matter is that your worldview and understanding of what you program is hackish this way.

It's easy to illustrate this concept. Before Newtons calculus of fluctions and his universal theory of gravitation, humans fought wars with cannons. No suprise there. However, war manuals demonstrate the behaviour of cannon balls as being roughly diagonal, followed by what is almost a complete drop-off.

Cannon balls obviously didn't move this way, but at the time simplistic and flawed aristotelian theories about the nature of movement were in vogue (as they had been for a millenium and half). In the end, canoneers still managed to destroy their targets, but with none of the finesse of later canoneers who had the benefit of newtonian physics.

In the world of numbers, not having access to similarly fundamental laws is like being the canoneer without calculus and a correct theory of gravitation. You may eventually hit the target, but it's going to be much easier for the person who didn't need to guess.
Reply
#19
Quote:
Dr_Davenstein Wrote:If you're looking for a good 3dgfx lib under FreeBASIC, you should look into opengl. I've never used DirectX because I don't know C or C++ well enough, but OpenGL works great with FB.

Also, DirectX will work under FB... it's just a pain in the ass. :lol:
I tell you what, it will be a pain in the ass to use DX under FreeBASIC because of the need to use Windows API. I can make sense out of the C code, but it just for some odd reason looks very convoluted in BASIC...

I agree with you... but there is a way around it! You can use SDL for your windowing stuff, and DirectX for rendering/sound/whatever.

Here's a good article on the subject: http://www.gamedev.net/reference/article...le2249.asp

It's in C++, but it's not very advanced C++.
.14159265358979323846264338327950288419716939937510582709445
Glarplesnarkleflibbertygibbertygarbethparkentalelelangathaffendoinkadonkeydingdonkaspamahedron.
Reply
#20
For early comp sci classes you do need some advanced math classes. Discrete math is a must, you need to know how to do proof by induction. You also will want to know how to do limits when analyzing O-notation.
f you play a Microsoft CD backwards you can hear demonic voices. The scary part is that if you play it forwards it installs Windows.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)