It’s like the title says. Intermediate algorithms are a nightmare.
I’m actually thinking of skipping this all together and potentially coming back later. I might’ve solved one so far, and the deeper I go I’m just like, ‘naah this is making me feel stupid.’
It’s like I learned nothing really.
I go to ‘Get a Hint’ and there’s loads of people with different approach and stuff.
IDK, just wenting my anger with JS.
I thought this would be about making projects and fun stuff but it’s making me feel like I wasted last 3 months on JS. And then I take a pause for a day or two, focus on my RL work, thinking it’ll get better but doesn’t.
Hi @Prototype I’m not a JS guy. But I think with python and with every programming language in General, they are parts that are a complete headache. And you may be stuck for months. Sadly (or perhaps not) The more you practice, it will become less difficult, believe you are not wasting time, it just the crude form of learning programming, getting accustomed to it.
Another factor to consider is your background; recursions, data structures, and high order functions for example, may feel easy for some people, but the nightmare for others. You should be aware of your strengths and weaknesses and do not get overwhelmed by how much time do you spend learning. This is not a racing competition.
This is a frequent though , don’t allow them too much, some days you feel like a Master of the code, and others like its servant.
It may appear cliche, but the only way to overcome coding obstacles, is to affront the problem step by step. Patiently enduring. Giving up in the middle of the path doesn’t help at all.
Hope this helps.
Postdata. You can establish one week specially for the difficult topic, without previous conceptions, make as if you haven’t hearing anything about intermediate algorithms, and start learning it again. The final goal is not a record time, the final goal is to learn it well.
Depending on what sort of coding you’re going to be doing, the problems you solve in the intermediate algorithm section will just repeat over and over and over again…. Oh, another array of objects I need to get properties out of… oh another array of objects to filter… oh another array to loop over…
So looking at the hints isn’t so bad really. Also I think reviewing the array methods and string methods can help with a lot of them. Since a lot are just plug and play.
But just saying that once you learn them once, a lot is just recognizing the problem you solved 100 times before and using the right solution.
And being able to solve them when just learning JS fresh is not any sort of mark of success or failure. Move on if you want. It’s a marathon not a sprint. The JS algorithms are way harder than most the projects.
But there IS a degree of… “here’s the issue, solve it” that is inherent in many coding tasks. So thinking through a problem will be a part of the work at some time. But it’s not really surprising that it would be hard to do that when you first start.
Like, if I just taught you Spanish. And then you had to move to Spain and negotiate a business deal. Do you think you’d be able to do it? Nah, not likely.
Same thing. You just learned a literal new language. Don’t beat yourself up for not being able to problem solve in it at an intermediate level just yet.
Move on to the projects, or go do some other JS tasks, or spend some time doing a different part of the coursework. And come back and review.
Or look at the hints, understand them, remember them, and try to solve the problem without peeking a second time. And move on.
No reason to get stuck. Getting stuck is the state to avoid as a developer. When studying and as a professional.
I am totally new in this Forum and I’ve never been to any forums before. Glad to see that you guys are so actively helpful here. As a newbie I am surely going to need people’s help now and then, and it seems I’m in a good place for that.
There is a distinction between learning JS’s syntax, and learning to wield JS to solve problems.
You might be more comfortable with the language syntax after spending a good amount of time using it to solve problems. However now is the hard part, the “programming part”, where you take your knowledge of your language of choosing and try to solve problems with it.
If your getting stuck with the problems, that’s normal. It is a problem.
Programming is just problem solving. No one promises those problems will be easy, which is where the curriculum shifts from “learning the tools” to “wielding the tools”. Learning how to “wield” the tools (JS) is the hard part, the part that takes time and comes from experience built from struggle and practice.
Looking at solutions will show you how other people “wield their tools”, but that doesn’t mean you will instantly know how to wield it better. You might try to memorize, or copy what their end results look like. You might even be able to memorize so much you can solve some problems. But this isn’t scalable, there are infinite amounts of different problems.
You might even be able to learn a few types of syntax, but you wont learn how to wield your tools better. I’d compare it to watching an elite athlete perform at the Olympics and trying to become them by just watching how they perform. Sure you might learn a bit, but you wont get there without also understanding how they train, and prepare.
This is where you want to realize the “training” is through doing.
The “doing” is where you build experience. Yea it isn’t fast, year JS doesn’t magically solve the problems for you, but it can be your toolkit for solving problems. How you wield those tools is where you begin training. Looking at solutions might give you ideas on how to use those tools, but being able to take a problem, understand it, break it down into smaller chunks and tackling those chunks with your experience is programming.
It takes time, effort (and sometimes blood sweat and tears) to solve hard problems. The same way an Olympian “makes it look easy”, looking at the solutions might make it seem easy, but it doesn’t show the process. The training, the struggle, the bug fixing, the googling, the breaking down of the problem, and the experience built up over solving thousands of other smaller problems.
Take a breather, clear your mind, restart you code, and restart the problem and try to break it down into chunks you can solve. If you have enough tools in your toolbox, or at least remember what tools are in there, you might be able to put together a solution.