Even though many CS students have recently finished their education and the market is overburdened with demands for young specialists, many students still can’t land their first jobs. It’s all due to failing to correctly show off one’s skills at the programming interviews (apart from other common mistakes). Having not that much real-life experience, students will benefit greatly from the tips below:
Tip #1. Ask Clarifying Questions
For example, in an interview for a Ruby developer position, you might be asked to implement a doubly-linked list where you are given an empty ruby file with some tests.
So a double-linked list, right? Possibly you understand what it is, or perhaps you don’t. If not – pose an inquiry. This is the principal mix-up to stay away from. If you don’t comprehend the issue or what they are requesting, continue to pose questions until you comprehend.
When you think you understand the problem, reiterate your understanding to the interviewer so that they can correct or guide you.
The next thing to do is ask another question: “Can I use an array for nodes?”
But, the interviewer said, no, we couldn’t do that, which makes sense. If we used an array, it would defeat the whole goal of the exercise, which is to form false “pointers” between nodes. In other words, it would be like delegating a college assignment to a service like PayForessay.net but then deciding to do it yourself.
So, there is no array – what should we do now? Here is tip №2:
Tip #2: Hard Coded -> Soft Coded -> Better Solution
When faced with an encoding task, work on the problem in the following order: hard coded -> soft coded -> better solution.
In our experience with surveying developers’ interviews, we found that most people try to do too much at once. When you do too much at once, you think everything is easy until some small hiccup trips your performance up, and you’ve lost.
This is why you should have a structured approach and start with the simplest – the simplest thing you can really do – and move forwards from there.
So there is an empty Ruby class; how can we code something to move forward? We looked at the empty set of tests and saw that there is a function that calls the head the first node in the list.
There, we created a head function and fixed the capital letter “A” as a string and ran this test. It’s over.
Is it extremely simple? Is this too obvious? Yes! But this code does two very important things:
- This allows me to run tests and check if the solution is working.
- It quickly brings us a small victory, increasing our confidence.
Don’t underestimate the importance of small iterative wins for your confidence. Doing so will push you through to the end of the interview safely. It’s the same as assignments experts deal with “write my essay” tasks – they create an outline and iteratively expand and improve upon it – it’s a very safe and fruitful methodology for work.
Okay, we have a hard-coded string, ‘A’. Now, how can we make this soft coded decision? Well, what about turning that letter “A” into a hash?
It’s a little better. Instead of a string with one character, our “node” is represented as a hash with a value property. So we went from hard to soft coded. Now, how can we make it better? Well, how about we put our head pointer on the list?
Now, this approach may seem really slow, but we promise you, it works. Each of these changes is made in a matter of seconds of small iterative coding, and they add up to create a working solution in a short time.
Tip #3: Talk. Aloud
All the time you are performing the coding task, you have to speak out loud – talk through your thought process. Say everything you think – everything. (Well, everything to do with programming.)
Listen to this: the person interviewing needs to know how you think and comping up with a solution. You can do this by sharing everything you think aloud. Even better if you talk in very simple terms, describing your actions will show a high level of communicability, which many interviewers prefer over a high technical skill level.
Each recruiter person has been an interviewee themselves – they realize that even basic things can be troublesome in a job interview. Good interviewers don’t care that you’ve made a 100%-failproof decision – they just want to know that you have good critical thinking skills.
If you’ve never talked through your coding process before, you may want to practice it because it’s vital to score an interview. You might even want to delegate any other less important assignments to some of the paper help services to focus on nailing the interviews.
Why Is This All So Important?
Most interview questions focus on the lowest common denominator, which means the most basic job requirements. The task or the questions themselves are usually not intended to test the upper limit of one’s skill. The interview isn’t designed to extract all the knowledge you possess – you have to show it off yourself.
These three tips will help you get through the technical part of the interview successfully. So often, students fail this part not because their technical knowledge is insufficient, but rather they can’t present it properly.