Reno, NV    +1 (800)0 621-0871

Go back


Motivation on the Path to Mastery

  |  July 2, 2013

As programmers, we often strive for perfection — to come up with the most efficient algorithms or finding better ways to utilize or improve our tools. As humans, with our biological and psychological limitations, we sometimes struggle to live up to our ideals. We are often caught somewhere between the overwhelming feeling of all-the-stuff-we-still-don’t-know and the overconfidence which can lead to complacency and other ills.

To keep me motivated in the face of these two sometimes paralysing forces, I remind myself of two things:

1. No matter how good you are at something, there will always be someone better

I’ve been working as a professional developer for a couple years now. I am still learning a lot about the professional environment and the context in which I practice my craft. I do not project myself as an expert in anything because at AELOGICA, everybody seems to be an expert in something already. This takes some getting used to because I am accustomed to being near the top.

I play a lot of competitive video games and one of the things I realized from constantly playing these kinds of video games is that no matter how good someone is at something, there will almost always be someone better at it. This also means there is always room to improve. Today, you might know next to nothing about a certain technology, tomorrow, you might be the go-to expert on it.

2. We do everything within a context of incomplete or imperfect knowledge

“I don’t know how to do it” is never a valid excuse. A lot of people outside of our field use excuses like that all the time but successful software developers cannot. By nature, humans are afraid of the unknown. It is understandable.

In our field, we are expected to deliver results without often knowing exactly how to achieve them. I never actually realized this until it was pointed out to me while working on a large existing codebase. It has been intimidating and humbling to say the least.

One of the things that keeps me going every time I feel lost is the fact that even the most experienced members of a team will not know everything about the system they’re working on. They are working with incomplete and imperfect knowledge too. It is just part of the routine. They are using specific techniques to help them deal with that and solve problems in that context. I feel relieved and motivated I realize that these techniques are things I can learn and apply as well in my quest to become a better developer.