[clug] Programmer Competency Matrix

Alex Satrapa 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...
Name: PGP.sig
Type: application/pgp-signature
Size: 220 bytes
Desc: This is a digitally signed message part
URL: <http://lists.samba.org/pipermail/linux/attachments/20090807/d82f1d4b/attachment.pgp>

More information about the linux mailing list