Jump to content

How do you measure proficiency ?

- - - - -

  • Please log in to reply
7 replies to this topic

#1
Xdawn90

Xdawn90

    Learning Programmer

  • Members
  • PipPipPip
  • 55 posts
Just curious to know what do you think. :D

In your opinion, how do you actually measure proficiency in a language ? How do you consider proficiency ?
~ Don’t wish it were easier, wish you were better. ~

#2
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
Basic proficiency: can read code, knows what each basic language element does.
Useful proficiency: can code whatever the user wants accomplished
Advanced: understands best practices when coding in the language
Expert: can compare/contrast the above to other languages and understand why they vary and the impact of those variations.

The reality is I've found we usually don't realize how much we don't know, and any attempt to measure proficiency beyond "I do/do not have trouble getting code to do what I want" is usually something that can only be done by someone more proficient. I find that learning about Lisp and Haskell, for example, helped me understand C# better. Studying Java has given me an appreciation for C++ I wouldn't have had before. Discrete mathematics has significantly impacted my understanding of SQL.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#3
gregwarner

gregwarner

    Programming God

  • Members
  • PipPipPipPipPipPipPip
  • 853 posts
  • Location:Arkansas
My opinion on this question is that "proficiency" is defined as being able to answer those difficult programming job interview challenges, like the Google interview questions you can find online. You know the kind:

"What is the most efficient way to sort a million integers?"
"You have to get from point A to point B. You don’t know if you can get there. What would you do?"
"Imagine you have a closet full of shirts. It’s very hard to find a shirt. So what can you do to organize your shirts for easy retrieval?"
"How many golf balls can fit in a school bus?"

Those questions have been designed to test your ability to think critically about a problem and come up with a way of solving it. I think that's a key element of proficiency.
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.

– Douglas Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid


#4
alan2here

alan2here

    Newbie

  • Members
  • Pip
  • 5 posts
quicksort

A* (MCTS in some particularly abstract cases)

Sort them into order, or categories, or both. Are thease metaphorical programic shirts? Add a list of tags to each shirt perhaps, along the lines of "makes me look fat", "blue", etc...

I would imagine a sort of grid of gold balls would work best, like a sort of 3D hexagonal grid shape so each layer is offset and they can nestle together nicely. Perhaps simplify each gold ball into it's bounding box taking this into account, so it's going to be slightly smaller than the bounds of the ball. After thats possibly it's a simple division between the school bus volume in units cubed and golf ball volume in units cubed. I'm not entirly sure, I would do some testing for plausibility and perhaps some stack overflow crowdsourcing.

#5
gregwarner

gregwarner

    Programming God

  • Members
  • PipPipPipPipPipPipPip
  • 853 posts
  • Location:Arkansas

alan2here said:

I would do some testing for plausibility and perhaps some stack overflow crowdsourcing.

I think the point of the Google interview is to answer the question then and there. :)
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.

– Douglas Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid


#6
bbqroast

bbqroast

    Codecall Addict

  • Members
  • PipPipPipPipPipPipPip
  • 554 posts
  • Location:/etc/passwd
I personally think being proficient at programming in general is two main things:
- Being able to develop solutions quickly from problems, not actual code but rather being able to think about how it could work. Like using trigonometry to calculaate the angle of a players arm given the mouse cords and the player's cords.
- Being able to Google something and read and learn from guides/hints It's probably impossible to know every function in PHP or every argument for SDL but being able to look at a PHP: imagecopyresampled - Manual and being able to instantly work out the required arguments and optional arguments as well as gaining a understanding of what it does from a few lines is very important.
Please, write clearly with proper structure. Double spacing makes the text feel un-jointed, Capitalizing Every Word Means People Stop Before Every Word Sub-Consciously Which Is A Pain In The Backside, and use code tags! (The right most styling box).

#7
alan2here

alan2here

    Newbie

  • Members
  • Pip
  • 5 posts
I agree bbqroast. Coding should be about solving the problem, not wrestling with the language.

#8
bbqroast

bbqroast

    Codecall Addict

  • Members
  • PipPipPipPipPipPipPip
  • 554 posts
  • Location:/etc/passwd
Which is why I hate C++ pointers (sadly languages like Java are an pain when it comes to resources).
Please, write clearly with proper structure. Double spacing makes the text feel un-jointed, Capitalizing Every Word Means People Stop Before Every Word Sub-Consciously Which Is A Pain In The Backside, and use code tags! (The right most styling box).




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users