Contact   •   Products   •   Search

Rick Strahl's Web Log

Wind, waves, code and everything in between...
ASP.NET • C# • HTML5 • JavaScript • AngularJs

What makes a Guru?


Last month at the 'office' one of the guys I'm working with casually in conversation called me a guru. Now this isn't the first time this has happened, but I always shrink away from a comment like this as vaguely embarrassing. Like I'm sitting in Lotus position for hours, with smoky incense wafting around the room, staring lovingly into nowhere. Ok, so I actually do that  :) - but not necessarily when coding (in fact I do it for EXACTLY the opposite reason, to slow down AFTER coding).

I also found this statement rather ironic, because the developers I'm working with on this assignment are particularly sharp and have an interesting and well designed application and architecture.  Working with them has been a joy because of their skill level and the architecture which is extremely flexible. It's allowed us with only very minor modification to build a new front end Web application interface of an existing desktop platform. So what business have these guys, who are obviously top notch at what they do, calling anyone a guru?

It's all in the Perception

Well, what the heck is a guru in this day and age of software development? Certainly there are people in certain niche areas that can be considered the top experts on what they do. Often it's not necessarily that they are the best at what they do, but they are the people who are most visible in a particular area and can communicate their skills to other developers.

I certainly don't think of myself as particularly smart or talented. Loud, cynical and opinionated sure. Pragmatic and practical maybe... But, a guru? Hardly.

There are a lots of people who are a heck of a lot better in just about all aspects of software development, design and architecture. I know I have lots to learn about many aspects of software development and if I had the time I would love to spend way more time improving my skill set. Even with my focus on experimenting and integrating newer technology; even then I don't have time to do everything I'd love to spend time with and learn. Just like for everybody else, reality creeps in with deadlines and other real world chores that need to be accomplished. Drat.

As developers most of us have a few developer heroes we look up to so most of us (except the truly arrogant) have some sort of Gurus or at least idols. I admire folks like Scott Hanselman and his breath of knowledge and communication skills and his wit, Scott Guthrie and his sheer energy and skill at communication and again breath of topics he covers all while being at the helm of the dev division at Microsoft. There a handful of developers like Nikhil Kothari, Wilco Bauer, Calvin Hsia to name a few, who are brilliant both in terms of their ideas and coding skills. There are many more, but most of my heroes are folks that I can practically associate with in some way, rather than the high and mighty white tower guys. But by the same stroke I mentioned against myself as a guru, these guys are good at what they do but they are also focused very tightly and just very visible at the same time. And I bet they feel the same way - they have people they in turn look up to and aspire to improve themselves in those fields where they are maybe not at the top of their game. No matter how good or how 'high up' in the rock star developer chain you are, there's always space for improvement and just as likely somebody who's better at what you do. It pays to eat a little humble pie and check the arrogance at the door.

I also think today that in the era of specialization we live in, it's increasingly difficult to be truly an expert at anything more than a few very specific technologies or even niches within a given technology. For example, if you say you're an expert in ASP.NET that's a pretty wide stroke and it'd be pretty hard to be an expert in all of it - the technology has gotten so wide. You may be very good at working with data driven applications using the stock controls, but you then probably don't know all that much about the low level semantics of ASP.NET and how to build a say a sophisticated handler implementation from scratch (maybe you do, but I'm using this as a typical example). Likewise you maybe great a JavaScript and client side development and not do quite so well with the server side of development or maybe vice versa. We all prioritize our specialties and there are some things that we are expert at and some things we know enough about that we can figure it out as we go.

And it's definitely getting harder to find your focus with so many technology choices out there. Who has time to keep up unless you are a in a position to just examine and evaluate everything that comes your way giving a huge chunk of time as part of your job description? It's also no wonder that many people are starting to burn out on the technology round and round and are looking for 'gurus' to pull it all together. Unfortunately, there are no easy answers and no guru who'll solve our problems the easy way...

