As any good developer I’m constantly working on my craft to become better and more efficient. I study what others are doing, I subscribe to newsletters, screencasts, and any other information on web development that will inspire me to up my skills and stay motivated.
As such, I’ve found that even code I wrote just a few short months ago now seems stupid and embarassing to me. This wouldn’t be such a big deal if this same issue didn’t effect another aspect of my development: code sharing and publishing.
Basically, since I know that I’m probably not doing something the best way it can be done or in a manner that is deemed “proper” I fear putting my code out there for all to see. Risking that somebody who knows far more than me will call me on my amatuerish attempt at programming. In short I fear looking stupid.
This thinking serves no good purpose since the times that I have grown the most in any practice of discipline in my life was when I had the ability to learn from others and accept critique on my most recent work. Sharing my work and learning from others is a very critical step in the development of any skill.
What Can Be Done?
I was inspired to write this by a recent article I read from a developer who is well respected in the Ruby community. Basically he stated how his development process goes including the mistakes he makes and the bad decisions he made in the past. He even detailed how he didn’t follow exact procedures that the are considered “blessed” by the established leaders.
Fear is a powerful force. The worst type of fear is not that which is external but that which is internal. Your own fear is hard to defeat and can leave you paralyzed. Here are a few of the fears I face specifically in development:
- Unknown - Sometimes I procrastinate on doing something because I’ve never done it before. It’s something totally new to me and perhaps I don’t even know where to start. There times when I can have several solutions to a single problem and fear selecting the wrong one even after a great deal of thought.
- Monumental - There have been times I’ve literally been frozen in front of my screen trying to get started but I have no idea where to start due to the complexity and scope of the project. Breaking tasks down into small pieces and timeboxing myself usually gets me going in the right direction.
- Criticism - I fear posting something I’ve worked on due to the possibility that I may be denigrated for doing it wrong or poorly. I will never know however how well I’m doing until others can oversee and give me feedback.
These are just a few of the things that hold me back. I’m sure you have plenty of your own.
There are several keys I’ve found to overcoming these obsticles and getting over yourself to get things done.
- Surround yourself with good people. A good person wants to see you succeed and will do what they can to encourage you. Be that person for somebody else as well. The learning goes both ways.
- Surround yourself with difficult people. Putting yourself in a situation where you need to keep your game up is also very motivating if you have the right attitude for it.
- Metrics, metrics, metrics. Set goals for yourself that you can measure and constantly check to make sure you’re meeting those goals. Keep records so you can be reminded of how far you have come. Re-visit old code and see what mistakes you made then that are obvious to you now.
- Observe others. See how they work. What tools do they use? What philisophy do they follow?
- Get it out the door. If you have a project that you are waiting on to be “just right” before releasing it to the world, stop, and push it out the door. Chances are nobody is going to care about your project at all let alone run through it with a fine toothed comb.
Fear of failure or rejection needs to be conquered. It’s dead weight that will hold you back from pursuing your dreams. Anything that gets in the way of progress needs to be dealt with. I’m actively working on dealing with those fears. If you recognize any of these traits in you then I would encourage you to sit down and make a plan to overcome them. Find what motivates you and move forward.