Why do some people sail through life with super-success while others struggle? It has a lot to do with that person’s philosophy.
Have you ever had a technical obstacle that had you banging your head against the wall… that was easily and elegantly solved by a someone else and had you scratching your head “Why didn’t I think of that”?
I got into programming because I knew I could create games that were fun to play. Creating games brought me more happiness than playing them. Somewhere down the road, programming turned from being a creative process to more like managing the construction of the Sistine chapel.
I used to be frustrated that projects didn’t work out the way I wanted to. I wasn’t getting the kinds of checks I thought I deserved either. Combined with the stress, exhaustion and disappointment, I almost quit software development entirely. I have to admit it, programming is hard work. Actually, it only seems like hard work if you are not enjoying the process of finding solutions to problems. You have to ask yourself, “what kind of problems do I want to solve?”
Have you ever had a technical obstacle that you set aside with a “good” feeling that it would resolve with grace and ease and then the answer came to you when you least expected?
Developing good software not only involves programming working code, but also brining your mind, heart and body in harmony with your intentions. You can’t be good if you don’t feel good about what you’re doing.
There is a genuine creative side to development that is very rewarding. Software development also gives perspective on all facets of life. Much like enjoying the architecture of a fine structure, you see symbolic resemblance of style in nature and other areas of life. Once you realize how patterns and process work together you can easily follow the same practices in similar areas of life.
To sum it up, having the right attitude plus critically thinking right can transform the way you see software development.
Focus on feeling right and thinking right and you will better connect with the desired user experience you want to deliver. You don’t have to be caught off guard by inconsistent details of the “code,” instead you are mindful of the ideal solution and the right solution will prevail.
Software can still be fun and the user experience of the product should be much like playing a game – getting somewhere and receiving the reward for your effort.
One of my favorite affirmations that I remember when starting a daunting project is “It’s already done, I just need to go get it!” Once you envision the end in mind, completing it will be much easier.