[clug] Programmer Competency Matrix
alexsatrapa at mac.com
Fri Aug 7 00:11:24 MDT 2009
On 07/08/2009, at 15:34 , steve jenkin wrote:
> What do people think of this approach?
I'm still trying to understand the implication of 2^n ... log(n) in
the titlebar - are they suggesting that someone with more knowledge
can solve problems faster? Are they suggesting that they need fewer
programmers at this level of competency?
> What about their sections and classifications?
I'm not sure that having someone who is fluent in Erlang will
necessarily help you maintain your PHP website any better than the guy
who doesn't know Erlang. They may work faster due to having better
ways of representing the abstract ideas, but that will be lost to the
time they spend complaining about how PHP is such a primitive/ugly
language compared to Erlang...
"Makes sure to check return values and check for exceptions around
code that can fail."
Not sure that this really counts as defensive programming - you might
subscribe to the idea that you must check and handle all exceptions,
while the guy next to you subscribes to the "fail early" paradigm ie:
the belief that if your program generates an exception, there's very
little you can do in your code to deal with the exception since by
definition you didn't expect the condition that has arisen - how is a
web browser going to handle the loss of Internet connectivity other
than aborting the page load and telling the user "can't do that sorry"?
"Can setup a script to build the system and also documentation,
installers, generate release notes and tag the code in source control"
Contrast the guy who spends ages writing shell scripts to get the
project to build (complete with documentation in LaTeX, HTML and PDF
versions), versus the guy who uses autotools to do the same thing,
versus the guy who writes a Makefile (or ANT spec, or whatever). Which
one's actually smarter, more competent, and more valuable to your team?
"Proficient in using CVS and SVN features. Knows how to branch and
merge, use patches setup repository properties etc."
The assumption here being that knowing about git is better than being
able to use Subversion... I'm not sure that I follow. Surely knowing
about branching and merging in the chosen toolset is more important
than knowing how to checkout/checkin with git versus Subversion?
As for Systems Programming, I think it's fast approaching the time
when someone writing an ERP or CRM system would be better off not
wasting their time learning about kernel schedulers, microcode, heap,
stack, static or dynamic linking... these are all things the
programming language and associated frameworks are supposed to be
abstracting away, surely? It may well be *impressive* in the party-
trick sense of the word when someone who codes in Perl all day can
give you a presentation of the pros and cons of various kernel
schedulers, illustrated using party pies and curry puffs - but when it
comes down to it, wouldn't you prefer that guy to know regular
expressions instead of constantly asking you how your code works?
I wouldn't consider knowledge of VBScript to be a proof of
*competence* (apart from the assumed knowledge that you turn it off,
along with requiring users to log in with non-administrator accounts,
use a browser other than IE, yadda yadda).
Of course, being a steady "2" in the matrix probably indicates that I
don't understand what the "3" ratings are actually all about ;)
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 220 bytes
Desc: This is a digitally signed message part
More information about the linux