17

Possible Duplicate:
How Can I Know Whether I Am a Good Programmer?

As many programmers I have worked in several languages. While of course there are some that I am more at ease than other, I do not have a real way to precisely measure my skill in a specific language.

So I thought of a system which allows me to help me with that. I am looking for 5 common criteria in programming languages, to which I will have a value from 1 (junior) to 4 ( Senior) to represent my skill.

I however have no real idea of the criteria I should choose for that.

Does anybody have suggestion ?

Thanks.

9
  • 8
    The answer is 0.42
    – Job
    Dec 12, 2010 at 3:08
  • 1
    @Job No, it's 6x9. Dec 12, 2010 at 3:39
  • 2
    Maybe I am ruining somebody else's joke, but is not 42 = 6 x 7, not 6 x 9?
    – Job
    Dec 12, 2010 at 15:22
  • 5
    @Job: have you read the hitch hikers guide to the galaxy?
    – Matt Ellen
    Dec 12, 2010 at 17:53
  • 2
    @Job: Try base 13. Also, as @Matt Ellen points out, do read HHGTTG, then you may know where your towel is.
    – Orbling
    Dec 12, 2010 at 18:57

4 Answers 4

9

I can't imagine of a system that will allow to measure someone's skills definitely even for a particular programming language. What may you need it for? Data structures and algorithms are common, and it takes half an hour to find the appropriate data structure implementation in the standard libraries (not always true, of course). So if you know what is a linked-list, you will probably use it correctly.

Moreover, criteria depend on the language, and cannot be common. Some programming languages provide more freedom to do everything you want (to shoot yourself in the foot) and some of them set boundaries you cannot go out from. So criteria vary from language to language.

If I need a developer to work on a web-service I want to implement using Java, I will probably hire someone who has built a complex system using django (Python) than someone how knows Java but have no experience on web-services. So here I measure the knowledge in a particular domain, not a programming language, because for this task I consider the domain knowledge more important than the implementation language.

4
  • +1 for 'knowledge in particular domain'. I totally agree. Dec 12, 2010 at 13:13
  • +1 for the same reason as @ykombinator, the domain is substantially more important than the language in play; unless the language has an exceptionally steep learning curve for even seasoned engineers.
    – Orbling
    Dec 12, 2010 at 18:51
  • To be honest I can't imagine this system as well, that's why I came to ask. I do think you make a point though. Thanks.
    – lollancf37
    Dec 12, 2010 at 20:25
  • As a software engineer/architect who doesn't approach language proficiency or coding in a typical fashion due to learning disabilities, I rely HEAVILY on tooling for syntax and linting. Looking at experience and an existing codebase is a much better measure of someone's capabilities than a stupid whiteboard review or one-off coding quiz. May 6, 2021 at 21:34
15

Take a look at the Programmer's competency matrix. It's a good all-around measure of skill, more or less.

6
  • 7
    The person who wrote this "matrix" is mostly trying to brag about himself and declare that everyone else should be just like him. Dec 12, 2010 at 7:44
  • Seems interesting though. +1
    – nayan
    Dec 12, 2010 at 10:46
  • 2
    @chrisaycock: I totally agree. Much of the matrix suggests that the author has quite a narrow perspective on the subject. Many things are arbitrary, subjective and highly disputable, quite a few criterea are missing and those present are not weighted, which renders the whole thing quite useless.
    – back2dos
    Dec 12, 2010 at 17:09
  • 3
    @chrisaycock @back2dos: Personally, I think it is an excellent list that covers most salient points of software engineering. If he himself knows all this stuff and declares that other programmers should know at least as much, then I think he is quite justified. All items are weighted, from level 0-3, there is no attempt to weight one facet of knowledge against another as all may be required, which come to the fore in a particular instance varies by instance.
    – Orbling
    Dec 12, 2010 at 18:43
  • @chrisaycock @back2dos - Any rubric for measuring what people can do will be flawed, but this one is pretty reasonable. I've always measured developers against something like this list, not always expecting people to excel in all areas (depends on what you're experience and focus is). Dec 12, 2010 at 19:08
2

The ability to read and understand any (reasonably well written) code in that language is the most important criterion to measure mastership.

The ability to write code to solve any problem doesn't say much; just consider a C programmer who claims the ability to write C++. Since C is more-or-less a subset of C++, the C programmer can solve any problem by writing an appropriate C program and using the C++-compiler to compile it, so technically it's C++. Likewise, many programer learn just enough of a new language so they can apply the old idioms. You can write FORTRAN in any language.

By the same argument, LOC/hour says nothing. A programmer who writes Perl programs that look like C programs probably generates more LOC/hour than a Perl programmer who writes idiomatic Perl code.

1
  • You are right I think, but I also think that while you can be much more objective in your self assessment.
    – lollancf37
    Dec 12, 2010 at 20:35
1

If you can do all Project Euler problems correctly in language X, I would consider you to be an expert in language X.

4
  • I think it tells you more about your problem solving capabilities than your skill in a language.
    – lollancf37
    Dec 12, 2010 at 20:38
  • @lollancf37, that's because you have not tried to do the hard ones.
    – user1249
    Dec 12, 2010 at 21:29
  • 4
    Project Euler's problems are almost all math. Couldn't one be an excellent programmer and not be able to solve some of the problems because of a lack of math knowledge. Also, couldn't a mathematician with little programming skills solve them?
    – fender1901
    Jun 7, 2011 at 3:51
  • @fender1901, in my experience the problems are well-worded and accessible to most. Also the things considered trivial in math may actually turn out to be hard to calculate. I would suggest you have a look at the Ackermann problem (projecteuler.net/index.php?section=problems&id=282) where insight in how computers work with numbers are essential to solving it.
    – user1249
    Sep 22, 2011 at 8:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.