11

I have recently applied for a junior developer position at an IT company. During the interview I've managed to be very clear on which technologies and languages I was more familiar with, and all went well.

After the interview they sent me an assignment, that is basically to build an simple web application, and they were clear about these two points:

  • I could use any technology I wanted
  • I don't have a proper deadline since they are not really in a hurry

I know by reading the assignment guidelines that I could make a very good job with technologies I'm more experienced with.

During the interview I managed to find out which technologies they use on a more regular basis and it is something I already worked with however for a very brief time, this leaves me with the following dilemma:

  • Should I do the assignment with the technology I'm more familiar with, meaning I would make the job faster and with more quality, even though this particular technology wont really be used by me if I'm hired?

  • Or should I use the technology I know that the company uses on their projects, meaning that I would have to study a bit on how to use it and that it would take me longer, and probably with lower quality than the first option?

I believe that is worth noting that the interviewer did ask a lot about my experience with the technologies they are not using at the moment.

marked as duplicate by Dukeling, gnat, Jim G., Michael Grubey, OldPadawan Aug 21 '18 at 7:10

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 2
    @Dukeling I agree they are related, but not exactly duplicates. That one is phrased in a more general way, this one is about a specific scenario and settings, that must be considered to decide what would be best for OP – DarkCygnus Aug 20 '18 at 21:58
  • 1
    Possible dupe of workplace.stackexchange.com/q/61792 – Dawood ibn Kareem Aug 20 '18 at 23:48
  • Something about the "I don't have a deadline since they are not in a hurry" bit smells fishy to me. Maybe I'm just imagining things, but this kinda sounds like they're asking you to do free work as part of the "interview". They aren't in a hurry to hire someone? Why are they hiring at all? Even if they can get along without a new hire for a while, I'd expect them to want to wrap up the interviewing process in a timely fashion, having already started it. – Steve-O Aug 21 '18 at 3:24
  • @Steve-O or they'll just hire someone else if you haven't turned it in till Christmas – DonQuiKong Aug 21 '18 at 5:18
  • @Steve-O Crosstalk is notorious for asking applicants to solve real-world problems and then turning them away for obviously spurious reasons once they submit their work, so this is a valid concern. But I think that it depends on how complex the assignment is. If it is indeed a "simple web application," the chances that it solves a real-world problem are fairly small. – BobRodes Aug 21 '18 at 6:20
26

If they explicitly told you to use any technology you want and even were enthusiastic about the tech you know, then I would suggest you use the one you are more familiar with.

That way you will be delivering better quality code than if you took a learning curve right now with the other technologies.

You will also be showing to them more of the "real you" as a professional, enabling them to better evaluate you as candidate and see what you can bring to the company. They will also see what new things they might learn from you or what new technologies they could consider adopting.

  • 3
    I'd probably add to this that the OP should avoid doing things to show off what you know and to instead write the most maintainable, testable code. I've had candidates write code they wouldn't write in production code or make sure I "knew they could" when the instructions were clearly directing them at testable and maintainable code. – Sandy Chapman Aug 21 '18 at 0:43
  • Good point @SandyChapman. I'd also say don't forget to add comments! No comments = instant rejection for me. – DarkCygnus Aug 21 '18 at 5:23
  • I'd go for the one you're most familiar with which is suitable for web. This could be a simple check to see wether or not you pick the right solution. – Martijn Aug 21 '18 at 7:11
7

Use the technology with which you are the most familiar.

The company most likely wants to see how you think, not necessarily whether you know the intricacies and syntactic sugar of PHP vs Perl vs Ruby vs C. Not too long ago, I started a job at a company that uses Ruby on Rails, never having written a line of RoR in my life. You could possibly even get away with pseudocode, but I wouldn't recommend it.

How you think is more important than where the semicolon goes.

3

Disclaimer: I only have only 1 full year of work experience, just transitioned to my second full-time job and haven't been hired based off of assignments but rather short timed tests and working interviews

First of all, even if there's no proper deadline, it would show good work ethic to complete it in a timely manner nonetheless.

Either option has its pros (and maybe cons).

Option 1, Personally Familiar Technology, (Pros):

  • Shows off your competency with what you know
  • Helps complete it in a timely manner
  • If the company is willing to utilize new technologies then you show that you can help introduce that change

(Cons):

  • You're putting off the inevitable if you absolutely have to use what they're currently working with

