Why d'you gotta act like you know when you don't know
It's okay if you don't know everything

-- Ben Folds, Bastard*

Part of my job on this latest project I'm working on is to help develop a unified structure for our code -- e.g. a template which we can conform to in such a way that a good portion of our code can be portable and reusable without too much effort. So I have been developing this framework, which can be difficult because it can be quite tedious and time-consuming. (On the other hand, it can also make the day pass quickly.)

In any case, I was downstairs yesterday, and got into a discussion with one of my coworkers. He is a very smart individual, albeit somewhat outspoken at times. He has been in the embedded systems business for thirty years, so he definitely knows what he's talking about, although sometimes this experience makes him a little opinionated. He showed me how I could be making the framework still more generic (by using function pointers and essentially creating an object-oriented structure in C).

My first reaction was to get defensive and angry. I had already put a good amount of time and effort into the project, and I didn't exactly want to go back and redo everything I had already started. But I also knew that he was right: his method was far more flexible, even if the resulting syntax was a bit messier to deal with. So I conceded the point, and tried to turn it into an opportunity to learn and expand my horizons, instead of getting defensive about my abilities and what I had done.

You see, for the longest time I viewed any advice or questions about my work as a challenge to my intelligence. In high school, I was still programming in QuickBASIC and got to know another programming nerd there. He asked me if I'd look over some of his source code, and I said I'd be happy to. The next day, he comes in with printed sheets of x86 assembly code. I was dumbfounded, and I jumped to the conclusion that he was trying to embarrass me by pointing out this stuff I didn't know. I could have used the opportunity to tell him I hadn't programmed in assembly and to ask for help learning how, but instead I retreated back into my own little world of self-pity. My fragile ego couldn't bear the idea of anybody being better at the thing that I did. That was my thing, dammit.

Over the years, that fear of not knowing things really affected my personality. For a while, I became an unimaginable liar -- if anybody asked me a question and I didn't know the answer, my reaction was to come up with a plausible-sounding answer out of the blue, and defend it as though it were the unvarnished truth. Once I realized I was doing that, I made a conscious effort to stop it, but even now I still find myself having to stop, back up, and admit ignorance in the matter (usually adding a "hmm, I'll have to look that up now" somewhere into the mix). Doing so is remarkably difficult, particularly if the topic of conversation is something I am well-versed in.

There's always somebody better than you. The key is to turn that realization into an opportunity for improvement, instead of an excuse to give up.

* I know quoting lyrics is very emo high schooler of me, but that song seriously reminds me of myself every time I hear it.