Exploring the Relationships Between Tech Skills (Visualization)
Nerval's Lobster writes: Simon Hughes, Dice's Chief Data Scientist, has put together an experimental visualization that explores how tech skills relate to one another. In the visualization, every circle or node represents a particular skill; colors designate communities that coalesce around skills. Try clicking "Java", for example, and notice how many other skills accompany it (a high-degree node, as graph theory would call it). As a popular skill, it appears to be present in many communities: Big Data, Oracle Database, System Administration, Automation/Testing, and (of course) Web and Software Development. You may or may not agree with some relationships, but keep in mind, it was all generated in an automatic way by computer code, untouched by a human. Building it started with Gephi, an open-source network analysis and visualization software package, by importing a pair-wise comma-separated list of skills and their similarity scores (as Simon describes in his article) and running a number of analyses: Force Atlas layout to draw a force-directed graph, Avg. Path Length to calculate the Betweenness Centrality that determines the size of a node, and finally Modularity to detect communities of skills (again, color-coded in the visualization). The graph was then exported as an XML graph file (GEXF) and converted to JSON format with two sets of elements: Nodes and Links. "We would love to hear your feedback and questions," Simon says.
This is a nice visualization. If I was young and aimless, I might see some value in learning new techs I don't actually need right now. Learning new techs could help you land jobs in today's age of clueless HR people judging you by your tech list vs your ability.
However, I'm getting older and I learn another tech only if I actually need to use it for something I'm working on. So I'll be happily deficient in lots of languages I don't need. I'm certain I could be at least of average skill after about two weeks of most languages as that is my past experience with new languages. But don't tell HR. Today's software engineering world is so averse to training people it rarely considers searching for a veteran software engineer and letting him come up to speed on random techs.
If I spent a couple weeks on every tech I hear about for the sake of toying with it, I'd never get anything done.
God spoke to me
Find and click on MongoDB. Then notice that "Database" is this tiny-assed little circle waaaaaaaaaaaaaaaaaaay off to one side.
Got a pretty good laugh out of it. :)
Quo usque tandem abutere, Nimbus, patientia nostra?
"I didn't find PHP anywhere."
If only...
Remember "You may or may not agree with some relationships, but keep in mind, it was all generated in an automatic way by computer code, untouched by a human."
How amazing computer code that has never been touched by a human. Organic software I guess, no possible way for human bias to creep in.
/* TODO: Spawn child process, interest child in technology, have child write a new sig */
and i've seen my fair share of poor visualizations
but i think this is actually really well done, useful even
congratulations to Simon Hughes
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
Today's software engineering world is so averse to training people it rarely considers searching for a veteran software engineer and letting him come up to speed on random techs.
Not to put too fine a point on it but that's your own responsibility, not the company you work for.
If there is an aversion to companies training people. that' offset by the ease of learning any newer (or even older) technology, for free.
If you wait for the company to help you, you (and your career) will ossify. I have seen the result when I was younger, the result is not good for your freedom to choose favorable working conditions.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Today's software engineering world is so averse to training people it rarely considers searching for a veteran software engineer and letting him come up to speed on random techs.
Not to put too fine a point on it but that's your own responsibility, not the company you work for.
Are you kidding?
Sure, that applies if you're a short-term contractor. But permanent staff ought to be getting a regular training budget from their companies. If you're not, then you're working for a bad employer.
If there is an aversion to companies training people. that' offset by the ease of learning any newer (or even older) technology, for free.
It may be free in the financial sense, but it still has a cost in time. A good employer will give you that time. And pay the costs if there are any. You may need to explicitly ask for it, but the bottom line is that they should be investing in their long-term staff.
If you wait for the company to help you, you (and your career) will ossify. I have seen the result when I was younger, the result is not good for your freedom to choose favorable working conditions.
My own experience: In the last year, I've learned Node.js on company time. We haven't done any projects with it yet, but they gave me the time to do a partial rewrite of one of our existing system using it, as a proof-of-concept. We've got a licensed set of Robert C Martin's "Clean Code" video series on the company network, and dev staff are positively encouraged to spend time watching those during working hours. And I'm being sent on a dev conference later this month.
I do agree with you though -- not all companies are like that, and I have worked at places where even one of those things would have been a stretch too far. So you really do have to pick the right employer. But truthfully, all employers should be like that if they really value their staff. It's not just about the headline salary figure.
It's not very reliable data.
They took the similarity vectors from the job postings, not from resumes, so rather than "what you're likely to know", they computed "what an employer is likely to want at the same time as wanting something else", and then declared that a similarity due to an already skewed cosine similarity metric. This happens because employers are more likely to copy other, similar job postings, or other job postings for companies in a similar business as them, or those of a company whose employees they wish to hire away.
They claimed that they tried using resumes, but that the resulting data was not as "clean"; uh... duh?
This visualization was not actually very useful, unless you are trying to design a resume to get yourself hired, regardless of your actual current capabilities.
by importing a pair-wise comma-separated list of skills and their similarity scores ...
we’re generating that automatically from job descriptions posted on our site.
So what this really shows is how often the same two buzzwords appear together in a job description posted on Dice.
I found another comment in his report interesting:
We also tried using the resume dataset, but the results were of a lower quality,
I assume by "lower quality" he really means "people list every buzzword they can think of on the resumes posted on Dice".
Given the inputs I wouldn't expect any surprises in the results. But that said, it's an interesting project and they did a very nice job with the visualization.
It's interesting that Apple and its product and technologies are not related to any of these things in any way.