Put your code where your mouth is
There was a time in the communist Romania when people were afraid of sharing their true opinions. Doing and saying what you truly believed in was not an option in the mighty Ceaușescu’s personal kingdom. Ruling from ’65 to ’89, he ensured absolute power by systematically getting rid of his enemies and restricting civil liberties to the point he started loosing it. Then he really lost it in ’89, when he was put to rest with a bullet by his fellow comrades.
We all have a Ceaușescu in our head. A guy that keeps telling us what to not say in public and what to not do. A guy who promises us the hell if we open up about our wishes, about our souls, our breakups or our work. Yes, about our work. We’re afraid to put our work out there because we could be judged and criticized, because someone might come to us and say something like:
Your code is shit.
As a programmer I’m sometimes ashamed of the code I write. I have moments when I would gladly bury my code deep in a cave, then run away until I die of thirst. With double speed if someone else sees the whole thing. But burying work we previously did is not always the right thing to do. The right thing to do is acknowledge the mistake and imagine how would you do it if you could go back in time. Every single minute of our present is a moment back-in-time we could fix before we’re already ashamed of it. Bad code is always an opportunity to learn something new and write good code next.
You should not be afraid of others judging your work, but constantly seeking to put the work out there, in front of the people. That’s the only way to doing great work. Making code you write public and available to everyone is part of expressing yourself freely, being aware and continuously improving. Today I put my code out there, in a public GitHub repo. It’s not the best code, it’s a work in progress thing, but it’s going to be a much better code in the future. I hope people will also express themselves freely and make suggestions or even contribute to the project which is not such a big thing, but a simple tool to extract some information from a website, just check it out.