Live data from Hacker News

Programmer Competency Matrix

starling-software.com

21–30 of 127 posts

Re: Programmer Competency Matrix

#21
post #14

"able to identify NP problems" ? Most of the problems we face are NP. Maybe he was meaning NP-complete problems. See http://mathworld.wolfram.com/NP-Problem.html for the definition.

NP-hard is the actual class of problems you want to identify, although people who can identify NP-complete problems have no problems spotting NP-hard ones.

Re: Programmer Competency Matrix

#22
"Checks all arguments and asserts critical assumptions in code "

Wait, I just finished code complete, and it told me that you specifically _don't_ check all arguments throughout your program. Instead, you choose a list of classes at that will check arguments for input as a firewall, and assume all classes behind those logically will receive the correct, sanitized input.

Did I misunderstand this?

Re: Programmer Competency Matrix

#23

Earlier quoted context omitted.

Well, to be honest, I have deep-scripted accessing HN, but I tend only to use it when doing big data crunching on trends and similar. When providing cross-references I've usually just put the IDs - actually counting points, comments and age is something I've not done for a while. Don't think I'll bother again, I get enough grief and hate-mail just from trying to point people at earlier conversations.

? I was making a joke about the level 0 programmer (cut-n-paste) from the article.

Yes, but at his expense. With just text, it's hard to indicate friendly teasing with people you don't know well.

Re: Programmer Competency Matrix

#25
This is technically not a "bad" measure of performance, but the real danger is the word "competence." Imagine I am hiring two candidates, one has log(n) (level 3) competence across these charts, while the other has very mediocre/poor competence. What if I am working on an application is not performance-critical? What if the "incompetent" guy/girl works twice as fast, because he does not worry about crafting coding-works-of-art? What if the "incompetent" guy is three times cheaper to hire, and eager to prove him/herself, thus putting in extra hours voluntarily? What if I am hiring for a problem with a very specific domain, and expertise is required in only one area?

Re: Programmer Competency Matrix

#26
I'm not sure this has anything to do with "competency". When I was in high school, I implemented a kd-tree for a ray tracer using photon mapping. I knew that my n^2 algorithm was slow and that there was probably a better way, so I Googled and figured out how to write code for such a structure.

Since I'm not a programmer (I'm a chemical engineer), I don't instantly know all of the orders of various algorithms (which according to this article makes me "incompetent"). But you can bet that when it comes to implementing something, I'll research and figure out the most efficient algorithm available and use it.

I'm not sure being good at programming has much to do with having a whole bunch of CS knowledge; rather, it's being able to figure out what knowledge you need to know -- when you need to know it.

Re: Programmer Competency Matrix

#27
post #16

Earlier quoted context omitted.

I really appreciate it when earlier conversations are pointed to. (The additional points/comments/age numbers are wonderful, too, if you feel up to providing them.) I wonder if a bot could be written to automate this? There are lots of horrible reasons one could have for writing a HN comment bot, so I'm hesitant to even suggest it, but this seems like a really useful/good bot.

I have one, I used it, I got significant hate-mail, I decided I didn't need the bile I got, I discontinued it.

Would you mind publishing an example of a piece of hatemail? I'm baffled people would hate you doing that.

Re: Programmer Competency Matrix

#28

This is technically not a "bad" measure of performance, but the real danger is the word "competence." Imagine I am hiring two candidates, one has log(n) (level 3) competence across these charts, while the other has very mediocre/poor competence. What if I am working on an application is not performance-critical? What if the "incompetent" guy/girl works twice as fast, because he does not worry about crafting coding-wo…

A score according to this chart is not the only metric by which people are hired, but it is a useful metric which is often difficult to assay.

Re: Programmer Competency Matrix

#29

This is technically not a "bad" measure of performance, but the real danger is the word "competence." Imagine I am hiring two candidates, one has log(n) (level 3) competence across these charts, while the other has very mediocre/poor competence. What if I am working on an application is not performance-critical? What if the "incompetent" guy/girl works twice as fast, because he does not worry about crafting coding-wo…

You don't need a wizard for every task. There's nothing wrong with taking someone from the left side of the matrix. You just have to consider what they'll be working on and what resources are available to them (ie. mentors, etc.) Hiring decisions are comprised of tradeoffs, just like everything else in engineering.

Re: Programmer Competency Matrix

#30
post #22

"Checks all arguments and asserts critical assumptions in code " Wait, I just finished code complete, and it told me that you specifically _don't_ check all arguments throughout your program. Instead, you choose a list of classes at that will check arguments for input as a firewall, and assume all classes behind those logically will receive the correct, sanitized input. Did I misunderstand this?

If you're paranoid (eg, programming embedded where it absolutely, positively, should not fail), you always check all arguments and return values. Sometimes libraries shipped from the vender are not perfect, sometimes the vendor's compiler will do something, ahem, unexpected with your return value in some edge case where you've exceeded the stack. I'll agree that wrapping with inlining is a good idea to make code readable, and these days you usually don't have to worry about a lot of hardware limitations (especially in the general case: desktop/Android/iOS/web/etc).
Post reply on HN