What stops a lot of people from trying something new? Fear of failure and lack of confidence are two that come to my mind. Failure and “failing fast” has been a popular topic in the recent years. However, I do not see a lot of articles about confidence. To me, being confident in oneself eliminates a lot of fears.
How does one build confidence? Through experience. Experience is not something that you have when you are born (obviously). It it gathered over time. Often through repeating the same thing. Drills are one way to gather experience. Drills build muscle memory. When I was training for my pilot certificate, I had lessons that only practiced take-off and landings. These lessons were three to four times a week and included up to 10 landings per session. My instructor kept hammering the fundamentals until they became second nature.
The best way to gather experience in software development is to write software. Often times, though, simply writing software on-the-job only gets you experience using the tools, languages, and ideologies that your company has approved. If you are still writing software the same way you were a one, two, five years ago, it might be time to expand your toolbox.
A common suggestion is to commit to open source projects. I personally have no experience with that due to a lack of ambition of my part. It feels like it would require a lot of prerequisites. I would have to find a project needing help, read through the developer guidelines, find an issue that I can fix, submit a pull-request, and so forth. To me personally, that seems like a lot of work. If I am coding for fun, it should be fun.
Therefore, I suggest writing software that scratches your own itch. If there is a problem that you wish a computer could solve for you, try writing it yourself. I have written 20+ software projects for my personal use. Most of them have been thrown away after a while, but what I learned while writing them has stayed with me. I have found that writing a “real” product while learning a new language or framework is ideal. Having a real product with real features keeps me interested in continuing development. I get bored writing a TODO app simply to learn a new language.
Once you have a good baseline confidence in yourself, you should not be afraid of attempting anything. This transcends software development. Every aspect of life is better when you are confident in yourself.
The title of this post came from the Star Wars: The Clone Wars Season 1 Episode 5 moral