We're all Gurus in a Way

Software development is hard. Software development is a wide area of knowledge and most of that knowledge comes from experience. And even that experience doesn't get you everywhere - skills are hard won, one project or assignment at a time.

Yet at the same time most of us also are very good at at least one thing. This can be a general technology, or it can be a specific business process. Even if you work a fixed 9 to 5 job it's likely you are in an expert on the technology or methodology or business practices you're working on. I often work with different customers and their business problems or solutions that they've built and it's often amazing to see what amount of ingeniousness has gone into solving a specific business problem. A lot of these solutions are innovative and unique in the ways that they utilize technology efficiently and effectively. As an outsider who comes in to help with specific technology problems (vs. business problems), I am just as starry eyed, thinking of black arts when it comes to those business implementations. In other words, we often forget that we are good at things that we take for granted because it's second nature to us, but feels like a monumental achievement to those looking in from the outside. Any technology sufficiently advanced looks like magic when you don't understand it, right? <g>

Any technology that is new to people can easily feel overwhelming and then having someone around that knows the technology and uses it efficiently can easily seem like a black art: Guruism born. As I was working with my clients these weeks it's clear the developers have a strong background in software development, but they've been isolated in a specific type of development (desktop apps specifically) and for them Web development was fairly foreign. Sure there was basic understanding of HTML and how server based processes work for handling Web requests, but more arcane topics like CSS design, JavaScript and DOM programming and using AJAX to handle callbacks to the server surely seem foreign. It's easy to dismiss these things as 'basic education' for Web developers, but if you think about all the things you need to know to start building effective Web applications (and not those drag and drop type apps you see in demos) that take advantage of proper separation of concerns, proper design, integration of server and client functionality in a browser for example - it all involves a lot of different although interrelated technology. So next time you sit down with a newbie and wiz through CSS tags off the top of your head, or DOM element properties 'just like that' rolling your eyes at Mr. Newbie because he looks at you with a glazed over expression, remember that we didn't get there in a day either.

Next time you think of anybody as a "Guru" just remember that you've probably spent your time learning and becoming an expert in your area of expertise yourself. And although you may not get the wide recognition of somebody who's more widely visible because of a big mouth or a big case of exhibitionism (<g>) think about what you have accomplished and how that compares even if on a smaller scale.  There are no Gurus - there are only fellow developers on a similar path as your's.

Make Donation


Feedback for this Post

 
# re: What makes a Guru?
by alison June 20, 2008 @ 3:32am
Ah stop fishing for compliments Rick ;-)

My definition of a guru is when Im stuck on a problem and Im searching around and around the internet for the answer, and then guess who's site usually provides it. Yep, yours.

No programmer in the world is going to know EVERYTHING!!! But let's just say you know more than your fair share. :-)

I'd love to be called a guru - dont knock it!!!!!

Now get back to work!!!!!!!!!!
# re: What makes a Guru?
by S1nF0ny June 20, 2008 @ 7:00am
I have a netvibes tab named "Guru" and it has your feed on it. This clearly makes you a guru.

Anyway, thanks a lot for sharing your code and ideas.
# re: What makes a Guru?
by webmaster June 20, 2008 @ 7:01am
A Web development guru knows much more than a junior developer, however he or she does need to learn much more about web development.
# re: What makes a Guru?
by Tanner June 20, 2008 @ 8:09am
Good post.

I have many people I consider guru's (and this is just inside my department). I guess once you work with stuff long enough your expected to know all the in's and out's by default and people attach that label to you.

On another hand,
I think a guru is one who is well versed in many different applications of technology. Sure, you can know all the specifics of one area, but I believe the real guru is the "one stop shop" guy who can't ever seem to be stumped.
^ given my status in the "IT catch all" dept i'm destined to become one of these well versed ppl eventually, lol.
# re: What makes a Guru?
by Doug Dodge June 20, 2008 @ 8:12am
Hey Rick,

