Generalmente questo è definito dalle carte che firmi quando sei assunto. Vi sono alcune differenze tra società, tipi di posizioni e paesi. Non è insolito firmare un accordo in cui tutto il lavoro che svolgi per la società è di proprietà dell'azienda - in altre parole, non puoi prendere codice sorgente, progettazione, test, ecc. E venderli a una seconda società. Stessa cosa per il binario. Si chiama " lavoro a noleggio ".
Per gli impiegati, direi che era la norma. Ci sono circostanze in cui un programmatore può essere ingaggiato per sviluppare uno strumento o una soluzione per un'azienda in cui non è questo il caso - ad esempio, credo che alcune delle persone che conosco lavorando per costruire siti Web non siano obbligate a regalare il codice sorgente - la società desidera possedere il sito Web finito, ma se l'impiegato riutilizza componenti del sito Web in lavori successivi per altre società, va bene.
Inoltre, nella maggior parte delle aziende sia i lavoratori dipendenti che i dipendenti a contratto firmano un accordo di non divulgazione (NDA) che copre idee, proposte e altri lavori effimeri relativi all'azienda e alla sua strategia.
La proprietà del codice al di fuori del posto di lavoro è più variabile. Posso dire di aver lavorato in aziende in cui affermavano di possedere qualsiasi codice che ho creato, anche se l'ho fatto nel mio tempo libero per un progetto esterno. Ma la mia impressione è che questa sia la norma nelle grandi aziende americane, e non così tipica per le aziende più piccole e più startup.