Sign in to follow this  

Self Evaluation

This topic is 4221 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Recently in my job search, I've been faced with a number of self-evaluation questionnaires. "Rate yourself on a scale of 1 to 10 in c++" sort of things. Ignoring the dubious value of such things, I'm curious as to peoples' opinions on what the levels actually are for something as nebulous as C++ or C#. I don't have much access to developers in real life, and am even less equipped than most to evaluate myself. Still, I'm being required to do it and am having a hard enough time with the search without shortchanging or overselling myself. Thoughts?

Share this post


Link to post
Share on other sites
Well, the fact that you consider that you are scarcely equipped to evaluate yourself is a sign that you are rather competent. I remember reading an article about how people rate themselves, and statistically, the less you were qualified, the more you over-estimated your abilities (if someone could tell me what article this is, I would be much obliged).

I realize this is not the most helpful of comments, but take it as you will.


jfl.

Share this post


Link to post
Share on other sites
Quote:
Original post by jflanglois
Well, the fact that you consider that you are scarcely equipped to evaluate yourself is a sign that you are rather competent. I remember reading an article about how people rate themselves, and statistically, the less you were qualified, the more you over-estimated your abilities (if someone could tell me what article this is, I would be much obliged).

I realize this is not the most helpful of comments, but take it as you will.


jfl.


That makes sense, because when you are new, you learn loops, variables, strings, files and think you are doing good. Four years later, you’re trying to get your server app to write registry values, and consider yourself worse than you did back then.

Share this post


Link to post
Share on other sites
Quote:
I remember reading an article about how people rate themselves, and statistically, the less you were qualified, the more you over-estimated your abilities (if someone could tell me what article this is, I would be much obliged).

Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments

Share this post


Link to post
Share on other sites
The best answer to that question is clearly to scribble a diatribe on the subject of the questions pointlessness in the margin.

Share this post


Link to post
Share on other sites
Quote:
Original post by Telastyn
Still, I'm being required to do it and am having a hard enough time with the search without shortchanging or overselling myself. Thoughts?


This is the worst of it. What, in their mind, is a "10"? I've had similar experiences with class projects. Sometimes I'd show up with something I thought was half-assed and it obviously surpassed the instructor's expectations. Other times I'd show up with something I was quite proud of only to find I was at the bottom of the heap.

Is a 10 someone who knows and can apply the basics of C++, or is a 10 someone who is well-versed in the dark arts of template-metaprogramming?

I'd say I'm a 10 because I know enough C++ that I know where to find what I need when/if I need it. I'd say I'm a 5 because I know and can apply the basics (classes, loops, templates, etc.) intelligently but haven't poked into the language's darker corners. I'd say I'm a 1 because I haven't applied it to larger projects for extended periods of time.

Share this post


Link to post
Share on other sites
Quote:
Original post by Jan Wassenberg
Quote:
I remember reading an article about how people rate themselves, and statistically, the less you were qualified, the more you over-estimated your abilities (if someone could tell me what article this is, I would be much obliged).

Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments


Ah yes, that's the one. Thanks!

Share this post


Link to post
Share on other sites
Quote:
The best answer to that question is clearly to scribble a diatribe on the subject of the questions pointlessness in the margin.

Actually, no. This is a question that definitely yields insight into the applicant's skills and personality. It is not useful as a direct measure of his skill (due to the abovementioned self-inflation), but more rather when applied indirectly, together with other questions that give you an impression of actual skill.
If anyone calls themself a 10 in C++, they are either on the committee or full of it. If obviously not master-level skill and they answer 7-9, they don't know much of the dark corners/pitfalls and are overconfident. If they are quite competent and answer 5-7, they are probably rather good, humble, and cognizant of what "mastery" means.

Quote:
Is a 10 someone who knows and can apply the basics of C++, or is a 10 someone who is well-versed in the dark arts of template-metaprogramming?

IMO, since we're not grading exams here, a "10" is "can't get better than this". Bearing that in mind, here's an evaluation of my C skills.
I've used the language for .. 9 years, have read+understood the standard, seen and experienced just about all the pitfalls there are likely to be, and would call that a "9". ("10" would be people who wrote books on C, or been at it for a few years more).

Now with C++, the language is so damned complex that I'll bet just about no one fully understands all the dark corners (including the library). I've been at it for .. call it 7 years ( :O ), use templates in moderation, have studied metaprogramming but not seen a profitable use in production code, have only read parts of the draft standard, and would therefore call it a "6".

In general, when evaluating something like this, think about who would fit the higher levels.
10: C++ committee
9: book writers (some overlap with 10, of course)
7,8: those who've really used the dark corners of the library and templates

HTH+HAND

Share this post


Link to post
Share on other sites
Quote:
Original post by Jan Wassenberg
Quote:
Is a 10 someone who knows and can apply the basics of C++, or is a 10 someone who is well-versed in the dark arts of template-metaprogramming?

IMO, since we're not grading exams here, a "10" is "can't get better than this". Bearing that in mind, here's an evaluation of my C skills.
I've used the language for .. 9 years, have read+understood the standard, seen and experienced just about all the pitfalls there are likely to be, and would call that a "9". ("10" would be people who wrote books on C, or been at it for a few years more).

[ snip ]

In general, when evaluating something like this, think about who would fit the higher levels.
10: C++ committee
9: book writers (some overlap with 10, of course)
7,8: those who've really used the dark corners of the library and templates


Is this assessment of the 1-10 scale common among interviewers? That was more my question. You started with an "IMO" so I don't think you were claiming this was anywhere near universal. I can imagine an interviewer thinking your 7/8 is a 10, but I don't know if that's at all common. When I went through saying I was a 10/5/1, I was saying I can see an interviewer judging my skills at those different levels.

It would seem that saying you're a 5/6 and then letting them be pleasantly surprised might be a good strategy (that is, if you can manage at least a 5/6 on most scales).

Share this post


Link to post
Share on other sites
I'm definitely with Jan on this one. I've been using the language for years, but still consider myself around 6. Meta programming is a "relatively" new beast and is quite complex, but most of the people programming in C++ are not even aware it exists nor understand how it works... Reading Modern C++ Design in part (at the time I read it, my old VC wouldn't compile everything that was in there :/ I should pick it back up) shown me how little I knew about the language. It goes far beyond of handling pointers, writing loops and conditions...

Share this post


Link to post
Share on other sites
Quote:

In general, when evaluating something like this, think about who would fit the higher levels.
10: C++ committee
9: book writers (some overlap with 10, of course)
7,8: those who've really used the dark corners of the library and templates


And what's the other side? I mean hello world is 1, and there's about 2-3 distinct levels in becoming comfortable with pointers, C++ nuanced class building and the more common parts of the standard library.

That leaves 2-3 levels of evaluation for run-of-the-mill non-lead developers.

Quote:

It would seem that saying you're a 5/6 and then letting them be pleasantly surprised might be a good strategy


Normally I'd agree, though I've had a few cases of not getting past the questionnaire. My resume isn't very representative of my skill in these regards, and I suspect reviewers find it difficult to find a 5/6 as an actual 5/6 given my paper experience.


Anyways, for reference, I've been answering 5 for C++ and 4 for C#. I've worked with hobby c++ for 4-5 years; fine with Standard Library use, dabbled with making type traits, comfortable making/using functors, experience with common boost (shared_ptrs, function, traits, bind) and with some non-common (thread, basic spirit, regex...), and template errors don't scare me anymore.

C# I've only used for ~9 months, and am inexperienced with winforms and SQL interaction. My current project uses it, I've learned to write in C# rather than C++ in C# syntax, and picked up a reasonable portion of the .NET libraries.

In both cases, effectively no formal training, no business experience; I've done QA work so understand business processes, but there's invariably little things I don't know and experience working in teams I'm going to need to learn.

I mean I think they're reasonable answers, but my last company required the questionnaires [for admin/qa work]. 90% of people would answer 4-7 on "Unix" and not be able to answer 'what command will display the current process list?'. Just frustrating.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I've been learning c++ now for several years and I read a lot of books about c++ and the c++ standard library. There is hardly a c++ (language) rule that I don't know or something in the standard library that I don't know (and then I know where to look for it).
But I wouldn't give myself a 10 because everyone expects that a "10" is a programming god and that I'm not. I don't have much experience with "real-life" programming. Most of my programs are small test applications.

Share this post


Link to post
Share on other sites
Quote:
Is this assessment of the 1-10 scale common among interviewers? That was more my question. You started with an "IMO" so I don't think you were claiming this was anywhere near universal.

heh, of course I don't claim this is universal. I'm just speaking for myself, having conducted a few interviews for 0ad (over IRC, not face-to-face).

Quote:
It would seem that saying you're a 5/6 and then letting them be pleasantly surprised might be a good strategy (that is, if you can manage at least a 5/6 on most scales).

hm, probably not a good idea. In order for them to be pleasantly surprised, they've got to hire you. There's no point in deliberately underselling yourself, only to find out they hired some apple-polisher instead.
I would go with a realistic estimate instead - and explain the rationale for your number.

Quote:
Reading Modern C++ Design in part [..] shown me how little I knew about the language.

Indeed. :)


