Smart Interviews Tips and Tricks
Smart Interviews Tips and Tricks
--Live contest:
1. Be on time for the contest. Be serious about solving the problems.
2. Start from the first question and proceed in ascending order. There will almost NEVER be
a time when 6th question is easier than the 2nd.
3. Read the editorial and solution after the contest. This is what will contribute to most of
your learning.
4. Try to utilize the features on Topcoder and Codeforces to read others' code. I find this to
be one of the most enlightening experiences personally.
Compiled by Sivaranjani Nadar, Class of November 2016 - January 2017
Action:
I messaged Amit and he asked me to calm down and he told me that's it completely fine and to leave the
problem aside for sometime and to comeback to it later with a fresh mindset. So, I did as per instructed.
Response:
It was about 6+ hours since I left the problem and couldn't come back any quicker as I was working in
office. While heading back home, that very night, I tried solving it again and all of a sudden, an intuitive
approach struck my mind. I was so pretty happy about it. It did help me and I find it works out pretty
well! Give a try! 👍
Sivaranjani Sathya-Subramanian The first thing you need to understand is, not being able to solve a
problem is a situation that can happen to both beginners and seasoned coders. Sure, solving a lot of
problems give you the practice required to reduce the probability of getting into this situation. But
depending on the problem even an experienced coder sits with a problem for days together trying to solve
it (trust me on this one) So, it's alright that you did not get that problem right the first time around or the
100th time around. Do not give up or feel disappointed just yet. Remember that at the end of the day, it is
the learning that matters.
Some of the reasons why you'd get frustrated when you don't solve the problem:
-- You think you'd spent too much time on a single problem: It's perfectly alright unless it is some time
bound scenario like an interview. Even then it is alright, because it'll be a learning curve that'll catapult
you to a better next interview.
-- You think you're behind people in class: Please do not compare yourself with someone else. Compare
what you know today with what you knew yesterday. That graph should always be increasing :)
-- You feel stupid: It is a good sign. You'll have the drive to not feel this way: you will absolutely cherish
the moment you see all the green ticks on solution submission, as a result of your long hard work. Every
point on the Leader board will be hard-earned and highly deserved.
-- You think you'll never make it: This is just a mental block (Again,trust me on this) There's nothing in
the world you can't learn when you're ready to work for it. When so many people, batch after batch, in
Smart Interviews can do it, you can do it too. My batch had people from all background: people who are
professional coders to people who did not study CS back in college. But they were equally competent
only because they never told themselves that they can't do it. In short, stop feeling sorry for yourself and
work.
-- Unsolved problems keep you awake at night: Again a good sign. But try to calm down a bit because it
is not particularly healthy both physically and mentally. Monitored breaks and change of perspectives
often help.
Once you understand why you are getting frustrated, understand that the frustration is actually keeping
you from solving your problem at hand. So, take away this unnecessary emotional burden and focus on
methodically getting to your solution.
Some suggestions on what you can do that'll actually help you to solve your problem:
-- Write your logic down using pen/paper before you type it on the screen: very often than not, the major
source of bugs is lack of clarity of thought. It is very difficult to follow your thought process and write
your code simultaneously. So, write down your logic/pseudo-code first before you jump into coding.
-- Get your syntax right: The most annoying form of error. From using the wrong placeholder in C to
missing a \n to confusing = and == to wrong datatype, these tiny errors can cost you your time. Make sure
you read your constraints and expected output and program accordingly.
-- Explain your code out loud to a person (or a toy: the "Rubber ducky" method): When you say out loud
what you are doing, half the time, you'll realise where you're going wrong in the middle of your sentence.
This is one of the major reasons why during interviews, you're expected to "think out loud".
-- Check the edge cases: Second most common source of error, not handling edge cases. Anytime you use
an array, think about scenarios when you might access out of bound index. Anytime you use a pointer,
think about situations when it might point to NULL and what you should do about it. Always check if
your code is working for the extremes of your constraints.
-- Look into the debugging tips posted in this group: Having print statements/break points at multiple
places will help you see if the program is executing in the way you wanted it to. Comparing your
"efficient" algorithm output with brute force output will help you check the validity of your logic.Read
through your code and see if you have translated your logic correctly into code.
-- Take a break: and come back to solve the problem. Change of mood and environment for a brief period
can help you take a fresh look at the problem. But beware of this "break" prolonging for days.
-- And if nothing works, bug Amit Bansal He'll only nudge you in the right direction. You need to
:P
pick yourself up again, decode the clues and work for your solution: the EXACT same way it happens in
interviews.
Remember that it is consistent hard work that'll take you anywhere. You cannot expect results if you give
up before you reach the finishing line. The only difference between winners and the rest is that winners
never quit.