Over the weekend from 30th August to 2nd September, Paul and I ventured up to Broken Bay Sports and Recreation Centre for CampJS. The camp is like your typical conference - it's packed with talks, workshops and demonstrations...except it's held at a slightly remote facility with almost no internet access and it's BYO sleeping bag.
The format of each day went something like this:
3pm: Afternoon tea
7pm onwards: Free time
Now you're probably thinking... "Well that sounds kind of boring, that's a lot of listening to talks" or "putting a group of introverted developers in a room and taking away their WiFi sounds like a recipe for a pretty boring weekend". I'm happy to tell you that you'd be mistaken.
Other than karaoke, there were a couple of topics in particular that I enjoyed.
The very first talk of the camp was from Charlie Gerard, who studied web development at the same place I did. Her presentation was on gesture recognition with machine learning, which included a demonstration where she controls a player in a street fighter game using a sensor to detect movement and particular gestures. Machine learning can sound really daunting and complicated, and Charlie totally demystified it. And as a bonus for the Harry Potter fans (me), she then applied the same logic to train a model to recognise spells based on mimicking wand movements. Cool, right?!
There's nothing that appeals to developers more than the automation of repetitive and menial tasks, whether that's watering your plants, playing an online game so you can get more sleep or syncing LED strip lights to music for your very own personal rave cave (though apparently this is a fire hazard). There were some tools mentioned in the two talks about automation (e.g. Node-RED) that I had never even heard of, and when I'm a confident enough developer to start automating tasks, I'm keen to look into a few.
I'll try not to put you to sleep here, but this talk was worth noting. Type checking essentially means you're telling your code exactly what variables it should expect to see, for example, you can tell a function that adds two numbers together that it should only receive integers, and not words. In a nutshell, the purpose of this is to ensure nothing unexpected happens in your code and to get better error messages when things do go awry. I've actually done this before using TypeScript but it turns out I could be doing a much better job of it!
What did I learn?
I left camp with a bunch of valuable takeaways. Not only did I learn a bunch of technical concepts and skills that will help me become a better developer (and make Yarno an even better product!), I also have a few broader takeaways to share:
- Trying to build something without any internet is hard.
- Karaoke is more fun when you have smoke machines, black-lights and neon face paint.
- "Useless is not worthless" - I really struggle to think of things to build in my spare time, partly because I'm very indecisive, but also because I dismiss ideas that I think are silly and not worth trying. But building silly things is often the best way to learn how to use a new or different piece of technology.
- Things I was expecting to be dull end up being interesting. I've never been one to shy away from trying new things, so this wasn't necessarily a groundbreaking lesson for me, but I certainly feel encouraged to keep pushing myself outside of my comfort zone.
- The dev community is made up of a very diverse and accepting group of people, and I'm proud to be a part of it!
You might also like
You don't know what you don't know, until you know...ya know? Unless of course, you have Yarno to tell you.
Before worrying about how to make training fun, we need to answer one important question: why are we training? What is the desired outcome?
Enter: the decision template. My one stop shop approach to emboldening everyone at Yarno to make their own decisions (so I don't have to).