The Future of Tech Skills Training

12Feb19

Skills development and training is a huge part of driving an organisation forward into the future, and so it’s something that I spend a lot of time and energy on. I’ve seen a bunch of stuff over the past year that leads me to expect a revolution in training.

Katacoda

I first came across Katacoda at RedMonk‘s Monkigras conference a couple of years ago when Luke Marsden showed me the Weave.works Tutorials he’d been building; and I immediately fell in love with the openness and interactivity of the platform. I’d seen training before that simulated a real world environment, but nothing that provided an authentic on demand experience[1].

I spent the following months creating what became ‘DevOps Dojo White Belt’ taking the ‘Infrastructure as Code Boot Camp’ materials we’d used for in person workshops and making it into something that could scale a lot better[2].

It was much more recently that I saw the full potential of Katacoda realised. The team that created our ‘DevOps Dojo Yellow Belt’ incorporated Continuous Integration and Continuous Delivery (CI/CD) pipelines in such a way that we could test whether students were achieving specific outcomes.

Qwiklabs

After attending a Google Cloud Derby hosted by Ant Stanley under the auspices of the London Serverless Meetup I was sent an invite to some Google Cloud Platform (GCP) training on the Qwiklabs platform (that was recently acquired by Google).

Specifically I was invited to do the GCP Architecture Challenge, which turned out to be like no training I’d ever done before. As explained in the ‘quest’ intro: ‘Challenge Labs do not provide the “cookbook” steps, but require solutions to be built with minimal guidance’…’All labs have activity tracking and in order to earn this badge you must score 100% in each lab.’

I found it was like doing an escape room. Each lab would describe an outcome that needed to be achieved, and it was up to me to figure out how to do that (using the tools provided), against the clock. Perhaps I should have done some training first, but it was really fun to learn stuff on the fly, solve the puzzle, and escape from the room lab before the clock ran down.

Open book (it’s OK to use Google and Stack Overflow)

The emergent point here is that students shouldn’t expect to be spoon fed every minute detail – they’re expected to go and read the docs, dive into Stack Overflow, search for answers on Google and in GitHub, maybe even watch some YouTube primers. Real life is an open book test, so training should reflect that.

Exercism

I saw this outcome oriented theme continue when a colleague pointed me towards Exercism yesterday. It provides training for a wide variety of programming (and scripting) languages with a common underpinning that it’s all based on tests. Just like with test driven development (TDD) you write code to pass the test suite. This results in a stunning variety of working results that can be seen from other people’s submissions, which are worth reviewing to discover everything from language idioms to significant performance improvements. Students can edit the tests too, adding things that might have been missed. It’s a really neat way of learning a language and at the same time getting into the discipline of TDD.

Codecademy, Microsoft Learn and The Hard Way

I can’t finish without a nod to these:

I started using Codecademy when it first launched, and put up with the early wrinkles because it was so beautifully immersive. I was lured back in the past week by their Learn Vue.js course (after seeing Sarah Drasner showing off the potential of Vue.js in her Servless Days London talk[3]), and it was great (the course and Vue.js) – though I can’t say I’m keen on the cost of their ‘Pro’ subscription model.

When I saw Microsoft launch Learn at Ignite 2018[4] my first take was ‘they’ve totally ripped off Katacoda’, but that was quickly followed by being seriously impressed at how well they’ve incorporated on demand subscriptions for the underlying Azure services it provides training for. There’s some seriously good introductory material there, and I hope over time they’ll close the gap to meet up with Azure certifications.

The Hard Way‘ isn’t so much a platform as a methodology designed to get ‘muscle memory’ into students, and show them the essential details that often gets buried under layers of abstraction (but matters when things fall apart). I first came across it with Kelsey Hightower‘s Kubernetes The Hard Way, and got pulled deeper with Ian Miell‘s Learn Git/Bash/Terraform The Hard Way, though it’s worth noting that it all started with Zed A. Shaw.

Conclusion

The future of IT training is interactive and outcome oriented. Rather than being spoon fed a particular way to do something we can expect to be given open platforms that allow experimentation (and provide a safe place to try things out), and open challenges that test our ability to solve problems with the entire resources of the Internet at our hands (just like when we’re putting knowledge to use at work). If we want people to use TDD and build CD pipelines, then it should be no surprise that those same tests and pipelines can form an essential part of their skills development. The good part is that this unleashes unlimited creativity, because people can figure out their own way to achieve an outcome; and approaches can be compared with peers and mentors to discover how things might be improved. It’s a long way from passively sitting in a classroom, or watching a video.

Update 22 Mar 2021

Last Week in AWS‘ curator Corey Quinn (@quinnypig) wrote about his experiences with an AWS Beta Certification Exam, which includes some thoughts about the use of labs and open book experiences.

Meanwhile I’ve had my first really bad experience with QwikLabs. Google has been running a promotion for ‘skills challenge‘, which gets participants a free month on Qwiklabs, and they seem to be doing different featured challenges each month, so in total that’s 5 months of free Qwiklabs if you started back in January. This month’s featured skills challenge is Kubernetes, and part of that is the ‘Secure Workloads in Google Kubernetes Engine‘ Quest, which has the ‘Secure Workloads in Google Kubernetes Engine: Challenge Lab (GSP335)’ at the end. I’ve had five attempts at getting through that Challenge Lab, and they’ve all failed because the lab itself has been broken in one way or another. Initially I just couldn’t get WordPress to successfully authenticate to Cloud SQL, and once that was fixed I found myself (along with many others judging by the feedback) hitting problems with rate limits at Lets Encrypt. I guess it’s not such a good idea to dogpile a free service by having a promotion that sends all your students that way. And now I’m locked out because I’ve hit ‘Sorry, your quota has been exceeded for this lab’

Notes

[1] For me the best demo of Katacoda is the 10 minute beginner level ‘Get Started with Istio and Kubernetes‘ – there’s just so much packed into it.
[2] At the time of writing over 10,000 DXCers have done the White Belt.
[3] I can’t find a recording of that talk, but her VueConf.US talk ‘Serverless Functions and Vue.js‘ seems pretty similar.
[4] I wasn’t actually at Ignite (I’ve never been) – it just seems to me that Learn is by far the most important thing that came out of the 2018 event.



2 Responses to “The Future of Tech Skills Training”

  1. Really agree about the balanced instructions. If they have to be spoon fed, they won’t learn anything and will forget quite quickly.
    For the Yellow Belt I hit an issue where the OWASP checks found issues with more dependencies in the PetClinic code from the spring framework repo than the instructions explained how to fix.
    That meant having to find the fixed versions in CVE database and specifying those….I actually got stuck because some of the dependencies were in upstream bits of the petclinic code, not in the fork we had, so I cheated and bumped the failBuildOnCVSS value up so it ignored them…..bad form, but I knew what I was doing and I didn’t have time to dig all the way in to the version of petclinic we were forking from spring and figure out how to resolve that :-)

    • One of the ‘fun’ things about creating very interactive training based on CD is that the ground keeps moving beneath us, and most of the time the only way to find that out is when a student runs a test and it fails for unanticipated reasons. So new vulnerabilities pop up, Jenkins plugins change, security patches introduce breaking changes, and we need to adapt and evolve as the world keeps turning.


Leave a reply to Chris Neale☁ (@MrCNeale) Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.