Message on Whatsapp 8879355057 for DSA(OA + Interview) + Fullstack Dev Training + 1-1 Personalized Mentoring to get 10+LPA Job
0 like 0 dislike
1,690 views
in Advice/Suggestion/Opinion by | 1,690 views

5 Answers

0 like 0 dislike

Interviewing for programming job is a distinct skill separate from the day to day activities of the average programmer. The interviewer has a finite amount of time to access your skill level, so rightly or wrongly a certain methodology has evolved.

They try to ask very difficult questions that seldom arises in average programing, under the theory that if you know these answers then you “know everything” about programming. For good developers who have been loyal employees and stayed st the same job for a long time, this can seem very off putting.

However because it is a skill, and the interviewer are largely asking from the same set of questions, the good news is that it's a skill that can be improved. There are many good books on the subject of “cracking the coding interview”. There are also many free resources on the web. Take advantage of these so you're not hearing the question for the first time during the interview.

For someone like you (and me as well!) it is important to prepare before the interview. Work practice problems suggested in the interview resources.

Some of the classics:

  1. Write code to reverse a singly linked list, using recursion, using iteration.
  2. Wrote code to detect cyclicality in a linked list.
  3. Know your big-O notation for all the STL container classes.

If you work on c++, you should know Scott Meyers Effective c++ ( classic c++03 ) and Effective Modern C++ (c++11/14).

Dont despair, just prepare!

Also I have sometimes found it useful to go on a first interview at a job I am indifferent about getting earling in the job hunt. This lets you make mistakes in a “practice” environment. I have found personally the more I interview the better I get at interview skills. Since you are bound to make a couple of mistakes when you haven't been interviewed in a while. So if you can arrange it take an extra interview for a job that is OK, but not your ideal role. Just think of it as a practice run, for the job you want!

by
0 like 0 dislike
Practice, practice, practice.

Coding interviews are a skill. Like all the other skills you’ve learned as a developer, you can learn this one too.

Also, there are not so many good questions for coding interviews that you cannot memorize answers to most of them if you practice. Any investment in time you make in practicing well-known questions increases the probability that a given interviewer will ask you a question you can answer from memory.
by
0 like 0 dislike
Since I just finished interviewing a month ago, I can attest the importance of practicing.

I had done all the coding exercises in Cracking the Code Interview, and made sure not only I could come up with my own answers, understand the answers provided by the book, which approach worked best for certain scenarios, I also make sure I could implement the book’s answer in a language I was familiar with. For example the book provided answers in java, I was focusing on sharpening my JavaScript skills, so I made sure I could implement those answers in JavaScript.

I also did a few questions on HackerRank the day before my interview to help my mind to get prepared. I also found a few minutes of brisk walk before the interview helped me to relax, as well as a good stretch and power poses.
by
0 like 0 dislike
I’m going to give you the secret to coding interviews and if you get this part right, you’ll land more jobs.

There is really only one reason people hire anyone for a job...

People hire people they want to work with.

That's it. That's the entire game. Get that part right and the rest largely takes care of itself.

Now, where you might think I've lost it right now is a thought like, "Don't people get hired for their technical skills and abilities?"

Yes and no.

Yes, your technical abilities matter. People want to work with other people who are skilled and competent. So it matters.

No, your technical skills won't get you the job. Every day hundreds of thousands of competent programmers fill out job applications around the world and don't land the job. Skills by themselves aren't enough.

I've worked with brilliant people in the past that I would never hire. You can have amazing technical skills, pass all the coding challenges they throw at you, and not get hired. Why?

Because people hire people they want to work with.

The number one predictor of who gets hired is whoever the hiring decision maker likes the best. Everything after that is largely a rationalization of feelings.

This is why companies talk about "culture fit" so much now. It's a polite way of saying that they want to hire people who are like them and fit in with their culture.

And this is actually a good thing. Steve Jobs famously designed Apple's culture to be the opposite of IBM's culture. And it worked!

The kind of person who worked at Apple was not the same kind of person who worked at IBM and Steve Jobs used that to build the most valuable company on the planet!

So, when it comes to coding challenges, it's not about getting the right answer. It's about connecting with the people asking the questions and demonstrating what you'd be like to work with.

What people are really asking in an interview setting is, "Do I want to work side by side with this person every day for the next five years?"

That is what interviewing is about.

If it was about having the right skills, they'd hire the first person with the requisite skills and that'd be it. If it was about how you do on a coding test, they'd give out coding tests and whoever got the highest score would get the job.

But that's not how they hire, is it?

So, instead of pretending it's something other than what it is, let's be real for a moment.

If you want to ace the interview, even the coding portion, build rapport with the people interviewing you. Develop the skill of connecting with people quickly and then when you're in those coding challenges respond like you would to a coworker asking you a question.

