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.NE开发者_运维百科T; 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?
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".
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.
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.
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
精彩评论