Agile Zone is brought to you in partnership with:

Meera has posted 70 posts at DZone. You can read more from them at their website. View Full User Profile

How Do You Rate Yourself?

10.10.2008
| 9990 views |
  • submit to reddit

Just yesterday I received the book "Pragmatic Thinking and Learning: Refactor Your Wetware" by Andy Hunt. I browsed through the TOC, read the introduction and started the second chapter "Journey from Novice to Expert". Even though it was quite late in the night, I just couldn't put the book down until I finished this chapter.

Andy, talks about the five stages on the journey from novice to expert; Novices, Advanced Beginners, Competent, Proficient, and finally Expert. He explains each of these stages so well, and has some thought provoking quotes as well.

You are neither "expert" nor novice at all things; rather, you are at one of these stages in some particular skill domain.


Isn't that so true about all of us? We as developers have to learn many languages, frameworks, tools, IDE's almost everyday. We can't be experts in everything we use in our development. We might say "I am a Java or .NET expert", I am an Ant expert, but can we say "I am an expert in everything listed in my resume"? Would anyone believe us at all?

Know what you don't know.

I have seen too many know it all developers in all these years. I am sure you have many in your team who are like that. I would suggest them to read this book, or even better but them a copy of this book.

Ten Years to Expertise? So, you want to be an expert? You need to budget about ten years of effort, regardless of the subject area.

If that's what requires us to be an expert, than most tools we have right now, and are using almost everyday in our development are not 10 years old. So, is there a fast track to become an expert? I don't know.

And finally the last quote:

Keep practicing in order to remain expert.


How do I rate myself? I have been using Java from 99, close to 10 years. Am I an expert in Java?  Maybe.  I started using .NET from 2001, so couple more years to promote to the expert level.  I didn't want to list every other language or tool or frmaework I have used or even have on my resume, so just chose two of my favorite languages from the many I know.

So, how do you rate yourself? Are you an expert in all the languages and tools you use? How do you think your colleagues rate? Does it matter at all for the team to have a mix of all skill sets?


Stay tuned for a detailed review of this book as well. 

Update: The first two chapters are available online as PDF.

 


 

Published at DZone with permission of its author, Meera Subbarao.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Raveman Ravemanus replied on Fri, 2008/10/10 - 6:52am

"Ten Years to Expertise" is just retarded, so i will be great at thread programming soon? no, i wont be because i dont use it. the years don't matter, but how much time you put into it. however its easier to judge people base on years, because you dont have to think. As far as Java goes some people use it at work and some people use it a lot more. One of my ex-co-workers didnt know how to change collection to list. he had 2 years java experiance, so all people that have <2 years of experiance dont know how to change collection to list. that is just sad, java is too hard for noobs. plus he also had SCJP :D so at least that proves what this certification means.

Meera Subbarao replied on Fri, 2008/10/10 - 7:40am

I agree, expertise and experience go hand in hand. Is there a fast track for experience, not one that I am aware of. I also think you become an expert by working hard. There isn't any short cut here either. I remember the famous saying:

Practice makes a man perfect.

Fab Mars replied on Fri, 2008/10/10 - 8:03am

This subject is highly philosophical.

Since we're on dzone, many people will tend to rate their development skills, or even their Java skills, or even their development skills with java collections...in a multitheaded environment...when the outside temperature is 20,6 degrees...on fridays...when their boss is on holidays...in the south of France. See what I mean ?

I agree that you can be very good overall with Java, but you may be very weak on precise subjects, like the previous commenter said. Noone can know all of a subject peprfectly. Well, on top, other's feeling about you depends on the matching between your knowledge and what youo're asked to do.

It reminds me of interviews I passed in the past containing very hard technical questions. Sometimes so precise questions that it sounded pointless. Does knowing the Java API by heart grants an employer you're going to be THE man for the job? No. Even more than practice, experience (in real life projects, with broad scopes and constraints) is extremely important.

 

