5 ms·
Programmer Competency Matrix
- ivenkys 17y agoMust be a slow week - this particular "very simplistic" article has been here at least 3 times before in the last month. Its very cute to divide programmer competency into a clean matrix - its never that simple.
- GrandMasterBirt 17y agoI've seen it over a year ago. My boss says "I fall into the first category but clearly I'm a great software architect." giggle
- andrew1 17y ago> Must be a slow week Well, it is December 30th so probably likely to be slower than average...
- Silhouette 17y agoIsn't this the sort of table that shows its author is a L337 hax0r because he's in the top category of everything? Anyone who automatically puts things like DVCS, TDD, and practices obviously related to Open Source development in the top tier sounds more like a Kool-Aid drinker than an objective observer making a sincere attempt to provide a useful resource.
- jrockway 17y agoThese things are heuristics, not things that actually make you good. Look at "has tried bzr/hg/git". That's probably true of the best programmers. But trying git for one day is not going to make you one of the best programmers.
- trjordan 17y agoLast time this came up, somebody made the comment that you're in the highest category that you have finished everything below. Just because you started with git doesn't make you good at VCSs, but if you have done everything below it as well, you probably are an expert. To put it another way: would you put SVN on the right side of that row? As an aside, I do believe that DVCSs are somewhat more complicated than their centralized counterparts. This is mostly because they are young and lack the mature tool environment that things like SVN do. As a result, users are forced to understand how they work, instead of relying on pre-defined sequence of work->save->test->commit. If SVN was the new hotness, people would have written reams about the theoretical motivations behind a a centralized server, copying-as-branching, etc. But it's not, so git/hg/bzr get all the credit for being algorithmically interesting. In the end, this means that if you don't want to think about it, go with a VCS that's a little older, and I think that justifies the ordering in the chart.
- nostrademons 17y agoA lot of the O(log N) items were depressingly basic. An undergrad education in CS will get you to O(log N) in basically all the Computer Science categories. Where are the finger trees? Array-mapped hash tries? Cuckoo hashes? Where's the domain-specific algorithm knowledge, like machine learning or information retrieval or computer vision? The IDE plugins? "Let it crash" and supervisor processes for error handling? It's also depressing that O(log N) for "years of experience" = 10+. A motivated and reasonably intelligent student can get to O(log N) in all the other categories with an undergraduate CS degree and about 2 years of work experience at a good employer.
- antirez 17y agoHey, didn't you noticed that the O(1) column was missing?
- DannoHung 17y agoWhere's O(1)?
- marcus 17y agoI had a professor in college that used to say A+ is for me, A is reserved for God, A- for the head of the department, and the grades B+ and below are for you... So by that line of reasoning I assume that O(1) is reserved for the author.
- lucifer 17y agoI think for O(1) in each category you can write "have conceived, designed, and implemented" a log(n) concept, construct, or tool. data structures: creator of skip lists algorithms: creator of genetic algoritms systems programming: lead engineer on JVM HotSpot source control: "subversion sucks, here's Git" build automations: creators of Maven etc. (You can go down the whole list and figure out exactly what O(1) is and who belongs to that set.)
- caffogene 17y agoThe books category is especially ridiculous. You might have read some books in each one of those levels, and they're not exactly prerequisites to one another. I also use Git exclusively, that doesn't mean I'm proficient with SVN. Et cetera.
- seshagiric 17y agoFrom John Mayer's 'Vultures' ".....How do I stop myself from Being just a number How will I hold my head To keep from going under.........."
- dou001 17y agowelcome to visit: http://www.wowhotsale.com http://www.wowhotsale.com We are wholesaler of Nike Jordan and Other Shoes. We are a professional exporting company . We supply many kinds of Shoes, such as Nike Shoes, Jordan 1-23, Air Jordan, AF1, DUNK, Air max series etc. Most of them are in stock and can be supplied surely on time. All these shoes are packed with original-boxes and cards. ====> free shipping <==== ====>competitive price<==== ====>any size available<==== ====>accept Credit Card payment<==== HTTP://WWW.WOWHOTSALE.COM jordan air max oakland raiders $34--39; Ed Hardy AF JUICY POLO Bikini $25; Christan Audigier BIKINI JACKET $30; gstar coogi evisu true jeans $35-39; coach chanel gucci LV handbags $36; coogi DG edhardy gucci t-shirts $18; CA edhardy vests.paul smith shoes $32; jordan dunk af1 max gucci shoes $37; EDhardy gucci ny New Era cap $16; coach okely Adidas CHANEL DG Sunglass $18; HTTP://WWW.WOWHOTSALE.COM http://www.wowhotsale.com/productlist.asp?id=s81 http://www.wowhotsale.com/productlist.asp?id=s81 (Hoody) http://www.wowhotsale.com/productlist.asp?id=s17 http://www.wowhotsale.com/productlist.asp?id=s17 (Shox) http://www.wowhotsale.com/productlist.asp?id=n516 http://www.wowhotsale.com/productlist.asp?id=n516 (AF jacket) http://www.wowhotsale.com/productlist.asp?id=s32 http://www.wowhotsale.com/productlist.asp?id=s32 (women boot) http://www.wowhotsale.com/productlist.asp?id=s74 http://www.wowhotsale.com/productlist.asp?id=s74 (Tshirt) http://www.wowhotsale.com/productlist.asp?id=s79 http://www.wowhotsale.com/productlist.asp?id=s79 (Jean) http://www.wowhotsale.com/productlist.asp?id=s72 http://www.wowhotsale.com/productlist.asp?id=s72 (Handbag) http://www.wowhotsale.com/productlist.asp?id=s62 http://www.wowhotsale.com/productlist.asp?id=s62 (Tiffany_Ring)
- dou001 17y agowelcome to visit: http://www.wowhotsale.com http://www.wowhotsale.com We are wholesaler of Nike Jordan and Other Shoes. We are a professional exporting company . We supply many kinds of Shoes, such as Nike Shoes, Jordan 1-23, Air Jordan, AF1, DUNK, Air max series etc. Most of them are in stock and can be supplied surely on time. All these shoes are packed with original-boxes and cards. ====> free shipping <==== ====>competitive price<==== ====>any size available<==== ====>accept Credit Card payment<==== HTTP://WWW.WOWHOTSALE.COM jordan air max oakland raiders $34--39; Ed Hardy AF JUICY POLO Bikini $25; Christan Audigier BIKINI JACKET $30; gstar coogi evisu true jeans $35-39; coach chanel gucci LV handbags $36; coogi DG edhardy gucci t-shirts $18; CA edhardy vests.paul smith shoes $32; jordan dunk af1 max gucci shoes $37; EDhardy gucci ny New Era cap $16; coach okely Adidas CHANEL DG Sunglass $18; HTTP://WWW.WOWHOTSALE.COM http://www.wowhotsale.com/productlist.asp?id=s81 http://www.wowhotsale.com/productlist.asp?id=s81 (Hoody) http://www.wowhotsale.com/productlist.asp?id=s17 http://www.wowhotsale.com/productlist.asp?id=s17 (Shox) http://www.wowhotsale.com/productlist.asp?id=n516 http://www.wowhotsale.com/productlist.asp?id=n516 (AF jacket) http://www.wowhotsale.com/productlist.asp?id=s32 http://www.wowhotsale.com/productlist.asp?id=s32 (women boot) http://www.wowhotsale.com/productlist.asp?id=s74 http://www.wowhotsale.com/productlist.asp?id=s74 (Tshirt) http://www.wowhotsale.com/productlist.asp?id=s79 http://www.wowhotsale.com/productlist.asp?id=s79 (Jean) http://www.wowhotsale.com/productlist.asp?id=s72 http://www.wowhotsale.com/productlist.asp?id=s72 (Handbag) http://www.wowhotsale.com/productlist.asp?id=s62 http://www.wowhotsale.com/productlist.asp?id=s62 (Tiffany_Ring)
- ratsbane 17y agoI don't disagree with the comments about the triteness of this page and other articles like it. That doesn't mean it's entirely without value though. Think of it as like a financial budget: you know you're not going to hit it completely and some of the items you've budgeted for will turn out to be unnecessary or wasteful. At the end of the budget period, though, it gives you something to measure actual performance against.
- joe_the_user 17y agoHonestly, I think it's seems like a great check list for finding holes in one's background and education. If you could make it into a wiki, it would be good since then the hole's in the author's experience could also be filled.
- ratsbane 17y agoWhat would add to or remove from the original matrix? What I would change: - add mention of RFCs, e.g. 2616 (HTTP) and 1738 (URL)
- sorbits 17y agoI would introduce ‘make’ in the build automation (level 3) section. Understanding make (dependency graphs, splitting up the build process into small tasks which can be parallelized, restarted, and leave an exact record of how much was succesfully built) I consider a valuable trade and magnitudes better than “writing your own build script” (as is presently what is the level 3 skill).
- wgj 17y ago+1 for wiki suggestion. The value in an exercise like this is the insight into the collective assessment, especially spanning different software disciplines, and with broader expert input.
- gaius 17y agoThanks to John Haugeland for a reformatting of it that works much more nicely on the web. Where does "basic HTML" come in the matrix? PS Flagged, dupe.
- lujz 17y agoQuantifications like these drive what we do from serious play into solemnity.
- deleted 17y ago[deleted]
- deleted 17y ago[deleted]
- larrykubin 17y agoHere's an alternative 1x1 matrix: [ build something that people will pay money for by any means necessary ] Much easier to remember.
- andrewcooke 17y agochrist. i know this place is related to yc. but sometimes the constant emphasis on making money gets a little tedious.
- jrockway 17y agoAgreed. This attitude is why software has such a bad reputation. People are in such need for software, that they will tolerate horribly unreliable software if it happens to sort of solve their problems. Good software is rarely available, so people just expect it to be bad. If people started demanding software as reliable as the things produced by other engineering professions (buildings that don't collapse, etc.), then being a good programmer would be strictly tied to making money. But right now, the code is the least important part of software companies. The idea and the marketing is significantly more important. (Hello, Twitter.) Also, people are quick to associate personal gain with the economic value of a program. The Facebook founders may be rich, but automatic trading systems handle a lot more money (even though the programmers didn't necessarily get rich writing it). Facebook can have as many bugs as it wants, and they will be fine. An automatic trading system can ... cause problems ... if it is not bug-free (and well-written, or written by good developers). But you never hear about that sort of thing from these people; only how their blog makes $10/day and that how they are a genius and visionary for doing that.
- trjordan 17y agoIt's true, but that's only one way to be a great programmer. There are a lot of positions out there where it might be incredibly valuable to an organization to build a new CMS, a better UI, or a more robust middle tier, but these aren't independently valuable. With two or three people who can do these things, you can make something people pay money for, but that doesn't mean that the individual programmers aren't competent.
- 17y ago
- marltod 17y agowhere is the linear algebra to combine it all into a single value? Some HR executive would pay big money for that.
- GFischer 17y agoHmm... as joe_the_user said, it's a nice checklist for holes in one's background, but I'm not sure if it should serve as a list for "hireability" - I know people that are probably on the higher end of most of the points, but are terrible at real-world situations. These probably are crucial for the kind of programming done at the startups, though. I score as Level 1 or Level 2 at most on almost all the items, some Level 3 points don't seem relevant (why should I need a license header for my work programming?). What I believe is that some of the points are WAY more important than others, I personally place great value on my domain and business knowledge and believe that is a trend going forward. Still, thanks for making it available, reminded me I have to do some more studies.
- puneetht 17y agoThis matrix is a bunch of crap. The ability to "get things done" is the most important factor of programmer competency. Every thing else is incidental.
- strlen 17y agoNot true. Getting "things done" while creating an O(N^2) solution, in spaghetti code, to a problem that's already well solved by an external library is horrible.
- va_coder 17y agoUsing your argument: Mcdonalds, Starbucks, Walmart, Coke and many other companies are O(N^2) solutions and therefore failures. They repackaged an existing idea, made slight modifications, and sold it for lots of money. I hate seeing wasted money and stupid solutions succeed like the next guy and maybe we're talking about different things. But whether things got done should be decided by the customer not your TDD fanatic coworker.
- dasil003 17y agoI tentatively agree because these things can be showstoppers, but it really depends. I've seen PhDs who can't tie their shoes. Theoretical knowledge is useless in production software if you don't know how to apply it, and yet without it you will be greatly limited in the scope of systems you can build.
- puneetht 17y agoOf course an elegant solution is desirable, however I prefer bloatware that works, over a beautifully architected one that is vaporware.
- bhousel 17y agoI used to believe that too, but I've changed my mind. Now, I'll always prefer clean organized code, even if it doesn't work. I can always hire someone or jump in myself and make the changes that are necessary. It is safer to assume that all code is broken in some way. E.g. If someone says that code "works", what they usually mean is that the software is broken in ways that they doesn't understand. When someone says a system is "secure", it means that it contains vulnerabilities that they haven't yet discovered. A pessimistic attitude, but it has served me well.
- nightlifelover 17y agoHe misses a few points subjects like computer graphics, computational geometry, understanding of databases (did he mention this?), numerical simulations, GUI design, general math skills, compression algorithm, heuristic algorithm, etc That's what just comes in my mind..
- argv_empty 17y agoI'd file most of those under "domain knowledge" >_>
- eplanit 17y agoAll is fine so long as one does not assume 'great programmer' = 'competent'. This matrix really only differentiates 'well-educated' programmers. There are many well-educated failures, and as many (some might say more) un-/under-educated successes.