I've been a software developer for the past 4 and a half years, mostly working on "enterprise" web applications using Java and JEE (I even got myself certified as a Java programmer a few years ago); I know OO theory really well and I can even apply some of the most well known design patterns effectively; I love coding and learning new frameworks and languages and figuring out where I can apply them in my job. The problem arises when someone asks me algorithm related problems and questions like those on the career cup site, specially big O and recursive stuff or applied mathematics. I freeze. I've tried reading through the Cormen book on algorithms but no matter how hard I try it's very hard for me to get this stuff. I feel like an idiot and I wonder if I should switch careers, but I don't want to.
I love programming and I feel really bad about this; I feel stupid and dumb and questioning myself at this point in my life makes me feel uncertain and insecure about myself. I really need help figuring out how I can solve this problem. Are there any books or resources that could help me?.