- I shouldn't have to know advanced database management to do AJAX or user authentication. Seems like a dependency bug.
- The tree emphasizes jQuery effects to an odd degree (three levels) and it doesn't depend on JS mastery. Seems obscure and out of place.
- There's too much specificity in a lot of the descriptions and links. I'd focus less on tools and more on skills. For example, instead of "You can use frameworks like Ember.js,...", say "you can build a complete, highly interactive SPA". Instead of "You can use mod_rewrite", say "You are comfortable deploying, configuring, and maintaining high-traffic sites in a complex environment." The User Testing and Prototypes skills are much better in this regard.
- I'm not sure I love the Web Development Mastery skill, because I'm not sure what it captures besides "I checked off all the other boxes".
Edit: removed use of "just" that makes it sound more critical than I meant it.
Do you find that use of jQuery requires a mastery of JavaScript? There was a time when I could use jQuery(especially jQuery plugins) but didn't have a clue about how to do very basic things with JavaScript.
The description for the first level of JS Frameworks and Libraries is "you can tap into libraries like jQuery". So it's really saying is that jQuery requires JS, but you can use jQuery Effects without knowing jQuery. Also, there's no way you could get to level 3 of jQuery Effects tree (writing your own effects) without at least knowing some JS [1]. So pretty sure there's a bug in there.
But that's probably way too much pedantry about a skill tree that's just for fun. Onto the actually interesting question of how well you can know jQuery without knowing JS. I think it works like this: if you know how to use jQuery, ipso facto you can use JS at least as well. If you're just doing some pattern-matched jQuery stuff, that's cool, but it's also pattern-matched JS stuff, because, well, that's what you're writing in. The more advanced you are at JS, the more advanced you're capable of being in jQuery. There's no way you're going to be able to, say, write your own plugins are build complicated stuff without knowing the language you're writing it in. [2]
It's also probably worth noting that once you know JS really well, learning your way around jQuery is almost trivial. So I posit that trying to learn jQuery without learning JS is a Bad Idea.
[1] I guess that's a general issue with skill trees. B requires A as a prerequisite, but the tree doesn't capture that B level 2 requires A level 2.
[2] I confess this not an argument from experience and that I could be wrong; I'd love to hear stories to the contrary. I had the misfortune of learning JS in the bad old days before jQuery and friends. But I believe it both because it makes a priori sense and also because of the large number of SO jQuery questions where the OP's issue is really that they don't know JS.
Unless you mean web designers, not web developers?
Disagree that the specificity is bad. If someone doesn't already have the skill, the specificity helps. I'd suggest something like "Can build complete highly interactive SPAs with frameworks like Ember.js..."
Also, way to totally omit NoSQL data stores and automated testing. Selenium anyone? no one? bah.
Khan Academy could be taking notes and inspiration to replace their current Knowledge Map:
https://www.khanacademy.org/exercisedashboard
Perhaps this would be a little over the top with gamification, but it could be cute to have a character sheet for every student with their level, experience points, skills and talent specs listed out in tabs. It's fun to look at Online Education as being essentially an MMORPG.
Hell yeah!
>have a character sheet for every student with their level, experience points, skills and talent specs listed out in tabs
Isn't that one of the goals of Khan Academy? Because I remember them saying that they were against grades and that every student deserved a specialized reprot of their skills abilities projects etc
EDIT: To add, the intent of the challenge map is that many of the challenges build directly or indirectly on past challenges. Basic crypto challenges (by basic, I mean simple substitution ciphers) to simple XOR ciphers with increasing levels of difficulty (intended, sometimes there are shortcuts the designer didn't perceive). Programming challenges using their own esoteric languages or solving problems with potential exponential algorithms (until you figure out the shortcuts) and the like.
The main issue was, though I have a math degree, there was no way it would appeal to most of my friends when we'd turn these sorts of things into a (mostly) friendly competition. Hacker.org hit just the right buttons to keep a few of them interested long enough to even plough through the problems they didn't enjoy just to make progress.
http://sijinjoseph.com/programmer-competency-matrix/
The best sort of skill tree is one where it is hard enough that you cannot make it down every path in the time that it takes to play the game (in this case a career). Someone needs to create a new competency matrix with a broader scope.
They would have different classes for general positions in the company, and you could get a skill by passing a rigorous test. Each skill point would get you a raise. You get promotions or change roles based on your class specialization and level.
I know, I know, it'd be a disaster. But maybe there could be lower stakes at hand to encourage employees to learn new skills, like cashing in XP for little perks.
Essentially it's about basing promotions & pay based off meritocracy. There could be concerns about the Peter Principle [0] but at a high level, it appeals to me to work in an environment where people can "prove" they have the skills, instead of talking the talk or simply being the oldest employee.
Also, the people who you believe have been promoted by virtue of being the "oldest employee" may actually possess skills that you are unaware of -- perhaps even skills you are unaware are useful and important. Speaking as someone who has been around the block but prefers to work as an individual contributor rather than a manager, I have observed any number of important skills that are prevalent among effective managers that most technical folks start out unaware of. Risk assessment skills -- which are often based in having enough experience with both successful and failed projects -- are a good example. Another is the willingness to take responsibility for what often seem like nonsensical decisions that have to be made due to business or practical constraints. The latter is something that virtually no one likes to do, but often needs to be done in real life.[2] I could go on indefinitely, but I hope a couple of examples will suffice for now.
[1] http://31.media.tumblr.com/tumblr_lh0blbt3bs1qz8yeno1_400.jp...
[2] I was too slow to pick up on this lesson in real life until I saw the way Tom Hanks told Gary Sinise he was being dropped from the mission in the movie Apollo 13. In the time since, this has been a useful observation about how managers can be more effective when they don't try to do whatever will make you like them the most (which is typically a negative trait in a manager).
Now say again "It wouldn't be a disaster."
A class for Ops/DevOps, and for Technical Management for instance
...I can't believe I bothered to write this.
This is actually an interesting way to display credentials. You could potentially put this up as supplementary on your LinkedIn profile or something along those lines.
I wonder what percentage of web developers on HN fall into the same broad category.
- Let users upload their own portraits
- Sort out the skill dependencies to be more logical. Why do the 3 levels of jQuery effects not depend on JS mastery for example?
- Less emphasis on specific tools and more on types of skill, as pointed out by some other commenters
- Let us pick classes, perhaps with two components to the class, e.g. "Frontend ranger", "Devops Paladin", "Database barbarian", "Data Scientist High Elf" etc.
- Sort out the ugly looking pushState url to something cleaner that people would be proud to link to
But Server Side programming should have more levels...
I was a little sad that our framework benchmarks [1] and/or a "server-side performance" talent category were missing. :)
One small suggestion: consider using replaceState instead of pushState, pressing the back button just removes one skill point when it should probably leave the site (or at least remove all skill points).
Really nice work
* Business Skills
* Social Skills
* Mastery of a Start-up
* Entrepreneur Skills
* Organizational Skills ($ and PM)
* Marketing Skills (most importantly)
Unfortunately I know that I mastered all of these topics on site already more or less, but not the mentioned ones.