5

In the last year I have applied to two big IT companies (Google and Amazon) and went through the whole recruitment process with them. I got rejected by both, and the feedback I got was very similar. On the positive side they consider I have good people skills and high level understanding of programming (design, architecture). On the negative side they consider my coding skills are not up to their expectations for somebody on my position.

I have a Bachelor in CS, Master (distributed systems) and PhD (Cloud Computing), and I have read a fair share of books (Code Complete, the Pragmatic Programmer, etc.). Also I went through Cracking the code interview as preparation.

I know people say experience is one of the key ingredients in programming. However for the last two years I have been working in positions where coding wasn't one of the main tasks: leading and managing a couple of programmers, Scrumm Master, and now defining the architecture and APIs of new components, and creating prototypes and proofs of concept.

My concern is that I may be lowering my chances to get a new or better job by not reinforcing my weak points, and maybe I should work out of the office on that. On the flip side, it may very well be worth to focus now on my strong points, and with time apply to positions specific to these skills where coding is less relevant.

How can I improve my coding skills to be better prepared for job interviews? Should I even bother?

EDIT: To put the question from another angle, should I try to improve my coding skills outside my current job to have a better shot at these job interviews? Or should I focus on polishing my current skills, apply to matching positions and hope that they don't emphasize coding as much?

closed as off-topic by gnat, Chris E, IDrinkandIKnowThings, The Wandering Dev Manager, Jim G. Aug 4 '16 at 3:02

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking for advice on what to do are not practical answerable questions (e.g. "what job should I take?", or "what skills should I learn?"). Questions should get answers explaining why and how to make a decision, not advice on what to do. For more information, click here." – gnat, Chris E, IDrinkandIKnowThings, The Wandering Dev Manager, Jim G.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    For which job did you had those interview ? If there have some technical part, of course you should have coding skills, – Walfrat Aug 3 '16 at 7:37
  • Yes, you need coding experience. With the degrees and experience you mention, I would think you could get a software dev job if you aim a bit lower than Google/Amazon. Alternatively, you could consider doing some significant coding outside work, such as contributing to an open source project. – user45590 Aug 3 '16 at 7:41
  • Another option would be to aim for another "team lead" job, but this time take a more active role in the coding as the lead. Generally the opportunity is there. – user45590 Aug 3 '16 at 7:43
  • @Walfrat in both cases I was applying "to the company" as a software engineer, and then my specific position would be decided afterwards from a pool of open ones. – angarg12 Aug 3 '16 at 16:11
  • Go on leetcode and do their algorithms problems. Do a bunch a day. This will make the technical interview portion a breeze. The problems in Cracking the Coding Interview are too easy or well-known by this point. leetcode.com/problemset/algorithms – jj080808 Aug 3 '16 at 21:20
5

Opinion

In certain environments it's not always your actual ability to code that is being looked at, but in fact your ability to break down an issue and assess a coding solution based on an almost psuedo code environment.

Having a sound knowledge of Python is great, having a sound knowledge of C or C++ is great, but understanding the underlying concepts of the language, and why both are suitable for any specific task, can be far more helpful to your potential employer, than a staff member who has a fixed skill set.

The difference lies in grokking your code, or just knowing how to code.

Should I code outside my employ

Should you go code outside your employ to develop your coding skills, honestly this is never a bad idea. But if you're aiming at Google, and Amazon, then maybe you should consider contributing to projects on Git Hub, things that are open source (So that people can view your work).

Work across several languages and in several areas, (Hardware Controllers, Imaging software, Statistical Analytics, Content Management Systems, Contribute to a Game).

Then when you write up your next CV, or go into your next interview, you can show off your contributions and solutions that you came up with, to show that you Grok

Should I bother

Large corporate/business generally hires based on your specific skill, not your overall skill. So if you plan to work for Google, focusing on your strengths can play to your advantage, since you will be really good at what you are really good at. For those environments being a specialist is great.

That being said, it's a lot more satisfying (at least for me) to be skilled across a range of subjects. This does lend itself more to management, where your ability to understand 'generally' the tasks of those you are responsible for, can be more helpful than being able to do the job that you've given them to do.

  • One of my concerns is that my CV is starting to look 'weird', like a 'jack of all trades, master of none' with experience in different skills without too much depth on any. Apparently in your opinion this could be an advantage. The point of large companies hiring skill based, is it based in your personal experience? Do you have any reference? – angarg12 Aug 4 '16 at 7:29
1

If you are applying for programmer or dev roles where coding is going to be part of your role, then yes, you absolutely should brush up on your coding skills.

The interviewer will want to know that you have experience and capability in all areas of the role.

If you are applying for management roles, then while coding experience may be useful (especially if managing coders) it may not be a critical aspect, or it may be irrelevant.

Basically, you want to match the role description and ensure that you can articulate or demonstrate skills and experience in as many of the requirements as you can.

0

Doctor, [why ...] do you really want to be "a coder?"

I would expect you to be looking for a leadership position, not "a coder of the line," and for one that emphasizes your advanced training in "distributed systems" and/or "cloud computing."

It rather catches me off-guard for a PhD to say: "I want to 'sling code' for the rest of my life."

If I picked up that resume from the stack, I'd say:   "Huh?"

For Pete's sake, look at what you say you did:

leading and managing a couple of programmers, Scrum Master, and now defining the architecture and APIs of new components, and creating prototypes and proofs of concept.

... you've done that, as I would well expect a Doctor to do, and now you want to ... "sling code?"

"Code slingers" I got. They're a dime a dozen. (Sorry ...) "PhD's" I don't.

I'd want my PhD's to be guiding the project from a very high level; to be telling the "code slingers" what to "sling." To be involved in my project at a very high conceptual level. And it sounds like, for the past few years, that's what you've been doing. Why step downward?

You possess an academic degree that is still highly-respected, and that relatively few people possess. It implies an advanced level of training, knowledge and discipline that I would wish to leverage in my projects, and that I would pay a premium price for. It is incomprehensible to me that you would now want to write source code. I can hire people without a college degree who are wizards at writing source ... if they know exactly what to write. This is where I would expect a person like you to come into the picture.

  • While I don't disagree with the overall sentiment, a PhD doesn't prepare you for leadership any more than it prepares you for programming. – Laconic Droid Aug 3 '16 at 15:23
  • No, not 'leadership" as in human management. But rather, "high-level, abstract thinking." If you spent years of your life, and a great deal of your and/or somebody else's money, obtaining that prized credential, then I would naturally expect that your role in the workplace would be more like the one that the OP says that he has been doing: prototype, proof of concept, team leader, conceptualist. Many PhD's have no "direct reports." – Mike Robinson Aug 3 '16 at 16:01
  • Is not that I want to be a coder (I don't dislike coding, but I like prototyping/architecture more), is that these two jobs rejected me because of my coding skills. And yes, in the case of Google I applied to a PhD position (e.g. here) – angarg12 Aug 3 '16 at 16:25
  • So, keep looking. Maybe that job needed "more coding skills," but there are boat-loads of others! Sure, Google hires a dis-proportionate number of PhD's. But, there are many fishes in the pond for people with doctoral degrees. – Mike Robinson Aug 3 '16 at 21:48
0

Make up your mind on what it is you want to do. If you want to write code for the rest of your life, do just that. But don't walk in the door slingin' your PhD, unless you are looking for a leadership role specifically in a development capacity -- you might want to downplay those credentials.

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