I’ve been writing code in some form or another for over 20 years now. In that time, I’ve explored quite a few different languages and problem domains. The great thing about software development, is that there are more problems to solve than any developer or set of hundreds of developers could solve.
Lately, I’ve been exploring a new problem domain. I want to write a graphics rendering engine. It has nothing to do with the web, so it is new territory for me. I’ve been researching question and answer sites, reading books, and writing lots of exploratory code, trying to immerse myself into this new (new to me that is) technology.
Last night, I happened upon a person who is employed by a prominent company, who is paid to do what I’m trying to learn. I don’t get many chances to ask questions to real life gaming people, so I decided to seize the chance. I started off slowly trying to explain what I was trying to learn, the approach I was taking, and what some of my long term goals were. I hope my face didn’t show it at the time, but I was horrified at the response; I was told that I was wasting my time.
No one wants to waste time. Life is finite. Time is a premium resource for someone who works to put food on the table and spend time with their family. So then I had a decision to make: would I take the advice at face value, or would I dig to understand why the advice was given. I kept digging.
The new problem domain I’m working with is based heavily on math. I wasn’t good at math in high school (maybe I just wasn’t good at school), so many of the concepts I’m learning about now are new to me. The advice giver told me no one uses that math. I then asked him how else would he be able transform objects on the screen. He replied that there are libraries to do that. I also wondered about the best method for composing screen graphs. He replied that there were libraries that did that as well. I finally followed up with specific questions about various kind of optimizations, and he told me, that with my level of knowledge and choice of implementation technologies, that I would never run into those problems. The conversation went on, but it wasn’t progressing on any level.
Suddenly, I was questioning my choice of continuing to write the engine. Why would I want to do something that eventually end up being a failure? Why would I want to waste my time? At that point I realized something. I’m not trying to emulate the person giving me advice. I am forging my own path. I thought I was asking for advice, but instead I was giving this guy a chance to steer me wrong.
Why don’t people ask for advice? In most cases, the advice given will not be any good. People generally won’t give you advice that will enable you to be better than them or even as good as them. They’ll just give you a summary of their understanding that will likely enable you to get to one step below their level at best. Maybe at some basic level, we are a selfish species.
What will you do the next time someone asks you advice?