Is it okay to use open source code to do an interview task?Should I go for an interview if I feel I am not prepared?How to discuss a skill, technology or method on my resume that is superior to the standard one required on the job specs?Is it reasonable to ask programmer candidates to solve a task before the interview?Given unlimited time to solve a technical challenge at home and allowed to use the Internet, for interviewWorking on live dev code in the interview process: ethical?Dealing with anxiety during technical/coding interviews as someone with ADD?How can I determine if a coding task is too hard for an interview candidate?Prospective employer may have given me a programming task as a sucker test – is this a thing?How to get interviews as a self-taught programmerDespite of designing server framework, cannot crack interview question: How to design XYZ?
Why hasn't the U.S. government paid war reparations to any country it attacked?
Is it rude to tell recruiters I would only change jobs for a better salary?
Variation in the spelling of word-final M
Is this more than a packing puzzle?
Why is "dark" an adverb in this sentence?
Doing research in academia and not liking competition
What's the phrasal verb for carbonated drinks exploding out of the can after being shaken?
Why do they not say "The Baby"
What is this old "lemon-squeezer" shaped pan
What is the English equivalent of 干物女 (dried fish woman)?
How did John Lennon tune his guitar
Commutator subgroup of Heisenberg group.
I have accepted an internship offer. Should I inform companies I have applied to that have not gotten back to me yet?
What caused Windows ME's terrible reputation?
Why linear regression uses "vertical" distance to the best-fit-line, instead of actual distance?
How do I define this subset using mathematical notation?
Are villager price increases due to killing them temporary?
Meaning of slash chord without anything left of the slash
Is `curl something | sudo bash -` a reasonably safe installation method?
Is this a plot hole in the Lost Mine of Phandelver adventure?
Why is dry soil hydrophobic? Bad gardener paradox
Remove intersect line for one circle using venndiagram2sets
Was adding milk to tea started to reduce employee tea break time?
Is it okay to retroactively change things when running a published adventure?
Is it okay to use open source code to do an interview task?
Should I go for an interview if I feel I am not prepared?How to discuss a skill, technology or method on my resume that is superior to the standard one required on the job specs?Is it reasonable to ask programmer candidates to solve a task before the interview?Given unlimited time to solve a technical challenge at home and allowed to use the Internet, for interviewWorking on live dev code in the interview process: ethical?Dealing with anxiety during technical/coding interviews as someone with ADD?How can I determine if a coding task is too hard for an interview candidate?Prospective employer may have given me a programming task as a sucker test – is this a thing?How to get interviews as a self-taught programmerDespite of designing server framework, cannot crack interview question: How to design XYZ?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
What is the line between using open source code and writing the code by your own for completing an interview task?
Obviously, I don't need to implement a task from scratch but is it okay to use boilerplate that provide multiple useful tools, and after that you don't need to set up Webpack or Swagger or other stuff and only focus on writing the task?
interviewing test
add a comment |
What is the line between using open source code and writing the code by your own for completing an interview task?
Obviously, I don't need to implement a task from scratch but is it okay to use boilerplate that provide multiple useful tools, and after that you don't need to set up Webpack or Swagger or other stuff and only focus on writing the task?
interviewing test
1
Interesting question! (I upvoted it) - particularly since a highly related question could be "using the standard libraries" (e.g. JSON parsing) vs writing your own. All depends what they are looking for, but I think they ought to have made that clear really.
– seventyeightist
Jul 8 at 19:42
add a comment |
What is the line between using open source code and writing the code by your own for completing an interview task?
Obviously, I don't need to implement a task from scratch but is it okay to use boilerplate that provide multiple useful tools, and after that you don't need to set up Webpack or Swagger or other stuff and only focus on writing the task?
interviewing test
What is the line between using open source code and writing the code by your own for completing an interview task?
Obviously, I don't need to implement a task from scratch but is it okay to use boilerplate that provide multiple useful tools, and after that you don't need to set up Webpack or Swagger or other stuff and only focus on writing the task?
interviewing test
interviewing test
edited Jul 8 at 12:21
Peter Mortensen
6325 silver badges7 bronze badges
6325 silver badges7 bronze badges
asked Jul 6 at 12:09
bersambersam
3231 gold badge2 silver badges6 bronze badges
3231 gold badge2 silver badges6 bronze badges
1
Interesting question! (I upvoted it) - particularly since a highly related question could be "using the standard libraries" (e.g. JSON parsing) vs writing your own. All depends what they are looking for, but I think they ought to have made that clear really.
– seventyeightist
Jul 8 at 19:42
add a comment |
1
Interesting question! (I upvoted it) - particularly since a highly related question could be "using the standard libraries" (e.g. JSON parsing) vs writing your own. All depends what they are looking for, but I think they ought to have made that clear really.
– seventyeightist
Jul 8 at 19:42
1
1
Interesting question! (I upvoted it) - particularly since a highly related question could be "using the standard libraries" (e.g. JSON parsing) vs writing your own. All depends what they are looking for, but I think they ought to have made that clear really.
– seventyeightist
Jul 8 at 19:42
Interesting question! (I upvoted it) - particularly since a highly related question could be "using the standard libraries" (e.g. JSON parsing) vs writing your own. All depends what they are looking for, but I think they ought to have made that clear really.
– seventyeightist
Jul 8 at 19:42
add a comment |
8 Answers
8
active
oldest
votes
Ask the interviewer
Some will be OK with it, some won't. Anyone worth working for or with will be happy that you clarified it with them rather than making assumptions.
68
...and for any interviewers reading this, I strongly suggest you design your interview coding tests so they give you an accurate idea of the candidates coding ability. This means giving them whatever tools coders actually use, like IDEs, frameworks, libraries, and google. (Or continue to use useless brainteasers and artificial "test" conditions and leave the good candidates to me).
– MGOwen
Jul 8 at 1:13
I had to do some basic routines as part of a test and it was obvious that the intent was to create my own code. If it was not clear I would definitely have asked, I don't see how that could go wrong.
– Joe
Jul 8 at 17:06
add a comment |
If you can use open source, do it. The interviewer wants to assess how you work - if someone spends ages writing a library that already exists somewhere, they're actually spending time writing bugs someone else has already fixed, when they could be using that library to add features. That's not an effective use of time.
I interviewed for an insurance company a few years ago in London, and their programming task was clearly algorithmic. There was a problem description, inputs, expected outputs, and no library in the world existed that could do it for me. They clearly wanted to assess my algorithmic skills.
Around the same time I interviewed for a company in Manchester where their main product was dealing with phone numbers. Although not the main point of the exercise, I still had to use some utilities related to telephone numbers, so I started writing a parser for that. Then I looked online briefly, and replaced everything with something made by Google for Android, which did the same thing a lot better than I could. I mentioned this in the interview, and it was clear I made the right decision, because parsing phone numbers was not the main task.
So, go with your gut. If you can use open source and it helps you save time, do yourself a favour and go for it.
1
Great answer! How about adding that you should let the company know when code isn't your own? It may have been implicit to you but not necessarily to all readers.
– Ellen Spertus
Jul 7 at 15:51
1
I've only had one time where an interviewer gave me a coding test before the interview. I spent about 20 minutes on Google before sending him back a perl one-liner that completely solved the problem. While he was expecting 40-50 lines of perl code, he was happy to get the short answer and did not hold internet research against me. In short, don't re-invent the wheel but do let the interviewer know when you have stolen/borrowed code from elsewhere.
– doneal24
Jul 7 at 19:07
It depends a bit. Sure, it's always good if you can show them that you find applicable libraries that you could use as part of a solution. However, sometimes what they are interested in is how you code when you need to code something on your own, i.e. to check coding style and whether you understand potentially complex problems. While they shouldn't hold using a library against you (unless they specified not to), it may mean they cannot see what they wanted to see, and will either guess whether you fit what they want or have to schedule another task/way to figure that out.
– Frank Hopkins
Jul 7 at 21:22
yeah. I've only had one coding test during an interview, and the only thing available to me was notepad... Doesn't really create an accurate assessment of the candidate's workflow.
– jwenting
Jul 8 at 4:34
2
Also make sure you know what License the code you are borrowing is under otherwise you are potentially a few hundred thousand dollar detriment :)
– lucasgcb
Jul 8 at 9:25
add a comment |
One thing that you must check before you use open source software is the license.
If the company normally releases closed-source software, they will never let you use a program or library that is released under the GPL for a real programming task, because if they did they'd be forced to open source their software too. Chances are that they'd forbid the use of such software even for an interview task.
The best approach is to ask a direct question. As Player One said, they will appreciate your asking instead of assuming. If they say OSS is fine, go for the second question. Something like:
Can I use open source software even if it's covered by a copyleft license, like the GPL, which implies that the end product must be released under the same terms? I realize this is just an interview question and maybe it doesn't matter in this context, but when doing real work I'd certainly have to check with you to avoid potential legal problems.
This will let them know that you understand licensing problems, and that you aren't one of those code monkeys that blindly copy and paste whatever they find on the web without evaluating the implications.
At that point, regardless of what they answer, you have scored a point.
5
Doesn't this only apply to companies who are releasing software? Many companies write and use software that's never released: banks don't release the software for all the systems they use to manage user accounts, supermarkets don't release the software running on their tills and self-checkouts, Amazon don't release the software running their web site, and so on. In fact, I suspect the vast majority of software is never released!
– gidds
Jul 8 at 12:49
@gidds I might be wrong, but I don't think the vast majority of software is never released. In any case you have a point, and I have updated my answer.
– Fabio Turati
Jul 8 at 13:52
@FabioTurati There's a lot of custom, in-house software running in a lot of places. I mean, depending how you define "software", I alone have written more unique pieces of software than I've used -- lots of little scripts to automate little bits of what I do.
– Nic Hartley
Jul 8 at 14:19
@NicHartley not just small scripts/programs, either. Thinking back over all my jobs, I've only ever written code in 3 apps to run on non-employees' machines; one was a main application, one was small and rarely-used, and one was never released. That compares with around 30 major systems or applications that were only ever run in-house. (And countless other small apps/scripts.) And I don't think my experience is unrepresentative. In-house software is simply not visible in the way that published software is.
– gidds
Jul 8 at 15:49
@gidds In AGPLv3, what counts as “interacting with [the software] remotely through a computer network?” provides the FSF's guidance on interpreting the AGPLv3 (not GPLv3) in some of those cases. See also Why did you decide to write the GNU Affero GPLv3 as a separate license? on the same page.
– a CVn
Jul 8 at 20:16
|
show 2 more comments
Justify and attribute the use of any open source code that you use
What is the line between using open source code and writing the code by your own for completing an interview task?
There's no hard and fast line. It depends on what the interviewer is trying to assess.
A general advise in software development is to use tried and tested code. That's one of the crucial purposes of open sourcing code, i.e. not to reinvent the wheel every time.
However, here writing code is part of an interview task. There isn't a precise Yes/No answer to whether you should use open source code or not. But it tends towards Yes, if you can justify the use of it.
Think from the point of view of the interviewer. They are trying to assess your skills to get a task done. While one of the intent of getting a candidate to write code is to see their ability to write the solution for a problem, it's also an important skill to assess, how well they can identify and obtain pre written code to solve a problem.
There shouldn't be any problem in using an open source library or component, but it would be best to give proper attribution and reasoning why you chose to use it.
It is important for the interviewer to understand how well you understand the problem and the code that solves the problem, instead of writing the code yourself.
However, though process and intent can vary from interviewer to interviewer. You can propose the interviewer about using certain open source components along with the reasoning behind using them. Do it before starting the task. Some interviewers may be precisely looking for your skill to implement a certain functionality and may want you to write the code from scratch.
2
I think this is good advice. I especially like this line: "it would be best to give proper attribution and reasoning why you chose to use it." There's a major reason for that: Using resources available to you effectively is professionalism. Misrepresenting them as your own work is fraud. There's also a minor reason: in a professional setting, you'd want a record of any external sources of source code for reasons such as license compliance and being able to integrate any updated releases. Showing that you think about such things is valuable.
– Josiah
Jul 6 at 19:20
1
I once took one of those online code-editor tests. It was immediately obvious from the "pass" criteria that there existed a closed-form solution to the problem presented. I searched (the terms of the test didn't forbid outside resources), found the formula on Math SE, and put the URL in a comment. Interviewer was happy, I was done in 15 minutes.
– chrylis
Jul 6 at 21:16
add a comment |
Depends:
- If it's more an algorithmic/data crunching task, then probably better show understanding of the algorithm (e.g. tweak it for the specific usecase)
- if it is an 'show that you can create an whole app' task, then show that you can use preexisting building blocks (open source, or the frameworks the company asked for)
add a comment |
I would specifically ask your new employer this question. In the end, 90% of those tasks are used, so your employer can form an opinion on your skills.
HOWEVER: Every employer might be looking for something different in your task. I know some departments (like core development) are looking for potential candidates to perform very well "from the ground up", meaning they want to see how you are working with an array "by hand" and implement even the most basic algorithms by yourself. They want to assess your knowledge of a programming language even at it's most basic level (which is often considered as the most important the more "techy" it gets)
Other departments want to see, that you just get the job done and are up to date with the latest frameworks, open source solutions and the standard library and would probably count some things, that aforementioned department would have counted as a plus, as a big minus.
Some companies are just pretty old school by nature, some companies are all about modern solutions. The problem for you is, you can never know and while you may deliver a solid, reasonable solution with, or without open source components, it might just be missing, what the company is looking for.
So from my experience, the best way to find out about this and maybe even to catch a few bonus points by delivering exactly what they are looking for is to ask upfront.
Good luck!
add a comment |
Adding to what has been said so far by others that I totally agree with, I would like to point out here that most open source licenses have an attribution clause and/or require you to keep the license information intact for any derived work. As well as you often aren't allowed to promote the software as your own work if it isn't.
So even if you go against any advice given by the other answers, if that open source code is under a license having any of the before mentioned clauses, not disclosing to the interviewer that it is open source in the required way, would be a license infringement and could possibly backfire depending on the employer's view towards compliance.
add a comment |
Ask the interviewer to be sure. But a general rule of thumb- depends on how much code you're taking from the open source library. If the task is algorithmic, don't take something that writes the main algorithm. If the task is to write an app, don't find a version of the app online and take it. If its a framework and you're going to write the actual code of your app (algorithms and display), that's usually fine.
For example, a workplace of mine did a test where they had a few hours to write Minesweeper. Someone once found an entire online version and made minor tweaks. We didn't offer them the job, because we didn't know how well they could program from that. On the other hand, someone else used a widget to display the timer in a pretty way. That was totally cool with us. There's one algorithmically difficult part to Minesweeper (the algorithm to open up adjacent squares efficiently when they click on a 0). They didn't need to get that to its most efficient version, but I don't think we'd have passed anyone who didn't write it themselves.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "423"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: false,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f139833%2fis-it-okay-to-use-open-source-code-to-do-an-interview-task%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
StackExchange.ready(function ()
$("#show-editor-button input, #show-editor-button button").click(function ()
var showEditor = function()
$("#show-editor-button").hide();
$("#post-form").removeClass("dno");
StackExchange.editor.finallyInit();
;
var useFancy = $(this).data('confirm-use-fancy');
if(useFancy == 'True')
var popupTitle = $(this).data('confirm-fancy-title');
var popupBody = $(this).data('confirm-fancy-body');
var popupAccept = $(this).data('confirm-fancy-accept-button');
$(this).loadPopup(
url: '/post/self-answer-popup',
loaded: function(popup)
var pTitle = $(popup).find('h2');
var pBody = $(popup).find('.popup-body');
var pSubmit = $(popup).find('.popup-submit');
pTitle.text(popupTitle);
pBody.html(popupBody);
pSubmit.val(popupAccept).click(showEditor);
)
else
var confirmText = $(this).data('confirm-text');
if (confirmText ? confirm(confirmText) : true)
showEditor();
);
);
8 Answers
8
active
oldest
votes
8 Answers
8
active
oldest
votes
active
oldest
votes
active
oldest
votes
Ask the interviewer
Some will be OK with it, some won't. Anyone worth working for or with will be happy that you clarified it with them rather than making assumptions.
68
...and for any interviewers reading this, I strongly suggest you design your interview coding tests so they give you an accurate idea of the candidates coding ability. This means giving them whatever tools coders actually use, like IDEs, frameworks, libraries, and google. (Or continue to use useless brainteasers and artificial "test" conditions and leave the good candidates to me).
– MGOwen
Jul 8 at 1:13
I had to do some basic routines as part of a test and it was obvious that the intent was to create my own code. If it was not clear I would definitely have asked, I don't see how that could go wrong.
– Joe
Jul 8 at 17:06
add a comment |
Ask the interviewer
Some will be OK with it, some won't. Anyone worth working for or with will be happy that you clarified it with them rather than making assumptions.
68
...and for any interviewers reading this, I strongly suggest you design your interview coding tests so they give you an accurate idea of the candidates coding ability. This means giving them whatever tools coders actually use, like IDEs, frameworks, libraries, and google. (Or continue to use useless brainteasers and artificial "test" conditions and leave the good candidates to me).
– MGOwen
Jul 8 at 1:13
I had to do some basic routines as part of a test and it was obvious that the intent was to create my own code. If it was not clear I would definitely have asked, I don't see how that could go wrong.
– Joe
Jul 8 at 17:06
add a comment |
Ask the interviewer
Some will be OK with it, some won't. Anyone worth working for or with will be happy that you clarified it with them rather than making assumptions.
Ask the interviewer
Some will be OK with it, some won't. Anyone worth working for or with will be happy that you clarified it with them rather than making assumptions.
answered Jul 6 at 12:35
Player OnePlayer One
6,6156 gold badges23 silver badges35 bronze badges
6,6156 gold badges23 silver badges35 bronze badges
68
...and for any interviewers reading this, I strongly suggest you design your interview coding tests so they give you an accurate idea of the candidates coding ability. This means giving them whatever tools coders actually use, like IDEs, frameworks, libraries, and google. (Or continue to use useless brainteasers and artificial "test" conditions and leave the good candidates to me).
– MGOwen
Jul 8 at 1:13
I had to do some basic routines as part of a test and it was obvious that the intent was to create my own code. If it was not clear I would definitely have asked, I don't see how that could go wrong.
– Joe
Jul 8 at 17:06
add a comment |
68
...and for any interviewers reading this, I strongly suggest you design your interview coding tests so they give you an accurate idea of the candidates coding ability. This means giving them whatever tools coders actually use, like IDEs, frameworks, libraries, and google. (Or continue to use useless brainteasers and artificial "test" conditions and leave the good candidates to me).
– MGOwen
Jul 8 at 1:13
I had to do some basic routines as part of a test and it was obvious that the intent was to create my own code. If it was not clear I would definitely have asked, I don't see how that could go wrong.
– Joe
Jul 8 at 17:06
68
68
...and for any interviewers reading this, I strongly suggest you design your interview coding tests so they give you an accurate idea of the candidates coding ability. This means giving them whatever tools coders actually use, like IDEs, frameworks, libraries, and google. (Or continue to use useless brainteasers and artificial "test" conditions and leave the good candidates to me).
– MGOwen
Jul 8 at 1:13
...and for any interviewers reading this, I strongly suggest you design your interview coding tests so they give you an accurate idea of the candidates coding ability. This means giving them whatever tools coders actually use, like IDEs, frameworks, libraries, and google. (Or continue to use useless brainteasers and artificial "test" conditions and leave the good candidates to me).
– MGOwen
Jul 8 at 1:13
I had to do some basic routines as part of a test and it was obvious that the intent was to create my own code. If it was not clear I would definitely have asked, I don't see how that could go wrong.
– Joe
Jul 8 at 17:06
I had to do some basic routines as part of a test and it was obvious that the intent was to create my own code. If it was not clear I would definitely have asked, I don't see how that could go wrong.
– Joe
Jul 8 at 17:06
add a comment |
If you can use open source, do it. The interviewer wants to assess how you work - if someone spends ages writing a library that already exists somewhere, they're actually spending time writing bugs someone else has already fixed, when they could be using that library to add features. That's not an effective use of time.
I interviewed for an insurance company a few years ago in London, and their programming task was clearly algorithmic. There was a problem description, inputs, expected outputs, and no library in the world existed that could do it for me. They clearly wanted to assess my algorithmic skills.
Around the same time I interviewed for a company in Manchester where their main product was dealing with phone numbers. Although not the main point of the exercise, I still had to use some utilities related to telephone numbers, so I started writing a parser for that. Then I looked online briefly, and replaced everything with something made by Google for Android, which did the same thing a lot better than I could. I mentioned this in the interview, and it was clear I made the right decision, because parsing phone numbers was not the main task.
So, go with your gut. If you can use open source and it helps you save time, do yourself a favour and go for it.
1
Great answer! How about adding that you should let the company know when code isn't your own? It may have been implicit to you but not necessarily to all readers.
– Ellen Spertus
Jul 7 at 15:51
1
I've only had one time where an interviewer gave me a coding test before the interview. I spent about 20 minutes on Google before sending him back a perl one-liner that completely solved the problem. While he was expecting 40-50 lines of perl code, he was happy to get the short answer and did not hold internet research against me. In short, don't re-invent the wheel but do let the interviewer know when you have stolen/borrowed code from elsewhere.
– doneal24
Jul 7 at 19:07
It depends a bit. Sure, it's always good if you can show them that you find applicable libraries that you could use as part of a solution. However, sometimes what they are interested in is how you code when you need to code something on your own, i.e. to check coding style and whether you understand potentially complex problems. While they shouldn't hold using a library against you (unless they specified not to), it may mean they cannot see what they wanted to see, and will either guess whether you fit what they want or have to schedule another task/way to figure that out.
– Frank Hopkins
Jul 7 at 21:22
yeah. I've only had one coding test during an interview, and the only thing available to me was notepad... Doesn't really create an accurate assessment of the candidate's workflow.
– jwenting
Jul 8 at 4:34
2
Also make sure you know what License the code you are borrowing is under otherwise you are potentially a few hundred thousand dollar detriment :)
– lucasgcb
Jul 8 at 9:25
add a comment |
If you can use open source, do it. The interviewer wants to assess how you work - if someone spends ages writing a library that already exists somewhere, they're actually spending time writing bugs someone else has already fixed, when they could be using that library to add features. That's not an effective use of time.
I interviewed for an insurance company a few years ago in London, and their programming task was clearly algorithmic. There was a problem description, inputs, expected outputs, and no library in the world existed that could do it for me. They clearly wanted to assess my algorithmic skills.
Around the same time I interviewed for a company in Manchester where their main product was dealing with phone numbers. Although not the main point of the exercise, I still had to use some utilities related to telephone numbers, so I started writing a parser for that. Then I looked online briefly, and replaced everything with something made by Google for Android, which did the same thing a lot better than I could. I mentioned this in the interview, and it was clear I made the right decision, because parsing phone numbers was not the main task.
So, go with your gut. If you can use open source and it helps you save time, do yourself a favour and go for it.
1
Great answer! How about adding that you should let the company know when code isn't your own? It may have been implicit to you but not necessarily to all readers.
– Ellen Spertus
Jul 7 at 15:51
1
I've only had one time where an interviewer gave me a coding test before the interview. I spent about 20 minutes on Google before sending him back a perl one-liner that completely solved the problem. While he was expecting 40-50 lines of perl code, he was happy to get the short answer and did not hold internet research against me. In short, don't re-invent the wheel but do let the interviewer know when you have stolen/borrowed code from elsewhere.
– doneal24
Jul 7 at 19:07
It depends a bit. Sure, it's always good if you can show them that you find applicable libraries that you could use as part of a solution. However, sometimes what they are interested in is how you code when you need to code something on your own, i.e. to check coding style and whether you understand potentially complex problems. While they shouldn't hold using a library against you (unless they specified not to), it may mean they cannot see what they wanted to see, and will either guess whether you fit what they want or have to schedule another task/way to figure that out.
– Frank Hopkins
Jul 7 at 21:22
yeah. I've only had one coding test during an interview, and the only thing available to me was notepad... Doesn't really create an accurate assessment of the candidate's workflow.
– jwenting
Jul 8 at 4:34
2
Also make sure you know what License the code you are borrowing is under otherwise you are potentially a few hundred thousand dollar detriment :)
– lucasgcb
Jul 8 at 9:25
add a comment |
If you can use open source, do it. The interviewer wants to assess how you work - if someone spends ages writing a library that already exists somewhere, they're actually spending time writing bugs someone else has already fixed, when they could be using that library to add features. That's not an effective use of time.
I interviewed for an insurance company a few years ago in London, and their programming task was clearly algorithmic. There was a problem description, inputs, expected outputs, and no library in the world existed that could do it for me. They clearly wanted to assess my algorithmic skills.
Around the same time I interviewed for a company in Manchester where their main product was dealing with phone numbers. Although not the main point of the exercise, I still had to use some utilities related to telephone numbers, so I started writing a parser for that. Then I looked online briefly, and replaced everything with something made by Google for Android, which did the same thing a lot better than I could. I mentioned this in the interview, and it was clear I made the right decision, because parsing phone numbers was not the main task.
So, go with your gut. If you can use open source and it helps you save time, do yourself a favour and go for it.
If you can use open source, do it. The interviewer wants to assess how you work - if someone spends ages writing a library that already exists somewhere, they're actually spending time writing bugs someone else has already fixed, when they could be using that library to add features. That's not an effective use of time.
I interviewed for an insurance company a few years ago in London, and their programming task was clearly algorithmic. There was a problem description, inputs, expected outputs, and no library in the world existed that could do it for me. They clearly wanted to assess my algorithmic skills.
Around the same time I interviewed for a company in Manchester where their main product was dealing with phone numbers. Although not the main point of the exercise, I still had to use some utilities related to telephone numbers, so I started writing a parser for that. Then I looked online briefly, and replaced everything with something made by Google for Android, which did the same thing a lot better than I could. I mentioned this in the interview, and it was clear I made the right decision, because parsing phone numbers was not the main task.
So, go with your gut. If you can use open source and it helps you save time, do yourself a favour and go for it.
answered Jul 6 at 13:55
rathrath
22.7k15 gold badges67 silver badges109 bronze badges
22.7k15 gold badges67 silver badges109 bronze badges
1
Great answer! How about adding that you should let the company know when code isn't your own? It may have been implicit to you but not necessarily to all readers.
– Ellen Spertus
Jul 7 at 15:51
1
I've only had one time where an interviewer gave me a coding test before the interview. I spent about 20 minutes on Google before sending him back a perl one-liner that completely solved the problem. While he was expecting 40-50 lines of perl code, he was happy to get the short answer and did not hold internet research against me. In short, don't re-invent the wheel but do let the interviewer know when you have stolen/borrowed code from elsewhere.
– doneal24
Jul 7 at 19:07
It depends a bit. Sure, it's always good if you can show them that you find applicable libraries that you could use as part of a solution. However, sometimes what they are interested in is how you code when you need to code something on your own, i.e. to check coding style and whether you understand potentially complex problems. While they shouldn't hold using a library against you (unless they specified not to), it may mean they cannot see what they wanted to see, and will either guess whether you fit what they want or have to schedule another task/way to figure that out.
– Frank Hopkins
Jul 7 at 21:22
yeah. I've only had one coding test during an interview, and the only thing available to me was notepad... Doesn't really create an accurate assessment of the candidate's workflow.
– jwenting
Jul 8 at 4:34
2
Also make sure you know what License the code you are borrowing is under otherwise you are potentially a few hundred thousand dollar detriment :)
– lucasgcb
Jul 8 at 9:25
add a comment |
1
Great answer! How about adding that you should let the company know when code isn't your own? It may have been implicit to you but not necessarily to all readers.
– Ellen Spertus
Jul 7 at 15:51
1
I've only had one time where an interviewer gave me a coding test before the interview. I spent about 20 minutes on Google before sending him back a perl one-liner that completely solved the problem. While he was expecting 40-50 lines of perl code, he was happy to get the short answer and did not hold internet research against me. In short, don't re-invent the wheel but do let the interviewer know when you have stolen/borrowed code from elsewhere.
– doneal24
Jul 7 at 19:07
It depends a bit. Sure, it's always good if you can show them that you find applicable libraries that you could use as part of a solution. However, sometimes what they are interested in is how you code when you need to code something on your own, i.e. to check coding style and whether you understand potentially complex problems. While they shouldn't hold using a library against you (unless they specified not to), it may mean they cannot see what they wanted to see, and will either guess whether you fit what they want or have to schedule another task/way to figure that out.
– Frank Hopkins
Jul 7 at 21:22
yeah. I've only had one coding test during an interview, and the only thing available to me was notepad... Doesn't really create an accurate assessment of the candidate's workflow.
– jwenting
Jul 8 at 4:34
2
Also make sure you know what License the code you are borrowing is under otherwise you are potentially a few hundred thousand dollar detriment :)
– lucasgcb
Jul 8 at 9:25
1
1
Great answer! How about adding that you should let the company know when code isn't your own? It may have been implicit to you but not necessarily to all readers.
– Ellen Spertus
Jul 7 at 15:51
Great answer! How about adding that you should let the company know when code isn't your own? It may have been implicit to you but not necessarily to all readers.
– Ellen Spertus
Jul 7 at 15:51
1
1
I've only had one time where an interviewer gave me a coding test before the interview. I spent about 20 minutes on Google before sending him back a perl one-liner that completely solved the problem. While he was expecting 40-50 lines of perl code, he was happy to get the short answer and did not hold internet research against me. In short, don't re-invent the wheel but do let the interviewer know when you have stolen/borrowed code from elsewhere.
– doneal24
Jul 7 at 19:07
I've only had one time where an interviewer gave me a coding test before the interview. I spent about 20 minutes on Google before sending him back a perl one-liner that completely solved the problem. While he was expecting 40-50 lines of perl code, he was happy to get the short answer and did not hold internet research against me. In short, don't re-invent the wheel but do let the interviewer know when you have stolen/borrowed code from elsewhere.
– doneal24
Jul 7 at 19:07
It depends a bit. Sure, it's always good if you can show them that you find applicable libraries that you could use as part of a solution. However, sometimes what they are interested in is how you code when you need to code something on your own, i.e. to check coding style and whether you understand potentially complex problems. While they shouldn't hold using a library against you (unless they specified not to), it may mean they cannot see what they wanted to see, and will either guess whether you fit what they want or have to schedule another task/way to figure that out.
– Frank Hopkins
Jul 7 at 21:22
It depends a bit. Sure, it's always good if you can show them that you find applicable libraries that you could use as part of a solution. However, sometimes what they are interested in is how you code when you need to code something on your own, i.e. to check coding style and whether you understand potentially complex problems. While they shouldn't hold using a library against you (unless they specified not to), it may mean they cannot see what they wanted to see, and will either guess whether you fit what they want or have to schedule another task/way to figure that out.
– Frank Hopkins
Jul 7 at 21:22
yeah. I've only had one coding test during an interview, and the only thing available to me was notepad... Doesn't really create an accurate assessment of the candidate's workflow.
– jwenting
Jul 8 at 4:34
yeah. I've only had one coding test during an interview, and the only thing available to me was notepad... Doesn't really create an accurate assessment of the candidate's workflow.
– jwenting
Jul 8 at 4:34
2
2
Also make sure you know what License the code you are borrowing is under otherwise you are potentially a few hundred thousand dollar detriment :)
– lucasgcb
Jul 8 at 9:25
Also make sure you know what License the code you are borrowing is under otherwise you are potentially a few hundred thousand dollar detriment :)
– lucasgcb
Jul 8 at 9:25
add a comment |
One thing that you must check before you use open source software is the license.
If the company normally releases closed-source software, they will never let you use a program or library that is released under the GPL for a real programming task, because if they did they'd be forced to open source their software too. Chances are that they'd forbid the use of such software even for an interview task.
The best approach is to ask a direct question. As Player One said, they will appreciate your asking instead of assuming. If they say OSS is fine, go for the second question. Something like:
Can I use open source software even if it's covered by a copyleft license, like the GPL, which implies that the end product must be released under the same terms? I realize this is just an interview question and maybe it doesn't matter in this context, but when doing real work I'd certainly have to check with you to avoid potential legal problems.
This will let them know that you understand licensing problems, and that you aren't one of those code monkeys that blindly copy and paste whatever they find on the web without evaluating the implications.
At that point, regardless of what they answer, you have scored a point.
5
Doesn't this only apply to companies who are releasing software? Many companies write and use software that's never released: banks don't release the software for all the systems they use to manage user accounts, supermarkets don't release the software running on their tills and self-checkouts, Amazon don't release the software running their web site, and so on. In fact, I suspect the vast majority of software is never released!
– gidds
Jul 8 at 12:49
@gidds I might be wrong, but I don't think the vast majority of software is never released. In any case you have a point, and I have updated my answer.
– Fabio Turati
Jul 8 at 13:52
@FabioTurati There's a lot of custom, in-house software running in a lot of places. I mean, depending how you define "software", I alone have written more unique pieces of software than I've used -- lots of little scripts to automate little bits of what I do.
– Nic Hartley
Jul 8 at 14:19
@NicHartley not just small scripts/programs, either. Thinking back over all my jobs, I've only ever written code in 3 apps to run on non-employees' machines; one was a main application, one was small and rarely-used, and one was never released. That compares with around 30 major systems or applications that were only ever run in-house. (And countless other small apps/scripts.) And I don't think my experience is unrepresentative. In-house software is simply not visible in the way that published software is.
– gidds
Jul 8 at 15:49
@gidds In AGPLv3, what counts as “interacting with [the software] remotely through a computer network?” provides the FSF's guidance on interpreting the AGPLv3 (not GPLv3) in some of those cases. See also Why did you decide to write the GNU Affero GPLv3 as a separate license? on the same page.
– a CVn
Jul 8 at 20:16
|
show 2 more comments
One thing that you must check before you use open source software is the license.
If the company normally releases closed-source software, they will never let you use a program or library that is released under the GPL for a real programming task, because if they did they'd be forced to open source their software too. Chances are that they'd forbid the use of such software even for an interview task.
The best approach is to ask a direct question. As Player One said, they will appreciate your asking instead of assuming. If they say OSS is fine, go for the second question. Something like:
Can I use open source software even if it's covered by a copyleft license, like the GPL, which implies that the end product must be released under the same terms? I realize this is just an interview question and maybe it doesn't matter in this context, but when doing real work I'd certainly have to check with you to avoid potential legal problems.
This will let them know that you understand licensing problems, and that you aren't one of those code monkeys that blindly copy and paste whatever they find on the web without evaluating the implications.
At that point, regardless of what they answer, you have scored a point.
5
Doesn't this only apply to companies who are releasing software? Many companies write and use software that's never released: banks don't release the software for all the systems they use to manage user accounts, supermarkets don't release the software running on their tills and self-checkouts, Amazon don't release the software running their web site, and so on. In fact, I suspect the vast majority of software is never released!
– gidds
Jul 8 at 12:49
@gidds I might be wrong, but I don't think the vast majority of software is never released. In any case you have a point, and I have updated my answer.
– Fabio Turati
Jul 8 at 13:52
@FabioTurati There's a lot of custom, in-house software running in a lot of places. I mean, depending how you define "software", I alone have written more unique pieces of software than I've used -- lots of little scripts to automate little bits of what I do.
– Nic Hartley
Jul 8 at 14:19
@NicHartley not just small scripts/programs, either. Thinking back over all my jobs, I've only ever written code in 3 apps to run on non-employees' machines; one was a main application, one was small and rarely-used, and one was never released. That compares with around 30 major systems or applications that were only ever run in-house. (And countless other small apps/scripts.) And I don't think my experience is unrepresentative. In-house software is simply not visible in the way that published software is.
– gidds
Jul 8 at 15:49
@gidds In AGPLv3, what counts as “interacting with [the software] remotely through a computer network?” provides the FSF's guidance on interpreting the AGPLv3 (not GPLv3) in some of those cases. See also Why did you decide to write the GNU Affero GPLv3 as a separate license? on the same page.
– a CVn
Jul 8 at 20:16
|
show 2 more comments
One thing that you must check before you use open source software is the license.
If the company normally releases closed-source software, they will never let you use a program or library that is released under the GPL for a real programming task, because if they did they'd be forced to open source their software too. Chances are that they'd forbid the use of such software even for an interview task.
The best approach is to ask a direct question. As Player One said, they will appreciate your asking instead of assuming. If they say OSS is fine, go for the second question. Something like:
Can I use open source software even if it's covered by a copyleft license, like the GPL, which implies that the end product must be released under the same terms? I realize this is just an interview question and maybe it doesn't matter in this context, but when doing real work I'd certainly have to check with you to avoid potential legal problems.
This will let them know that you understand licensing problems, and that you aren't one of those code monkeys that blindly copy and paste whatever they find on the web without evaluating the implications.
At that point, regardless of what they answer, you have scored a point.
One thing that you must check before you use open source software is the license.
If the company normally releases closed-source software, they will never let you use a program or library that is released under the GPL for a real programming task, because if they did they'd be forced to open source their software too. Chances are that they'd forbid the use of such software even for an interview task.
The best approach is to ask a direct question. As Player One said, they will appreciate your asking instead of assuming. If they say OSS is fine, go for the second question. Something like:
Can I use open source software even if it's covered by a copyleft license, like the GPL, which implies that the end product must be released under the same terms? I realize this is just an interview question and maybe it doesn't matter in this context, but when doing real work I'd certainly have to check with you to avoid potential legal problems.
This will let them know that you understand licensing problems, and that you aren't one of those code monkeys that blindly copy and paste whatever they find on the web without evaluating the implications.
At that point, regardless of what they answer, you have scored a point.
edited Jul 8 at 13:49
answered Jul 7 at 23:13
Fabio TuratiFabio Turati
3673 silver badges11 bronze badges
3673 silver badges11 bronze badges
5
Doesn't this only apply to companies who are releasing software? Many companies write and use software that's never released: banks don't release the software for all the systems they use to manage user accounts, supermarkets don't release the software running on their tills and self-checkouts, Amazon don't release the software running their web site, and so on. In fact, I suspect the vast majority of software is never released!
– gidds
Jul 8 at 12:49
@gidds I might be wrong, but I don't think the vast majority of software is never released. In any case you have a point, and I have updated my answer.
– Fabio Turati
Jul 8 at 13:52
@FabioTurati There's a lot of custom, in-house software running in a lot of places. I mean, depending how you define "software", I alone have written more unique pieces of software than I've used -- lots of little scripts to automate little bits of what I do.
– Nic Hartley
Jul 8 at 14:19
@NicHartley not just small scripts/programs, either. Thinking back over all my jobs, I've only ever written code in 3 apps to run on non-employees' machines; one was a main application, one was small and rarely-used, and one was never released. That compares with around 30 major systems or applications that were only ever run in-house. (And countless other small apps/scripts.) And I don't think my experience is unrepresentative. In-house software is simply not visible in the way that published software is.
– gidds
Jul 8 at 15:49
@gidds In AGPLv3, what counts as “interacting with [the software] remotely through a computer network?” provides the FSF's guidance on interpreting the AGPLv3 (not GPLv3) in some of those cases. See also Why did you decide to write the GNU Affero GPLv3 as a separate license? on the same page.
– a CVn
Jul 8 at 20:16
|
show 2 more comments
5
Doesn't this only apply to companies who are releasing software? Many companies write and use software that's never released: banks don't release the software for all the systems they use to manage user accounts, supermarkets don't release the software running on their tills and self-checkouts, Amazon don't release the software running their web site, and so on. In fact, I suspect the vast majority of software is never released!
– gidds
Jul 8 at 12:49
@gidds I might be wrong, but I don't think the vast majority of software is never released. In any case you have a point, and I have updated my answer.
– Fabio Turati
Jul 8 at 13:52
@FabioTurati There's a lot of custom, in-house software running in a lot of places. I mean, depending how you define "software", I alone have written more unique pieces of software than I've used -- lots of little scripts to automate little bits of what I do.
– Nic Hartley
Jul 8 at 14:19
@NicHartley not just small scripts/programs, either. Thinking back over all my jobs, I've only ever written code in 3 apps to run on non-employees' machines; one was a main application, one was small and rarely-used, and one was never released. That compares with around 30 major systems or applications that were only ever run in-house. (And countless other small apps/scripts.) And I don't think my experience is unrepresentative. In-house software is simply not visible in the way that published software is.
– gidds
Jul 8 at 15:49
@gidds In AGPLv3, what counts as “interacting with [the software] remotely through a computer network?” provides the FSF's guidance on interpreting the AGPLv3 (not GPLv3) in some of those cases. See also Why did you decide to write the GNU Affero GPLv3 as a separate license? on the same page.
– a CVn
Jul 8 at 20:16
5
5
Doesn't this only apply to companies who are releasing software? Many companies write and use software that's never released: banks don't release the software for all the systems they use to manage user accounts, supermarkets don't release the software running on their tills and self-checkouts, Amazon don't release the software running their web site, and so on. In fact, I suspect the vast majority of software is never released!
– gidds
Jul 8 at 12:49
Doesn't this only apply to companies who are releasing software? Many companies write and use software that's never released: banks don't release the software for all the systems they use to manage user accounts, supermarkets don't release the software running on their tills and self-checkouts, Amazon don't release the software running their web site, and so on. In fact, I suspect the vast majority of software is never released!
– gidds
Jul 8 at 12:49
@gidds I might be wrong, but I don't think the vast majority of software is never released. In any case you have a point, and I have updated my answer.
– Fabio Turati
Jul 8 at 13:52
@gidds I might be wrong, but I don't think the vast majority of software is never released. In any case you have a point, and I have updated my answer.
– Fabio Turati
Jul 8 at 13:52
@FabioTurati There's a lot of custom, in-house software running in a lot of places. I mean, depending how you define "software", I alone have written more unique pieces of software than I've used -- lots of little scripts to automate little bits of what I do.
– Nic Hartley
Jul 8 at 14:19
@FabioTurati There's a lot of custom, in-house software running in a lot of places. I mean, depending how you define "software", I alone have written more unique pieces of software than I've used -- lots of little scripts to automate little bits of what I do.
– Nic Hartley
Jul 8 at 14:19
@NicHartley not just small scripts/programs, either. Thinking back over all my jobs, I've only ever written code in 3 apps to run on non-employees' machines; one was a main application, one was small and rarely-used, and one was never released. That compares with around 30 major systems or applications that were only ever run in-house. (And countless other small apps/scripts.) And I don't think my experience is unrepresentative. In-house software is simply not visible in the way that published software is.
– gidds
Jul 8 at 15:49
@NicHartley not just small scripts/programs, either. Thinking back over all my jobs, I've only ever written code in 3 apps to run on non-employees' machines; one was a main application, one was small and rarely-used, and one was never released. That compares with around 30 major systems or applications that were only ever run in-house. (And countless other small apps/scripts.) And I don't think my experience is unrepresentative. In-house software is simply not visible in the way that published software is.
– gidds
Jul 8 at 15:49
@gidds In AGPLv3, what counts as “interacting with [the software] remotely through a computer network?” provides the FSF's guidance on interpreting the AGPLv3 (not GPLv3) in some of those cases. See also Why did you decide to write the GNU Affero GPLv3 as a separate license? on the same page.
– a CVn
Jul 8 at 20:16
@gidds In AGPLv3, what counts as “interacting with [the software] remotely through a computer network?” provides the FSF's guidance on interpreting the AGPLv3 (not GPLv3) in some of those cases. See also Why did you decide to write the GNU Affero GPLv3 as a separate license? on the same page.
– a CVn
Jul 8 at 20:16
|
show 2 more comments
Justify and attribute the use of any open source code that you use
What is the line between using open source code and writing the code by your own for completing an interview task?
There's no hard and fast line. It depends on what the interviewer is trying to assess.
A general advise in software development is to use tried and tested code. That's one of the crucial purposes of open sourcing code, i.e. not to reinvent the wheel every time.
However, here writing code is part of an interview task. There isn't a precise Yes/No answer to whether you should use open source code or not. But it tends towards Yes, if you can justify the use of it.
Think from the point of view of the interviewer. They are trying to assess your skills to get a task done. While one of the intent of getting a candidate to write code is to see their ability to write the solution for a problem, it's also an important skill to assess, how well they can identify and obtain pre written code to solve a problem.
There shouldn't be any problem in using an open source library or component, but it would be best to give proper attribution and reasoning why you chose to use it.
It is important for the interviewer to understand how well you understand the problem and the code that solves the problem, instead of writing the code yourself.
However, though process and intent can vary from interviewer to interviewer. You can propose the interviewer about using certain open source components along with the reasoning behind using them. Do it before starting the task. Some interviewers may be precisely looking for your skill to implement a certain functionality and may want you to write the code from scratch.
2
I think this is good advice. I especially like this line: "it would be best to give proper attribution and reasoning why you chose to use it." There's a major reason for that: Using resources available to you effectively is professionalism. Misrepresenting them as your own work is fraud. There's also a minor reason: in a professional setting, you'd want a record of any external sources of source code for reasons such as license compliance and being able to integrate any updated releases. Showing that you think about such things is valuable.
– Josiah
Jul 6 at 19:20
1
I once took one of those online code-editor tests. It was immediately obvious from the "pass" criteria that there existed a closed-form solution to the problem presented. I searched (the terms of the test didn't forbid outside resources), found the formula on Math SE, and put the URL in a comment. Interviewer was happy, I was done in 15 minutes.
– chrylis
Jul 6 at 21:16
add a comment |
Justify and attribute the use of any open source code that you use
What is the line between using open source code and writing the code by your own for completing an interview task?
There's no hard and fast line. It depends on what the interviewer is trying to assess.
A general advise in software development is to use tried and tested code. That's one of the crucial purposes of open sourcing code, i.e. not to reinvent the wheel every time.
However, here writing code is part of an interview task. There isn't a precise Yes/No answer to whether you should use open source code or not. But it tends towards Yes, if you can justify the use of it.
Think from the point of view of the interviewer. They are trying to assess your skills to get a task done. While one of the intent of getting a candidate to write code is to see their ability to write the solution for a problem, it's also an important skill to assess, how well they can identify and obtain pre written code to solve a problem.
There shouldn't be any problem in using an open source library or component, but it would be best to give proper attribution and reasoning why you chose to use it.
It is important for the interviewer to understand how well you understand the problem and the code that solves the problem, instead of writing the code yourself.
However, though process and intent can vary from interviewer to interviewer. You can propose the interviewer about using certain open source components along with the reasoning behind using them. Do it before starting the task. Some interviewers may be precisely looking for your skill to implement a certain functionality and may want you to write the code from scratch.
2
I think this is good advice. I especially like this line: "it would be best to give proper attribution and reasoning why you chose to use it." There's a major reason for that: Using resources available to you effectively is professionalism. Misrepresenting them as your own work is fraud. There's also a minor reason: in a professional setting, you'd want a record of any external sources of source code for reasons such as license compliance and being able to integrate any updated releases. Showing that you think about such things is valuable.
– Josiah
Jul 6 at 19:20
1
I once took one of those online code-editor tests. It was immediately obvious from the "pass" criteria that there existed a closed-form solution to the problem presented. I searched (the terms of the test didn't forbid outside resources), found the formula on Math SE, and put the URL in a comment. Interviewer was happy, I was done in 15 minutes.
– chrylis
Jul 6 at 21:16
add a comment |
Justify and attribute the use of any open source code that you use
What is the line between using open source code and writing the code by your own for completing an interview task?
There's no hard and fast line. It depends on what the interviewer is trying to assess.
A general advise in software development is to use tried and tested code. That's one of the crucial purposes of open sourcing code, i.e. not to reinvent the wheel every time.
However, here writing code is part of an interview task. There isn't a precise Yes/No answer to whether you should use open source code or not. But it tends towards Yes, if you can justify the use of it.
Think from the point of view of the interviewer. They are trying to assess your skills to get a task done. While one of the intent of getting a candidate to write code is to see their ability to write the solution for a problem, it's also an important skill to assess, how well they can identify and obtain pre written code to solve a problem.
There shouldn't be any problem in using an open source library or component, but it would be best to give proper attribution and reasoning why you chose to use it.
It is important for the interviewer to understand how well you understand the problem and the code that solves the problem, instead of writing the code yourself.
However, though process and intent can vary from interviewer to interviewer. You can propose the interviewer about using certain open source components along with the reasoning behind using them. Do it before starting the task. Some interviewers may be precisely looking for your skill to implement a certain functionality and may want you to write the code from scratch.
Justify and attribute the use of any open source code that you use
What is the line between using open source code and writing the code by your own for completing an interview task?
There's no hard and fast line. It depends on what the interviewer is trying to assess.
A general advise in software development is to use tried and tested code. That's one of the crucial purposes of open sourcing code, i.e. not to reinvent the wheel every time.
However, here writing code is part of an interview task. There isn't a precise Yes/No answer to whether you should use open source code or not. But it tends towards Yes, if you can justify the use of it.
Think from the point of view of the interviewer. They are trying to assess your skills to get a task done. While one of the intent of getting a candidate to write code is to see their ability to write the solution for a problem, it's also an important skill to assess, how well they can identify and obtain pre written code to solve a problem.
There shouldn't be any problem in using an open source library or component, but it would be best to give proper attribution and reasoning why you chose to use it.
It is important for the interviewer to understand how well you understand the problem and the code that solves the problem, instead of writing the code yourself.
However, though process and intent can vary from interviewer to interviewer. You can propose the interviewer about using certain open source components along with the reasoning behind using them. Do it before starting the task. Some interviewers may be precisely looking for your skill to implement a certain functionality and may want you to write the code from scratch.
edited Jul 6 at 15:02
answered Jul 6 at 12:20
Nimesh NeemaNimesh Neema
2,3351 gold badge9 silver badges28 bronze badges
2,3351 gold badge9 silver badges28 bronze badges
2
I think this is good advice. I especially like this line: "it would be best to give proper attribution and reasoning why you chose to use it." There's a major reason for that: Using resources available to you effectively is professionalism. Misrepresenting them as your own work is fraud. There's also a minor reason: in a professional setting, you'd want a record of any external sources of source code for reasons such as license compliance and being able to integrate any updated releases. Showing that you think about such things is valuable.
– Josiah
Jul 6 at 19:20
1
I once took one of those online code-editor tests. It was immediately obvious from the "pass" criteria that there existed a closed-form solution to the problem presented. I searched (the terms of the test didn't forbid outside resources), found the formula on Math SE, and put the URL in a comment. Interviewer was happy, I was done in 15 minutes.
– chrylis
Jul 6 at 21:16
add a comment |
2
I think this is good advice. I especially like this line: "it would be best to give proper attribution and reasoning why you chose to use it." There's a major reason for that: Using resources available to you effectively is professionalism. Misrepresenting them as your own work is fraud. There's also a minor reason: in a professional setting, you'd want a record of any external sources of source code for reasons such as license compliance and being able to integrate any updated releases. Showing that you think about such things is valuable.
– Josiah
Jul 6 at 19:20
1
I once took one of those online code-editor tests. It was immediately obvious from the "pass" criteria that there existed a closed-form solution to the problem presented. I searched (the terms of the test didn't forbid outside resources), found the formula on Math SE, and put the URL in a comment. Interviewer was happy, I was done in 15 minutes.
– chrylis
Jul 6 at 21:16
2
2
I think this is good advice. I especially like this line: "it would be best to give proper attribution and reasoning why you chose to use it." There's a major reason for that: Using resources available to you effectively is professionalism. Misrepresenting them as your own work is fraud. There's also a minor reason: in a professional setting, you'd want a record of any external sources of source code for reasons such as license compliance and being able to integrate any updated releases. Showing that you think about such things is valuable.
– Josiah
Jul 6 at 19:20
I think this is good advice. I especially like this line: "it would be best to give proper attribution and reasoning why you chose to use it." There's a major reason for that: Using resources available to you effectively is professionalism. Misrepresenting them as your own work is fraud. There's also a minor reason: in a professional setting, you'd want a record of any external sources of source code for reasons such as license compliance and being able to integrate any updated releases. Showing that you think about such things is valuable.
– Josiah
Jul 6 at 19:20
1
1
I once took one of those online code-editor tests. It was immediately obvious from the "pass" criteria that there existed a closed-form solution to the problem presented. I searched (the terms of the test didn't forbid outside resources), found the formula on Math SE, and put the URL in a comment. Interviewer was happy, I was done in 15 minutes.
– chrylis
Jul 6 at 21:16
I once took one of those online code-editor tests. It was immediately obvious from the "pass" criteria that there existed a closed-form solution to the problem presented. I searched (the terms of the test didn't forbid outside resources), found the formula on Math SE, and put the URL in a comment. Interviewer was happy, I was done in 15 minutes.
– chrylis
Jul 6 at 21:16
add a comment |
Depends:
- If it's more an algorithmic/data crunching task, then probably better show understanding of the algorithm (e.g. tweak it for the specific usecase)
- if it is an 'show that you can create an whole app' task, then show that you can use preexisting building blocks (open source, or the frameworks the company asked for)
add a comment |
Depends:
- If it's more an algorithmic/data crunching task, then probably better show understanding of the algorithm (e.g. tweak it for the specific usecase)
- if it is an 'show that you can create an whole app' task, then show that you can use preexisting building blocks (open source, or the frameworks the company asked for)
add a comment |
Depends:
- If it's more an algorithmic/data crunching task, then probably better show understanding of the algorithm (e.g. tweak it for the specific usecase)
- if it is an 'show that you can create an whole app' task, then show that you can use preexisting building blocks (open source, or the frameworks the company asked for)
Depends:
- If it's more an algorithmic/data crunching task, then probably better show understanding of the algorithm (e.g. tweak it for the specific usecase)
- if it is an 'show that you can create an whole app' task, then show that you can use preexisting building blocks (open source, or the frameworks the company asked for)
answered Jul 7 at 9:41
SaschaSascha
10.6k2 gold badges24 silver badges44 bronze badges
10.6k2 gold badges24 silver badges44 bronze badges
add a comment |
add a comment |
I would specifically ask your new employer this question. In the end, 90% of those tasks are used, so your employer can form an opinion on your skills.
HOWEVER: Every employer might be looking for something different in your task. I know some departments (like core development) are looking for potential candidates to perform very well "from the ground up", meaning they want to see how you are working with an array "by hand" and implement even the most basic algorithms by yourself. They want to assess your knowledge of a programming language even at it's most basic level (which is often considered as the most important the more "techy" it gets)
Other departments want to see, that you just get the job done and are up to date with the latest frameworks, open source solutions and the standard library and would probably count some things, that aforementioned department would have counted as a plus, as a big minus.
Some companies are just pretty old school by nature, some companies are all about modern solutions. The problem for you is, you can never know and while you may deliver a solid, reasonable solution with, or without open source components, it might just be missing, what the company is looking for.
So from my experience, the best way to find out about this and maybe even to catch a few bonus points by delivering exactly what they are looking for is to ask upfront.
Good luck!
add a comment |
I would specifically ask your new employer this question. In the end, 90% of those tasks are used, so your employer can form an opinion on your skills.
HOWEVER: Every employer might be looking for something different in your task. I know some departments (like core development) are looking for potential candidates to perform very well "from the ground up", meaning they want to see how you are working with an array "by hand" and implement even the most basic algorithms by yourself. They want to assess your knowledge of a programming language even at it's most basic level (which is often considered as the most important the more "techy" it gets)
Other departments want to see, that you just get the job done and are up to date with the latest frameworks, open source solutions and the standard library and would probably count some things, that aforementioned department would have counted as a plus, as a big minus.
Some companies are just pretty old school by nature, some companies are all about modern solutions. The problem for you is, you can never know and while you may deliver a solid, reasonable solution with, or without open source components, it might just be missing, what the company is looking for.
So from my experience, the best way to find out about this and maybe even to catch a few bonus points by delivering exactly what they are looking for is to ask upfront.
Good luck!
add a comment |
I would specifically ask your new employer this question. In the end, 90% of those tasks are used, so your employer can form an opinion on your skills.
HOWEVER: Every employer might be looking for something different in your task. I know some departments (like core development) are looking for potential candidates to perform very well "from the ground up", meaning they want to see how you are working with an array "by hand" and implement even the most basic algorithms by yourself. They want to assess your knowledge of a programming language even at it's most basic level (which is often considered as the most important the more "techy" it gets)
Other departments want to see, that you just get the job done and are up to date with the latest frameworks, open source solutions and the standard library and would probably count some things, that aforementioned department would have counted as a plus, as a big minus.
Some companies are just pretty old school by nature, some companies are all about modern solutions. The problem for you is, you can never know and while you may deliver a solid, reasonable solution with, or without open source components, it might just be missing, what the company is looking for.
So from my experience, the best way to find out about this and maybe even to catch a few bonus points by delivering exactly what they are looking for is to ask upfront.
Good luck!
I would specifically ask your new employer this question. In the end, 90% of those tasks are used, so your employer can form an opinion on your skills.
HOWEVER: Every employer might be looking for something different in your task. I know some departments (like core development) are looking for potential candidates to perform very well "from the ground up", meaning they want to see how you are working with an array "by hand" and implement even the most basic algorithms by yourself. They want to assess your knowledge of a programming language even at it's most basic level (which is often considered as the most important the more "techy" it gets)
Other departments want to see, that you just get the job done and are up to date with the latest frameworks, open source solutions and the standard library and would probably count some things, that aforementioned department would have counted as a plus, as a big minus.
Some companies are just pretty old school by nature, some companies are all about modern solutions. The problem for you is, you can never know and while you may deliver a solid, reasonable solution with, or without open source components, it might just be missing, what the company is looking for.
So from my experience, the best way to find out about this and maybe even to catch a few bonus points by delivering exactly what they are looking for is to ask upfront.
Good luck!
answered Jul 6 at 17:53
MrTonyMrTony
2571 silver badge6 bronze badges
2571 silver badge6 bronze badges
add a comment |
add a comment |
Adding to what has been said so far by others that I totally agree with, I would like to point out here that most open source licenses have an attribution clause and/or require you to keep the license information intact for any derived work. As well as you often aren't allowed to promote the software as your own work if it isn't.
So even if you go against any advice given by the other answers, if that open source code is under a license having any of the before mentioned clauses, not disclosing to the interviewer that it is open source in the required way, would be a license infringement and could possibly backfire depending on the employer's view towards compliance.
add a comment |
Adding to what has been said so far by others that I totally agree with, I would like to point out here that most open source licenses have an attribution clause and/or require you to keep the license information intact for any derived work. As well as you often aren't allowed to promote the software as your own work if it isn't.
So even if you go against any advice given by the other answers, if that open source code is under a license having any of the before mentioned clauses, not disclosing to the interviewer that it is open source in the required way, would be a license infringement and could possibly backfire depending on the employer's view towards compliance.
add a comment |
Adding to what has been said so far by others that I totally agree with, I would like to point out here that most open source licenses have an attribution clause and/or require you to keep the license information intact for any derived work. As well as you often aren't allowed to promote the software as your own work if it isn't.
So even if you go against any advice given by the other answers, if that open source code is under a license having any of the before mentioned clauses, not disclosing to the interviewer that it is open source in the required way, would be a license infringement and could possibly backfire depending on the employer's view towards compliance.
Adding to what has been said so far by others that I totally agree with, I would like to point out here that most open source licenses have an attribution clause and/or require you to keep the license information intact for any derived work. As well as you often aren't allowed to promote the software as your own work if it isn't.
So even if you go against any advice given by the other answers, if that open source code is under a license having any of the before mentioned clauses, not disclosing to the interviewer that it is open source in the required way, would be a license infringement and could possibly backfire depending on the employer's view towards compliance.
edited Jul 8 at 12:17
Peter Mortensen
6325 silver badges7 bronze badges
6325 silver badges7 bronze badges
answered Jul 8 at 10:02
ZaibisZaibis
1,1401 gold badge8 silver badges23 bronze badges
1,1401 gold badge8 silver badges23 bronze badges
add a comment |
add a comment |
Ask the interviewer to be sure. But a general rule of thumb- depends on how much code you're taking from the open source library. If the task is algorithmic, don't take something that writes the main algorithm. If the task is to write an app, don't find a version of the app online and take it. If its a framework and you're going to write the actual code of your app (algorithms and display), that's usually fine.
For example, a workplace of mine did a test where they had a few hours to write Minesweeper. Someone once found an entire online version and made minor tweaks. We didn't offer them the job, because we didn't know how well they could program from that. On the other hand, someone else used a widget to display the timer in a pretty way. That was totally cool with us. There's one algorithmically difficult part to Minesweeper (the algorithm to open up adjacent squares efficiently when they click on a 0). They didn't need to get that to its most efficient version, but I don't think we'd have passed anyone who didn't write it themselves.
add a comment |
Ask the interviewer to be sure. But a general rule of thumb- depends on how much code you're taking from the open source library. If the task is algorithmic, don't take something that writes the main algorithm. If the task is to write an app, don't find a version of the app online and take it. If its a framework and you're going to write the actual code of your app (algorithms and display), that's usually fine.
For example, a workplace of mine did a test where they had a few hours to write Minesweeper. Someone once found an entire online version and made minor tweaks. We didn't offer them the job, because we didn't know how well they could program from that. On the other hand, someone else used a widget to display the timer in a pretty way. That was totally cool with us. There's one algorithmically difficult part to Minesweeper (the algorithm to open up adjacent squares efficiently when they click on a 0). They didn't need to get that to its most efficient version, but I don't think we'd have passed anyone who didn't write it themselves.
add a comment |
Ask the interviewer to be sure. But a general rule of thumb- depends on how much code you're taking from the open source library. If the task is algorithmic, don't take something that writes the main algorithm. If the task is to write an app, don't find a version of the app online and take it. If its a framework and you're going to write the actual code of your app (algorithms and display), that's usually fine.
For example, a workplace of mine did a test where they had a few hours to write Minesweeper. Someone once found an entire online version and made minor tweaks. We didn't offer them the job, because we didn't know how well they could program from that. On the other hand, someone else used a widget to display the timer in a pretty way. That was totally cool with us. There's one algorithmically difficult part to Minesweeper (the algorithm to open up adjacent squares efficiently when they click on a 0). They didn't need to get that to its most efficient version, but I don't think we'd have passed anyone who didn't write it themselves.
Ask the interviewer to be sure. But a general rule of thumb- depends on how much code you're taking from the open source library. If the task is algorithmic, don't take something that writes the main algorithm. If the task is to write an app, don't find a version of the app online and take it. If its a framework and you're going to write the actual code of your app (algorithms and display), that's usually fine.
For example, a workplace of mine did a test where they had a few hours to write Minesweeper. Someone once found an entire online version and made minor tweaks. We didn't offer them the job, because we didn't know how well they could program from that. On the other hand, someone else used a widget to display the timer in a pretty way. That was totally cool with us. There's one algorithmically difficult part to Minesweeper (the algorithm to open up adjacent squares efficiently when they click on a 0). They didn't need to get that to its most efficient version, but I don't think we'd have passed anyone who didn't write it themselves.
answered Jul 8 at 19:37
Gabe SechanGabe Sechan
2,8991 gold badge7 silver badges20 bronze badges
2,8991 gold badge7 silver badges20 bronze badges
add a comment |
add a comment |
Thanks for contributing an answer to The Workplace Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f139833%2fis-it-okay-to-use-open-source-code-to-do-an-interview-task%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Interesting question! (I upvoted it) - particularly since a highly related question could be "using the standard libraries" (e.g. JSON parsing) vs writing your own. All depends what they are looking for, but I think they ought to have made that clear really.
– seventyeightist
Jul 8 at 19:42