What Is The Best Way To Learn A New Data Analytics Skill?
By Alan Hylands — 12 minute read
The world of analytics moves on quickly. Everyone is talking about shiny new toolsets and languages they are working on and in and you’re afraid of being left behind.
What’s the best way to get those skills up to speed then. Should you do a side project? Should you do a training course?
TLDR: Simple answer = Both. And neither. And a few other things. Thanks Al, helpful as always, is it even worth my while reading on? Why yes dear reader, follow me down the rabbit hole of my own data analytics learning experiences where I have done both and sometimes wound up using neither and I’ll explain why.
In my experience there are five main ways of trying to pick up a new technical skill, language or technology.
Formal Training Course
Online Training Course / MOOC
Read a book
Just Fucking Do It
When I started as a contractor at $BANKJOB I had no idea what SAS was. The parent company currently has one of the largest SAS deployments in the world and even back in the mid-2000s their analysts were big on SAS, mostly on the mainframe.
The team I joined was only getting put together so everything was green field for us and the main skill-set needed was SQL and VBA through MS Access and Excel. Low hanging fruit abounded but after that had been picked off we started looking longingly across the water at what we were missing out on.
Access was quick and handy for small analysis jobs and reports but it was painfully slow for large data pulls and queries so we lobbied and five of the wider local team got a 5 day formal Intro to SAS course ran in a local hotel with a Brazilian JuJitsu master trainer whose girlfriend was an exotic pole dancer. Damn fine teacher, knew his stuff inside out and with a week’s grilling, stress and intense learning all five of us came out the other side as certified SAS Base Programmers. Hurrah!
I remember vividly when all of this happened as on the first morning of the SAS course I got a phone call from my then girlfriend (now wife) telling me that the pregnancy test she’d taken was positive. Try concentrating on learning about SAS when you’ve found out you are going to be a daddy for the first time. I should have got extra credit never mind another five days graft plus an exam to battle through!
The formal training was good, it gave us all a basis to work from but it took me having to force myself to use what I’d learnt (plus a ton of Googling) to put it into practice when we got back into the office and had tight deadlines to meet on requests that were coming in.
Several of the others reached back for the comfort blanket of MS Access rather than take the rough of the transition to SAS and it took much longer for it to sink in with them when they did eventually get somewhat forced into using it.
Taking longer to do simple things you know how to do in the old tech or language, sideways glances from your boss when deadlines are tight and frantically Googling for any help in what you are trying to do are great ways to bring humility back into your working life. Hard to feel like a Rockstar when you are trawling newbie questions on Stack Overflow and still not quite getting it.
The real learning from that experience was that formal training is great for hothousing and getting you a flavour for something new but without Just Fucking Doing It you may as well not bother. I’ve done plenty of training courses over the years that had no practical application in my day to day work and without that hands-on usage it was all a waste of time and money.
Even worse is the embarrassment at getting questions about those skills or technologies at an interview when you really know damn all about them. Use it or lose it is the bottom line with getting any value out of formal training.
MOOCs are another matter altogether. We can now study virtually anything for either free or a really low price from the comfort of our own homes, stick that on our CV and call ourselves an expert. Except it hasn’t really worked out that way in practice.
Anecdotally, most people agree that MOOCs have been a failure with only approx. 2% of courses actually being completed. That’s a terrible statistic regardless of how you look at it.
The freedom to study anywhere, anytime and on your own terms is clearly the reason why they haven’t worked out. No accountability, no real investment and no real skin in the game all add up to a less than valuable experience and courses being ditched left, right and centre before completion.
I’m as guilty of that as anyone else. I’ve got courses in Python, R, Data Science and Qlikview lined up in Udemy that I haven’t finished (half of them I haven’t even started) but for $10 or $20 a pop, it’s no real loss to me.
Working in banking at the time of the 2008 crash and watching all of the documentaries and movies that covered it helped keep me interested as well and while it mightn’t help me get any further in my career I certainly don’t see it as wasted time.
The $10 Python course I started on Udemy however, despite being well taught and covering all of the basics you would expect when starting on a new programming language, wound up boring me in no time. I persevered but working through examples and modules wasn’t floating my boat and without having a use for it at $BANKJOB, I dropped it when other things started looking more appealing. Like Game of Thrones marathons. Or clearing out the outside drains.
I will say that there is a massive difference in self-motivation for completing a course between the low cost (or free) options and more premium online training courses. When you have invested $2k in a course because you believe in the people running it and how they can help you improve yourself and your business/skills there is much more likelihood that you will get your ass in the chair and see it through to the end.
Skin in the game is a big factor and really should be the big learning any online education platforms or providers look at to really make a difference in this space.
Books. Paper. Virtual. Whatever. I don’t think I’ve ever properly learnt any new programming language only by reading a book and following the tutorials. Back around 2005/2006 I was self-employed and a proper fanboy of 37 Signals, now Basecamp. (Note to past self - be careful who you look up to in the tech world - or any world for that matter...)
I was a freemium customer of Basecamp, I’d bought the original PDF version of Getting Real, printed it out, put it in a lever arch file and carried that on my commute for a good six months, just reading and digesting their philosophy for small tech businesses.
With DHH being the founder of Rails I naturally thought I should level up my web dev skills from classic ASP and some PHP I’d been toying with and jump into Ruby On Rails. I bought two books, started one, don’t think I cracked the spine on the other and within six months they were both largely out of date as the language and framework moved on.
I’d done pretty much the same with VB.Net when it came out. I’d been self-employed then as well and figured I might as well move with the times rather than get left behind as the Dot Net tidal wave threatened to engulf my fledgling VB6 and classic ASP skillset (for more reading on dealing with the pace of progress in data and tech, read this article). Same outcome. I followed some tutorials, I read a lot, I never deployed a live Dot Net application. Not one live line of code.
Fast forward a decade and this time I have a tablet and Amazon Kindle app and I bought a book on learning Python to read on my morning bus journey. It was well written and, much like my Udemy Python MOOC, covered the basics well.
Reading it with the gentle undulations of the bus and the constant white noise of my fellow passengers it also had the very speedy effect of putting me over to sleep. Not much learning going on but the nap was very well received and I was fully refreshed by the time I got to work. Not so good for learning Python however. Attempt #2 = failure.
My next option then morphed into a side project when I found I had an itch I wanted to scratch. There are no shortage of publicly available datasets to play around with these days but what if you had a favourite coffee table book which had lots of stats about a certain group in it that you felt might be interesting to mine for some insights?
So I have a long time interest in collecting books, movies and memorabilia on Italian-American organized crime during the twentieth century. It’s not quite Father Seamus Fitzpatrick’s collection of “Second World War” memorabilia in Father Ted but a late night encounter with The Godfather Part 2 when I was 14 or 15 has left a lasting impression.
One of the books I have is a hardcover coffee table book called Mafia: The Government’s Secret File On Organized Crime which is a collection of stats and info gathered by the Federal Bureau of Narcotics in the United States against these gangsters in the first half of the twentieth century.
It’s a fascinating book to flick through but difficult to really analyse due to being pages and pages full of paper (as actual books tend to be). I decided to get the e-book version and use Python to data mine it, build a database of the info it held and do some analysis and visualisations to see what it really tells us overall.
I had an interest in the subject material. I had an end point in sight. I knew the language I wanted to learn. It was all systems go. It was a proper side project. To the code cave!
The actual Python parts went well. Without the constraints of sticking to a book or MOOC’s tutorials I had a steep learning curve as you don’t start off gently when you are setting the pace yourself. I converted the e-book to HTML, did a lot of data cleansing and initial data wrangling and set to work looking for the patterns and key data fields I could pull out.
It turned into a really enjoyable learning experience and I wound up with a SQLITE database with a few tables of connected, cleansed, workable data that I could use for analysis. I even did a plot of gangster locations onto a Google Map to kick off the visualisations.
Someday I may even write it all up as a case study and finish the job properly. (EDIT: I finally bit the bullet and started writing out how I approached the full project. For a walkthrough with code and data check out Analysing The Mafia: Part One.)
At the time I got side-tracked in building out more features on my wife’s e-commerce store in Woocommerce and the Mafia data side project got mothballed.
I learnt a lot from that project though but the only problem afterwards was that I wasn’t using Python on anything else, either at $BANKJOB or at home on other projects and as the weeks and months went on I lost my newly found powers again.
I still have the code of course so it’s never completely lost and while it may not have been the most elegant code base, it was the most successful attempt I’ve made at learning Python. The old adage of Use It Or Lose It still stands true and that has been my biggest learning over the years about any kind of self-taught technical upskilling.
Unless you JFDI and somehow manage to integrate the new skill into your day to day job, projects or contract work, you will never retain the knowledge. Anyone with a modicum of programming experience can pick up any of the main analytics-friendly languages out there these days. Whether it’s R, Python, SAS or anything else, you can learn quickly how to operate at the Keep It Simple level and get yourself a foothold in the language.
Google is your friend, so is Stack Overflow but you have to be using the skills in the real world to get them to stick. It doesn’t matter how much you spend on a formal training course or how many books or online courses you batter through and stick on your CV, there is no substitute for Just Fucking Doing It and not stopping when the newbie pain gets too much to bear.
Have a look at your CV now and see how many of the buzzwords you’ve listed out there could you actually turn your hand to if called upon TODAY. How do you learn and make sure the knowledge sticks and isn’t wasted? Is it better to specialise your CV for the tech you definitely have a proficiency in rather than going wide and listing everything in the hopes of catching a recruiting manager’s eye and winding up looking like a chump when they question you on it?
Send me your experiences and observations, I’d love to see how it is for everyone else out there.