Hi everyone,

I'm learning C# at the moment and really enjoying it. I'm wondering though how I can develop my own algorithms. do I need to read on data structures and algorithms?
Is there a book for all programming languages so you can apply the knowledge to basically any programming language you use (E.g Java, C#, PHP, JavaScript, Python..etc)?

Links will help also.


That's really such a wide field. Googling for a specific algorithm would probably be more efficient, build your library as you go.

If your looking for a foundation on which it would make these languages (C#, Java, etc.) easier to learn, I would pick up a book on Object Oriented Programming in general and read the concepts and purposes of OOP. Knowing how OOP is supposed to work, why it works, would make learning C# and Java much easier for you, instead of trying to understand the language first.

The .NET framework is already rich enough in datastructures to serve all your basic programming needs. Learn from it through MSDN. If you can't find what you want, you could start thinking about your own datastructures. Plenty of stuff on the web. This is an example.

Thanks guys for the fantastic cooperation on this. I think data structures and algorithms course might help, don't you guys think?

@Kru, yeah sometimes, you get to start learning the basics of a particular programming language with the package of OOP stuff( inheritance, Polymorphism, Encapsulation). Then at some point in time, you try implementing an algorithm that you want to use to solve your a problem. You just feel like you're stuck and can't go anywhere.

Thanks for the suggestion anyway, someone might benefit from it.

It does not alway has to be OOP you know. A static class does not need to be instantiated. See this article.