This morning at work I was given a rather flattering compliment.
My supervisor had indicated that a colleague had called me out by name during their performance evaluation as somebody that had been very helpful to them in figuring things out. In addition to this, they had commented that I was a very friendly geek (in so many words) and not like others they had worked with. Sure there were "go to" folks that could answer your coding question, but they were often arrogant, short, or ill tempered when it came to helping. I was quite the opposite of this. I usually don't do well with compliments, but I was genuinely happy to hear this.
Now the point of this is not to say "Yeah me!" but to bring up a few values I decided to adhere to a long time ago when I started coding that I think is very worthwhile to my fellow binary magistrates out there:
1. I don't know jack!
I'll admit I'm a little proud of my slowly gaining rep on StackOverflow, but I'm nowhere close to the upper rep folks and that's a good thing! Staying humble and realizing that you'll never start learning keeps you excited about the next project you'll face and reading up on the latest trends and technologies. It also motivates you to share your programming exploits with fellow developers in hopes of picking up a new trick or library to use to solve a given problem.
2. Standing on the shoulders of giants.
When I started out at my first job (outside of a small consulting stint), I was pretty much tossed into the fray and expected to fend for myself with the code. I did have a mentor, but it was more for handling the processes that we went through in developing our apps and to be the liason to the new customer I was working with. That was it. In addition, I was still VERY green with the .NET framework, and I feel sorry for the poor person that had to maintain that code after I left.
So I went about my way, turning into quite the devout "Googlian Monk" and figuring out what I needed to along the way. I stumbled into some blogs that helped me with some issues and some code samples. I made my way through. After the first couple of apps were under my belt and I felt more comfortable with the Framework as a whole, I resolved that just as I had "stood on the shoulders of [virtual] giants" I would offer my shoulders up for the next person, be it online or in my own shop.
3. Programming as a Craftsmanship
Developers never seem to cease with coming up with a clever analogy to describe the process we go through. Ninjas, hackers, scripters, ballerinas, code monkeys, it never stops. Its quite fun I'll admit. But when I look over all of my practices and goals for my programming, I've come to the conclusion that programming works far better as a craftsmanship than anything else. The nature of the beast states that we're always going to be dealing with unique and odd situations, to which we have to come up with a specialized solution for. However, that doesn't mean we can't craft this solution using some set methodologies (Agile being a primary force). More importantly, being a crafstman implies sharing my knowledge with others and helping build up the next generation of programmers.
So get out there and share your programming know-how with your fellow developers! You'll do the world some good! Keep it humble, because as Qui-Gon Jinn once said, "There's always a bigger fish." Most likely you aren't it. If you think you are, get to a bigger pond. Share the love!