From my experience, what I consider an average Java developer with hindsight and good listening and communication skills will have significant better results on your projects than a perfectionist autistic wannabe-architect that knows what's written at line 263 of TreeSet.class...in all Java versions...in J2SE and Jrockit as well! I'm not even exagerating, I've been working with several guys lilke that, and they're damn dangerous.

As far as I can tell, from the projejcts, meetings, customers met and job interviews I conducted, I ended up rating IT people on a few key points, the main ones being:

- their ability to be realistic

- their communication skills

- their technical skills

But when I was a beginner, only technical knowledge had sense to me. In other words, rating also depends on you own standards and expecience, and all of them are evolving at the same time.

 

Now if I had to answer your questions, I'd say I'm extremely realistic, just average with communication, very good at Java/JEE in general, but very weak on some areas. Really not expert in all languages and tools I use. Colleagues probably rate based on their own standards, experience, and hindsight too. It's better to have a mix of skills, as long as these people listen to each other.

Dave Newton replied on Fri, 2008/10/10 - 8:11am in response to: Raveman Ravemanus

@raveman: no, i wont be because i dont use it. the years don't matter, but how much time you put into it

So... you seriously believe that the "ten years" statement means "ten years but you don't have to use it over those ten years? I mean, you've been able to read for ten years (I assume) and still managed to come up with that interpretation--so obviously there's more than just time involved. Good grief.

@raveman: plus he also had SCJP :D so at least that proves what this certification means. 

This word, "proof", I do not think it means what you think it means.

Meera Subbarao replied on Fri, 2008/10/10 - 9:07am in response to: Raveman Ravemanus

[quote=raveman]

plus he also had SCJP :D so at least that proves what this certification means.[/quote]

In my experience,  I believe that certifications are very very valuable, when of course they are combined with experience on the job.

Meera Subbarao

Dave Newton replied on Fri, 2008/10/10 - 10:28am in response to: Meera Subbarao

I'm actually closer to raveman's opinion on the value of certifications--while having a certification doesn't automatically mean you can't program, it sure doesn't mean you can. If anything I've been more disappointed by certified Java programmers, but that could be due to nothing more than a long-running statistical anomaly.

Fab Mars replied on Fri, 2008/10/10 - 10:47am

 I agree completely with the previous comment.

I don't want to be too pessimistic here, but certifications are more and more a way for vendors to earn money. Some exams are tough, right, but you can pass most with a bit of cramming and little experience.

But I will also stay on my initial opinion: IT projects are the matter of a team. And from my experience, you acheive better work with 3-4 mid-skilled "developers" with experience, good communication and who know each other well; than 10 super highly skilled "architects" doing whatever they want without informing anyone, because, anyway, they KNOW that THEIR solution is the best, and nobody else is intelligent enough to understand it.

You may say I'm talking about extremes. Well, I don't think so. Just read a few threads posted here...

Meera Subbarao replied on Fri, 2008/10/10 - 10:53am in response to: Fab Mars

[quote=fabmars]

 than 10 super highly skilled "architects" doing whatever they want without informing anyone, because, anyway, they KNOW that THEIR solution is the best, and nobody else is intelligent enough to understand it.

[/quote]

I don't agree at all. I have had the opportunity to work with Industry experts and Architects. They had excellent communication skills and treated all their developers with utmost respect. I guess it is your bad luck you haven't come across such people.

Meera Subbarao

mark taylor replied on Fri, 2008/10/10 - 11:20am

The '10 years to expert' benchmark has been around for years. Richard Hamming wrote about it several times. His position was if you want to keep growing as a scientist/engineer to switch areas and when you did it would take at least 10 years to become an expert in the new area.

Seems like it shouldn't take 10 years to become an expert at writing web CRUD application number 1,000,001. Seems to me an expert in web application isn't writing J2EE apps and frameworks, the experts are creating things like Seaside and An Infernal Device.

That just my .02.

Fab Mars replied on Fri, 2008/10/10 - 11:27am

Oh there are very good Architects, I don't deny it, I have met some too.

That's why it was written "architects" between "".

