Click to See Complete Forum and Search --> : Does one have to be good at programming to design algorithms?


Visorjohn
May 25th, 2011, 08:52 PM
Sorry if that sounds like a stupid question, but I'm new to programming. Background: i'm in a math graduate program, and since that doesn't allow a lot of job offerings after graduation, I decided to pick up algorithm design. The problem is, I only know two programming languages (java + python) at their most basic level, which is an intro course (one textbook) + a few self learning projects.

I'm not aiming to be a good programmer, but what does one have to have before designing algorithms for a company?

ChayKieu
May 25th, 2011, 10:02 PM
Everything in computer is about math, just because a coder doesn't see it right, it doesn't mean what he is doing is not about math, he is just not smart enough to realize it IS math.
Java and Python ? Amazing !!! I know only one, C++. and am trying to be an expert, (I am at an average level now)
You might not believe me, but jobs are all over the place, it's just about your choice and decision, do you accept a low salary ? do you accept a job that is not quite about math major ? do you want to travel far for a low paid job ? a lot alot more conditions of yours and surroundings to think of.
Now I suggest not to put yourself in situation that claims " Dang it I must have a job or tommorrow I'll die of starving! I don't want to beg anyone for any money, I am not going to accept any offerings from humanitarian service groups.."
That's what I think about for you right now.

Eri523
May 26th, 2011, 08:34 AM
Well, for instance, I really admire Euclid's brilliantly simple and efficient GCD algorithm (see http://en.wikipedia.org/wiki/Euclidean_algorithm). And I somehow doubt that guy had any computer at all, probably not even a programmable calculator... ;)

However, I never heard of a company employing people for solely developing algorithms. Though this of course doesn't necessarily mean that there aren't some that actually do that, I assume these jobs are really rare and precious then.

Skizmo
May 26th, 2011, 01:53 PM
No. But it helps a lot.

Ledidas
May 26th, 2011, 04:15 PM
Yes, algorithm totally relates to mathematics, but it is not a generalised or derived form of some particular mathematical area. That is, mathematical branches of advanced level provide concepts that are generalised from practical problems for its sake of ease to pass down generation to generation. I don't ever think a problem at hand need a generalised, algebraic properties to be resolved. It's a wrong way to think about high level mathematics. Instead it 's better to understand what comes first and what comes next. Devising an algorithm needs logics and tests. Logics is your mathematics skills, and tests require your programming skills to decide how correct your logical understanding is. Therefore, you will show your employers your programming skills with results of the algorithms you made or joined to implement. Algorithm is more related to academic research, especially operation research, bioinformatics, network optimization...aka the newest advances, because companies tend to need practical solutions within their budget and to be in time delivery of their ordered products.

nuzzle
May 30th, 2011, 04:56 PM
I'm not aiming to be a good programmer, but what does one have to have before designing algorithms for a company?


You need a good understanding of the properties of a digital computer.

In principle it boils down to two things; Any algorithm must be mathematically finite and it must be computationally tractable. If you can take concepts of high mathematical sophistication and make them programmable in this way you'll be a success even if you never lay down a single line of code yourself.

In my experience there's a great demand for math graduates in many companies. Lots of programmers are at the math level of a high-school drop-out who can hardly count to ten. If they don't have someone to guide them through the math jungle they're totally lost. So don't sell yourself cheap.

I wish a had a stronger math profile. Someone has said something to the effect that "everytime you pass up a math course you can hear the sound of doors closing". It's so true.

GremlinSA
June 1st, 2011, 03:10 PM
The reverse statement is true..

Does one have to be good at designing algorithms to program? .. YES ....

If you cant formulate an algorithm, even on paper then how can you expect to program....

nuzzle
June 3rd, 2011, 11:53 AM
The reverse statement is true..

Does one have to be good at designing algorithms to program? .. YES ....

If you cant formulate an algorithm, even on paper then how can you expect to program....

