I made the games available for free on Steam because I thought they might still find some players who enjoy them, even if they are of course a bit old-fashioned here and there.
I'm now thinking about releasing the source code as open source. I'd really like to do that, because I think it might be interesting for some people. And if people create new ports or mods/improvements, that would be pretty awesome.
However, from today's perspective, the source code is not very well structured - so it's a bit embarrassing. I'm torn on whether to publish it or not, because it might reflect badly on me as a developer. How would you handle that?
I suggest posting things that make you uncomfortable due to their 'quality' because the more you do it the more you'll start to dissolve that part of your ego that is pre-embarrassed by the imagined responses of people who have yet to review your work. I say this as someone who is struggling to finish a comic written by one of my friends for this very reason.
Do the thing - put it out there (if you have the inclination) - learn - lather - rinse - repeat.
It "turns your Mac into a $2,000 alarm clock."
I originally made it because I had endless amounts of trouble waking up for my morning classes in college, and found that the only alarm that could get me up was a subwoofer right underneath my bed. So I hooked a 2.1 speaker system up to my Mac, wrote a little app to start playing an iTunes playlist at a particular time, and ended up productizing it.
It was never a huge commercial success; I think the best I ever did with it was about $2,000 in sales one month after Apple featured it in a newsletter (different times!), but it taught me several important lessons about building a commercial software product that still guide me today.
Enjoy checking out my super janky code!
Code is code. Everyone has its own style. Every project has its own constraints.
I guess you didn't write bad code on purpose. You wrote it because it was the best way at the time.
And, frankly, if someone mocks you because of code you wrote somewhere, it's a good sign to ignore them. I don't mean code to be included in some other projects, but code that you wrote for your own eyes.
But I wonder if putting embarrassing things in github would hurt future job searches ? I very much doubt that since the people doing the hiring will not have any idea what they are looking at :)
Though, sometimes things turned out rough because I was too impatient to learn the right way (especially for one-off programs).
My favorite example is when I didn't know how loops worked in PHP, so I wrote an ActionScript program that generated hundreds of lines of PHP instead...
Honestly, judging anyone else by the quality of the code they have shared is pretty poor form - unless they explicitly say "this code is amazing and you should respect me because of its quality".
With that being said, do take the time to examine the git commit messages and code itself.
I have certainly caught myself from publishing projects that contained words or jokes that would not go over well in 2022 :)
You don't want to work with someone who would think badly of you for some more than a decade old projects
Most people like to pretend they understand Software Engineering and all their code is designed well but that is far from the truth. Real world products are always messy in the first version. It is only when you start rewriting it that it starts getting better (relatively speaking). What counts primarily is that you finished a product/project to requirements and shipped it; everything else comes later.
This is how all learning and development has been done throughout Human history.
* who was the audience/market for this? * what led to some of the technical choices you made? Benefits? Tradeoffs? * what did you learn? What might you do differently today? * What other tradeoffs that affect the code? Time to market? Only an hour a week of dev time?
This code has a story to tell, and only you can tell it.
Fellow HNers: Do you know of good examples of “code stories” that you can share here?
I published something once which was three lines of code. It was useful; anyone could do it, but nobody did (a modem dialing script, of all things). The (often multipage) requests for releases to publish were an unexpected annoyance; I always tried to respond politely that I didn't feel it manifested the requisite originality to be a protected work, and that if they printed the email out and sent it to me with a self-addressed stamped envelope I'd sign it and send it back.
I publish https://github.com/m3047/trualias (checksummed on-the-fly email aliases) even though I consider the code far from perfect: it works, it defines a grammar (which I'm happy with), and it has (pretty comprehensive) tests for that grammar. The most important aspect in my opinion is the grammar and a working proof of concept. (To my bemusement it also has the most stars of any of my projects on GitHub, go figure.)
The code I write now will eventually be code I'm embarrassed by as well.
This is true for most people, I think, so I don't let it bother me. The effect is a sign of growth.
My game is available at Github here:
Also, I don't know if this helps: But I consider myself a bad programmer, and assume everyone writes better code than me. It's probably not universally true, but I also don't feel ashamed of any given work I do: I tell people liberally I'm bad at coding but it works (if it works). It also puts my mindset in a great place to try to learn from everyone else I interact with.
One project I shared not too long ago I announced by describing it as a "crime" against the platform, and almost certainly "a really bad idea".
Just ship your code.
Project is a WSYIWYG editor (https://github.com/nicoburns/ghostedit) if anyone is interested. I wouldn't recommend anyone use it these days, but it could be interesting as a relatively small codebase to learn from if anyone is interested in how contenteditable in web browsers works.
I was having so much fun back then with this one. Meteor.js was a blast of productivity and I apparently couldn't have cared less about code quality. This is not embarrassing, there's no perfect code and we make different trade-offs all the time, not to mention the skill difference between you and your past self.
At my current place of work, we did a stroll through my github at the interview, I just flat out told "these are terrible, I learnt a lot" and he said "yeah, I saw, but it worked, what would you like to talk about?" and I found one of the more recent projects (still crummy, but you're allowed to write crummy code on your own time!)
The only thing that would embarrass me is the number of things I start and never finish.
As far as suggestions for improvement, I'd be happy for any. But I understand the reluctance of the OP. This is a little like my impression of code reviews. That's like standing in front of your coworkers, naked, and asking them to point out any "opportunities for improvement" with your body. I wonder if there is a strategy for code reviews that avoids this.
(HankB on Github (for anyone curious.)
Yeah, I'm not proud of the way I wrote the code 17 years ago (historic-alldaydj-1) but it's fascinating looking so far back and comparing it what I'd deliver today. If someone finds use for it, fair play to them.
On that note, I probably ought to dig out the RoTs (tapes) from my days as a radio DJ on a long defunct station...
My most widely-used project (that I was solely responsible for) is an absolute horror of tangled code. It was originally written -- or rather, hacked together with spit and baling wire -- purely for my own use, as a tool to accomplish specific tasks.
Turned out some other people thought it was interesting. I made the code available -- and nearly 2 decades later, it's still going strong, largely thanks to others who have stepped in to handle the occasional maintenance tasks.
The code is still appalling; but it does its job, and people still value it.
It's not like anybody posting crummy code in answers on stackoverflow is worried about the quality reflecting on them. Or the blog entries that are more or less "I've just learned $technology; now I'm going to tell the world!"
If you've at least got a fully baked project, even if it isn't up to your current standards, you're miles ahead of some of the code people publish.
Game development, in particular, is notorious for clever hacks that POKE into registers that elegant code and high-level languages otherwise would not touch.
Old code isn't embarassing, it's an unlocked achievement at a given state of progress.
If you feel embarassed by your code you'll never face the harsh reality that time is a limited contigent, and therefore limits the quality of code. Everyone has a trade-off equilibrium when the time spent on a project doesn't justify its workload complexity (or reduction thereof) anymore.
Turns out that recent repos are not to shabby at all and all the other older repos are sort of kinda cute and show that I’ve been having about for some time.
And of course I have private repos for “pro” work.
My advice is to make public some recent serious work and all will be good.
I have my earliest programs on 5.25" disks at home which are probably too damaged to read from but which I've never even been able to try since i don't have access to a drive anymore. If i could, I'd put my earliest BASIC programs on GitHub.
If someone is rude enough to complain, they are not worth your while.
No one will judge you by 15 year old code if you have recently produced good code. That's what people will look at.
Just look at the face palms at Nintendo HQ despite the amazing game they made https://m.youtube.com/watch?v=t_rzYnXEQlE
You can add that the statute of limitations for this code has (in your humble opinion) expired, so those wishing to judge you might want to look instead at your more recent projects.
Headhunters are happy I can check the "I have stuff on github" bullet point, and that is about it.
Regarding feedback on your code, receive it as a criticism of your code (and not yourself) and you should be fine.
Honestly, no one cares. Add a note at the top of the readme that provides historical context if you must address the point. Otherwise don’t worry cause everything will be alright. People are too self centered to care about your old shorty code.
There IS such a thing as asshats in our industry who will find any excuse to bully others.
Sometimes elegant well structured code that is 50 revisions deep doesn’t tell the story anymore
If you're worried about it reflecting poorly on you, make a new github account (asylum-open-source or whatever) and publish under that?
It's all in Java and uses MySQL.
Should be fine! :D
Don't know if I would publish the source though, unless it's successful and people want to mod it.
The right way to make Android apps has changed completely, and the documentation and tutorials are good now.
Even if it has "low 4:3 resolution" that is not necessarily a problem; some people might prefer that.