Option 2, Company's Standard Technology, (Pros):

  • Shows that you are willing to learn (I know you said you've worked wit it but only briefly)
  • Shows that you can hit the ground running if they need you to

(Cons):

  • Might take longer to complete the assignment, but you don't have a set deadline so you should be fine

The cons aren't really all that bad but I suppose it boils down to what you want to do: show off what you can do with what you know or use this as an opportunity to challenge yourself get familiar with their technologies.

  • thanks for the edit :) welcome to The Workplace BTW. I also agree that even though there is no deadline OP should do this on a timely manner (but not that fast, otherwise they might expect such swiftness every time) – DarkCygnus Aug 20 '18 at 21:25
  • no problem, sorry if it got a little nit-picky, couldn't submit with less than 6 characters edited :/ also, thanks :D yeah, i didn't mean to say fast, but it's hard to express it in a way other than "timely" – JScarecrow Aug 20 '18 at 21:26
  • If you ever see a really relevant mistake that is less than 6 chars, perhaps you may consider this: meta.stackexchange.com/a/82535/332286 still, all the edits you did were ok to me so I accepted it – DarkCygnus Aug 20 '18 at 21:35
  • Lol that's pretty smart actually, I'll remember that – JScarecrow Aug 20 '18 at 21:38
2

I would suggest OP to go for what you most familiar with to do this assignment and I would list out some of the reasons in my opinion since me myself also a fresher in company and I've been through this weeks ago.

The company would prefer you to have strong logical thinking and programming skills rather than knowing more programming languages but weak in coding skills and logic thinking. This is because programming skills are far more important than the amount of programming languages you familiar with. If you can do well in your assignment with the language you familiar with, then the company would believe that learning new languages/framework won't took you long time or tough for you since they know your coding skills and logical thinking are good.

Let the company to decide what kind of programming languages or frameworks you should learn after they review your assignment. In some cases there are more than one programming languages/frameworks are applied in the company depends on the project. The upper management will decide which team for you to be assigned and thus learn the new languages/frameworks to pick up. I believe sufficient time would be given for you to catch up in this case.

So why don't you just do your best in the assignment to show what you got to them?

1

Should I do the assignment with the technology I'm more familiar with, or should I use the technology I know that the company uses on their projects?

There are a lot of factors here, but I think you should use the tech that the company uses.

why?

First, engineers are mostly evaluated on the "can figure stuff out" and "gets stuff done" dimensons. If I were looking grade this assignment, I wouldn't really care what you already know, but more so if you can apply what you do know to solve unfamiliar tasks. This is going to mirror what a engineer does every day. In addition, a good (web) engineer should probably be able to make a basic web app in whatever technology, even though they may be unfamiliar with it.

Second, you can really show a willingness to dive in and solve hard problems (hard being from the unfamiliarity). This will go a long way in elevating you over other candidates.

Third. You have nothing to lose if there really isn't a fast approaching deadline. If it turns out too hard to do with their tech, then just fall back to what you know. They would never know unless you told them.

0

There are pros and cons to both approaches, as others have said. DarkCygnus and gitguddoge have voiced the consideration that I think is probably the most important one. They are probably evaluating just how well you know what you know, and how well you understand general principles.

There are lots of ways to solve the same coding problem, and the efficiency of the varying solutions can vary a great deal. For example, suppose you don't know enough about a language's internals to know that an item that appears to be a primitive variable is actually implemented under the hood as an object attribute, thereby being allocated on the heap instead of the stack, and then you include it in a large loop? You'll of course find that that runs a good deal slower than it would if you converted it to a stack-based value first. These are the kinds of things that evaluators of your code notice.

Here's an example of four ways to do the same thing in JavaScript that, although they all solve the stated problem, perform at very different levels of efficiency in doing so. Some of the solutions are quite elegant, using regular expressions to reduce the code required to only a few lines. And also, quite a bit slower than the more prosaic iterative looping approach.

I think it better shows your skill if you are able to write really efficient and well-performing code in whatever you're most familiar with than if you are able to solve a problem inefficiently by quickly picking up a working knowledge of whatever technology they are using. Keep in mind that you may get another interview where you are asked to justify your coding choices, and you will sound much more knowledgeable if you are able to back them up in a cogent way.

So I'm going to say to stick to what you know best, especially if that's what they ask for. If that's what they are asking for, chances are that they're looking to see how well you know what you know.

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