The World’s Leading Microsoft .NET Magazine
   
 
timstall

Donate Today!

Search Box

 

Calendar

««May 2008»»
SMTWTFS
     123
45678910
11
12
13
14
15
1617
18192021222324
25262728293031

My Top Tags

                                       

Mailing List

My RSS Feeds








Why try if you can't be the best?

posted Thursday, 1 November 2007

In a competitive world of information overload, with millions of other developers, there will always be someone better than you. Even if you pick a niche, chances are there will still be someone even more talented than you in that niche. "There's always a bigger fish in the sea". Furthermore, learning any new field always requires hard work and making mistakes. So, a common question is "Why should I try if I can't be the best?" For example, why learn how to build web applications, or computer games, or any programming, when there will always be someone so much better?

 

It's a good question, one that unfortunately intimidates a lot of people from trying in the first place. There are several reasons:

  • You don't need to be the best. You can still get a job, contribute to the field, and have fun.

  • You can learn something just for the enjoyment of learning it. For example, you may enjoy making a Silverlight or XNA game just to have fun - it doesn't have to be the next Super Mario or Age of Empires. Similarly, I go running just for my own enjoyment - even though I make a turtle look fast.

  • The act of trying will improve your character, and still teach you other skills.

  • Often the "best" isn't available (they're already locked up in another job or project), so one's moderate skills are still needed.

  • You can still add value, even if you're not the best. Often star developers want to coordinate other people to help build a project bigger than what any one person can create by themselves.

  • Even if you're not the best, you can still probably help other people more junior than yourself. I.e., you're probably still an expert to someone - even if it's just a young student, intern, or someone changing careers.

  • Everyone has to start someplace. You may even become that super-expert someday.

Someone who constantly passes up the opportunity to learn something new, simply because they can't be the expert at it, is selling themselves short. As a father pointed out in the movie Facing the Giants, in a scene about a soccer kid hesitant to try out for the football team because he may not make the cuts, "You aren't on the team right now. You can't be any less on the team than you are right now." Likewise in development, if you don't know a technology and you're hesitant to learn because you're not an expert, you can't be any less of an expert than you are right now. You might as well take a stab at something you enjoy, have fun along the way, and become good enough to do what you want to do. I'll never be Michael Jordan, but it's still fun to shoot a few hoops.

tags:    

links: digg this    technorati    




1. Kalpesh left...
Thursday, 1 November 2007 1:20 pm

Tim,

Nice post. I thought about how much there is to learn (in software & specifically MS side of development. .net, wpf, wcf, wf, silverlight etc) & how can one keep with it?

The answer could be not to learn everything & yet keep learning as & when possible. I would love to hear what you have to say on this.

I agree that learning is forever.


2. Tim Stall left...
Friday, 2 November 2007 8:31 am

Hey Kalpesh, Yes, I agree. I'll do a more detailed blog post on this eventually, but I believe that in software engineering, learning must be a lifestyle. Especially with new techs coming out, you're never "done". I try to incorporate continual learning into my daily schedule - reading blogs, try out new samples, ask for code reviews, read the occasional book, etc... I find doing a little bit each day works for me, especially because it keeps things fresh in my mind so I can take advantage of all the dead time - driving in the car or waiting in lines - to mull over ideas.