The basic algorithm challenges are just depressing. Some of them I can solve with ease, but a lot of them cause me to just stare at my screen for hours , making no progress until I get sick of it and just look up the solution. I know how to solve all of them, but translating my thoughts into working code is extremely difficult. I find that when I look up the solution(s), I am 95% there but there is always some kind of method used that I never even knew existed.
Like, it’s at the point where I’m not even satisfied when I solve a bonfire. It just makes me feel worse because I needed outside resources to finally solve it. How am I supposed to get a job if I can’t solve these 100% on my own? I can’t look at google during an interview.
And the next time you face that problem, you will be 100% there, and you will also be aware of a method you didn’t know about, and you will understand how to usethat method in context. Toy problems like the algorithm challenges are good for this kind of thing because you can redo them any amount of times and still come up with different ways to.solve them. And once you know one solution it gets progressively easier to solve similar problems.
Self learning without deadends?
Learn, practice, and keep go ahead.
It takes years to see and experience enough.
Don’t expect any online course teach you everything, read books, not just one, more.
It’s not about IQ, it’s about strengths and weaknesses. Algorithms are a one coding skill. There are others: hierarchical organization, data structures, design, networking with clients, etc. Algorithms are an especially hard one for many of us. Just keep at it.
The fact that you were able to solve any at all indicates that you have what it takes. Like others mentioned you just have to keep working hard. This is not easy. Good developers are paid well because it is difficult. Determination and perseverance are more important than a high IQ.
We all have our strengths and weeknesses. I do fairly well with straight up code like working on a project that requires basic JS and the DOM. On the other hand I have been reading the Firebase Authentication API documentation for weeks now and I am having a really hard time wrapping my head around it and putting it to use. If I wasn’t so convinced that I will figure it out at some point I would have quit already. It’s quite normal to stare at your screen in frustration and feeling stupid. You can do it.
I’ve been coding for about 10 years now, starting with C/C++, and I still feel stupid half the time. That’s normal. Learning this stuff is hard. The fact that you’re getting it means that you can get it. Just don’t be in a rush. Nobody in the real world is like Mr. Robot and can just sit down and bang out perfect code in a matter of minutes. Usually we spend a lot of time staring at the screen in complete confusion, reading the docs, or googling some method or error message.
Sounds like you are crying out for a more formal CS class. Check out Harvard’s free course CS50 on their EdX site: