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 ?
7 replies to this topic
#1
Posted 06 February 2012 - 12:42 AM
~ Don’t wish it were easier, wish you were better. ~
|
|
|
#2
Posted 06 February 2012 - 06:54 AM
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.
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.
#3
Posted 06 February 2012 - 07:38 AM
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.
"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
Posted 09 February 2012 - 03:49 PM
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.
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
Posted 10 February 2012 - 09:39 AM
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
Posted 10 February 2012 - 12:22 PM
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.
- 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
Posted 11 February 2012 - 03:10 PM
I agree bbqroast. Coding should be about solving the problem, not wrestling with the language.
#8
Posted 12 February 2012 - 12:44 AM
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


Sign In
Create Account


Back to top









