views:

117

answers:

4

As a ASP.NET developer with 5+ year experience. I like to measure my competency level in ASP.NET & SQL Server. Basically my goal is to raise my competency level and skill-set in ASP.NET; before that I need to know what is my level considering current ASP.NET and related technologies...

So, please provide some pointers...

  • Is there are any skill-set measuring Quiz or exam, which account experience and technology ?
  • How do you measure your or your junior developers skills or competency?
+2  A: 

I guess I could rattle off some exams, like the MCP exams, or BrainBench, but you have to pay lots of money for those.

If you were really sold on taking an exam to gauge your competency, you could get a one of the MCP exam prep guides for ASP.NET, C#, and SQL Server and see how well you comprehend and take in that material. I'm not sure that it's the most accurate way of measuring competency though.

You can get a good qualitative evaluation of your SQL Server skills by simply reading Itzik's or Kalen's books and seeing how you comprehend them. For .NET, read Richter and critically evaluate yourself against the concepts you find in that book. Do those concepts make sense?

Probably the most valuable way to get feedback is to ask your senior developers for a frank evaluation of your skills.

If you're asking how I evaluate my junior developers, it's pretty easy once I see their code and they get a track record for a few months, but I don't believe quantitative analysis is the best way. Instead, I ask questions like:

  • Can they deliver?
  • Are they writing good code?
  • Are they taking the initiative to learn more?
  • What have they brought to the table?
  • Do they understand the software development lifecycle?
  • Do they break builds?
  • Are they good team players, or do they code in solitude?
  • Do they make suggestions?
  • Are they open to others' suggestions?
  • Do their design decisions make sense for the projects they've been on?

Ask yourself how your leaders would answer these questions about you. If you are seriously confident that they will respond positively, you will have an easier time "grading yourself".

Dave Markle
@Dave Markle - thank you pointing out the sql server and .net books. I think questions you mentioned are too generic, and it not meant for specific technology i.e. ASP.NET or SQL Server, but it's worth when we grading a good team player or employee.
Sandy
+1  A: 

Honestly, it's all relative. I've worked on teams where the junior devs from one team out-class the senior devs from the other team in every way. Different environments are going to value different skill sets in different ways.

As for a "test" of your skills, a pretty handy one would just be right here on StackOverflow. Look for .NET questions, try to answer them. The ones you can't answer, learn from those who do answer them. Rinse, repeat. It's not very structured, but it can definitely be helpful.

It's also good just to follow some of the major blogs and see if you can keep up with what they're talking about and try to implement some of it on personal side projects just to learn and practice.

The only way to really measure your skill level is to push it forward. Find stuff you don't fully grok and learn it. A truly skilled developer is never an expert, but rather just more of an expert than he was yesterday.

David
@David - yes, its relative; but, I think there will some kind of bench marking, from where we can upgrade necessary skills?
Sandy
@Sandy: Perhaps, but even those benchmarks will be relative as well. Maybe you can pass some tests, qualify for some certs, etc. But those are more about the testing/cert companies trying to sell you (or your employer,etc.) something. A benchmark implies something to reach, and I'm generally of the opinion that mastery of a craft is a journey, not a destination.
David
@David - I agree, I'm an MCPD; but, It doesn't seems to me the right or complete way of benchmarking. I'm looking for something like - a QA where questions are based on relevant experience in specific technology and result will indicate which fields we need to concentrate in future...
Sandy
@Daivd - hope you know the print-out we get after attending MCP exam, which include areas and percentage of marks scored.
Sandy
+1  A: 

When asked on similar lines , I read it from somebody here on SO that

he will try to answer the questions on SO.

Let me rephrase it,

I will try to measure my performance with somebody's questions and answers.

Having said that i won't compare my competence with collective knowledge here on SO.

Srinivas Reddy Thatiparthy
@Srinivas - thanks, but i'm looking for effective and shortest way to grade; measuring based on QA seems to be relative to person who asks and person who measures.
Sandy
+1  A: 

This is usually pretty specific to the company. There will be a bunch of criteria that the developer must meet before they get a promotion or advance to a higher level.

The hierarchy is usually pretty similar; with general (cumulative) criteria for progress to the next level. In my experience it is something like the following:

1 Graduate/recent work experience

  • Fair understanding of basic language concepts (agnostic).
  • Good all-round technical knowledge. Demonstrable
  • Problem solving skills. Numeric and verbal skills. Generally competent
  • Shows passion for a certain part of the domain.
  • Not a crazy person.

2 Junior/Trainee Developer

  • Good understanding of the primary language they use.
  • Makes use of de facto tools and technologies to deliver software.
  • Has delivered software on time and schedule.
  • Trusted to deliver components with guidance from more senior developers.
  • Can (and does) participate in design meetings and code reviews.
  • Has a good understanding of how the company works as a whole.
  • Understands unit testing and test driven development.
  • Fair understanding of source control and continuous integration.

3 Developer

  • Advanced understanding of the primary language.
  • Demonstrates skill in at least one other language.
  • Demonstrates the passion to learn more about their language.
  • Makes good use of design patterns when developing software to write maintainable code.
  • Actively seeks to improve process and efficiency.
  • Delivers components to a high level of quality.
  • Has the ability to lead a small team of developers to produce components.
  • Good understanding of test driven development, unit testing, mocking and stubs.
  • Good source control management knowledge: branching, merging, tags.
  • Can lead a code review with a junior developer and supervise their work.
  • Requires minimal guidance from more senior developers.
  • History of delivering quality software, on time

4 Senior Developer

  • Excellent understanding of their primary language
  • Good skills in other useful languages in the domain. In general, has a passion for learning about other languages and how the company could benefit from employing it/these to aid development
  • Great understanding of the domain, all of the components within it and all interactions between. This knowledge can easily be transferred to less senior developers.
  • Can design beautiful software
  • Actively seeks to improve development process and efficiency. Demonstrates languages and technologies in this area.
  • Fully understands the development process from start to finish.
  • Can lead a large team of developers to successful and timely project completion.
  • History of delivering excellent software and designs.

5 Lead Developer

  • King
fletcher