Kia ora e hoa,
I’ve been blessed to be in the presence of many talented individuals. Let me introduce you to a few.
Weeks before the competition, in order the secure a position for the Games, they would need to know what numbers had to be lifted to claim the top spot.
If you aren’t impressed, maybe I haven’t explained the stakes that well. Those required numbers aren’t static. Athletes are competing against each other.
Those goalposts are moving.
The weightlifting showdown was impressive. Again, I don’t want to take away this. But I’m impressed with the analytics that went on behind the scenes.
I’m imagining coaches with spreadsheets in the middle of the gym, running calculations and models.
This most likely didn’t happen. A coach’s intuition is their most powerful tool.
So, where am I doing with this?
Some people like watching television, some like building physical objects, I like building web applications. More specifically, I like starting building out applications, dreaming about making them, but rarely finishing them.
Yup, another chat about programming.
I’m also serious about a career change, and a programming project is what I want to build and feel proud about to show prospective employers (more on this later).
My imagination of these coaches’ analytical work inspired me to construct a tool to allow analytics to be easily performed on weightlifting.
Let’s start with extracting information from previous competition results.
Looking at the Weightlifting New Zealand
(WNZ) website, all the competition results are stored in a variety of .pdf files and Excel files. There is no standardisation, which works. On the other hand, if you want to access the information quickly and graph it, or if you want to ask a simple question: “if someone misses their first lift, what is the change they will not total for the competition?” then a better solution is required.
How about an API and database to store all this information?
But first, what’s a database? It’s a location for storing information.
What’s an API? API stands for Application Programming Interface. I like the use of the analogy of a car. You don’t necessarily know how the engine works (e.g. how the database works), but you know how to accelerate and steer the vehicle (this is the API). The API allows you to access this database in a crude sense easily.
The API will allow you to write to the database, read the database, update items, and even delete things off the database.
How this help is an API allows us to standardise data for us to complete our fun little analysis and in the future can act as a mechanism of storage.
I approached the powers of Weightlifting New Zealand, and they liked the idea. They’ll keep me in mind, they said. Sound promising.
But I’ll introduce you to some mantras:
- Ask for forgiveness, not permission
Start the work before you get it (thanks, Daniel Bourke)
- Start building in public
Instead of waiting for a call that may never happen, it’s time to take control and show initiative. I could wait for a call that may never come, or I could start building now. And while I create, do it in public. And that’s the beauty of programming and what I love about it. I can learn everything I need to do online and start building immediately.
A friend of mine (who I love) said that something like this has already been created when alluded to something similar to this in the past, but they said they didn’t have anything when I inquired. Not even in the infantile stages.
My friend was protecting me against doing lots of work for no reward.
Even if this API that I make or at least try and make doesn’t get used, it’s alright!
It’ll be fun, and it will be a good learning experience making this application.
And this will be an excellent project to show potential employers or at least give me the confidence that I can learn a powerful monitisable skill. All on my own, with my dedication and motivation in my free time without a university degree.
Now for the technical aspects. I’m going to build the backend on Django Rest Framework. I’ve been a fan of Python and Django for a long time now.
The next part is creating an API wrapper and the ability to scrape the current weightlifting NZ results into a format that the API can understand so I can save the previous results onto the database.
Finally, the icing on the cake will be a front end most likely designed in React TypeScript for laypersons to use.
I think I will include some blog posts and videos along the way to demonstrate how this works. Hopefully, it gains some traction, but I’m not fussed if it doesn’t. But, again, if this doesn’t work out, I’ve learnt so much, and I can take this knowledge to execute the next idea!
Here are the projects if you are interested in following along:
On a final note for those who have read this far, seeing these athletes’ quality is so, so inspiring. I recall an interview some years ago where one athlete mentioned the goal of representing Aotearoa in the Commonwealth Games.
I might be wrong, but the way they said it sounded like they thought the goal was ridiculous.
But they achieved their reasonably unreasonable goal.
I don’t have dreams of being a Commonwealth Games attendee. But I want to build products that influence millions positively.
Is it offensive to compare my goals to theirs?
Better make a start on the work.
Stay focused and talk soon.
Ngā mihi nui,