C# On a Scale of One to Ten

I’ve had the idea in my head to rank myself on a scale of 1 to 10 for my C# skills. I believe there’s a lot to the language and most people would probably overrate themselves. I thought I’d jot them down, share them, and see what others thought. Here is what I have so far:

  1. you can write simple expressions
  2. you can write a series of statements
  3. you can write small programs
  4. you rely on language features to improve code
  5. you use a productivity tool like ReSharper, but rarely get code improvement suggestions
  6. you can overrideoverload an operator without having to look it up
  7. you understand all the keywords in the language and how they’re used
  8. you can confidently talk about the internal implementations of how c# works
  9. you have an opinion about new features being developed and are providing feedback
  10. you are Jon Skeet

Thoughts?

Related:

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

About Chris Missal

Oh hey, I'm a Senior Consultant for Headspring in Austin, TX. I've been working in software professionally since 2006 and I really, really love it. I'm mostly in the Microsoft world, but enjoy building computer things of all sorts (to be vague). When I'm not slinging code, I'm probably out and about slinging discs, bowling balls, or good beer with great friends.
This entry was posted in C#, Continuous Improvement, For Fun and tagged , . Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://twitter.com/vkornov Victor Kornov

    Correction, should be:
    11. you are Jon Skeet

    • http://chrismissal.lostechies.com Chris Missal

      Ahhhh yes, I like that better :

  • Sean Feldman

    Disagree on #6 – personally for me, I’d rather have developers understand when (or better,  when not) to override an operator, than remember by heart how to do it…

    • http://chrismissal.lostechies.com Chris Missal

      Certainly, these are just plain C# skills, not being a good developer. 

  • http://twitter.com/dagda1 dagda1

    how about, you know another language on a different plaform :).

    • http://chrismissal.lostechies.com Chris Missal

      That’s actually really good. Most of the skilled C# devs I know are skill at many other languages. Good call!

  • tilde

     Isn’t the leap between 7 and 8 a little too wide?

    • http://chrismissal.lostechies.com Chris Missal

      Yeah, I kind of thought so too but I was having a tough time trying to get them easily spaced. I didn’t spend tons of time stewing over the list, it was basically just an idea I wanted to share.

      Maybe it should be like that though, and what’s it’s saying is that the leap from ranking oneself as an 8 versus a 7 says a lot. Maybe? :)

  • http://twitter.com/ajryan Aidan Ryan

    #6.5 – You know that it’s called operator “overloading,” not “overriding”

    :-)

    • http://chrismissal.lostechies.com Chris Missal

      Good catch, this is why I consider myself a 3 on this scale ;)

  • Tudor

    I would add: 

    11. ‘You are Eric Lippert’ :)

  • Anonymous

    The last year I have been working R&D, which has meant learning new platforms every 3 months. at some point, individual languages stop becoming skills in themselves and the skill of being able to work in any language productively takes over.

    one of my 3 month projects was a significant C# project, but I can’t even keep languages straight in my memory anymore, so If I were asked to write a short C# program on paper at a job interview I would draw a complete blank.

    Get a browser and VS in front of me for five minutes and I’m probably a much better C# programmer than average.

  • Chris Bristol

    I really like the list overall, but I’m not sure how seriously I would take #5.  Sometimes, Resharper just suggests writing something in equivalent forms, like switching between query comprehension syntax and using the fluent interface. Maybe I’m just nitpicking about what “code improvement” means…

    #7 is also a very difficult one. There are a lot of query syntax keywords that are difficult to remember, and some really subtle differences in what a keyword means depending on context.  Examples:

    http://blogs.msdn.com/b/ericlippert/archive/2009/08/31/what-s-the-difference-part-four-into-vs-into.aspx
    http://blogs.msdn.com/b/ericlippert/archive/2009/08/27/what-s-the-difference-between-fixed-and-fixed.aspx

    Links from Eric Lippert’s “What’s the Difference” “series”: http://blogs.msdn.com/b/ericlippert/archive/tags/what_2700_s+the+difference_3f00_/

    If you can get all of that off the top of your head, you are way ahead of me.

    I’ll also vote for “11. You are Eric Lippert”, and I’ll add 0. You know where list indexes start. :)

  • Mark88

    #fail:You should have started your list with nr 0! 

  • Michael Robin

    I would also question #6 – I’ve been using C# since before it was public, and I’ve never (well, almost :)) used operator overloading — “+” is for maths, it shouldn’t be able to reformat your hard-drive :)

  • Slaven Slo

    I had similar questions on interviews for our new developers, so I asked rate your C# skills from 1 – 10 assuming that 1 is you read something about it in a blog post and 10 is you are Anders Hejlsberg, but John Skeet is even better :)….Love it