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.
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.
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.