Programmer Competency Matrix
-
80% of items above level 1 are unnecessary if not completely useless for programming. Who gives a ff about the internal implementation of data structures (platform dependent anyway) or the CPU's microcode architecture. 90% useless if you want to ever be more than a boring spoon fed drone coder for life. only 2 items actually matter to anyone that wants to get a real high level job (CIO or even more-so self employed) and he got those completely wrong anyway (communications & requirements).
Lopatir wrote:
or the CPU's microcode architecture
I do. I Have written drivers that write to CPU ports to control it.
Lopatir wrote:
internal implementation of data structures (platform dependent anyway)
When moving data from one patform to another you have to be aware of structure packing and endianness.
-
A festering pile of elephant dung. I've been privileged to have worked with some super smart people over the years and I doubt that any of them would rank that highly on this somewhat subjective "look how elephanting smart I am", whatever the elephant it is supposed to be. The article says a lot more about the author than the matrix would ever say about anyone else. Smug twat.
Didnt rank that highly eh? Dont worry Mark, I am sure you dont need most of these skills in your job. ;P
-
A developer who can "do more with less" is more valuable than one who requires all the latest tools. And don't get me started on developers who think you can't debug without a debugger.
PIEBALDconsult wrote:
And don't get me started on developers who think you can't debug without a debugger
Torvalds takes this view. If you cant debug with thought and printf then you cant debug. Fortunately someone DID come up with a linux kernel debug setup, and very useful it is too.
-
Ahem...just fyi Programmer Competency Matrix [^]
Caveat Emptor. "Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
-
For line of business apps, I'd take an average programmer that wasn't full of himself/herself and was great at communicating over an uber one that never left his/her mom's closet and has no idea how to work with people. But hey, that's just experience talking. :rolleyes:
Jeremy Falcon
Lunch?
-
Didnt rank that highly eh? Dont worry Mark, I am sure you dont need most of these skills in your job. ;P
Munchies_Matt wrote:
Dont worry Mark, I am sure you dont need most of these skills in your job
I don't need any of them to flip burgers at the local burger bar... :-)
-
Note the note at the bottom "Thanks to John Haugeland for a reformatting of it that works much more nicely on the web." So apparently being able to make it readable on the web is not something a programmer needs?
:laugh: :laugh: :laugh:
-
Note the note at the bottom "Thanks to John Haugeland for a reformatting of it that works much more nicely on the web." So apparently being able to make it readable on the web is not something a programmer needs?
Not unless he writes web pages, no. Obviously.
-
Not unless he writes web pages, no. Obviously.
The same goes for all that's written on the article. If you don't work directly with that stuff, it's irrelevant and sometimes even detrimental* that you know it. \* I have some applications here that one such "genius" wrote where he uses an array of threads to "parallelize" some simple calculations. The kick? the calculations are sequential, take less time to execute than the threads take to warm up and are done once a month with no time constraint. But he just had to pass threads around through the whole app...
-
A festering pile of elephant dung. I've been privileged to have worked with some super smart people over the years and I doubt that any of them would rank that highly on this somewhat subjective "look how elephanting smart I am", whatever the elephant it is supposed to be. The article says a lot more about the author than the matrix would ever say about anyone else. Smug twat.
Was going to say something along this same line. What a bunch of $@#$ and @$@^$^%@#. The author has an opinion about what is good (himself most likely) and thinks everyone should fit into his wet paper sack.
To err is human to really mess up you need a computer
-
Ahem...just fyi Programmer Competency Matrix [^]
Caveat Emptor. "Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
-
Ahem...just fyi Programmer Competency Matrix [^]
Caveat Emptor. "Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
Now that you've all expressed such disdain for the competency matrix, I will foolishly raise my hand and say I think the general concept is sound; that there are areas of competency in development that people arrive at unevenly, and that might measure their ability to do certain kinds of work or thinking. I was thinking of a similar kind of matrix organized around programming paradigms (imperative, OO, functional), but I think there are paradigms that don't yet have a proper name that are still useful measures of developer skill. Perhaps people are just objecting to the specific categories, or the idea that you have to master all these categories to be a "good" developer.
-
Note the note at the bottom "Thanks to John Haugeland for a reformatting of it that works much more nicely on the web." So apparently being able to make it readable on the web is not something a programmer needs?
I was thinking the same thing - given how smug this guy is. Even *I* can do this and I suck at web development.
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music." -- Marcus Brigstocke, British Comedian
-
80% of items above level 1 are unnecessary if not completely useless for programming. Who gives a ff about the internal implementation of data structures (platform dependent anyway) or the CPU's microcode architecture. 90% useless if you want to ever be more than a boring spoon fed drone coder for life. only 2 items actually matter to anyone that wants to get a real high level job (CIO or even more-so self employed) and he got those completely wrong anyway (communications & requirements).
Lopatir wrote:
80% of items above level 1 are unnecessary if not completely useless for programming. Who gives a ff about the internal implementation of data structures (platform dependent anyway) or the CPU's microcode architecture.
Only the people who are working hard to squeeze every last ounce of performance of the CPUs, GPUs, display controllers, storage devices, network adapters, compression algorithms, etc. so that your spouse's car can receive map information from a satellite 13000 miles away, in order to tell them how to get to where they are going, while your kids stream reruns of SpongeBob videos from the comfort of their own home, all while you are at your office, cranking out applications in the most inefficient, crappiest way possible, and still managing to look like a rock star when you deliver your product.
Lopatir wrote:
90% useless if you want to ever be more than a boring spoon fed drone coder for life.
No, those drone coders tend to retire somewhat early and very wealthy, after creating an entire industry that never existed before. And the ones that dont, well, they're still getting paid better than most in the industry. Incidentally, I would consider myself about a 2.5 on that matrix.
On the other hand, you have different fingers. - Steven Wright
-
The same goes for all that's written on the article. If you don't work directly with that stuff, it's irrelevant and sometimes even detrimental* that you know it. \* I have some applications here that one such "genius" wrote where he uses an array of threads to "parallelize" some simple calculations. The kick? the calculations are sequential, take less time to execute than the threads take to warm up and are done once a month with no time constraint. But he just had to pass threads around through the whole app...
Sentenryu wrote:
and sometimes even detrimental* that you know it.
More than sometimes when someone 'thinks' they know it but they don't. This can often happen when someone absorbed a 'best practice' from years ago, perhaps not even from their experience but what someone else told them. And it has resolved into an absolute commandment from god, that must never be questioned, even when evidence suggests otherwise.
-
The same goes for all that's written on the article. If you don't work directly with that stuff, it's irrelevant and sometimes even detrimental* that you know it. \* I have some applications here that one such "genius" wrote where he uses an array of threads to "parallelize" some simple calculations. The kick? the calculations are sequential, take less time to execute than the threads take to warm up and are done once a month with no time constraint. But he just had to pass threads around through the whole app...
Yeah, thats just dumb. And you are right, the use of feature xxxx just for the hell of it is a real problem in the IT world. But I found the chart in general a good breakdown of the skills needed, even if they are per field. I dont know about fancy sort routines myself for example, I work more in processes than data, as I write drivers, so I get your point, but generally its good still.
-
Now that you've all expressed such disdain for the competency matrix, I will foolishly raise my hand and say I think the general concept is sound; that there are areas of competency in development that people arrive at unevenly, and that might measure their ability to do certain kinds of work or thinking. I was thinking of a similar kind of matrix organized around programming paradigms (imperative, OO, functional), but I think there are paradigms that don't yet have a proper name that are still useful measures of developer skill. Perhaps people are just objecting to the specific categories, or the idea that you have to master all these categories to be a "good" developer.
The jump from the second cell to the third is way too big and includes skills that are way too niche to be expected from a general developer. Heck, even the second column includes some things that are useless in the day to day. Maybe if it was presented as limited to a specific niche.
-
Sentenryu wrote:
and sometimes even detrimental* that you know it.
More than sometimes when someone 'thinks' they know it but they don't. This can often happen when someone absorbed a 'best practice' from years ago, perhaps not even from their experience but what someone else told them. And it has resolved into an absolute commandment from god, that must never be questioned, even when evidence suggests otherwise.
jschell wrote:
And it has resolved into an absolute commandment from god, that must never be questioned, even when evidence suggests otherwise.
I deal with this way too much. What happened to "use the right tool for the right job"? I'm tired of seeing people trying to drive nails with the pointy end of a screwdriver.
-
Now that you've all expressed such disdain for the competency matrix, I will foolishly raise my hand and say I think the general concept is sound; that there are areas of competency in development that people arrive at unevenly, and that might measure their ability to do certain kinds of work or thinking. I was thinking of a similar kind of matrix organized around programming paradigms (imperative, OO, functional), but I think there are paradigms that don't yet have a proper name that are still useful measures of developer skill. Perhaps people are just objecting to the specific categories, or the idea that you have to master all these categories to be a "good" developer.
Got to second this. I see way too many people who work in developing software that have no understanding of various data structures and which one to use(So it's all arrays), how memory is being used, threading(a bool as a thread synchronization object?) and no ability in algorithmic analysis(O(N2) when you could have easily done O(nlog(n)) that I actually like the fact he stressed the basics for a lot of what he wrote. Always seems like the people that don't do those basics also don't use source control or lay out their code with any sort of reason.(No comments and words aren't spelled correctly either.) Their stuff looks great at first since they get it out quickly and it often works but when you're the guy who comes by to try and fix that mess years later it's nightmare. (Since the issues don't crop up in their testing, only when it's been out in the wild for a few years and they actually get a legit volume of usage do things start popping up.)
-
Lunch?
Sure thing man.
Jeremy Falcon