Landscape changes in Analytics

Microsoft has bought Revolution Analytics. It’s possible, if you are not in the R space or the analytics space, that the significance of this in terms of data manipulation and exploitation will have passed you by but it’s big, both in terms of an announcement of Microsoft’s intentions, and in terms of the tools they are targeting.

I use R as a primary statistical programming tool and prefer it over SPSS and Minitab for most things.

Technical debt and the bazaar

Over the festive period, one of my friends posted this to his twitter feed. I found it interesting for several reasons, not least because I’ve been wondering about things like minimum viable products, lack of direction, code bloat and how computer science and programming seems to be full of decisions to be made lately.

I am not a Unix systems expert per se – I run my own Linux desktops from time to time – but I can identify what some of the comments in this regarding quality, dependencies which aren’t really dependencies from a functional point of view. I wonder sometimes if we need to take a step back and just….clean up programming.

If that resistance/ignorance of code reuse had resulted in self-contained and independent packages of software, the price of the code duplication might actually have been a good tradeoff for ease of package management. But that was not the case: the packages form a tangled web of haphazard dependencies that results in much code duplication and waste.

I’m not necessarily talking about refactoring (although that does help sometimes) but our outlook on how we get things done.

It is part of wider thoughts I have about technology.

 

And I would walk 10,000 hours

Once, there was a study, involving professional violinists, the outcome of which resulted in the world being told that if you wanted to get really good at something, you need to do it for 10,000 hours.

The internet is full of productivity and professionality tips and every once in a while, I come across this “and you need to do something for at least 10,000 hours before you get good at it”. As the original study related specifically to a very small proportion of people talented in a very specific skill, I’ve never felt happy about it being generalised to, for example, programming, Linux administration.

I want to live in a world where the driving force underpinning people’s work is an attachment to that world, and not the ticking off of hours. You can do something for 10,000 hours and tick off those hours but if you don’t do it with passion, you’ll get limited benefit from those 10,000 hours.

 

Nanodegrees and Udacity

A few days ago, an email dropped into my box from support at Udacity, from Sebastian Thrun, talking about the new sort of university and credentials Udacity have put together for industry. The credentials, if you haven’t heard of them, are called nanodegrees. I have no idea who came up with this idea and having looked at the work required for one or two of them, I don’t see what “diploma” wasn’t good enough for them, or “certificate”.

There’s an ongoing debate on the subject of industry and university and the fact that the former doesn’t seem to think the latter does enough to prepare graduates for work. I don’t think it’s quite that simple, and I don’t think that Udacity’s nanodegrees fix the problem.

I graduated for the first time in 1994. At that stage, it was accepted, pretty much across the board, that graduates, regardless of their discipline need what the Germans would probably call an Einarbeitungsphase; a period of time to get someone up to speed. This is reality for everyone, not just graduates. No one is immediately useful in the grand scheme of things.

The technology industry (in particular) seems to have a problem with this and they tend not to look for people who are broadly educated, but people who have a highly narrow skillset. If you look at any of the software engineering ads that float around, there tends to be  a focus on particular programming languages when in all honesty, what the average tech company should be looking for is someone who thinks programmatically and solves problems. At the end of the day, it doesn’t really matter what languages they program in because just about every programming shop has or should have some sort of local style guide that – oh wait – you need a bit of time to get up to. Programming languages are, for any competent programmer, easy to learn.

If you are hiring someone and focusing not on their broader outlook in terms of their industry, you aren’t really hiring for the future. If you’re not looking at the value you can add to a candidate, but only what they offer in the short term, this suggests your long term future is a problem.

What I’ve seen of the Udacity Nanodegrees (and I really do hate that term) is that they are skills based and a bit narrow in focus. The fact that a few of Udacity’s customers offer them to their staff is a good thing. The idea that they replace a broadbased university qualification is not.

Sebastian mentioned in his email that the skills gap is broadening faster leaving people on the sidelines. I don’t think that this is untrue per se, but I do also think that part of the problem is that employers are not addressing the problem effectively. To some extent, ongoing professional development is a desirable thing; with that, you need to recognise that staff need to be supported in doing it (and Udacity is good in this respect) but that this also means that there are very few ready made hit the ground running candidates anywhere.

In IT support, it’s absolutely critical and here’s why. A lot of the skills in support are vendor specific. Tasks in IT can be quite general – keep a network running, keep security in place – but the skill set required can be vendor specific and not immediately transferable from the systems run by one vendor to the systems run by another vendor, for example.

There was a time when having a degree in computer science covered a multitude of possible jobs because it covered a multitude of related subjects. Those days are gone, and they are gone because technology employers no longer filter on the basis of knowledge, but on the basis of limited skills. Alternative qualifications may deal with the skills issue, but not necessarily the broader picture issue. I’ve seen it with people who learn to program in – for want of an example – Java – but not in the context of what computers actually do.

Learning to program in a specific language is an easily acquired skill for someone who actually understands the broader picture. Industry needs to focus on identifying these people and recognise that they provide a lot more value than someone whose only skillset is they learned to program in one specific programming language. It means recognising that the learning phase does not end at the date of graduation. In many respects, it starts.