"I don't know so well what I think until I see what I say." - Flannery O'Connor
I really love her quote. It can be hard to express what you actually want to say without writing it down first. For me, if I say something without having the opportunity to think about it first, the meaning will come out all wrong unless I'm completely confident about the situation at hand. At the same time, if I can't seem to figure something out, the act of writing the question can help me answer it before I even have to ask it.
As far back as I can remember, I used to play RPGs by pumping up my character to as much as the game allowed in those first few
safe areas, just grinding and grinding, until I felt I had exhausted every possibility to level up and make my party stronger. I wanted to be fully ready before I entered the next world, because for all I knew, there would be a monster just waiting to pummel me into oblivion for not being completely prepared.
The reality of the situtation was that when I would finally embark on to the next area, I'd be
way too strong, thus made that area way too easy, and in doing so made the mechanics of the game fall apart to where I couldn't figure out the natural progression of where to go next. I ended up wasting way more time
preparing rather than taking that leap of faith and actually
doing.
How does this story relate to writing things out? It has to do with knowing how to approach a problem. When I started college, I was that starry eyed freshman that thought I'd be able to ace all my classes. C++? psssh, I made countless quake mods in high school. My childhood room drawers are full of all the Quake 3 API files printed out for nights in bed figuring out how each function works. I assumed I had a head start on this. Level design? pssssh, I was developing maps before puberty. In the case of freshman year, I was actually quite prepared and it seemed like a breeze. I always led the class, was referred to when an example was needed of good work, it felt nice. Little did I realize that this was the prime time to have both a sense of humility about the experience you have as well as the understanding that someone out there is better than you... so you should be trying to learn more than you know now and always be raising the bar for yourself.
By sophomore year, the tables turned when much harder courses were in play. 3D physics, OpenGL, game networking, AI... gah, it just kept going. The tables had turned. I was now the underprepared student struggling to figure out how to keep on top of things. At the beginning of this realization, I was afraid to ask questions. I felt like I had to keep up this appearance that I was naturally gifted in all the things and was always on top of the material. Lo and behold, I started to fall behind.
After getting Cs on some of my midterms, the only way I could still grab an A and actually learn everything I wanted to from these courses was to somehow kick butt on the projects and final. I remember the night when I was working on one of the AI project milestones in class. The overall project was to create a soccer team that could eventually beat the soccer team that was written by the professor. His code was private besides a public class to access it, so no, you couldn't just copy his and slightly tweak it. The milestone that I had to do after the midterm was get it so the each player was actually reacting to the other players and responding with some purpose. At the beginning, they were simply attracted to the ball and then flocked like sheep to the goal if one of em kicked it in the right direction. Next I made it so they actually ran around incoming enemy players. It's almost exactly like watching kids play pee-wee soccer. Horrible... but getting better.
The thing that got me completely stuck was how to properly get messages across to each of my team's player every frame about their location, what they are planning next, and how to predict an action from there. I was already so behind that whatever the class had covered already was a step beyond this. I didn't want to ask the teacher, too afraid. Other students were either completely getting it... or had just said meh. Seeing that my ego was getting the best me, I finally said to hell with it. I went online and looked for a forum of others that were doing game AI. Some were students like me, some were indie devs, and some were industry professionals. I made an account with a fake name (as if by posting a question someone would find it and shame me for not being knowledgable) and asked the question. As I wrote it, I actually started to figure out some things I was stuck on. I found myself revising the question for about 4 hours while I went back, tried new things, and finally had something that was completely different from what I first wanted to know. Even with this new knowledge, I was still stuck, so I posted anyway.
Within a few hours, I had a few replies which clearly explained to me in various ways what I was missing and how to solve it. I was astonished. I couldn't believe the power of what I'd just discovered. By asking the right questions and throwing aside your ego, the learning process of something once frustrating became silky smooth and allowed you to continue forward instead of throwing the towel in. It felt incredible, like a once immovable barrier had been easily shoved aside. Needless to say, I continued the thread discussion all week, constantly updated my code, and created an AI that took my professor's team down easily (too easily, actually. Final score was 30-1 or something). I started asking questions in every class, posting topics on forums, and not caring anymore about who saw me do it. I learned far faster and easier than I would have just trying to keep up some appearance for the sake of appearances.
The lesson I took away from this was no matter how much you think you know a subject, be humble about it. Research it. Do it. Fail. Do it again. It's great to vocalize your knowledge of a particular area and use it in an argument or debate, but when you just refer to the knowledge as it's written rather than spark new insights or be brave enough to ask questions about it, you are going to miss out on the oppurtunity to learn more and you'll quickly fall behind others while desperately clinging to your ego. I love asking questions, and in some cases, even when I already have some experience in a topic, I keep it to myself in hopes that I'll learn some little thing I might have missed.
There is no such thing as a dumb question? Nah, there are definitely dumb questions. Sometimes an excess of humility and questions about topics you know, even if to make the other knowledgeable person feel important or to be absolutely sure on something, just like I was over-preparing in an RPG, will sometimes hurt more than it helps. While it's good to ask questions, it's bad to rely on that support system for answers before you've had the time to hit a wall with what you currently have and reflect on why you did.
I didn't really see this post turning into some advice article. This is what I thought about when I read this quote and writing it all out got me reflecting on some lessons I had learned years ago but started to forget. Writing, you're so cool.