Remember, people hire people who they want to work with. It works both ways. You have to want to work with these people every day too.
by
0 like 0 dislike
Dont bite!

If a substantial pool of the industry's respected veteran talent rebels against this insipid interview practice, the industry may finally wake up and improve as a whole.

But first, I think a bit of history is in order to explain how the industry ended up like this:

Basically, you can blame Bill Gates. When he was created a little start-up called Microsoft, that would later become an empire, he went out of his way to hire young inexperienced programmers straight out of school over seasoned veterans. There are probably two reasons for this : #1 He probably was wary of bad coding practices from the mainframe era creeping into his new company, #2 He wanted a cult following where everyone looked up to him (in spite of his very young age). Over time, the culture at Microsoft shifted a little bit, and of course when it became an empire, it wasnt just hiring kids out of school anymore. However, the bias of preferring youthful exuberance over experience still existed, and that was very evident in the company's interview process & the so-called Microsoft Puzzle Interviews. Basically, you'd be given a puzzle to solve, which didnt require you to know anything about coding or have any experience in the field whatsoever. You simply needed to be clever and confident enough to solve it under pressurized interview constraints. A lot of other big companies borrowed this interview process, and some still use it. But when Google dethroned Microsoft to become the hottest tech company to work for, they changed the game a little. Google rightfully realized that solving arcane puzzles has nothing to do with coding, but they did little to address the fundamental problem with this interview format other than put lipstick on a pig! The Google interview puzzles are now coated in computer science instead of being completely arbitrary like the old school MS ones, and as an added measure, they actually force you to prove you can write some code on a white-board. And of course, monkey see monkey do, so everyone else has copied this interview format (some more successfully than others). Of course, I dare bet that a self-styled pro at the old-school Microsoft Puzzle Interviews will have a much easier time adapting to the modern coding interview; than a real seasoned coder who hasnt spent much time with either of these interview formats.

And more over, the bias of valuing youthful exuberance over experience still exists in these coding interviews.                                    Even when thats totally inappropriate.

What can you, the seasoned 20-year software engineer, do about it?

First, you need to dispel one of the stereotypes about being an old-timer, which is ;you cant teach an old dog new tricks. You do so by teaching yourself new things to advance your career. Thats really the only thing that matters in the fast moving tech industry ; how quickly you can go from 0 to infinity, from newbie to ninja, when learning a new topic.

And that skill of being able to quickly digest new information, and then with short turn-around, correctly applying it and putting it into practice in ways that accomplish specific goals ; is really the only thing that matters! Thats what differentiates the great hackers from the code monkeys. And the pony show that is the coding interview has nothing to do with it. In fact, I imagine that there might even be a negative correlation between doing well on coding interviews and hacker aptitude. Just because you play a particular game (like interviews) well doesnt mean you're anything more than a slightly more refined code monkey.

Anyway, ask yourself how much the market values the skills you have right now? If your 20 years of experience can basically be summarized as saying that you're an average C++ programmer, then you probably don't have a lot of leverage. Yes, there are lots of jobs for C++ programmers, but its also pretty easy to find a C++ programmer. So if that’s what you basically have to offer, then the company you're applying to has more leverage. They can find plenty of C++ programmers who can jump through their interview hoops like lemmings. You might still be a better C++ coder, but they'd rather hire 10 mediocre C++ coders in place of you who play by their rules, even if it means a bit of inefficiency.

Where you have leverage is if you're an expert in a niche area that is in high demand, but where there arent many experts ; like say deep learning. Additionally, let’s say you’re applying to work at Apple to fix Siri AI problem, and you just so happen to have a lot of experience building scalable expert systems that utilize deep learning to parse natural language. Now, you're the bird they dont want to get away, and you have leverage in the interview. Just an example that came to mind. But the thing to keep in mind is that you can either be hired as a code monkey or because your specialized skills really matter to someone. The distinguishing trait about code monkeys is that they’re easily interchangeable.

If you’ve spent the past 20 years actively tailoring your career for specialized niches, where your specific skills cant easily be replaced with an army of monkey coders, you’ve got leverage for every employer who is having a hard time finding people with those specific skills.

Most likely, you didnt do that because you got a bunch of jobs that emphasized commodity programming skills over specialization. And you didn't pursue management roles because you like coding, so now you find yourself hitting a glass ceiling, where the way up seems to be through these stupid coding interviews. Am I right?

The good news is if you're willing to learn new tricks, you can probably fix your career path.

Step 1 : Learn what you really need to know to gain leverage in your career. With appropriate leverage, you may not even get a coding interview.

Step 2 : Say NO to the coding interview. The way I would do this is to first articulate to the interviewer why I think the coding interview is not only irrelevant but detrimental to the company's presumable objective of hiring the best experienced individual for the position. I would then challenge them to explain otherwise, and say you'll only do the coding interview, if the interviewer can give you a satisfactory justification for having it.
by
edited