“Where do I Start?” – too many questions, not enough action. Yes I realise that I only asked one, but one is too many. Just start!
I’ve been programming for quite a while and I consider myself able to dive into unknown realms with confidence. I’m not afraid of lengthy documentation or complex algorithms and design patterns. I love to mess with frameworks and investigate new technologies and languages… But I wasn’t always like this. Once upon a while ago I would not embrace change or step into something I wasn’t sure about. One of the main reasons was a debilitating fear of failure. I was afraid of wasting my time.
Here is where I want to encourage anyone who is reading this. If you want to see yourself stepping out in confidence as a master of your trade, you need to fail. Yes, you need to make mistakes. I don’t mean that you aim to do these things, But anyone who steps out into the unknown will inevitably falter their feet once or twice.
Thomas Edison once said (or so the internet tells me) that “I did not fail to create the light bulb 1000 times, I just found 1000 ways not to make a light bulb”. I hope you don’t have a thousand possible corridors to walk down, but walking down the wrong one is better than staying in the same room.
Have you ever played real-time strategy games? In these games, there is a concept of fog-of-war. In the beginning of most rounds, you start with a field of vision that surrounds your units. Especially if the map is procedurally generated, you may not know at all what the map looks like besides a rough description of the chosen map type (many little islands perhaps). You will have starting resources immediately visible to you and it would be enough to establish a small base of operations. but the time eventually comes when maintaining an advantage requires you venture forth into the fog.
The best players are the ones that know how to scout. Scouting is risky, as you may run into hostile NPCs or even the opposing team. but every good strategy player knows one of the most critical resources in an RTS isn’t food, iron or credits… It’s vision. Knowing where there are more resources, seeing where the opposition is planted. Knowing is winning.
If you’re like me, you’ll have a large chunk of your self-esteem affected by success or failure. I don’t believe that who you are is defined by whether you win or lose, but I think I can speak for most people that It feels horrible to fail and fantastic to succeed. This is the fear that I have had to face and one that you will too. Sometimes it’s only possible to see the benefit of your failures with hindsight. There have been times when I have tried and tried and tried and have reached dead ends. I’ve had to turn around feeling ashamed to admit my shortcomings whilst my colleagues gave me an embarrassing hand at doing it the ‘right’ way. At the time it feels belittling and discouraging, but you good sir/madam are a pioneer not a failure. Even if you don’t think you’ve done anything productive. you are now knowledgeable about the difficulties of this endeavour. write it down! blog about it. place that knowledge on the inter-webs and eventually you’ll find out that other people are having the same struggles as you.
One of the main remedies to me feeling alone was joining in with a community of fellow programmers who also have trouble doing what they do. one such community is the good people surrounding Stack Overflow. Some of the questions I’ve asked on their website have had thousands of views and eludes to the fact that other people are feeling the same way about their struggles as I am. being able to hear other people’s stories is a great way to stay encouraged.
One day though you’ll go far enough to be void of other peoples stories as well. here is where the thing that defines you will keep you. Keep that central, not your material goals. What defines you should be able to withstand nay-sayers, whilst enabling you to take on constructive criticism. It should stay courage-able through failure and remain humble through success. It should give you wisdom to handle problems. If you read last weeks post, you’ll realise that I am a man of faith. I determine my value from Jesus. Even though I am affected some-what by success and failure as I am still a learning human, I believe that ultimately Jesus fulfills this quality within me to not be swayed by inevitable mistakes and continue forth into excellence. It is not through my own ability to succeed, but entirely through his grace that I beat obstacles. because he has faced the same temptations to give up as I have and has conquered these fears, I too through him can overcome.
So just start. make mistakes, do the not-right thing. that is where you gain deep revelations. strong convictions and understanding engrained with strong emotions endured through your trials. great masters were once trigger happy apprentices.
Happy coding. 🙂