9

I'm a mid career technical person. I currently work as a technical trainer. I'm exceptional at learning how systems work quickly, researching, I've got a wide range of technical knowledge, I'm great at presenting and explaining technical concepts in non-technical language.

I am terrible at coding though. I love to code. I find it really useful but whenever I have gone for an interview involving white board code problem solving it is just beyond me. I'm just nowhere near that league. I bought a book about 'passing the coding interview'... and frankly I can memorise the answers but after many, many attempts to understand the problem solving aspect I realise it is beyond me. My brain just can't do it. I think there is some level of mathematical intuition that I'm just not wired for.

While I'm never going to apply for a job as a developer, which is fine, the frustrating part is when I go to job interviews for non-developer positions that require some coding knowledge (for instance as a support engineer) I fail at simple white board problem solving.

How can I demonstrate my practical, hacky coding skills and general technical aptitude in an interview and get around flunking whiteboard code quizzes?

  • 2
    In a hospital, would you want to be treated by a nurse that has hacky skills when it comes to measuring your morphene, or anti-venom dose? If you do things like this then you are giving real professionals a bad name. Think about a flaky contractor that stains the names of good contractors simply because of nothing. – MonkeyZeus Mar 19 '14 at 20:28
  • Absolutely, I realise I am not a strong coder and unless I can improve that I don't try to sell myself as such. – dajl Mar 19 '14 at 21:03
  • @MonkeyZeus "responsibility" and "experience" are not so much synonymic. – kagali-san Mar 19 '14 at 23:22
  • 2
    These jobs your interviewing for, what would the programming responsibilities be exactly? Don't take this the wrong way, but the your programming examples are relatively trivial in nature, and you yourself admit that you're not a strong programmer. Is it possible that this is a case of you going for the wrong positions? – Ed S. Mar 20 '14 at 5:07
  • 2
    Huh. Perhaps it's just my own ignorance, but I'm surprised an interview for a support position would involve programming quizzes, even at a place like that. – Ed S. Mar 20 '14 at 7:42
8

There are two options:

  1. Learn to code.
  2. Don't apply to positions that require coding. Even if it's not a developer role, support engineers will need to code for various reasons, and are expected to understand the code that they are supporting.

If you truly want these types of positions, you will need to learn to code - I suggest looking for practice coding problems online (there are tons of them), and solving them. Focus on what particular technologies you are asked to deal with and have issues with.

You mentioned mongoDB in the comments - here is a quote from them

In this role you will work on challenging performance-tuning cases and will support our users by learning the way their applications are using MongoDB in order to make indexing, data modeling, and/or platform sizing and configuration recommendations.

How can you tune performance if you don't know what the system does or how it works? - it's like trying to tune an engine without knowing if it's a flat 6 or a V6 - you will be facing customers who ask these questions, and make the company seem incompetent when you can't answer - why would they hire such a person?

As you advance, you will have opportunities to automate and productize performance diagnostic techniques and best-practices. Check out our open-source tool Dex, which can automatically recommend the correct indexes for slow queries.

how exactly do you plan to automate something without being able to code? Wrong answer: I don't plan to advance.

Our ideal candidate:

  • Has a degree in Computer Science or at least one year of experience as a support/systems engineer at a backend services company
  • Can demonstrate strong written and verbal communication skills. You’ll be working with our developer community a lot over email and chat.
  • Has a good working knowledge of Linux
  • Has some experience programming or scripting in a modern, object-oriented language.

This position is something that needs coding (scripting in a modern OO language counts as coding)

Assuming this is the post you meant when you said "Support Engineer at MongoDB" - what were you expecting to do to overcome these challenges?

2

One way in which you could (potentially) get this to work is to get in with a contracting firm. My experience with contractor interviews is that they tend to assume that you know what you're doing and don't ask the "fizzbuzz" questions so much. Then, after actually doing nothing but coding for a while, perhaps that light will "turn on" and some of those questions will make more sense in and of themselves.

From the perspective of the interviewers, it appears to be really, really easy to tell people you know what you're doing in programming without actually knowing what you're doing. At some point during the interview process, they have to figure out if you're really decent or if you're a good BS artist. For all they know, the portfolio you bring in with you could have been put together by someone else, your answers could be rehearsed/memorized (which is still the case with the "fizzbuzz" stuff, of course), and so on. I would go so far as to assume that any place which isn't asking you to demonstrate some level of programming proficiency up front is going to formally or informally have you on "probation", giving you smaller jobs to do while they figure out whether or not you know what you're doing.

2

So it seems like your question is mainly around why you are unable to whiteboard code in an interview. This is simply; you haven't been coding enough.

Yes, you are a fast learner. But there is more to coding than just syntax. I felt the exact same way as you described in your question when I was an undergraduate. I did very well in all of my coding assignments. Got A's in every coding project because I loved it. But get me in front of a whiteboard and I'll freeze up like a freshmen who didn't study enough for a midterm. I, as well, read up on multiple interview preparations test and learned a lot about it. But I still couldn't handle the pressure of coding on the spot.

After doing software development as a career for awhile, I realized why I couldn't perform in front of a white board. It was simply because I wasn't coding enough. I didn't code 40 hours per week when I was in school. But at my job? Yes, for all of 40 hours a week, all I do is coding. When my peers and managers come to me with a challenge, I quickly and confidently spit out some code or tell them why it would take too much time to develop. That's because I have become proficient at it and understand code at a deeper level than just syntax. That's because I have been coding enough to not be pressured with time.

So I believe you just simply have to do more of it.

0

How can I position myself in the job market to advertise and make best use of my practical, hacky coding skills without flunking whiteboard code quizzes?

Don't give up. Keep enjoying your hobby. Write code, build websites, API's, utilities, whatever drives your passion. Try to use common technologies in the process. Learn the common patterns. All the while have fun solving problems algorithmically and pick up a deeper understanding of fundamentally important languages like C/Java variants and SQL variants. Sooner or later, you'll be able to answer those whiteboard questions OR you'll be in a position where you'll have so much broad experience and enthusiasm it won't matter.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.