20 ms·
I see a lot of people that can do things much better, and faster than me. It's intimidating. There are also some problems that I can't even solve in pseudo code
by canicode 11y ago
I see a lot of people that can do things much better, and faster than me. It's intimidating. There are also some problems that I can't even solve in pseudo code. I literally just can't come up with an algorithm that would work. I get a few ideas, and then quickly realize that they're all terrible. Yet I'm sure that there are people that can look at the same problem and come up with 5 different solutions in 30 seconds. I can do a lot of problems, but I think it's just because they're easy. Every time I stumble upon one I can't do without looking stuff up, it ruins my whole day. I begin to get really frustrated and wonder if I just don't have the right type of mind to be a programmer.
That's why I was asking for a problem. I need one that will tell me if I have the right brain wiring/mind. "If you can't do this without outside help in X minutes, you should quit learning to program." Not incredibly easy like FizzBuzz, but not incredibly difficult. Somewhere in the middle.
- boona 11y ago> I see a lot of people that can do things much better, and faster than me. It's intimidating. I think there is a mindset issue at play here. Instead of thinking "Wow, that person is such an elite hacker, I wish I had been born with that talent." think of it as "Wow, it was amazing how they came up with that solution. I want to learn how they did it so I can do the same.". Stated different, ask people their process. If they came up with a solution that was much better than yours, ask them how they came about it. It may look like they've magically came up with a solution, but they do have a mental process that brought them to it. Find out what it is, internalize it and make it your own.
- canicode 11y agoIt feels like cheating though. Once you ask someone for help, the problem is dead. You haven't solved it yourself, and now even if you do solve it, it won't count. Someone told you how to do it. Your interviewer isn't going to help you with technical questions.
- boona 11y agoAsking for the solution, and asking about the process they've used to solve a problem is not the same. Learn the process so you can solve similar problems in the future. I wouldn't consider it cheating or "not counting", they've had to learn how to solve those types of problems somewhere.
- Melkor765 11y agoThere's no shame in reaching out to others when problem solving, that's part of (and should be part of!) the problem solving process. In my experience, Interviewers love when you ask intelligent questions.
- richardthered 11y agoYou're looking at this the wrong way. It doesn't work this way for any profession. Do you think that doctors are created by taking a sick person, sticking them in front of an untrained 'doctor-want-to-be', and seeing if they somehow miraculously manage to correctly diagnose and treat an ailment they've never heard of? No. They train. They study symptoms, and causes, and treatments. They learn about how symptom X is caused by disease Y, and is usually treated by medicine Z. But medicine Z doesn't work in all cases, it's only 75% effective. So you might need to try medicine Z2 instead. etc. And they they do this, over and over and over, adding in new knowledge of symptoms, treatments, effectiveness, etc. They do this on paper, and they do this in a controlled, supervised environments until they can demonstrate enough mastery to be able to demonstrate that they know enough of this body of knowledge of problems and solutions to be trusted to apply it on their own. Programming is no different. Answers don't magically spring, unbidden, from some secret programming organ in your brain - you need to learn the established patterns for solving different types of problems. Then, you need to apply them to different situations. Right now, you're frustrated because you don't have a very big 'bag of tricks' yet. You've only learned a couple of 'solution patterns'. You said that some problems are easy - right? Well, they're easy because you've already added those to your 'bag of tricks'. You've learned the patterns that solve those particular problems. The ones that are hard? That's because you haven't learned those patterns yet. Once you do, they'll be easy too. So, looking up solutions for how to solve these 'hard' problems isn't cheating - it's learning. You're learning new solutions. As time goes by, your library of problem->solutions will get bigger and bigger, allowing you to solve more types of problems. So, don't think of it 'ZOMG - I'm so dumb! I can't magically come up with the solution to this type of problem that I haven't encountered before!' Instead, think of it as 'Hmm. That's interesting. Here's a new category of problem that I haven't solved before. The existing solutions that I have in my toolkit aren't solving it, so let's go learn a new solution pattern. Then I can add it to my toolkit for future problems.'
- mod 11y agoThis response basically proves (to me) that you have an aptitude for coding. As your knowledge increases, you'll gradually run into fewer problems that you can't solve in pseudo-code, but you're not SUPPOSED to be able to solve any problem in code when you start. The mere fact that you even have a few ideas to try is testament to your aptitude. Keep on trucking, you'll get there.