The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.
totally blew it on a test for a programming internship
This morning I had a code test for a programming internship. It was the first time I've taken a code test and I totally blew it. I froze up and couldn't get any code out of my head for a good solid 5 minutes after they asked me the first question. I stumbled hard through the rest of the test, basically just crashed and burned. The person giving the test was very kind, gave me some pointers at the end, but ultimately said they didn't want me till I had more experience coding.
I know this is just reality of life, especially since I -am- very new to coding. It just breaks my heart to fail so hard on my first try. I'm so ashamed and sad, I haven't told anyone but my husband that I failed. I'm dreading having to tell my professors and classmates (all of them know I had the test today).
I am working on turning my hurt/anger around into motivation to work even hard, but good lord this just sucks so bad.
Programmers, or really any other test takers - what do I do to stop from freezing up next time? I'm usually very good at test taking, this is a completely new experience for me.
I'm assuming this is basically just a factor of a programmer's job interview. My advice to all people interviewing for the first time is this: You're going to fuck up the first couple. Try to get some practice interviews in fast. It's just a fact that interviewing, and in this case coding on the spot as part of an interview, is an additional skill you have to practice.
@Ana Ng is this class oriented or job oriented testing you're referencing?
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
0
admanbunionize your workplaceSeattle, WARegistered Userregular
I'm pretty sure the solution is just to write more code. Interview tests differ from class tests in that there's not a set of material that you can study to be sure you're ready for them. What you need is more experience in coding, particularly in thinking through the problem solving process.
How long have you been coding? I'm assuming under four years, since you're still in school. What kind of coding does your classwork involve? Do you work on any personal projects?
I'm pretty sure the solution is just to write more code. Interview tests differ from class tests in that there's not a set of material that you can study to be sure you're ready for them. What you need is more experience in coding, particularly in thinking through the problem solving process.
How long have you been coding? I'm assuming under four years, since you're still in school. What kind of coding does your classwork involve? Do you work on any personal projects?
Not very long. I took my first java class last year, am now taking C#. I know I need to work more on personal coding projects which I'm going to double my efforts on, but it's hard to find time for extra personal projects on top of homework, work etc.
I'd also guess programming "live" in a stress situation like an interview just stressed you out, which happens
in my experience the only way to get over something like that (public speaking etc.) is to just ... do it a couple of times
so keep at it and if after a couple of times you're not getting better, then/i] I'd be worried
Being on the spot totally fried me. I like to think that I'm a logical thinker and a good problem solver, but being on the spot having someone watching me type made me choke.
0
admanbunionize your workplaceSeattle, WARegistered Userregular
In my experience you won't get rid of the feeling of being under pressure, but the more natural coding is for you the less it will matter. You'll be solving the problem even while your brain is telling you, "I can't do this!"
Best advice I can give you is deep breaths and a clear head. Look at the problem, break it down on paper, figure out how you'd move to a conclusion and code it. They aren't so much looking (or at least they shouldn't) if you're an all-star coder, that can be taught, they want to make sure you understand a problem and how to come to a conclusion.
What do you think you struggled with? Do you have an example? That will help me advise you a bit better if there's some sort of context involved like a certain thing they said or a certain word that threw you off, or what.
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
Oh wow. You've taken 1 complete class in one language and are partially through a second?
I'm going to take a step back from interview advice that people are tossing out. Because honestly with that little experience it's no wonder you bombed an interview that put you on the spot. I think most people would with so little experience. So I don't think you need to learn how to interview better so much as actually be a better programmer.
Program all the damn time. Program big things and small things. Finishing a project is not required. But don't give up because it gets hard. I once programmed an application to help me keep track of anime. Don't judge me. I programmed a color coded scheduler for a former girlfriend cause it was something to do and it was easy. I did a bunch of procedural animation, texturing and modelling stuff cause perlin equations struck my fancy. I programmed a few basic games at one point.
Basically, just do it more. Like a lot more. To the point where coding might as well be thinking for you. Because, as in most things, there is an enormous difference between having taken a class on something once, and having actually internalized and made what you learned a part of you.
On a related note there was a really fascinating article on why top athletes choke, and it basically came down to them trying to think too hard about what they were about to do. It overrode the part of their brain which reacts quickly and naturally with the part of your brain which is clunky and slow but more analytical. And when you are first learning things, it's always in the clunky slow part of your brain. But as you do it a lot, and get better, it moves to the quick and intuitive part of your brain.
Sounds like standard test taking anxiety! As a constant ruminator and poor test taker, I know how bad that feeling can be.
You said it yourself, you're new! You just need to practice a lot of coding tutorials.
Think of practicing coding like practicing math: You need to do a lot of drilling through problems. Try to find online tutorials, and practice a set of 5, 10, 20, or how ever many coding tutorials you feel comfortable with in a day.
And the next time you find yourself panicking, try a technique called Thought Stopping. Thought Stopping may or may not work for you, because it largely depends on a given person's psychology, but it can work with some people. I found it worked for me during tests, because I was able to stop, focus on my breathing, and then focus on the test. Like I said, it may or may not work for you, but it's worth a shot.
Thanks everyone. It is good to know that I am somewhat on track as far as experience/lack of. I don't really know any other programmers so it's hard to judge just where I should be at for competency at any given point.
Hard part is I HAVE to do an internship to get my Associate's Degree, but I am, most unfortunately, in a program that seems to place more emphasis on hardware/bench tech training than programming. And Maine (where I live) isn't exactly a hotbed of programming internships.
I'll look into the Thought Stopping. And doing a crapload more coding. And cross my fingers
The most important thing with any coding project, either a exam or a real life task, is to make sure you understand the problem. I flunked a pen and paper programming test really badly with my syntax (because I did not have the compiler to help me!) but I got that job because i actually wrote pseudo code on the page (outlining the logic of my solution). I then wrote some of the crappest code I will ever write, but I passed the test and got the job because i had demonstrated logical thinking and problem solving.
Writing pseudo code also helps you think more clearly about your actual code when it comes to writing it. Quite often (when I was programming) I would put the pseudo code for complicated parts into comment blocks so others could follow the logic without being totally proficient with the coding itself
Yeah, the problem solving aspect is typically of way more importance than the actual code produced. I second the suggestion to just keep programming, programming, all the time. If you're looking for inspiration, there are all sorts of online programming competitions, or even just examples of the sorts of problems they use in those, and that can be great practice for this sort of thing.
Don't take it too hard. Everyone's had a bad interview. I've been programming for twenty years, and I still managed to completely flub a 20 oral question interview back in Uni designed to explore the fringes of programming knowledge. "How do you cause a memory leak in java?" my ass.
Project Euler is a simple test of your programming ability. Can you construct code that will get you the right answer? They range from very simple to very complex, and will test your ability to understand and solve a problem. Once you can go a bunch of these problems in a given language, you will have "the stuff" to not stress out on a internship test.
Same thing happened to me, the simplest answer is to keep attending tests like this - they are incredibly common for junior programming interviews so apply all over the place
Eventually you will get used to the environment and not have it freak you out
Next, study online resources and get clarification on anything you are unsure of
Also practice wrtiting code on paper without THE INTERNET in front of you until you can do it comfortably
Keep this up and eventually you will ace one of these tests
Tasteticle on
Uh-oh I accidentally deleted my signature. Uh-oh!!
0
admanbunionize your workplaceSeattle, WARegistered Userregular
Project Euler is a simple test of your programming ability. Can you construct code that will get you the right answer? They range from very simple to very complex, and will test your ability to understand and solve a problem. Once you can go a bunch of these problems in a given language, you will have "the stuff" to not stress out on a internship test.
I'm not gonna disagree with you completely, but Euler is super math heavy, which can be relevant to programmers but frequently not to that degree.
Project Euler is a simple test of your programming ability. Can you construct code that will get you the right answer? They range from very simple to very complex, and will test your ability to understand and solve a problem. Once you can go a bunch of these problems in a given language, you will have "the stuff" to not stress out on a internship test.
I'm not gonna disagree with you completely, but Euler is super math heavy, which can be relevant to programmers but frequently not to that degree.
Yeah, the Math thing isn't really what I was recommending it for, but for the brain teaser of "wtf, how in the world am I going to do this" aspect - simply trying to approach the problem in some format helps the participant get better at problem solving.
Thanks everyone. It is good to know that I am somewhat on track as far as experience/lack of. I don't really know any other programmers so it's hard to judge just where I should be at for competency at any given point.
Hard part is I HAVE to do an internship to get my Associate's Degree, but I am, most unfortunately, in a program that seems to place more emphasis on hardware/bench tech training than programming. And Maine (where I live) isn't exactly a hotbed of programming internships.
I'll look into the Thought Stopping. And doing a crapload more coding. And cross my fingers
Where in Maine? There's some tech in Portland and a bunch of coders down on the NH seacoast, but none of that is required given the projects out there that need help. Plenty of people will be more than helpful if you're willing to pitch in on open source projects etc., as there's always plenty of boring coding and testing to be done. Also, think of stupid things to code, then code them, like a catalog of your music, or something that would generate a random hiking destination etc. etc.
This morning I had a code test for a programming internship. It was the first time I've taken a code test and I totally blew it. I froze up and couldn't get any code out of my head for a good solid 5 minutes after they asked me the first question. I stumbled hard through the rest of the test, basically just crashed and burned. The person giving the test was very kind, gave me some pointers at the end, but ultimately said they didn't want me till I had more experience coding.
The same exact thing happened to me when I was interviewing for a job I really, really wanted. Breezed through everything right up to the technical evaluation, and froze. I had been doing software development for ~7 years at that point, but this sort of "write the solution on a whiteboard" test wasn't something I had experience with.
It happens to everybody from time to time.
If you're worried about it happening in the future, the best advice I can give is to practice that style of interview. Ask a friend to find a few programming test-your-knowledge sort of questions, and ask them to conduct a mock interview. Repay the favor to your friend the same way, if you can.
Having stage fright during an interview, especially your first one is perfectly natural. I had a similar situation myself, but luck apparently was on my side.
Basically i graduated at a bad time economically, I spent over a year and a half doing crap part time jobs cause i couldnt find anything...then i got an interview across country. They paid for my flight to the location, interviews were going well, then they asked me to sit in front of a computer and code a simple program and i just froze up. I dont remember what i did on the screen but it was pure crap. They left me alone for a bit, and I calmed down a bit, took my pad and paper and wrote the program as it should have. when the guy came back in i handed it to him, said 'Was this more what you were looking for? Sorry I'm just very nervous'. He looked at it, smiled and said 'yep'. then left me again for a minute. I dont know if thats what saved me but i got the job.
Most people understand people in your position are nervous and it takes a special kind of person to completely bullshit through an interview and not sound like they are full of it. I wouldnt be so hard on yourself, its likely that your performance wasnt the major deciding factor, and that they may have already had someone in mind. Chalk it down to experience, and you may want to start putting together little programs to memorize that just do simple things so you will have something planned out.
While I agree with the folks saying that more experience will help, an internship is more of a learning experience than something where you ought to be expected to be an experienced coder. And if you need one to get your associate's degree you are, presumably, going to have to get one with not more than two years worth of classes under your belt.
So, that said, the best way to approach a programming test is the same as the best way to approach any sort of logic-based test: talk your way through the problem.
Even if you have absolutely no idea how to solve the problem presented you can start off right away trying to break it down into sub-problems or building up a list of requirements. Say they ask you to write a function that takes a string and outputs it with all of the vowels in opposite order. Maybe you have no idea how to do that off the top of your head, but you can jump straight into talking about the problem. You've got a string, so you know your function takes a string argument. It's going to return a string, so you know your return type. You're going to need an empty string to build up the return value. Vowels are important, so you're going to need a list of vowels. Maybe thinking about how to store those vowels gives you some ideas for how to actually approach the problem, so you can say that you're going to have to loop through the string to figure out which ones are vowels, but you're going to have to keep track of which index is a vowel and what vowel is there and etc. etc.
You might not actually come up with a working answer, but you'll show that you know how to approach a problem that you can't solve right off the bat. Interviewers don't want to see that you know implementations of common algorithms off the top of your head. Most of the time they'll give you a nudge if you get yourself into a corner or just can't remember how to do something. It's more about a logical mindset and the ability to break down big problems into little problems than it is about actually inverting vowels in a string.
It helps with the freezing up issue because, at least at first, you don't have to do anything new. You're just repeating the problem back and, functionally, circling important words. No real thought required
Posts
How long have you been coding? I'm assuming under four years, since you're still in school. What kind of coding does your classwork involve? Do you work on any personal projects?
in my experience the only way to get over something like that (public speaking etc.) is to just ... do it a couple of times
so keep at it and if after a couple of times you're not getting better, then/i] I'd be worried
It was a test at the actual company giving an internship. Not sure if that answers or not?
Not very long. I took my first java class last year, am now taking C#. I know I need to work more on personal coding projects which I'm going to double my efforts on, but it's hard to find time for extra personal projects on top of homework, work etc.
Being on the spot totally fried me. I like to think that I'm a logical thinker and a good problem solver, but being on the spot having someone watching me type made me choke.
Best advice I can give you is deep breaths and a clear head. Look at the problem, break it down on paper, figure out how you'd move to a conclusion and code it. They aren't so much looking (or at least they shouldn't) if you're an all-star coder, that can be taught, they want to make sure you understand a problem and how to come to a conclusion.
What do you think you struggled with? Do you have an example? That will help me advise you a bit better if there's some sort of context involved like a certain thing they said or a certain word that threw you off, or what.
I'm going to take a step back from interview advice that people are tossing out. Because honestly with that little experience it's no wonder you bombed an interview that put you on the spot. I think most people would with so little experience. So I don't think you need to learn how to interview better so much as actually be a better programmer.
Program all the damn time. Program big things and small things. Finishing a project is not required. But don't give up because it gets hard. I once programmed an application to help me keep track of anime. Don't judge me. I programmed a color coded scheduler for a former girlfriend cause it was something to do and it was easy. I did a bunch of procedural animation, texturing and modelling stuff cause perlin equations struck my fancy. I programmed a few basic games at one point.
Basically, just do it more. Like a lot more. To the point where coding might as well be thinking for you. Because, as in most things, there is an enormous difference between having taken a class on something once, and having actually internalized and made what you learned a part of you.
On a related note there was a really fascinating article on why top athletes choke, and it basically came down to them trying to think too hard about what they were about to do. It overrode the part of their brain which reacts quickly and naturally with the part of your brain which is clunky and slow but more analytical. And when you are first learning things, it's always in the clunky slow part of your brain. But as you do it a lot, and get better, it moves to the quick and intuitive part of your brain.
So yeah, there is all that.
You said it yourself, you're new! You just need to practice a lot of coding tutorials.
Think of practicing coding like practicing math: You need to do a lot of drilling through problems. Try to find online tutorials, and practice a set of 5, 10, 20, or how ever many coding tutorials you feel comfortable with in a day.
And the next time you find yourself panicking, try a technique called Thought Stopping. Thought Stopping may or may not work for you, because it largely depends on a given person's psychology, but it can work with some people. I found it worked for me during tests, because I was able to stop, focus on my breathing, and then focus on the test. Like I said, it may or may not work for you, but it's worth a shot.
Also, do not feel ashamed!
Hard part is I HAVE to do an internship to get my Associate's Degree, but I am, most unfortunately, in a program that seems to place more emphasis on hardware/bench tech training than programming. And Maine (where I live) isn't exactly a hotbed of programming internships.
I'll look into the Thought Stopping. And doing a crapload more coding. And cross my fingers
Learn how to integrate with databases like MySQL if you haven't already. That'll put you ahead of the curve.
Writing pseudo code also helps you think more clearly about your actual code when it comes to writing it. Quite often (when I was programming) I would put the pseudo code for complicated parts into comment blocks so others could follow the logic without being totally proficient with the coding itself
Don't take it too hard. Everyone's had a bad interview. I've been programming for twenty years, and I still managed to completely flub a 20 oral question interview back in Uni designed to explore the fringes of programming knowledge. "How do you cause a memory leak in java?" my ass.
http://projecteuler.net/
Project Euler is a simple test of your programming ability. Can you construct code that will get you the right answer? They range from very simple to very complex, and will test your ability to understand and solve a problem. Once you can go a bunch of these problems in a given language, you will have "the stuff" to not stress out on a internship test.
Eventually you will get used to the environment and not have it freak you out
Next, study online resources and get clarification on anything you are unsure of
Also practice wrtiting code on paper without THE INTERNET in front of you until you can do it comfortably
Keep this up and eventually you will ace one of these tests
Uh-oh I accidentally deleted my signature. Uh-oh!!
I'm not gonna disagree with you completely, but Euler is super math heavy, which can be relevant to programmers but frequently not to that degree.
Yeah, the Math thing isn't really what I was recommending it for, but for the brain teaser of "wtf, how in the world am I going to do this" aspect - simply trying to approach the problem in some format helps the participant get better at problem solving.
Another option could be
http://codingkata.net/
Where in Maine? There's some tech in Portland and a bunch of coders down on the NH seacoast, but none of that is required given the projects out there that need help. Plenty of people will be more than helpful if you're willing to pitch in on open source projects etc., as there's always plenty of boring coding and testing to be done. Also, think of stupid things to code, then code them, like a catalog of your music, or something that would generate a random hiking destination etc. etc.
It happens to everybody from time to time.
If you're worried about it happening in the future, the best advice I can give is to practice that style of interview. Ask a friend to find a few programming test-your-knowledge sort of questions, and ask them to conduct a mock interview. Repay the favor to your friend the same way, if you can.
Basically i graduated at a bad time economically, I spent over a year and a half doing crap part time jobs cause i couldnt find anything...then i got an interview across country. They paid for my flight to the location, interviews were going well, then they asked me to sit in front of a computer and code a simple program and i just froze up. I dont remember what i did on the screen but it was pure crap. They left me alone for a bit, and I calmed down a bit, took my pad and paper and wrote the program as it should have. when the guy came back in i handed it to him, said 'Was this more what you were looking for? Sorry I'm just very nervous'. He looked at it, smiled and said 'yep'. then left me again for a minute. I dont know if thats what saved me but i got the job.
Most people understand people in your position are nervous and it takes a special kind of person to completely bullshit through an interview and not sound like they are full of it. I wouldnt be so hard on yourself, its likely that your performance wasnt the major deciding factor, and that they may have already had someone in mind. Chalk it down to experience, and you may want to start putting together little programs to memorize that just do simple things so you will have something planned out.
So, that said, the best way to approach a programming test is the same as the best way to approach any sort of logic-based test: talk your way through the problem.
Even if you have absolutely no idea how to solve the problem presented you can start off right away trying to break it down into sub-problems or building up a list of requirements. Say they ask you to write a function that takes a string and outputs it with all of the vowels in opposite order. Maybe you have no idea how to do that off the top of your head, but you can jump straight into talking about the problem. You've got a string, so you know your function takes a string argument. It's going to return a string, so you know your return type. You're going to need an empty string to build up the return value. Vowels are important, so you're going to need a list of vowels. Maybe thinking about how to store those vowels gives you some ideas for how to actually approach the problem, so you can say that you're going to have to loop through the string to figure out which ones are vowels, but you're going to have to keep track of which index is a vowel and what vowel is there and etc. etc.
You might not actually come up with a working answer, but you'll show that you know how to approach a problem that you can't solve right off the bat. Interviewers don't want to see that you know implementations of common algorithms off the top of your head. Most of the time they'll give you a nudge if you get yourself into a corner or just can't remember how to do something. It's more about a logical mindset and the ability to break down big problems into little problems than it is about actually inverting vowels in a string.
It helps with the freezing up issue because, at least at first, you don't have to do anything new. You're just repeating the problem back and, functionally, circling important words. No real thought required