I also suggest you to join this Coursera course, Algorithms: Design and Analysis by Tim Roughgarden. Currently the course is open, so you can sign up for classes. The course is offered in two parts, complete both of them.
Once you are comfortable with basic concepts start solving questions/puzzles online on sites like SPOJ, UVa, (YC-funded) HackerRank. You could try TopCoder also, but the questions are bit difficult. Hope this helps.
PS - You should study math, because it is important in Algorithms Analysis. You could try reading required parts of Concrete Mathematics by Knuth or as you come across new concepts, Google and understand them.
 - http://www.amazon.com/dp/8177583581
 - http://www.amazon.com/dp/1848000693
 - https://www.coursera.org/course/algo
 - https://www.coursera.org/course/algo2
 - http://www.spoj.com
 - http://uva.onlinejudge.org
 - http://hackerrank.com
 - http://www.topcoder.com
 - http://www.amazon.com/dp/0201558025
Fresh book recommendations delivered straight to your inbox every Thursday.