Quote:
And what's the other side? I mean hello world is 1, and there's about 2-3 distinct levels in becoming comfortable with pointers, C++ nuanced class building and the more common parts of the standard library.

That leaves 2-3 levels of evaluation for run-of-the-mill non-lead developers.

Actually that's an assumption. Shoehorning a continuous range of skills into 1..10 isn't easy, but I'd say anything less than "able to write decent structured code with if,loops,pointers,classes; knows of basic library functionality, how to debug and where to find info" is a *zero*. Without that, how can you hire them and expect them to be productive?
Tentative other points:
2 - 2 years experience, knows most common pitfalls
3 - serious library use, no trouble with preprocessor and pointers
4 - ok with templates, customization of library
5 - experienced, knows what paradigm to choose
6 - above average; exposure to metaprogramming

Quote:
I suspect reviewers find it difficult to find a 5/6 as an actual 5/6 given my paper experience.

That's why you should write why exactly you think you are a 5/6, which should make a good impression :)


Quote:
9: book writers (some overlap with 10, of course)
If only...

hehehe :) Fortunately, I haven't read any of the bad ones.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
In general, a good idea is to backup any claims with some sort of certificate, there are various different online services available for web based certification, i.e. http://examware.com/

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
In general, a good idea is to backup any claims with some sort of certificate, there are various different online services available for web based certification, i.e. http://examware.com/


Not in my experience (unless the cert is a CCIE). The opposite I've found is often true, a certification is a good indicator of knowledge without experience; a truly dangerous combination.

Share this post


Link to post
Share on other sites
Quote:
Original post by Jan Wassenberg
[...]Actually that's an assumption. Shoehorning a continuous range of skills into 1..10 isn't easy, but I'd say anything less than "able to write decent structured code with if,loops,pointers,classes; knows of basic library functionality, how to debug and where to find info" is a *zero*. Without that, how can you hire them and expect them to be productive?[...]
Well, if the question is "How well do you know C++", you could answer "Not at all" and still be an expert programming with skill, experience, and talent in many other languages. It might be a good idea to hire somebody like that since they'll likely be able to learn the language(at least enough to do acceptable design and coding) very quickly and then pick up the details later on as they work more, though of course somebody with similar credentials that also knew the language of choice for a company should probably get preference

Share this post


Link to post
Share on other sites
Knowing a language has many dimensions.

-Ability to give courses or write books vs ability to program: it shouldn't be assumed that book writers are very skilled programmers, they can simply have a clear theoretical understanding and good expressive skills. Conversely, expert programmers can be well equipped for discussing fine technical points but not to organize a coherent explanation and express it clearly and pleasantly.

-Knowledge of the standard vs knowledge of the language: to argue about strange and unclear cases and to implement the language, one rarely needs to know the purpose of the language rules; on the other hand a language user needs to know when, why and how he should use the various features, not the details and special cases that have no impact on his code.

-Language experience vs design experience: immature programmers can learn and understand a language well, but the knowledge mostly causes overconfidence and gives them more and better rope to hang themselves in language-specific ways.
For example, typical novice Java programmers taught about the complex Swing GUI library understand how it works, but tend to consider it too troublesome and find visual GUI editors much more expedient that writing everything by hand; when they later have to maintain "lava flow" sources with jButton23 hooked to jtextField45 in line 2300 of an autogenerated method they learn the utility of good naming and aggressive modularization and factorization, and next project they might even write customized widgets.

Share this post


Link to post
Share on other sites
Quote:
Well, if the question is "How well do you know C++", you could answer "Not at all" and still be an expert programming with skill, experience, and talent in many other languages. It might be a good idea to hire somebody like that since they'll likely be able to learn the language(at least enough to do acceptable design and coding) very quickly and then pick up the details later on as they work more, though of course somebody with similar credentials that also knew the language of choice for a company should probably get preference

hm, that's true in principle. However, with C++ (the language being so complex and requiring of programmer discipline), I wouldn't expect an experienced-but-not-in-C++ programmer to be able to write good code as quickly as you may assume.
What you say would be more true of learning Python or similar, which has less pitfalls and idioms.

Share this post


Link to post
Share on other sites

This topic is 4221 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this