I would like to start writing my portfolio to improve my probability to get a job as a developer. I know that I can do small problems on my own but there are also libraries I use. What kind of guidelines there are to post code on the Internet? I mean, if I write code that uses Pandas and Matplotlib, do I have to ask a permission for the authors of the libraries to use their functions on a program that will be on the Github as I finish the program? Or is there copyright issues if I write the code such that it has not used other code from the Internet but downloads a code from Github, writes another source file and then compile or run the code the other script made?
What kind of guidelines there are to post code on the Internet?
Besides the fact that your portfolio should only contain code that you have written yourself (as it is meant to showcase your coding abilities), you must have the right to publish the code.
You have this right if
- the code is not written as part of a contract or as part of your job, or
- the contract specifies that you own the copyrights on the code, or
- you have an explicit license from the copyright holder to publish the code
I mean, if I write code that uses Pandas and Matplotlib, do I have to ask a permission for the authors of the libraries to use their functions on a program that will be on the Github as I finish the program?
Technically, you need to have permission from the authors of 3rd-party libraries to write a program that builds upon such a library. This permission takes the form of a license.
In practice, there are two variations:
- The library uses an open-source license. In this case, the library authors have granted the required license in advance to everybody that wants to use the library. These licenses promote sharing and definitely allow you to put your code up in a public repository. Both Pandas and Matplotlib appear to fall in this category.
- You need to pay to use the library. In this case, you need to contact the vendor of the library to obtain a license and the license terms may or may not forbid you from making your code public.
One thing to be aware of: If you use a library (directly or indirectly) that uses the GPL or AGPL license, then the license terms require that your software is also made public under an open-source license.
You first have to understand the difference between copyright, patents and software licensing.
You will have copyright on the work you produce by default.
You also should note that in certain jurisdiction (USA is the main one here) you can create a patent on software which may mean that your work infringes on someone patent with which they can try to seek damages from you (Most likely start with a Cease and desist email).