Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't believe this works so well, after skimming the tables I noticed that I have knowledge of some Level 3 information but not Level 2 (or 1) in the same line.


So what do you mean? It doesn't work so well because you would score low(er), or because you think the methodology is fundamentally flawed? When someone skips a few steps, e.g. jumps straight to writing a book and skipping the 'read books and discuss with peers' steps, is that a net positive or net negative thing?


Well, I'm a 'tard designer who hangs out here, and I've played with B and Splay trees, but I've never heard of a Linked List.

Kinda like that.


A linked list is a way to build a list out of nodes.

Each node has a piece of data, and a pointer to the next node (or null if you've reached the end of the list). In a doubly linked list the nodes also has a pointer to the previous node.

This structure lets you build a list of arbitrary length without having to know in advance how much memory to assign it. You can append and iterate over elements in O(1), however seeking to an individual list element is O(n).

Most dynamic languages do not make much use of linked lists since it is easier just to use dynamically resized arrays. Any time you fill it you allocate a new array that is, say, 20% bigger and move the data. These allow you to seek to any element (including the next one) in O(1) with better average performance than linked lists. They also let you append in amortized average O(1) cost. Meaning that when you average out the cost of n appends, the overhead is O(n). However that cost is born unfairly, most are cheap but very occasionally you need to allocate the next bigger array and move existing data. For many applications (eg building a web page) this is fine. But if you're working in real time code then amortized average O(1) is not the same as O(1), and you must use a linked list.

There, now you know what a linked list is.


Thank you! The why is very illuminating.


Ok, but how does that invalidate the methodology of the matrix? Finding one or multiple counterexample(s) to the 'natural progression' that is a fundamental part of the matrix doesn't mean it 'doesn't work so well'. The examples are not important, the point is to identify various orthogonal paths of natural progression, each of which is of relevance to a skilled programmer, and to give someone who is making an assessment of the skill level of a specific person handles for what areas to look in.

I'm still not sure of your argument; if you've heard of the higher level concept but don't know the fundamentals, that obviously still says something about your skill level and drives as a software engineer. It's kinda useless to try to list what exactly it could mean in this concrete example, the point is that the model allows systematic evaluation of skills.


If you can understand splay trees, I don't think linked lists will give you the slightest problem.


Metaphor: Marxism. Presupposes an inexorable progression of skills, instead of a constellation. Check out database - administration is apparently the ultimate skill!




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: