I dont know whether this is the right place to post this question but I think you guys have huge experiences so...
I had a course on both algorithms and software engineering , and now I feel that I can devote my time to only one of these( as these both topics are vast and very time consuming) .I know that algos are necessary to develop efficient and effective softwares but I just couldnt decide what should be my priority learning algorithms( solving problems from acm ) or create new softwares( learn different patterns and different tools).
I hope you will help me.
Thankyou.

How about both? You can't create programs without algorithms. Algorithms are essential tools for programming. If you want to develop a program, or solve a particular problem, you will have to need an algorithm. You can use algorithms of others, or you can come up with your own. But still, most algorithms are theoretical, and putting them in practice is not an easy thing. You just can't copy paste an algorithm, even if it is "ready". ( you' re lucky and the algorithm is written the same programming language you are using) You need to tweak it to fit in your program. Therefore you can't avoid at least the minimal understanding of the algorithm, and what you are doing. After all without the understanding of the problem, there is no algorithm. :) And how do you wish to use your algorithm without mastering a programming language? After all what is a programming language? A tool, to tell the computer what we want it to do for us.

And another thing, problems are usually different, similar but different. Therefore, you will have need a 'custom' algorithm to solve a different problem. So time to time eventually, you will have to create your own. :)

>as these both topics are vast and very time consuming
Perhaps if you're trying to get a PhD or something in one of them. But as a practicing programmer, you can easily learn enough about both to improve yourself. Learning one topic to the exclusion of equally important topics is a very bad idea. You'll end up being the guy who always suggests the same solution because he doesn't understand anything else.

Remember, you want to be well rounded, even if it means you aren't a guru (yet!) in any one thing.

Thanx Narue and BevoX
Ya Narue you are correct I do want to be well-rounded.

This article has been dead for over six months. Start a new discussion instead.