I am a strange sort of a programmer. I am a software engineer by profession and I have written programs in more than one language in various capacities. I know quite a bit about various programming languages and software development in general (that comes with experience and active skill building).
However, I have a problem. I am bad at algorithms. I have made various attempts to teach myself and finally be able to say, I know this algorithm and can implement it well in a programming language. My attempts sometimes began with preparing for an interview where they would ask such questions and ended with them. I just start and get lost I guess. I know the things to learn from (MIT course on algorithms, and so many other resources there). I know, I should just put my head down, be determined and write algorithms/programs on paper and implement it in practice. But, I just seem to be not able to. I run into the mentality of "I don't need this algorithm in my job, or for some reason in the immediate future, and I am good at few things, so I will learn this when I need to..".
I really want to get over this. What is a good time frame to set myself and any advice to how I should approach this mentally and otherwise?