I currently work with PHP and Ruby on Rails as a web developer. My question is why would I need to know algorithms and data structures? Do I need to learn C, C++ or Java first? What are the practical benefits of knowing algorithms and data structures? What are algorithms and data structures in laymanâ€™s terms? (As you can tell unfortunately I have not done a CS course.)

Please provide as much information as possible and thank you in advance ;-)

Data structures are ways of storing stuff, just like you can put stuff in stacks, queues, heaps and buckets - you can do the same thing with data.

Algorithms are recipes or instructions, the quick start manual for your coffee maker is an algorithm to make coffee.