Find some online courses, start simple and build up slowly. And keep practicing.
I think SPOJ is a good place to practice, but not so good to learn. As a learning aid, the SPOJ tutorials are pretty hopeless. Someone decides a problem is too easy, so it’s moved to the tutorials, but you won’t find any guidance or assistance. The best you can hope for is that someone might mention the name of an algorithm in the comments, so at least you have something to Google