You're defining algorihtm design and programming to be equivalent. If they mean the same the whole question of whether one is needed for the other is reduced to a trivial tautology. To be meaningful one must assume they're not fully overlapping.

My take on this is that a math graduate very well can learn how to produce excellent and useful algorithms for computers without being very good at programming and even without being especially interested in programming. It may even be an advantage.

GremlinSA
June 4th, 2011, 05:17 PM
You're defining algorihtm design and programming to be equivalent.
NO !! .. I'm putting that Algorithm Design is a SUB SET of what is needed to be a programmer.

Same as Fundamental Maths and Logic's is needed to be able to be a programmer..

They definitely are not equivalent...

nuzzle
June 6th, 2011, 06:22 AM
NO !! .. I'm putting that Algorithm Design is a SUB SET of what is needed to be a programmer.


So in your view algorithm design exists only as a subset of programming? It implies that you can only be good at algorithm design if you're good at programming.

I don't share this view as I've explained already.

GremlinSA
June 6th, 2011, 08:11 AM
So in your view algorithm design exists only as a subset of programming? It implies that you can only be good at algorithm design if you're good at programming.
NO !!!!!

IT DOES NOT imply that you can only be good at algorithm design if you're good at programming.

It States ... That you can only be good at programming if you're good at algorithm design...

Go back to School and Study Sub sets ......

nuzzle
June 7th, 2011, 04:54 AM
Go back to School and Study Sub sets ......

I suggest you do that because then you may realize that algorithm design is not a subset of programming. They intersect. A subset of algorithm design is a subset of programming.

Or do you think one must be good a linear optimization to be good a programming. And genetic algorithms. And fast fourier transforms. And optimal networks. And triangulation of surfaces. And differential equation solvers. And AI heuristics. And ...

No? Then you have selected a subset of algorithm design and claim that one needs to be good at this particular subset to be good at programming. Without specifying what this subset might be you're just saying that one needs to be good at what one needs to be good at to be good at programming.

In short your statement is a meaningless tautology.

GremlinSA
June 7th, 2011, 01:08 PM
Algorithm design (http://en.wikipedia.org/wiki/Algorithm_design)!! Check your FACTS ......

Nuf Said..

pink_briefcase
June 9th, 2011, 01:16 AM
Yes of course. How can you design if you don't know anything about it..it's like an army in a battle without any weapon at hand..,^_^

Keep on keeping on...

http://www.freelancefacts.com

nuzzle
June 14th, 2011, 02:19 AM
Check your FACTS ......


Sure, first locate the facts and then check them.

Pretty nice algorithm you designed there didn't you. You must be a very good programmer. Especially if you also know how to turn it into an efficient computer algorithm because that's the kind of algorithm design a good programmer masters.

In my view algorithm design and programming are intersecting areas. If you look at the intersection in isolation you're right. Both implies each other there.

But say you're a genius physicist interested in quantum computing. You're great at designing algorithms for quantum computers but does that necessarily make you good at programming an ordinary computer? Or say you're the highest paid quant on Wall Street. You're very good at designing all sorts of fancy algorithms to calculate risk and the correct price of assets but does this automatically turn you into a good programmer? I doubt it.

So what you have are areas of algorithm design that are well outside the realms of programming (for more examples see my previous post). Being good at this doesn't make you a good programmer. And the other way around. Being good at programming doesn't make you a good designer of algorithms within say quantum physics or financial mathematics.

In short you're wrong. One needs only be good at a subset of algorithm design to be good at programming, namely what falls within computer science. It's quite easy to define it. In principle it's what Donald Knuth covers in his classic The Art of Computer Programming:

http://www-cs-faculty.stanford.edu/~knuth/taocp.html

Now the good news for the OP is that he doesn't have to open this book because he doesn't need to become a good programmer to utilize his math knowledge even in a software company (see my first post).

Thanks for this Chit Chat. :)