And my "developers" between "" also meant they are NOT ONLY technical.

 

My point remains that rating shouldn't be done on only one axis.

 

Meera Subbarao replied on Fri, 2008/10/10 - 11:35am in response to: Fab Mars

[quote=fabmars]

That's why it was written "architects" between "".

 [/quote]

I had no idea that text within double quotes means anything at all. Thanks for pointing out.

Meera Subbarao

Richard Sharpe replied on Fri, 2008/10/10 - 1:02pm

This is a great book and a topic I've been speaking with Andy Hunt and Dan North (of Thoughtworks) since the beginning of the year.

One of the summary point to come of this was does 10 years experience mean exploring and pushing the envelope for 10 years or doing the same thing each year for 10 consecutive years - i.e. having repeated the same one year experience 10 times? Different questions but still philosophically intriguing.

I interviewed Andy Hunt on the Dreyfus Skills Acquisition model at the Better Software Conference in Las Vegas in April - It's only around 10 mins and you can see it here - http://www.qualitydev.net/?p=41

Meera Subbarao replied on Fri, 2008/10/10 - 1:16pm in response to: Richard Sharpe

[quote=Rich Sharpe]

I interviewed Andy Hunt on the Dreyfus Skills Acquisition model at the Better Software Conference in Las Vegas in April - It's only around 10 mins and you can see it here - http://www.qualitydev.net/?p=41

[/quote]

Thanks Rich, for the link. This indeed is a great book. It has so many thought provoking quotes, I am quite sure I will be writing many more articles on this book. 

Meera Subbarao

Raveman Ravemanus replied on Fri, 2008/10/10 - 3:25pm

great point Rich, you said it best. my company just hired guy with 5 years experience in one company and he doesnt know what SVN is, because they used CVS. its not be a big deal, but its just silly. i think there is a lot of people like that. he might be good programmer, but its just a job and he might be right. maybe we try to hard to be the best? but its job interviewers fault they ask dumb questions(many times about useless things), so people take the challange and try to learn more to show them how smart we are. i know everything.

maybe you should change companies more often to be better programmer? i think that in first 3 months at new job you learn everything there is to learn. Even if company have multiple projects its all the same technology and challanges. I even think that i never faced any big challange at work (its enterprise programming and you write program, because user doesnt know SQL). i think i now know why people like design pattern that much - they are bored at work, so they use for example Memento Pattern and feel like it matters. it does matter, because on job interview they can talk about it and not everybody remember exotic design patterns(i think memento is hard to remember, because it sounds like it has something to do with memory(maybe GC?), so its very usefull pattern to know).

most of us knows how to write programs and we can do it in any language/framework, so why experience matters?

Dave Newton replied on Fri, 2008/10/10 - 4:12pm in response to: Raveman Ravemanus

so why experience matters?

Because a good developer with ten years experience is more useful to me than a good developer with one year experience. This should be obvious.

Andy Leung replied on Sun, 2008/10/12 - 3:54pm in response to: Dave Newton

[quote=newton_dave]

so why experience matters?

Because a good developer with ten years experience is more useful to me than a good developer with one year experience. This should be obvious.

[/quote]

Seriously, I have seen tons of 20 years exp. developers in my companies who don't even know how NOT to use hard code, does year of exp. really make a difference?

In my opinion, people are experts in something as long as they understand it inside out and can play around it, use and apply it in any situation it is suitable as though the 'things' are like their arms and legs.  You control your hands to use a fork but how good you are depends on how good you can use the fork to do or manipulate things.

I am just so sorry to say this to some older developers, on one hand I respect their time spent in their jobs but on the other hand I have no idea why they chose programming as their jobs since I don't see them fit.

Honestly, I am sure that there are so many people on dzone who have seen many developers who don't even know the actual use of OO or what really the framework helps and claim they are experts in OO programming because they said they have 20 yr OO programming exp.

C'mon...

public class ConfigurationBase{

    public static String PRODUCT_SERIAL_ID_1 = "1";

    public static String PRODUCT_SERIAL_ID_2 = "2"; 

    public static String PRODUCT_OUT_OF_ORDER_MESSAGE_1 = "MESSAGE_1";

    public static String PRODUCT_OUT_OF_ORDER_MESSAGE_2 = "MESSAGE_2"; 

    ... 

}

The above is coded by a guy who has 20 years of C++, Java and .NET experience.  This person is still being paid 3 times higher than normal senior developers for a large corporation, please tell me if you say year of experience matters.

Note: This is not an extreme case, I know there are more than 5 of our competitors and they are big comapnies (> 50k employee) who hire these "20 yr exp." programmers for their real-time and batch systems. 

Dave Newton replied on Sun, 2008/10/12 - 4:13pm in response to: Andy Leung

You've totally jumped the shark.

Re-read what I said:

 Because a good developer with ten years experience is more useful to me than a good developer with one year experience

See the word "good"? Of course there are idiots with 20 years of experience. There are *more* idiots with one year of experience, and even *more* that try to tell me that "experience doesn't matter."

Re-read this conversation after 5-10 years and try to tell me you were just as good now as you are in the future--if you do then your experience was useless and you've wasted 5-10 years of your life. If you admit that you've improved then guess what: experience matters.

In the meantime, recognize that not everybody hires based on "years of experience". But *all other things being equal* developers with more experience *are* better developers, precisely *because* they've had the time to learn, digest, and apply.

Andy Leung replied on Sun, 2008/10/12 - 6:16pm in response to: Dave Newton

[quote=newton_dave]

You've totally jumped the shark.

Re-read what I said:

 Because a good developer with ten years experience is more useful to me than a good developer with one year experience

See the word "good"? Of course there are idiots with 20 years of experience. There are *more* idiots with one year of experience, and even *more* that try to tell me that "experience doesn't matter."

Re-read this conversation after 5-10 years and try to tell me you were just as good now as you are in the future--if you do then your experience was useless and you've wasted 5-10 years of your life. If you admit that you've improved then guess what: experience matters.

In the meantime, recognize that not everybody hires based on "years of experience". But *all other things being equal* developers with more experience *are* better developers, precisely *because* they've had the time to learn, digest, and apply.

[/quote]

Sorry dude, I admitted that I missed your word "good" but after I re-read your post, I am still confused by the word "good".  How do you quantify and measure "good" in that sense?

"A good 10 years exp. developer and a good 1 year exp. developer "

In the above sentence, does the first good have the same weigh of the second? What do you mean by good?

In my post I am trying to express my frustration with people like ones I talk about, not about your post.  Don't get me wrong.

In this post, I am just trying to state that the focus of your sentence is not about the year of exp. but the word "good" because a good 1 year exp. developer can still be better than a good 10 year exp.  Let me give you an example:

A 10 year of exp. Java Developer knows J2SE and J2EE syntax, frameworks and configurations inside out and this person is able to design, code and unit test using the right tools, and complete all tasks in very short period of time without much errors produced.

A 1 year of exp. Java Developer is capable to oversee Java architecture.  This person understands the actual use of design pattern and able to apply with different technologies to solve business problems.  He/she knows the concepts and is able to pick up the speed by reading reference materials within hours.

Now I don't know about you but I would rather choose the 1 year of exp. Java Developer over the 10 year guy.  My reason is simple: knowing how to code can be easy but knowing what you are doing with the code and what you can do with it is very difficult.

Just my 2 cents ;) 

Dave Newton replied on Sun, 2008/10/12 - 6:43pm in response to: Andy Leung

I would rather choose the 1 year of exp. Java Developer over the 10 year guy.  My reason is simple: knowing how to code can be easy but knowing what you are doing with the code and what you can do with it is very difficult.

I guess I'm completely missing your point. You're basically saying that the 1-yr developer has skills the 10-yr developer doesn't, even though the skills you say the 10-yr developer has don't come w/o the skills you say the 1-yr developer has.

We'll just have to agree to disagree; we're talking past each other.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.