<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Programmer Competency Matrix &#8211; 32 attributes to evaluate programmers</title>
	<atom:link href="http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/</link>
	<description>Perspectives on Computer Science and Software Engineering</description>
	<lastBuildDate>Mon, 08 Mar 2010 18:54:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Joe Mucchiello</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2702</link>
		<dc:creator>Joe Mucchiello</dc:creator>
		<pubDate>Wed, 03 Feb 2010 22:02:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2702</guid>
		<description>The Database knowledge row is woefully inadequate. Programmers a step above 2^n, your n^2 level, generally have no idea what ACID stands for, let alone anything further up the chart. n^2 should be &quot;Basic competence in SQL. Can design tables for simple task. Has heard of Indexes.&quot; Then shift the exist n^2 and n right one place. Parts of level logn reads more like a DBA job description than a programmer competence description and doesn&#039;t belong on the chart.

Similarly, you 2^n blob level is wrong too. Most low-competency programmers have no idea there are programming blogs. I know some folks who hit logn status in parts of your matrix who would respond &quot;Really? There are programming blogs?&quot; if asked what they read.</description>
		<content:encoded><![CDATA[<p>The Database knowledge row is woefully inadequate. Programmers a step above 2^n, your n^2 level, generally have no idea what ACID stands for, let alone anything further up the chart. n^2 should be &#8220;Basic competence in SQL. Can design tables for simple task. Has heard of Indexes.&#8221; Then shift the exist n^2 and n right one place. Parts of level logn reads more like a DBA job description than a programmer competence description and doesn&#8217;t belong on the chart.</p>
<p>Similarly, you 2^n blob level is wrong too. Most low-competency programmers have no idea there are programming blogs. I know some folks who hit logn status in parts of your matrix who would respond &#8220;Really? There are programming blogs?&#8221; if asked what they read.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Rodrigues</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2689</link>
		<dc:creator>Kevin Rodrigues</dc:creator>
		<pubDate>Sat, 09 Jan 2010 09:02:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2689</guid>
		<description>That is a helpful programmer competency matrix. I would like to set this up as a goal to move as close to level 2 as possible in about a year. Perhaps mentors should show this matrix to beginners and give them a rough idea about what they should do to become better programmers.

I found a similar matrix created by an organization. You can find it on my blog at http://kevinrodrigues.com/blog/2009/12/28/what-skills-should-a-good-developer-possess/</description>
		<content:encoded><![CDATA[<p>That is a helpful programmer competency matrix. I would like to set this up as a goal to move as close to level 2 as possible in about a year. Perhaps mentors should show this matrix to beginners and give them a rough idea about what they should do to become better programmers.</p>
<p>I found a similar matrix created by an organization. You can find it on my blog at <a href="http://kevinrodrigues.com/blog/2009/12/28/what-skills-should-a-good-developer-possess/" rel="nofollow">http://kevinrodrigues.com/blog/2009/12/28/what-skills-should-a-good-developer-possess/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Dymitruk</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2686</link>
		<dc:creator>Adam Dymitruk</dc:creator>
		<pubDate>Wed, 30 Dec 2009 20:28:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2686</guid>
		<description>The problem with this whole thing is the lack of #ux (user experience and usability). All the points made are moot if you&#039;re building /the wrong product/.

Some other things to point out:
DVCS: lacking for the level of knowledge needed at a &quot;log n&quot; level. Rebasing with GIT or scripting something in SVN to act like GIT&#039;s bisect functionality.
also missing. ability to work with branch-per-feature, merging strategies, VCS hooks and custom attributes.
architecture part is missing. No mention of DDD or description of where OO came from and why
IoC, DI, the rest of SOLID. AOP
where to use and where not to use
where and why RAD is good / bad
IDE is very shortsighted making custom macros look like a holy grail. Refactoring tools like IntelliJ IDEA, Resharper, Refactor Pro, Code Rush?

Just initial thoughts, I tweeted the same thing but may have left something out.

Otherwise, a great place to start discussion.

Adam</description>
		<content:encoded><![CDATA[<p>The problem with this whole thing is the lack of #ux (user experience and usability). All the points made are moot if you&#8217;re building /the wrong product/.</p>
<p>Some other things to point out:<br />
DVCS: lacking for the level of knowledge needed at a &#8220;log n&#8221; level. Rebasing with GIT or scripting something in SVN to act like GIT&#8217;s bisect functionality.<br />
also missing. ability to work with branch-per-feature, merging strategies, VCS hooks and custom attributes.<br />
architecture part is missing. No mention of DDD or description of where OO came from and why<br />
IoC, DI, the rest of SOLID. AOP<br />
where to use and where not to use<br />
where and why RAD is good / bad<br />
IDE is very shortsighted making custom macros look like a holy grail. Refactoring tools like IntelliJ IDEA, Resharper, Refactor Pro, Code Rush?</p>
<p>Just initial thoughts, I tweeted the same thing but may have left something out.</p>
<p>Otherwise, a great place to start discussion.</p>
<p>Adam</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michiel van der Blonk</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2685</link>
		<dc:creator>Michiel van der Blonk</dc:creator>
		<pubDate>Mon, 28 Dec 2009 16:23:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2685</guid>
		<description>I don&#039;t really agree with the way this is setup. You should really get down to the essentials of programming. You mention books like Code Complete, yet you fail to take it&#039;s advice (traits of a good programmer). Traits are way more important than tool or even language knowledge. Communication is one. Depending on the situation (programming games, space shuttles, web apps, bookkeeping) influences what you need to know. Knowing a gazillion languages doesn&#039;t help in a project if you&#039;re working in only one. Patterns should emerge out of good design and common sense, not memorized etc. And I am not putting it down because I don&#039;t understand the matrix, I do. Most modern languages used nowadays are imperative OO (Java, PHP, .NET) so it would help to master at least that.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t really agree with the way this is setup. You should really get down to the essentials of programming. You mention books like Code Complete, yet you fail to take it&#8217;s advice (traits of a good programmer). Traits are way more important than tool or even language knowledge. Communication is one. Depending on the situation (programming games, space shuttles, web apps, bookkeeping) influences what you need to know. Knowing a gazillion languages doesn&#8217;t help in a project if you&#8217;re working in only one. Patterns should emerge out of good design and common sense, not memorized etc. And I am not putting it down because I don&#8217;t understand the matrix, I do. Most modern languages used nowadays are imperative OO (Java, PHP, .NET) so it would help to master at least that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: akrasia</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2499</link>
		<dc:creator>akrasia</dc:creator>
		<pubDate>Tue, 30 Jun 2009 13:30:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2499</guid>
		<description>Regarding James Hawk III&#039;s comments - I think these are a unnecessary viscous (and probably shows someones belief in their own self importance). I&#039;ve been developing real-time embedded systems for both military and commercial systems since the mid-1980&#039;s (and no I haven&#039;t &quot;changed the face&quot; of those). Yes I agree that maybe the chart is based more on knowledge rather than competency (competency - the proven ability to use knowledge, skills and other abilities to perform a function against a given standard in work), but this is very common confusion (see Microsoft MCSE etc.). The other thing that could be improved is clarifying the target domain (many of the things there aren&#039;t applicable to real-time embedded systems) - e.g. what type of applications. I worry about James&#039; managerial style if doesn&#039;t understand the basics of constructive feedback - let&#039;s see your attempt then? Overall it&#039;s a good first attempt and gives a useful vehicle for discussion (as per Sam&#039;s feedback).</description>
		<content:encoded><![CDATA[<p>Regarding James Hawk III&#8217;s comments &#8211; I think these are a unnecessary viscous (and probably shows someones belief in their own self importance). I&#8217;ve been developing real-time embedded systems for both military and commercial systems since the mid-1980&#8217;s (and no I haven&#8217;t &#8220;changed the face&#8221; of those). Yes I agree that maybe the chart is based more on knowledge rather than competency (competency &#8211; the proven ability to use knowledge, skills and other abilities to perform a function against a given standard in work), but this is very common confusion (see Microsoft MCSE etc.). The other thing that could be improved is clarifying the target domain (many of the things there aren&#8217;t applicable to real-time embedded systems) &#8211; e.g. what type of applications. I worry about James&#8217; managerial style if doesn&#8217;t understand the basics of constructive feedback &#8211; let&#8217;s see your attempt then? Overall it&#8217;s a good first attempt and gives a useful vehicle for discussion (as per Sam&#8217;s feedback).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: erithion</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2490</link>
		<dc:creator>erithion</dc:creator>
		<pubDate>Mon, 18 May 2009 13:59:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2490</guid>
		<description>James Hawk III, thank you for your comment on this!</description>
		<content:encoded><![CDATA[<p>James Hawk III, thank you for your comment on this!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam Ahn</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2470</link>
		<dc:creator>Sam Ahn</dc:creator>
		<pubDate>Sat, 11 Apr 2009 06:38:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2470</guid>
		<description>I like the idea of the competency matrix and I think it could be very useful. There are a few topics I would add to the matrix somewhere. I know some of these are more from a software project management perspective, and I don&#039;t know if you had intended to capture that in your matrix. However, since some people are going to want to use this matrix in order to gain the skills to climb up the ladder, adding software project management to the list of skills could be useful. 

Software process, lifecycles, process improvement (e.g. agile, XP, SCRUM, RUP, TSP, CMMI). Software architecture documentation (e.g. UML notations, component-and-connector diagrams). Software architecture and design (e.g. design patterns, architectural styles). Formal methods (OCL, Z, Petri Nets, rate monotonic analysis). Static analysis. Software project estimation (use case points, function points, COCOMO). Requirements documentation (use cases, user stories, quality attributes and quality attribute scenarios, paper prototypes). Project planning and management (work breakdown structures, earned value analysis). Risk management.</description>
		<content:encoded><![CDATA[<p>I like the idea of the competency matrix and I think it could be very useful. There are a few topics I would add to the matrix somewhere. I know some of these are more from a software project management perspective, and I don&#8217;t know if you had intended to capture that in your matrix. However, since some people are going to want to use this matrix in order to gain the skills to climb up the ladder, adding software project management to the list of skills could be useful. </p>
<p>Software process, lifecycles, process improvement (e.g. agile, XP, SCRUM, RUP, TSP, CMMI). Software architecture documentation (e.g. UML notations, component-and-connector diagrams). Software architecture and design (e.g. design patterns, architectural styles). Formal methods (OCL, Z, Petri Nets, rate monotonic analysis). Static analysis. Software project estimation (use case points, function points, COCOMO). Requirements documentation (use cases, user stories, quality attributes and quality attribute scenarios, paper prototypes). Project planning and management (work breakdown structures, earned value analysis). Risk management.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeswin</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2466</link>
		<dc:creator>Jeswin</dc:creator>
		<pubDate>Fri, 10 Apr 2009 12:25:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2466</guid>
		<description>This appeared to be a Microsoft Technologies Competency Matrix. Reading SICP or the Little Schemer does not get you to level 3 in the other crowd.  SICP is introductory material.

- Is able to effectively communicate with peers - is a Level 2 skill? 
- Writing a framework means little; Most &quot;Architects&quot; i have seen have written one. Mostly unusable. 
- File has license header, summary, well commented, consistent white space usage. The file should look beautiful?
- Scott Hanselman&#039;s Power Tools list?
- ....

I guess the list is partly valid within the Microsoft-Technology + IT Services context.</description>
		<content:encoded><![CDATA[<p>This appeared to be a Microsoft Technologies Competency Matrix. Reading SICP or the Little Schemer does not get you to level 3 in the other crowd.  SICP is introductory material.</p>
<p>- Is able to effectively communicate with peers &#8211; is a Level 2 skill?<br />
- Writing a framework means little; Most &#8220;Architects&#8221; i have seen have written one. Mostly unusable.<br />
- File has license header, summary, well commented, consistent white space usage. The file should look beautiful?<br />
- Scott Hanselman&#8217;s Power Tools list?<br />
- &#8230;.</p>
<p>I guess the list is partly valid within the Microsoft-Technology + IT Services context.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sijin</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2461</link>
		<dc:creator>sijin</dc:creator>
		<pubDate>Fri, 10 Apr 2009 01:07:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2461</guid>
		<description>Hi James,

Thanks for your inputs, This post was written a year back and I already think that some of the stuff in here is obsolete or needs revision. I can only write based on the experience that I have right now and hopefully a few years from now I can come up with a better matrix that covers more of the &quot;getting things done&quot; aspects that you talk about (which I agree are very important as well)</description>
		<content:encoded><![CDATA[<p>Hi James,</p>
<p>Thanks for your inputs, This post was written a year back and I already think that some of the stuff in here is obsolete or needs revision. I can only write based on the experience that I have right now and hopefully a few years from now I can come up with a better matrix that covers more of the &#8220;getting things done&#8221; aspects that you talk about (which I agree are very important as well)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Hawk III</title>
		<link>http://www.indiangeek.net/2008/04/30/programmer-competency-matrix/comment-page-1/#comment-2460</link>
		<dc:creator>James Hawk III</dc:creator>
		<pubDate>Fri, 10 Apr 2009 00:32:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.indiangeek.net/?p=360#comment-2460</guid>
		<description>The guy that wrote the matrix hasn&#039;t enough experience to be able to determine what people need to know.  When I compare my 28 years of professional experience to his 7 or so years, I find that from a managerial standpoint (I&#039;m a senior consultant and technical manager for a Fortune 400 company which means I review code, write designs, and mentor developers) there are a lot of things missing from that table, and a lot of things that matter not at all.

(For the record, I&#039;ve written code for 737 flight trainers, show control software in Las Vegas hotels, and pioneered hardware and software products that changed the face of the travel industry.  I even wrote a few games back in the late 80&#039;s.)

What the writer fails to perceive is that it isn&#039;t what you &lt;em&gt;know,&lt;/em&gt; it&#039;s what you &lt;i&gt;do with the knowledge.&lt;/i&gt;  We&#039;ve certainly had to fire programmers that would have ranked in the O log(n) columns for many categories simply because &lt;i&gt;they couldn&#039;t get anything done.&lt;/i&gt;  (I work for a rather large multi-national corporation that produces both hardware and software.)  We gave one guy a project and three weeks later there wasn&#039;t one line of code.  The analysis and design was done, mind you--he was still cogitating on the relative merits of for() vs. while() vs. do-while().  In a world where payment rightfully comes from results, getting results is important--as opposed to whether or not one has &quot;tried out Bzr/Mercurial/Darcs/Git.&quot;

We also have a lot of bright third-column guys that simply spend too much time screwing off instead of getting work done.   Work ethic isn&#039;t discussed at all in the matrix, and it&#039;s actually more important than whether or not someone compiles from the IDE or on the command line.

The matrix also doesn&#039;t really address communications at all--it just sort of takes a lazy swipe at it and then goes back to lazy crap like &quot;who knows the most keyboard shortcuts.&quot;  Honestly, the whole thing is so grade six that it&#039;s embarrassing.

As an exercise in mental masturbation, I give it a B+.  As a reflection of real-world skill requirements, I give it a C-, if not a D+.  The author, 20 years from now, will find it an embarrassment and hope no one downloaded and kept a copy.</description>
		<content:encoded><![CDATA[<p>The guy that wrote the matrix hasn&#8217;t enough experience to be able to determine what people need to know.  When I compare my 28 years of professional experience to his 7 or so years, I find that from a managerial standpoint (I&#8217;m a senior consultant and technical manager for a Fortune 400 company which means I review code, write designs, and mentor developers) there are a lot of things missing from that table, and a lot of things that matter not at all.</p>
<p>(For the record, I&#8217;ve written code for 737 flight trainers, show control software in Las Vegas hotels, and pioneered hardware and software products that changed the face of the travel industry.  I even wrote a few games back in the late 80&#8217;s.)</p>
<p>What the writer fails to perceive is that it isn&#8217;t what you <em>know,</em> it&#8217;s what you <i>do with the knowledge.</i>  We&#8217;ve certainly had to fire programmers that would have ranked in the O log(n) columns for many categories simply because <i>they couldn&#8217;t get anything done.</i>  (I work for a rather large multi-national corporation that produces both hardware and software.)  We gave one guy a project and three weeks later there wasn&#8217;t one line of code.  The analysis and design was done, mind you&#8211;he was still cogitating on the relative merits of for() vs. while() vs. do-while().  In a world where payment rightfully comes from results, getting results is important&#8211;as opposed to whether or not one has &#8220;tried out Bzr/Mercurial/Darcs/Git.&#8221;</p>
<p>We also have a lot of bright third-column guys that simply spend too much time screwing off instead of getting work done.   Work ethic isn&#8217;t discussed at all in the matrix, and it&#8217;s actually more important than whether or not someone compiles from the IDE or on the command line.</p>
<p>The matrix also doesn&#8217;t really address communications at all&#8211;it just sort of takes a lazy swipe at it and then goes back to lazy crap like &#8220;who knows the most keyboard shortcuts.&#8221;  Honestly, the whole thing is so grade six that it&#8217;s embarrassing.</p>
<p>As an exercise in mental masturbation, I give it a B+.  As a reflection of real-world skill requirements, I give it a C-, if not a D+.  The author, 20 years from now, will find it an embarrassment and hope no one downloaded and kept a copy.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