Here are a few of qualities I think of when defining who is and who is not a 'guru'.

1. Character - Are you honest in your estimates. Do you show up when expected? Can you be relied upon?

2. Good Judgement (how do you get it? Experience. How do you get experience? Bad judgement <g>)

3. A healthy & good sense of who you are (You just described that above I think) and an appreciation and understanding of where you still need to go.

4. Good people skills. How well do you communicate? (writing, verbal, etc)

5. Good thinkng skills. Can you think things through or do you just flail around?

6. Able to find an answer (Can't know all but can you find it?)

7. Good business sense. Can you focus on the real issue rather than the technology?

8. Lastly - some relatively well-established technical skill that brings value.

Best,

DD
# re: What makes a Guru?
by josh June 20, 2008 @ 8:15am
guru is in the eye of the beholder.. that sounds about right.
# re: What makes a Guru?
by DS June 20, 2008 @ 8:22am
Hi Rick,

I belong to Sikh relegion (http://www.sikhnet.com/) and was surprised to see the picture of our second Guru - Guru Angad Dev (http://www.sikhs.org/guru2.htm), so I read the entire blog post and I feel that you should not have put this photo here. Although we do not believe in idol worship including worship of pictures of the Gurus, I think the photo does not seem right in this context here (considering your wordings such as "Lotus position for hours, with smoky incense wafting around the room, staring lovingly into nowhere"). I would like to request to take out the photo from this blog. Thanks for your understanding.

DS
# re: What makes a Guru?
by Grewal June 20, 2008 @ 8:55am
I second DS's comments above. I also belong to Sikh relegion and would request you to please consider removing that picture.
# re: What makes a Guru?
by Steve from Pleasant Hill June 20, 2008 @ 10:16am
Rick,

I think the only appropriate picture would be one of you, doing your incense stare into space thing.
# re: What makes a Guru?
by Kevin J Baird June 20, 2008 @ 10:37am
Rick,

You code well but you also write really excellent documentation. Many people can do one or the other, but few can do both. Being clear and concise is often viewed as a master teaching a student how to better themselves, and you have a long career of not just doing, but taking the time to show others how to do it as well. That's probably why you get likened to a Guru.

I'd like to see a "Clippy" like icon of you doing the Lotus position appear in the bottom right corner to give me tips on how to code better. Haha... Just add some sitar music and you can ride in and off the screen by way of wind board.
# re: What makes a Guru?
by Ty Huls June 20, 2008 @ 11:57am
Sometimes we do some works for which we get appreciated and we starts think ourselves higher but it does not mean that we have got the position of those GURUS.
# re: What makes a Guru?
by Rob Conery June 20, 2008 @ 12:21pm
Ahh man! Don't blow it for me and "show me you're human". Dude you are a Rock Star and your HAIR PROVES IT!

Here I've been stalking you for years (notice I don't get too close - I'm a whole island away) and you try and deflate my dreams. I even bought a Rick Strahl wig the other day and started playing bass...

Who else can tell Brinkman off like you :)
# re: What makes a Guru?
by Rick Strahl June 20, 2008 @ 3:11pm
Ok I've caved and updated the picture since I don't want to piss anybody off unwantingly (although I'll be happy to do it on purpose if there is one <s>). I've replaced it with a picture of me as Steve suggested. It's your own fault folks that you have to put up with even more of me :-}

@Rob - Face it. You're just a groupie. I bet you used to hang out backstage for the high school band, huh? If anything - you're now part of the RS (that's rock star, not my name!) crowd since you're in the big house and doing your own thing in counter culture there :)
# re: What makes a Guru?
by Steve from Pleasant Hill June 20, 2008 @ 3:59pm
Dear Rick,

Very sensitive of you to replace the pic. That being said, do not quit your day job and try to start a following -- this appears to be an illustration from "Aspiring Gurus 101". ;-)
# re: What makes a Guru?
by Shawn June 20, 2008 @ 9:29pm
Rick,
I read your blog often and I think you are a sharp guy...that said..can you PLEASE name your variables differently :)

