3 ms·
You need to figure out _why_ you can't do medium problems. If you can solve easy ones, it means you have the fundamentals down, and probably just need more expo
by sciencewolf 6y ago
You need to figure out _why_ you can't do medium problems. If you can solve easy ones, it means you have the fundamentals down, and probably just need more exposure.
250 sounds like a lot, but I'd also be curious how you do the problems, and why you're having issues.
Where are you getting stuck? Are you looking at the answers immediately? Or are you struggling through the problem, and only peeking at hints as much as is needed to make a breakthrough?
Do you think through and recognize the patterns (two pointer, greedy, dynamic, etc) that are needed to tackle the problem, or are you just jumping into code instantly?
What do you do when you get stuck? Do you confidently ask for help, knowing hints are part of the game?
How's your timing? Are you getting in a brute force solution and an optimized one?
Addressing these concerns will reveal where you need work, and then you can continue to get better without being too affected by your current state. Remember, no one was born knowing how to solve these problems, so you can always get better and reach your economic goals.
Small plug -- we created AlgoDaily (https://algodaily.com https://algodaily.com) to teach programming interview skills using a visual, patterns-based approach. The lessons on approaching the interview and how to prepare might be especially helpful.
- strikelaserclaw 6y agoin my experience, easy problems basically test how well u know the language u code in, they generally involve no knowledge of algorithms or ds. Medium problems generally involve being comfortable applying algo & ds fundamentals to solving problems. Generally, u can solve a medium problem pretty easily in a bad way but u can refine it to whatever degree your skill permits you, they key here is to understand things like space time complexity of your solution and seeing if you can refine it
- sciencewolf 6y agoI think I'd agree, but my argument is that going from a medium problem solved "pretty easily in a bad way" to a "fully optimized and efficient way" is easier than most people think. There's only a dozen or so patterns needed. As an example, if you know the two pointer technique (https://algodaily.com/lessons/using-the-two-pointer-technique https://algodaily.com/lessons/using-the-two-pointer-techniqu...), you're well on your way to solving at least 1/3 to half of array problems in a performant manner.
- spiffyman 6y agoSome friendly feedback: I clicked through to your article about the two pointer technique and, AFAICT, there's nothing for me to do or read here. It says "In this guide, we'll cover..." but it's not clear how to actually view the guide. I'm guessing - without having clicked around at all - that my next step would be to create an account and visit the page again, but that's not at all clear to me as an unauthenticated user. I do see a small "Login" on the bottom right of the page, as well as "Sign in" and a highlighted "Upgrade" at the top. But there is no CTA telling me what my next step should be. Maybe users of your site who land on this page will know what that step should be, but you might want to add some direction for people who randomly land on it via SEO/SEM or links on forums. Cheers! ETA: in a search for some action, I clicked all over the graphic and on a couple phrases in the intro to see if they would take me somewhere. If you're tracking clicks, it might be worth looking at whether other users are doing similar things.
- dropit_sphere 6y agoI had the same experience; at the very bottom of the screen are "next" and "back" buttons. But it took me a while.
- sciencewolf 6y agoThanks so much for the heads up :-) It's amazing how much of the user's perspective you miss when you're heads-down in code all day. I've added some navigational indicators to hopefully make it a little clearer that you can press the footer buttons or swipe on the screen. Appreciate the friendly feedback!