I'm trying to get into freelance/contract work for computer programming. Many clients want to "own everything" and have terms like "once paid, the developer transfers all rights to the client".
Does this mean I cannot reuse any parts of the source code, even small simple ones? For example if I build a program for a client, and part of the program involves converting 24 hour time into AM/PM time then can I reuse the code in another project or do I have to build it from scratch again? How could one even tell the difference?
What about abstract things related to programming itself, like data structures. C++ doesn't have its own linked list so if you use on in a project and transfer all rights to the client, then does that mean you can't reuse that library in another project? Does that mean you can never use a linked list again (I'm guessing not but then does it really matter if you build the code from scratch vs copy/paste from a previous project)?
I'm guessing there's some kind of threshold that has to be met for copyright to apply (it can't be too trivial or common place).
I'm not trying to rip of the client, I'm legitimately confused as most understandably want to own the source code but does that mean you can't reuse common features between projects?