wwVariableDealie <--- drives me crazy (i can't be the only one)
# re: What makes a Guru?
by Rick Strahl June 21, 2008 @ 1:23am
Never do that to variables - types I do... mainly because there's usually a naming conflict either in the framework or with something else. I hate nothing more than ambiguous names even if they live in other namespaces.
# What makes a Guru?
by DotNetKicks.com June 23, 2008 @ 2:48pm
You've been kicked (a good thing) - Trackback from DotNetKicks.com
# re: What makes a Guru?
by Andre June 26, 2008 @ 5:58am
Rick: when it comes to .NET I think you in my list of coding-gurus
# re: What makes a Guru?
by Brett Baggott July 07, 2008 @ 11:05am
I've never been one to be star-struck. Growing up in Nashville, Tennessee and with my father "in the business" I was always around the Country Music celebs and realized they're all just people like the rest of us.

Having said that, I think of you as a guru and "rock star" and, I'll admit, I'd sign up for your fan club. But that's because I've learned so much from you and you do so much for so many. You meet your own description of what you think of as a "guru".

In fact, around my office, when we are discussing difficult or complex programming issues and whether we are up to the task we routinely say things like, "unless you're Rick Strahl or something" or "maybe Rick Stahl could but we're going to need help on this".

I agree with you 100% about both Scott's (Gu and Hans) and for exactly the same reasons, you ARE a guru...
# re: What makes a Guru?
by Dave Nantais July 07, 2008 @ 12:58pm
In discussing some random WebConnection feature with a fellow developers I've stated "Rick is a God among men". They just nod their head's in agreement. :)
# re: What makes a Guru?
by Richard Norris July 09, 2008 @ 2:54pm
Rick,

Yet another post that reassures me that I do put enough into my work. I'm always putting myself down about my commitment to development. I constantly believe that I should work 24/7 (no sleep) to reach some kind of development divinity that to be honest is absolutely ridiculous!! Yeah we all work long hours to meet some deadline and generally get so engrossed in a project that you pass your bedtime. The thing is, it does depend on your life circumstances. I have two children, one who has cerebral palsy due to complications at birth. I don't like to use it as an excuse for anything but it does impact on my life and my work more than I would like it to sometimes. Saying that I chose my life and I wouldn't have it any other way, though in the back of my mind my software suffers.

I use the word Guru regulary when asking about specific technological topics, though I use it rather loosely. I'm basically calling for people who specialise in these area's, though I do find I get answers from people that just happen to have some experience on my topic. Your site is IMHO the best place for this on MS technologies. It kicks MSDN for the wealth of knowledge you and the community share on here. I have mucho respect for this.

I would call you a guru, but I mean you are an expert in your specializations, namely Internet programming and the languages you use. What I admire best is your thirst for knowledge for the inner working of the tools and technologies you work with. I believe this is what eventually spawned the toolsets you offer to the development community.

The one thing I am really bad at and which you excel is in information sharing and web logging. I just don't know how you find the time to share so much!! I try to do so when I can and I've even tried to blog. I've tried to blog about topics that I feel some developer would find most useful after hours of banging their head against the wall. Unfortunately I jsut cannot be consistant. Maybe just not suited to it. Maybe I don't type fast enough. I really don't know, but I'm willing to take advice, I'm good at that <g>.

Rich
# re: What makes a Guru?
by angsss July 26, 2009 @ 4:40am
To honestly earn by ones physical and mental effort while accepting both pains and pleasures as GOD's gifts and blessings. One is to stay truthful at all times and, fear none but the Eternal Super Soul. Live a life founded on decency immersed in Dharam - life controlled by high spiritual, moral and social values.
 


West Wind  © Rick Strahl, West Wind Technologies, 2005 - 2014