Is this unfounded? Or do I have a right for some concern? It's obviously easier for viewers to just see public code repos and browse without ever requesting access so I know I'm losing some traffic (from my portfolio site)
I was thinking the alternative would be just linking my demo on my portfolio site as a proof of concept that yes I made it, yes it works, and if you're curious , here's a link to the code u can request independently of github.
Thank you in advance.
Make the code part of your professional marketing. It’s not code for code sake but to enable you to blog, speak, etc about something interesting. Then there’s little chance some theoretical thief is also communicating those ideas. And if you’re good at evangelizing yourself it SHOULD happen that someone steals your code. If anyone looks up the ideas, they’ll be inundated by content you created. The code is secondary.
We are often our own worst critics - put your stuff out there, there is little to lose and some upside, if someone likes your demo and clicks through to see the code and can see it then that's a low friction path, by having to request access most people won't or will - but forget all about it etc.
We publish code so others can see it, the lazy and the productive.
Lazy people do not prosper, so don't waste your energy thinking about them.
Why do you want to publish yours, just as a portfolio? Then make a portfolio.
Fortunately they never gained much traction. The ones I know about I blocked on GitHub with a note. No idea if they ever found out or if they tried workarounds, but I figured there’s not a lot more I could do about it and it’s not worth the headache.
I continue to share openly.
People you never heard of are open-sourcing projects you'll never find every day, there are hundreds of millions of repositories on GitHub and very few of them will ever be seen by humans who didn't write them, let alone humans looking to pretend they did.
Presumably someone looking at your portfolio will be reviewing CVs to hire? I think throwing up a barrier on them evaluating your code will hurt you much more than the rest of the world not being able to see it.
If you know who you are, what you're capable of, you won't let other people's opinions hurt you.
It comes with age and experience. I don't mean programming experience either, life experience.
One can also focus on the end goal and drop that foolish pride. The goal is to have a working product, all help is welcome.
Keep in mind that you are in control of what people are allowed to do with your software. By default, your code is unlicensed even if it is public, which means no one else can distribute it or change it or do much of anything with it. Thus, if someone uses it and claims it to be theirs, you can sue them if you want to.
However, instead of leaving your code unlicensed, I would recommend choosing an open source license and applying it to your code when you make it public. There are many to choose from!
By applying a license to your code, you are establishing a clear framework for what other people are and aren’t allowed to do with it. And it’s legally enforceable. In fact, there are organizations that may step in to help you if someone violates your license or challenges it in court. For example, my preferred license is the Mozilla Public License. If someone tried to challenge me on any part of that license, Mozilla would have a vested interest in defending it, since it’s their license and they use it, too. Their lawyer is even available to chat with over email. I once reached out to ask if I could make a small tweak to the license without causing headaches. They got back to me within a few days and said it would be fine. That gave me a lot of confidence to continue using it.
Some licenses are very permissive, such as MIT. Others are much more restrictive, such as GPL. The MPL, which I use, is somewhere in between.
What’s right for you really just depends on what you consider to be fair. And every project can be different. Maybe you build some small tools that you release under MIT, essentially donating them to all of humanity. Meanwhile, you create a startup and build a product where you keep some of it private and release parts of it publicly, licensed under the GPL, because you don’t want huge corporations stealing the work for your day job without reciprocating. That’s a relatively common approach.
Whatever you decide, just make some of your code public. The feedback and experience will be well worth it. Good luck!
That said, fear of someone stealing your code is completely unfounded as there isn’t really anything novel we produce anymore. If you are on the bleeding edge, you welcome input and PR’s from others to make it better. Only wise men know they know nothing. Collectively, we can build some amazing software.
Now, if you’re trying to build a business off of your software, you may want to keep that to yourself and not share it. If your business isn’t the software but your service, there’s no harm.
Is the main concern that you have a class project you don't want other people taking credit for as their own? I wouldn't bother sharing standardized class projects that future classes may give again, and those projects don't mean much anyways. Your portfolio should ideally be projects that are something more uniquely created by you.
Also, what's specifically the issue with other students taking credit for your work as their own? In a school setting, it should be pretty clear who committed their code first. If it's for future employers, the most important thing is demonstrating full understanding of the project while being able to discuss it.
https://en.wikipedia.org/wiki/Exposure_therapy
There's really no other successful approach I've seen for curing anxiety. You have to just steel yourself and do the thing you're afraid of. It gets easier every time.
But in reality the original is often the best updated and the forks will fall behind because they have to merge your changes and you don't have to do that.
Especially true when working as an employee where you don't own your code.
If you're not going to do a startup with your code, you probably need to focus on a mix of learning and self-promotion. With the market prioritizing self-promotion. Which probably means just trying to make sure that code that reflects well on you, does so.
Which probably means making it it open source, even if AI training data companies will steal it and give it away.
It’s also much more likely they will go to AI these days; the odds of them searching and landing on your repo to use are almost 0. If they do, I imagine most schools would scan for direct copies of existing code.
1) unusually good interviewers. These will glance through your repo for 30-120 seconds, checking for a) clear code style, b) clear ideas, and c) good documentation. Nobody but influencers will do a DEEP code review of code they’re not being paid to review.
2) people on HN or Reddit if you write an interesting blog post and link the underlying code.
It’s usually true that we are our own worst critics. This is an order of magnitude truer for developer portfolios.
Once you're out of the class, there's no reason to keep it private in my humble opinion. The answers to everything every instructor gives in school is out there somewhere. And AI can solve most of them.
Fundamentally most code goes no where, no one shows much interest unless you release a hit project. It can however be really impactful in interviews and recruitment, if your code is readable and well tested and such then it can be quite a positive for the right types of organisations. So at some point you may very well want to make it public for this purpose.
Practically it may be worth keeping code for a particular class private for the duration of the term, semester whatever so you dont get into a sticky situation where a classmate copies it and now youre defending against plagiarism and have to prove to the professor you wrote it first.
But really beyond that, nobody cares.
> worry about other students being lazy and just ripping my hard work and claiming it as their own.
First of all, the cheaters will never read you, they'll just use AI.
Good news, your code is likely to never be read by anyone but you.
"There is only one thing in life worse than being talked about, and that is not being talked about." — Oscar Wilde
By being private, you're just not being talked about.
>I was thinking the alternative would be just linking my demo on my portfolio site as a proof of concept that yes I made it, yes it works, and if you're curious , here's a link to the code u can request independently of github.
I'll give you an even better path. Use AI to make something of size. Build in public. Who cares, if someone steals it, they are only stealing from AI and could have just gone to AI to begin with. If you get criticized, they arent criticizing you, they are criticizing some version of an AI model.
In math, half the work is proving how you got the answer. When it comes to proving your worth as a programmer, I’m a firm believer the same principle applies.
But if you're taking the time to build out side projects I'd open them so you can put them on your resume. Doesn't make sense to me to hamstring your resume so some kid you don't know gets a slighter better score in some cs class.
But the actual truth is that the code itself is nearly worthless. The important thing is who you became when you wrote it. You learned interface abstraction, api design, how to debug, how to execute it in your head, the tooling, and most importantly you got that spark of pure joy when it finally worked.
If others copy your code they get none of that, they only get the little worthless bit, they might win a battle (cheat on an assignment) but they will loose the war (they don’t grow or experience joy) so don’t worry about it, they will flake out, while you grow and reach for even greater things!
If you are afraid that people will think this code is not yours, sign your commits, it's unlikely they will take the time to clone your repo and remake it with new signatures.
But honestly, if it's such a source of stress for you, don't share it. It's ok to not share code. There is no rules that say you have to.
Just because most of us are into FOSS and open source doesn't mean we will less of you if you are not.
Most code will quickly be obsolete anyways, even for you.
Most code you write will be torn apart by often the harshest critic: yourself.
People who chase others' code just to copy it and not to understand it will not get anywhere, especially today.
Share for your benefit first, and share often. That's how I have found my gems, even for code I've written.
If people insist on staying ignorant, let them, it won't hurt you, but it will them.
Just put your stuff out there if you think someone might find it interesting or useful.
But sometimes, when implementing non-trivial features, I struggle to come up with good implementation. This prevents submitting working code early. And when I feel I'm delayed, my anxiety kicks in, and I have this urge to implement cleaner code and more features than expected even though all of my coworkers just want working code. And I feel more pressure, more urge to implement well, more anxiety, but it makes me procrastinate (I'm working from home so I can just lie down on the bed when I'm depressed). Sometimes I manage to implement, sometimes I give up and the feature is not implemented or assigned to a coworker. But in few cases I end up with severe depression, stop functioning, and finally quit the job.
I can handle this better than before after making same mistakes again and again, but still happens sometimes.
Really just a long winded way of saying no one cares. Anybody who is looking at your portfolio is going to care more about what you built than how you built it. Anyone trying to rip you off it’s just hurting themselves more than anything
Recruiter: "We want you to do a take home so we can get a sense of how well you can code."
Me: "I have a repo on Github with 10M downloads, 10k stars, and about 50k lines of my own code. Would that be useful to make an assessment?"
Recruiter: "Haha, no. Please do this take home that has you render a few divs in a tedious way."
So if people who are even financially incentivized to read your code don't do it, I'd say that the chances of anyone reading your code is virtually nil.
In your specific case, if you spot a student claiming your work as their own, you can confront them directly, mock them and shame them in front of others, or report them to the faculty, or all of the above. Don't feel bad taking retaliatory measures against those who have already fired the first shot by claiming your work as their own.
It's fine if they copied your code and then gave appropriate credit, though. There's nothing wrong with someone else integrating your work in their projects as long as they gave credit, and even better, publically released their code so you may use what they built, too. Win-win.
On internal projects it’s different- my code is the teams code. It’s never actually been mine. My colleagues comment on it, provide feedback and help me improve. After all, we are all supporting it. I’ve had almost exclusively positive experiences doing this, even if sometimes I had to change some of my priorities or opinions on things.
At this point I have a fancy enough title that, in the rare cases I get to write code or docs, people lower in level are willing to give me feedback and everyone higher in level is too busy. I miss it- it’s hard to improve without feedback and genuine collaboration is fun.
So I say publish it. Most likely no one will say anything. Maybe you’ll get some feedback and you’ll normalize managing it. Maybe you’ll find a collaborator. Maybe you’ll get flamed by a troll and you’ll learn there are idiots on the Internet. But most likely a few people will just look and say nothing.
An aside, this assumes you are not in some toxic subculture. Your mention other students- if you are in some form of university environment where there is a culture of belittling others you might want to wait. I promise that’s abnormal.
Contrarily, I've chatted with plenty of folks who found some hobby project I wrote up and thank me for writing it and saving them time and/or frustration.
Open your source or don't, people may use it without asking, if this upsets you, then don't. Do what you want with your own work. A buddy of mine sent me a screen shot of google's AI citing some crap that I wrote, I replied, "Wow, I hope no one actually use that!"
When I'm looking for developers I kind of expect to see something on github aside from the standard git tutorial. I'd much rather read someone's code than force them to do some coding test.
The lazy cheaters only cheat themselves out of getting experience and learning by writing the code themselves. It doesn't even matter whether you publish your code or not, because they'll just steal from someone else, or more likely mindlessly copypaste AI slop instead. If someone can't write non-trivial code themselves to begin with, they won't be able to properly extend and maintain it either, so their ripoff project won't be successful.
Additionally, you'll find that most programmers don't want to even look at your code. It feels harder and less fun to understand someone else's code than to write one's own. Everyone thinks their own solution is the best: it's more clever and has more features than the primitive toys other people wrote, while at the same time it's simpler and more focused than the overcomplicated bloat other people wrote.
"Why do you think you need to share your code?"
"What benefit(s) do you expect to gain from sharing your code?"
First to the OP mentions about schooling experiences which struck a nerve with me, I would add that in my 4th year of College programming classes; Assembly and C, I too helped the other 6 people in my class while in the computer lab. This was the 1990s long before the dotcom boom and classes were very small in software development, folks even laughed at me for taking programming then however they do not laugh at me now. The point in this paragraph is that I too had my entire projects stolen and turned in verbatim by 3 others in my class and the professor, who was a systems programmer at Bank of America at the time, knew whose work they had turned in since I was the only person in class that understood it. She spoke to me in private and advised me to not share my code with anyone and dumbass me should have carried that forward into the real world then.
Code theft has been a thing since code was first written and this should be no surprise when most people have no idea how to formulate large sets of code into a unified function for business let alone the time it takes to write and prove that approach. I started writing software professionally in the 1990s and was the architect and sole developer of a payment processors gateway that had PayPal and several other Fortune 500 clients for many years. My company acquired another small entity within this time and unknown to us our action of interest proved to be the point of proof needed to set in motion a lawsuit from an outside third party. That third party claimed that the acquired owner and his business we bought stole their code which in time laid the interest for us to acquire that business. 10 years later and after many a court hearing that acquired owner lost the lawsuit after he was proven to have stolen the code and built a business making significant revenue from that stolen code. He was fined 5+ MM USD and had his wages garnished which he likely is still paying to this day. Yes, code theft is a real thing but many here likely have no idea.
Fast forward some time later after I had entirely rewrote my intellectual property from the ground up again into version 5 and I founded another payment processor with my intellectual property work, Yup, that code was then too stolen and used to build yet another competing business by a former business partner that felt he was entitled to my intellectual property. Yes, code theft is a real thing or maybe it is just me?
A few weeks back I attended a patent meeting discussion North of Washington DC that had several tens of people there, many younger than myself. The lawyers running the presentation were cracking jokes about the current and coming tsunami of lawsuits involving A.I. code theft and after the presentation over half the people there in discussion groups stated they were attending in an attempt to patent their A.I. solutions. The lawyers very clearly stated that they would most likely be wasting their time and money as the courts were now wise to the trolls that have no intention of applying the patent they seek to a use other than just blanket patenting mass ideas in a hope to cash in on a patent lawsuit down the line.
After nearly 30 years of doing this it has taken many scars to understand the correct approach to protect my intellectual property that is still powering past payments companies of which I founded and built. I am now applying those lessons in a way for my next venture that will ensure only I can execute my ideas with my code since the world is overrun with many liars and cheats that now exist only to claim others work as their own in hopes to get rich easily from all the big tech hysteria and FOMO. I will continue on doing what I do using my old school proven ways to build what I am building now that continues to excite me even more with each passing day as that idea manifests into my next business venture that everyone alive will need, energy storage.
Your mileage will vary greatly from my own but I leave everyone with this point to think on; why hasn't Coke published their recipe on a publicly open forum? Code is just a recipe after all but maybe it's really the chef that matters?
Stay Healthy!