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;








44















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?










share|improve this question



















  • 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


















44















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?










share|improve this question



















  • 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














44












44








44


1






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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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













  • 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











8 Answers
8






active

oldest

votes


















110














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.






share|improve this answer


















  • 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



















20














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.






share|improve this answer


















  • 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



















12














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.






share|improve this answer




















  • 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


















3














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.






share|improve this answer




















  • 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



















3














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)





share|improve this answer






























    2














    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!






    share|improve this answer






























      0














      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.






      share|improve this answer
































        0














        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.






        share|improve this answer

























          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
          );



          );













          draft saved

          draft discarded


















          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









          110














          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.






          share|improve this answer


















          • 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
















          110














          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.






          share|improve this answer


















          • 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














          110












          110








          110







          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.






          share|improve this answer













          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.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          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













          • 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














          20














          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.






          share|improve this answer


















          • 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
















          20














          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.






          share|improve this answer


















          • 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














          20












          20








          20







          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.






          share|improve this answer













          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.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          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













          • 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












          12














          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.






          share|improve this answer




















          • 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















          12














          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.






          share|improve this answer




















          • 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













          12












          12








          12







          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.






          share|improve this answer















          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.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          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












          • 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











          3














          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.






          share|improve this answer




















          • 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
















          3














          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.






          share|improve this answer




















          • 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














          3












          3








          3







          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.






          share|improve this answer















          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.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          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













          • 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












          3














          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)





          share|improve this answer



























            3














            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)





            share|improve this answer

























              3












              3








              3







              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)





              share|improve this answer













              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)






              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Jul 7 at 9:41









              SaschaSascha

              10.6k2 gold badges24 silver badges44 bronze badges




              10.6k2 gold badges24 silver badges44 bronze badges





















                  2














                  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!






                  share|improve this answer



























                    2














                    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!






                    share|improve this answer

























                      2












                      2








                      2







                      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!






                      share|improve this answer













                      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!







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Jul 6 at 17:53









                      MrTonyMrTony

                      2571 silver badge6 bronze badges




                      2571 silver badge6 bronze badges





















                          0














                          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.






                          share|improve this answer





























                            0














                            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.






                            share|improve this answer



























                              0












                              0








                              0







                              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.






                              share|improve this answer















                              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.







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              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





















                                  0














                                  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.






                                  share|improve this answer



























                                    0














                                    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.






                                    share|improve this answer

























                                      0












                                      0








                                      0







                                      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.






                                      share|improve this answer













                                      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.







                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      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



























                                          draft saved

                                          draft discarded
















































                                          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.




                                          draft saved


                                          draft discarded














                                          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





















































                                          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











                                          Popular posts from this blog

                                          Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

                                          Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

                                          Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form